Arduino и Gp2D120

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Re: Arduino и Gp2D120

Сообщение =DeaD= » 13 июл 2011, 15:50

Так понятней? :)
Код: Выделить всё
int cmdNum=0;
int stepsLeft=0;
while(1){
  if(stepsLeft==0){
    cmdNum++; if(cmdNum>1) cmdNum=0;
    case(cmdNum){
      0: Forward (250); stepsLeft=100; break;
      1: Spin_Right(); stepsLeft=100; break;
    };
  if(obstacleDetected()){
    Backward(250);
    delay(1000);
    Spin_Right();
    delay(1000);
  };
  delay(20);
  stepsLeft--;
};
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Arduino и Gp2D120

Сообщение gambit6 » 13 июл 2011, 20:58

Сделал так:

Код: Выделить всё
// О С Н О В Н О Й Ц И К Л П Р О Г Р А М М Ы
void loop(){
int cmdNum=0;
int stepsLeft=0;
while(1){
  if(stepsLeft==0){   
    cmdNum++; if(cmdNum>1) cmdNum=0;
    switch(cmdNum){
      case 0: Forward (250); stepsLeft=100; break;
      case 1: Spin_Right(); stepsLeft=100; break;
    };
  if(obstacleDetected()){
    Backward(250);
    delay(1000);
    Spin_Right();
    delay(1000);
  };
  delay(20);
  stepsLeft--;
};

}


Включаю робота и он начинает делать Spin_Right потом затихает и ничего не делает.
Если сразу после включения, когда он начинает вертеться отмахнуть рукой перед датчиком то едет назад, потом Spin_Right и опять останавливается =(((
Где-то ошибся?
Аватара пользователя
gambit6
 
Сообщения: 189
Зарегистрирован: 10 янв 2005, 12:18
Откуда: Санкт-Петербург

Re: Arduino и Gp2D120

Сообщение =DeaD= » 13 июл 2011, 21:17

Попробуйте:
Код: Выделить всё
if(stepsLeft==0){   
    cmdNum++; if(cmdNum>1) cmdNum=0;
    switch(cmdNum){
      case 0: Forward (250); stepsLeft=100; break;
      case 1: Spin_Right(); stepsLeft=100; break;
    };


Заменить на более простое:
Код: Выделить всё
if(stepsLeft==0){
    if(cmdNum==0){
      Forward (250); stepsLeft=100; cmdNum=1;
    }else{
      Spin_Right(); stepsLeft=100; cmdNum=0;
    };
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Arduino и Gp2D120

Сообщение gambit6 » 13 июл 2011, 21:29

Теперь вертится как волчек постоянно =)))) А когда датчик срабатывает, отъезжает и снова вертится
Аватара пользователя
gambit6
 
Сообщения: 189
Зарегистрирован: 10 янв 2005, 12:18
Откуда: Санкт-Петербург

Re: Arduino и Gp2D120

Сообщение =DeaD= » 13 июл 2011, 21:51

Может у вас Forward (250); криво написана и не работает?

Добавлено спустя 2 минуты 10 секунд:
Упс, скобку забыли по ходу...

Код: Выделить всё
while(1){
  if(stepsLeft==0){   
    if(cmdNum==0){
      Forward (250); stepsLeft=100; cmdNum=1;
    }else{
      Spin_Right(); stepsLeft=100; cmdNum=0;
    };
  };
  if(obstacleDetected()){
    Backward(250);
    delay(1000);
    Spin_Right();
    delay(1000);
  };
  delay(20);
  stepsLeft--;
};
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Arduino и Gp2D120

Сообщение gambit6 » 13 июл 2011, 23:07

ОГРОМЕННОЕ СПАСИБО! ОНО ПОЕХАЛО =)))
Аватара пользователя
gambit6
 
Сообщения: 189
Зарегистрирован: 10 янв 2005, 12:18
Откуда: Санкт-Петербург

Re: Arduino и Gp2D120

Сообщение GlassEagle » 15 июл 2011, 14:46

Не смог удержаться...
А что такое "блуждающий цикл"???? Блин, облазил весь интернет (как "любимые", так и нелюбимые поисковые системы) - нашёл это сочетание только применительно к вулканологии и к, пардон, "женским болезням" (шмугл, кстати, ужЕ знает об этой нашей ветке, насчёт шмяндекса - не проверял). Решил, было, что это какое-то новое слово в программировании на паскакале. Но, похоже, это просто "новое слово" у отдельно взятого учителя информатики.
Когда я слышу слова "Первый закон робототехники", я вспоминаю анекдот про ноусэров.
GlassEagle
 
Сообщения: 160
Зарегистрирован: 14 окт 2009, 11:46
Откуда: Самара

Re: Arduino и Gp2D120

Сообщение gambit6 » 17 июл 2011, 16:14

Помимо "блуждающего цикла" есть еще и тролли, которые к словам цепляются. :ROFL:
Аватара пользователя
gambit6
 
Сообщения: 189
Зарегистрирован: 10 янв 2005, 12:18
Откуда: Санкт-Петербург

Пред.

Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12