Датчик препятствий и серво(бесполезная коробка)

Гриша
Offline
Зарегистрирован: 27.04.2014

зачем там фор??? 4 раза присвоить одно само к себе???? (тут мне просто библа не знакома, могу ошибатьсяяяяя)

     // Шаг 4 
       for(i=0; i<3; i++ && MoveStep == 4)
      {
        MoveStep = 0;
        ServoSpeed = 1;
      }

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

мне кажеться нужно отправить ТС програмить в ардублок. там все наглядно и понятно даже для детей

http://blog.ardublock.com/engetting-started-ardublockzhardublock/

karl2233
Offline
Зарегистрирован: 05.07.2015

не, вроде всё точно.

1. записываем значение val равное полученному с датчика.

2. присваиваем старому значению вновь полученное

3. сравниваем их и прога действует дальше

это сделано для фиксации показания с датчика.

да он, датчик, работает как надо и часть кода, связанная с этим тож вроде фунциклирует.

вопрос в цикле  - не выходит из него (((

karl2233
Offline
Зарегистрирован: 05.07.2015

Гриша пишет:

зачем там фор??? 4 раза присвоить одно само к себе???? (тут мне просто библа не знакома, могу ошибатьсяяяяя)

     // Шаг 4 
       for(i=0; i<3; i++ && MoveStep == 4)
      {
        MoveStep = 0;
        ServoSpeed = 1;
      }

4 шаг отправляет в цикл (на шаг 0), а for я пытаюсь выйти из цикла на шаг 5 после двух переходов.

как-то так

karl2233
Offline
Зарегистрирован: 05.07.2015

Puhlyaviy пишет:

мне кажеться нужно отправить ТС програмить в ардублок. там все наглядно и понятно даже для детей

http://blog.ardublock.com/engetting-started-ardublockzhardublock/

да у меня перед носом серва вжикает )))  кодирую на лету!

хотя виртуально это по-нашему, по-бразильски(с)

*качаю

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Puhlyaviy пишет:

мне кажеться нужно отправить ТС програмить в ардублок. там все наглядно и понятно даже для детей

http://blog.ardublock.com/engetting-started-ardublockzhardublock/

пухлявый=мягкий=пушистый- но не так !
чЮгунЯвый ? ( Тагииииииииллл ? )
(не реклама )
:)-

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

тож вроде фунциклирует.
прикольно :)

karl2233
Offline
Зарегистрирован: 05.07.2015

прикольно-то прикольно, тока из цикла не выходит.

зараза.

канеш можно тупо прописать повторы кусков программы.

но это не наш метод.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

не, вроде всё точно.
...по чьим меркам ?

karl2233
Offline
Зарегистрирован: 05.07.2015

по моим конечно.

по чьим же ещё.

считаешь там ошибка? поправь, я сразу проверю в железе и отпишусь.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

SU-27-16 пишет:

пухлявый=мягкий=пушистый- но не так !
чЮгунЯвый ? ( Тагииииииииллл ? )
(не реклама )
:)-

выдыхай уже. 

Юпитеру больше не наливать!

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Puhlyaviy пишет:

SU-27-16 пишет:

пухлявый=мягкий=пушистый- но не так !
чЮгунЯвый ? ( Тагииииииииллл ? )
(не реклама )
:)-

выдыхай уже. 

Юпитеру больше не наливать!

по первоисточникам - "Сириусу больше не наливайте"
СУ и си - ну ни как не совпадает !

karl2233
Offline
Зарегистрирован: 05.07.2015

Puhlyaviy пишет:

мне кажеться нужно отправить ТС програмить в ардублок. там все наглядно и понятно даже для детей

http://blog.ardublock.com/engetting-started-ardublockzhardublock/

от ты мне подкинул )))))

вместо одной программы и языка, надо изучать вторую прогу! )))))

не, оставил на потом.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Puhlyaviy пишет:

SU-27-16 пишет:

пухлявый=мягкий=пушистый- но не так !
чЮгунЯвый ? ( Тагииииииииллл ? )
(не реклама )
:)-

выдыхай уже. 

Юпитеру больше не наливать!

"по пояс вам будет"

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

karl2233 пишет:

от ты мне подкинул )))))

вместо одной программы и языка, надо изучать вторую прогу! )))))

не, оставил на потом.

там не нужно ничего изучать. там береш блочек и ставишь. наглядно видно все циклы и прочее.. используеться для обучения детей. дети на этой фигне програмят игрушки в течении 15 минут..

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

не, оставил на потом.
здря !

karl2233
Offline
Зарегистрирован: 05.07.2015

SU-27-16 пишет:

не, оставил на потом.
здря !

скачал русскую версию.

это пипец... мож дети и разбирутся в этом, но я нихрена не понимаю - читая код мне гораздо явственне видно что куда и зачем идёт (я про своё творение).

а эти кубики хрен знаешь как присобачить друг к дружке. да и тумблера нет, что б его сварганить надо так из%нуться, что эта игрушка виснет намертво.

хрен знает как сварганить херню, потом вображать и додумывать что "серва приняв положение выключит тумблер" или "приоткрытая крышка под которой ИК увидит препятствие и даст команду серве дотронутся до тумблера но не выключить его".

так что не зря.

ради прикола, попробуй сварганить в этой хне простейшее движение "тумблер включили->серва его выключила-> вернулась в исходное положение".

я за 40 минут или час после первого в своей жизни включения Ардуины, сварганил таке, а тут два часа - коту под хвост.

да и не научишься с этим программировать, но детишек приучать к чему-то наерн годится. 

...хз, мож у меня мозги не на то заточены ))) так что я по старинке буду, или методом научного тыка "for" во все места программы.

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

еще бы китайскую скачал... в большинстве случаев то что куда то там локализуется. в процессе локализации теряет часть функционала. а остальная часть страшно глючит...

но именно с подобных блочков и начинаеться курс програмирования от Гарварда... у меня дочь с этого начинала... щас на С++ фигачит какие то замысловатые фиговины...

языки другие нужно учить. хотя бы на уровне поверхностного понимания. очень полезно.

karl2233
Offline
Зарегистрирован: 05.07.2015

дак я этим озаботился уже )) купил две книги по С++ и скачал две.

это не считая манускриптов по Ардуине правда там, такое ощущение что, раздел программирования с этого сайта перепечатали.

а прога та может и хороша, но не для меня - сложности, возникающие при работе с ней и невозможность моделирования конкретно моего девайса, не компенсируются визуализацией, которая мне в данном аспекте не нужна - я и так представляю как работает тот или иной блок.

и алгоритм.

а вот семантику языка да, мне надо учить, разбирая конкретные примеры. но таковых, увы, мало - авторы редко дают объяснения (да и надо ли оно им?), а на форумах сплошняком флуд или "кури то-то или то-то".

буду искать знакомых, которые объяснят.

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

жеваный крот...

http://arduino.ru/Reference

да тут же вот по порядку все операторы перебрать. и карандашиком себе на листике сделать пометки что и зачем.. там супер примеры на каждый оператор. коротко и ясно что он делает...

накой фиг перегребать мануалы в 1000 страниц?

karl2233
Offline
Зарегистрирован: 05.07.2015

ок.

можешь сказать где у меня ошибка и как исправить?

а я вот додумался где, теперь думаю как =)

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

мне лень читать и пытаться понять твой код... мое мнение такое... если знаешь как сделать что бы работало, и оно работает.. но все кричат что это быдло код.. по пошли всех 

karl2233
Offline
Зарегистрирован: 05.07.2015

вот-вот.

лень всем, однако в ламерстве меня не уличил только ленивый )))

про код я ваще не парюсь - будет работать и ладно. потом, когда освоюсь, причешу (не люблю незавершенных дел).

осталось малость самую  - понять как сделать =) усилено курю С++

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

karl2233 пишет:

 усилено курю С++

зачем? это примерно как ремонтирую газонокосилку, читать инструкцию от ракетного двигателя.

karl2233
Offline
Зарегистрирован: 05.07.2015

не в данном случае.

у меня есть факт неправильного применения нужного оператора цикала(for).

что б его правильно применить нужно понять семантику языка С++(хотя бы в части применения операторов, и цикла).

как-то так.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

жеваный крот

http://arduino.ru/Reference/For

что тут сложного то? ну убери этот FOR и напиши замето него портянку с повторением того что тебе нужно..

главное что бы работало.

потом будешь прчиесывать

karl2233
Offline
Зарегистрирован: 05.07.2015

уже так и сделал -  тупо сделал повторы шагов. но это не кошерно, я ж Великий Кукурузо ))

 

вот как решитиь эту проблему:

void loop() // программа
{
    //Шаг  0
    if (какие-то условия && MoveStep == 0);
    {
        // чего-то делается в этом шаге;
        MoveStep ++;
    }

    for(int  x=0; x<3; x++)
    {
             // Шаг  1
          if (какие-то условия && MoveStep == 1);
              {
                // чего-то делается в этом шаге;
                MoveStep ++;
               }
        
          //Шаг 2
          if (какие-то условия && MoveStep == 2);
             {
               // чего-то делается в этом шаге;
              MoveStep ++;
             }
    }
     // Шаг 3
    if (какие-то условия && MoveStep == 3);
             {
               // чего-то делается в этом шаге;
              MoveStep  = 0;
             }
}

вопросы:

1. правильно ли применил оператор For?

2. как понимаю, необходимо на каком-то этапе сравнивать переменную "х", но где?(или это происходит в функции For?).

3. если сравнение происходит в самом операторе(собсно так написано) тогда почему программа вместо цикла(шаг1 - шаг 2) сразу идёт на шаг 3?

 

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

ну так оставь его в покое. если оно работает..

не получилось понять наскоком, значит и не имеет смысла продолжать в данный момент времени.

нужно дать время всей новой информации устаканиться в черепе и прорасти связями. у некоторых это занимает и месяц и годы.. а потом ЭВРИКА и все такое..

 

karl2233
Offline
Зарегистрирован: 05.07.2015

собсно так и поступил, уже собираю коробенцыю =)

не такая она и бесполезная оказалась )))))

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

karl2233 пишет:

собсно так и поступил, уже собираю коробенцыю =)

не такая она и бесполезная оказалась )))))

я так английский учил... с понедельника по пятницу только на нем и общался ( по началу пытался общаться и нифига не понимал)... зато за тихие суботу и воскресенье, все как то там в голове устаканивалось и в новый понедельник я уже начинал понимать какую то часть и даже что то там отвечать.. 

Гриша
Offline
Зарегистрирован: 27.04.2014

karl2233 пишет:

уже так и сделал -  тупо сделал повторы шагов. но это не кошерно, я ж Великий Кукурузо ))

 

вот как решитиь эту проблему:

void loop() // программа
{
    //Шаг  0
    if (какие-то условия && MoveStep == 0);
    {
        // чего-то делается в этом шаге;
        MoveStep ++;
    }

    for(int  x=0; x<3; x++)
    {
             // Шаг  1
          if (какие-то условия && MoveStep == 1);
              {
                // чего-то делается в этом шаге;
                MoveStep ++;
               }
        
          //Шаг 2
          if (какие-то условия && MoveStep == 2);
             {
               // чего-то делается в этом шаге;
              MoveStep ++;
             }
    }
     // Шаг 3
    if (какие-то условия && MoveStep == 3);
             {
               // чего-то делается в этом шаге;
              MoveStep  = 0;
             }
}

вопросы:

1. правильно ли применил оператор For?

2. как понимаю, необходимо на каком-то этапе сравнивать переменную "х", но где?(или это происходит в функции For?).

3. если сравнение происходит в самом операторе(собсно так написано) тогда почему программа вместо цикла(шаг1 - шаг 2) сразу идёт на шаг 3?

строка 23!!!! не позволит выполнять IF в FOR т.к. ни одно из условий && MoveStep не выполнится т.е FOR честно проверит еще 2 раза условия и не выполнив ничего выволится дальше... в строку 27

Гриша
Offline
Зарегистрирован: 27.04.2014

вариант 1:

for(int  x=0; x<3; x++)

вариант 2:

for(int  x=0; x<=2; x++)

сравните 2 варианта записи, так вот, на первый взгляд они одинаковые, но с точки зрения выполнения программы вариант 1 имеет глюк!!! а второй нет. Описывать глюк не буду, но скажу - когда выполняется сравнение всегда неодходимо писать >= или <= это избавляет от неопределенности в записи.

эта"мелочь" почти нигде не описана, но имеет очень важное значение, точнее почти нигде не написано "запомните" и редко где озвучивается в скользь

Гриша
Offline
Зарегистрирован: 27.04.2014

2. как понимаю, необходимо на каком-то этапе сравнивать переменную "х", но где?(или это происходит в функции For?).

переменную x from for можно ипользовать - если нужен счетчик или не использовать (в нутри цикла) если необходимо выполнить что-то определенное числораз (т.е. х раз)

паример помигать светеодиодом 10 раз (х не используем кроме как в счетчике) или нам необходимо получать счетную последовательность (совпадающую с х)


int x=0;
int y;
for (int i=55; i<=100; i++)
{
Serial.println (i);
x=x++;
Serial.println (x);
y= i-55;
Serial.println (y);
}

 

karl2233
Offline
Зарегистрирован: 05.07.2015

Гриша пишет:

karl2233 пишет:

вот как решитиь эту проблему:

void loop() // программа
{
    //Шаг  0
    if (какие-то условия && MoveStep == 0);
    {
        // чего-то делается в этом шаге;
        MoveStep ++;
    }

    for(int  x=0; x<3; x++)
    {
             // Шаг  1
          if (какие-то условия && MoveStep == 1);
              {
                // чего-то делается в этом шаге;
                MoveStep ++;
               }
        
          //Шаг 2
          if (какие-то условия && MoveStep == 2);
             {
               // чего-то делается в этом шаге;
              MoveStep ++;
             }
    }
     // Шаг 3
    if (какие-то условия && MoveStep == 3);
             {
               // чего-то делается в этом шаге;
              MoveStep  = 0;
             }
}

строка 23!!!! не позволит выполнять IF в FOR т.к. ни одно из условий && MoveStep не выполнится т.е FOR честно проверит еще 2 раза условия и не выполнив ничего выволится дальше... в строку 27

получается что из условия if в шаге №2 надо убрать "&&MoveStep == 2" а в условии "for" указать ""<="?

но само местоположение оператора "for" правильное.

да?

Гриша
Offline
Зарегистрирован: 27.04.2014

karl2233 пишет:

получается что из условия if в шаге №2 надо убрать "&&MoveStep == 2" а в условии "for" указать ""<="?

но само местоположение оператора "for" правильное.

да?

НЕТ - точнее задавать такой вопрос вообще не правильно, т.к. виша программа будет выполняться именно так, как Вы это опишите. в данном случае за 4 раза значение MoveStep на выходе будет иметь = 6 (вроде я правильно посчитал)...  если вам, в какойто момент нужно конкретное число и есть предыдущее состояниние то: 

MoveStep = MoveStep +2; - если вам очень хочется из конкретного состояния перейти в конкретное именно по этому условию.

ЗЫ мне пора клаву менять... продавилась, буквы сами, иногда, нажимаются при деформации :( лень в магазин идти.... а печатать в слепую я пока еще не научился

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

какой неугомонный. а как же самостоятельная работа? погуглить, подумать, почитать 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

jeka_tm пишет:

какой неугомонный. а как же самостоятельная работа? погуглить, подумать, почитать 

(послюнявил химический карандаш и вывел сверху ) ДОМАШНЯЯ РАБОТА

karl2233
Offline
Зарегистрирован: 05.07.2015

jeka_tm пишет:

какой неугомонный. а как же самостоятельная работа? погуглить, подумать, почитать 

а как же смысл форума? как понимаю, на любой твой  вопрос тебе тож так отвечают? =)

я ж не прошу сделать за меня, если знаешь - подскажи.

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

karl2233 пишет:

jeka_tm пишет:

какой неугомонный. а как же самостоятельная работа? погуглить, подумать, почитать 

а как же смысл форума? как понимаю, на любой твой  вопрос тебе тож так отвечают? =)

я ж не прошу сделать за меня, если знаешь - подскажи.

 


Уже 4 страницу подсказывают все кто могет. А толку нет.

Гриша
Offline
Зарегистрирован: 27.04.2014

Puhlyaviy пишет:
karl2233 пишет:

jeka_tm пишет:

какой неугомонный. а как же самостоятельная работа? погуглить, подумать, почитать 

а как же смысл форума? как понимаю, на любой твой  вопрос тебе тож так отвечают? =)

я ж не прошу сделать за меня, если знаешь - подскажи.

 

Уже 4 страницу подсказывают все кто могет. А толку нет.

абсолютно верно, да только я сам недавно в такой же ситуации был...

про потенциальные ямы слышали (из энергии переходов)? может и получится помочь человеку вырыть  туннельный переход :):)))

правда уж больно долго он его копает :)))) уже и перепрыгнуть можно было

karl2233
Offline
Зарегистрирован: 05.07.2015

так я уже перепрыгнул, позачера ещё.

теперь копаю:

Орешек знанья твёрд, но всё же

мы не привыкли отступать!

Нам расколоть его поможет

киножурнал «Хочу всё знать!».

применительно к моему случаю киножурнала нема

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

karl2233 пишет:

так я уже перепрыгнул, позачера ещё.

теперь копаю:

Орешек знанья твёрд, но всё же

мы не привыкли отступать!

Нам расколоть его поможет

киножурнал «Хочу всё знать!».

применительно к моему случаю киножурнала нема

 

Ералаш эт к вашему случаю как раз киножурнал

karl2233
Offline
Зарегистрирован: 05.07.2015

не, это как раз не к моему )))))

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Ну тогда остается только Фитиль.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

karl2233 пишет:

jeka_tm пишет:

какой неугомонный. а как же самостоятельная работа? погуглить, подумать, почитать 

а как же смысл форума? как понимаю, на любой твой  вопрос тебе тож так отвечают? =)

я ж не прошу сделать за меня, если знаешь - подскажи.

4 страницы уже. выхлоп то есть какой нибудь? или ты просто конспекты пишешь?

karl2233
Offline
Зарегистрирован: 05.07.2015

jeka_tm пишет:

4 страницы уже. выхлоп то есть какой нибудь? или ты просто конспекты пишешь?

karl2233 пишет:

так я уже перепрыгнул, позачера ещё.

уже так и сделал -  тупо сделал повторы шагов. но это не кошерно, я ж Великий Кукурузо ))

надо чаще встречаться(с)

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Если мальчик тычет пальчик....

bwn
Offline
Зарегистрирован: 25.08.2014

karl2233, зачем for там, где ему не место? Оператор весьма специфичный и легко реализуемый на if-ах. ИМХО.

А повторы шагов, вынесите в отдельную функцию и вызывайте сколько хочется. Нас этим архат пытался просветить, но больно академично.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

bwn пишет:

А повторы шагов, вынесите в отдельную функцию и вызывайте сколько хочется. Нас этим архат пытался просветить, но больно академично.


ну теперь начинай обьяснять ему про функции :) я за попкормом.

bwn
Offline
Зарегистрирован: 25.08.2014

Puhlyaviy пишет:
bwn пишет:

А повторы шагов, вынесите в отдельную функцию и вызывайте сколько хочется. Нас этим архат пытался просветить, но больно академично.

ну теперь начинай обьяснять ему про функции :) я за попкормом.

Та у меня функция == Синклер Бейсик (Фортран)  "подпрограмма".