roboforum.ru

Технический форум по робототехнике.
Текущее время: 23 апр 2025, 04:56

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Arduino и Gp2D120
СообщениеДобавлено: 13 июл 2011, 15:50 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Так понятней? :)
Код:
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]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino и Gp2D120
СообщениеДобавлено: 13 июл 2011, 20:58 
Не в сети
Аватара пользователя

Зарегистрирован: 10 янв 2005, 12:18
Сообщения: 189
Откуда: Санкт-Петербург
Сделал так:

Код:
// О С Н О В Н О Й Ц И К Л П Р О Г Р А М М Ы
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 и опять останавливается =(((
Где-то ошибся?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino и Gp2D120
СообщениеДобавлено: 13 июл 2011, 21:17 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Попробуйте:
Код:
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]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino и Gp2D120
СообщениеДобавлено: 13 июл 2011, 21:29 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino и Gp2D120
СообщениеДобавлено: 13 июл 2011, 21:51 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Может у вас 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]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino и Gp2D120
СообщениеДобавлено: 13 июл 2011, 23:07 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino и Gp2D120
СообщениеДобавлено: 15 июл 2011, 14:46 
Не в сети

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino и Gp2D120
СообщениеДобавлено: 17 июл 2011, 16:14 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO