roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Arduino балансирование
СообщениеДобавлено: 19 янв 2010, 15:42 
Не в сети
Аватара пользователя

Зарегистрирован: 19 янв 2010, 15:16
Сообщения: 4
Откуда: Уфа
Всем здоровеньки булы...
я новичок в роботостроении.. начал изучать с ардуины. видел гдето в инете робота балансирующего на двух колесах, без использования датчика ускорения. с применением ir датчика расстояния. решил попробовать построить.
Изображение
столкнулся с проблемкой. мой pop-bot не хочет балансировать на двух колесах, делает 2-3 попытки устоять - затем падает.
Может кто поможет с кодом? знаю, что в нем гдето косяк...

Код:
/********************************************************************************/
int gp2;
void setup(){
  pinMode(3,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(9,OUTPUT);
}
void Forward(int speed){
  analogWrite(3,speed);
  digitalWrite(5,LOW);
  analogWrite(6,speed);
  digitalWrite(9,LOW);
}
void Backward(int speed){
  analogWrite(5,speed);
  digitalWrite(3,LOW);
  analogWrite(9,speed);
  digitalWrite(6,LOW);
}
void loop(){
  int i;
  for (i=0;i<5;i++){                         
    gp2=(gp2+analogRead(5));
  }                                       
  gp2=gp2/5;                                     
  if (gp2>290){                                     
    Backward(200);                           
  }
  else{
    Forward(200);
  }
}
/*******************************************************************************/


Последний раз редактировалось Yur0k 20 янв 2010, 11:28, всего редактировалось 1 раз.

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

Зарегистрирован: 21 дек 2006, 19:56
Сообщения: 4468
Откуда: Украина, г.Одесса
прог. языки: Delphi и С
Добавьте фото робота и схему что ли. А то ХЗ че там у вас наподключено.

Добавлено спустя 59 секунд:
Тем более ИК датчик построен на ТСОПе или тупо ИК фотодиод?
Если ТСОП, то он ловит сигнал от отражения по всей комнате, если ИК фотодоид, то он помехи ловит.


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

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Надо бы более плавный регулятор наверное, а не тупо IF ?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


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

Зарегистрирован: 19 янв 2010, 15:16
Сообщения: 4
Откуда: Уфа
фото своего вечером сделаю,
робот построен на базе pop-bota
Изображение
в качестве датчика использовался шарповский дальномер(из набора)


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

Зарегистрирован: 05 фев 2008, 15:33
Сообщения: 2687
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович
Если у вас Аналоговый Шарп GP2D120 то не плохо было бы заглянуть в datasheet на него.
С этим датчиком этот код никогда стабильно работать не будет.

_________________
Никто кроме нас!!!
4Robots.ru - Все для роботов!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Arduino балансирование
СообщениеДобавлено: 19 янв 2010, 16:48 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
А в руководстве pop-bot и arduino студию http://popbot.narod.ru/ нету примеров нужных ?

_________________
Читайте !


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

Зарегистрирован: 05 фев 2008, 15:33
Сообщения: 2687
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович
Подсказываю на 99 странице приведенного выше руководства ВСЯ нужная информация о Дальномере.

_________________
Никто кроме нас!!!
4Robots.ru - Все для роботов!


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

Зарегистрирован: 19 янв 2010, 15:16
Сообщения: 4
Откуда: Уфа
=DeaD= писал(а):
Надо бы более плавный регулятор наверное, а не тупо IF ?

спасибо, согласен, буду подумать как сделать

SkyStorm писал(а):
Если у вас Аналоговый Шарп GP2D120 то не плохо было бы заглянуть в datasheet на него.
С этим датчиком этот код никогда стабильно работать не будет.

поэтому и спрашиваю здесь.. но думаю дело не в датчике.


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

Зарегистрирован: 05 фев 2008, 15:33
Сообщения: 2687
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович
Правильно дело не в датчике(он рабочий просто немного не подходит) а в программе его читающей.
На 99 страничку заглянул???

_________________
Никто кроме нас!!!
4Robots.ru - Все для роботов!


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

Зарегистрирован: 19 янв 2010, 15:16
Сообщения: 4
Откуда: Уфа
Цитата:
На 99 страничку заглянул???


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


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

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
конечно, это будет простейшее П-регулирование :)

Это частный случай полного ПИД-регулятора: [[Перевод статьи "Просто о ПИД-алгоритмах"]]

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


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

Зарегистрирован: 05 фев 2008, 15:33
Сообщения: 2687
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович
То что посмотрел молодец. Выводы тоже хорошие сделал.
Обрати внимание еще на временную диаграмму.
Датчик отдает данные в течении 38.3±9.6 ms, а ты читаешь их без задержки
Код:
for (i=0;i<5;i++){                         
    gp2=(gp2+analogRead(5));
  }

1. ты считываешь практически одно измерение а не несколько.
2. после этого 200мс едеш на основании полученного измерения.

_________________
Никто кроме нас!!!
4Robots.ru - Все для роботов!


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

Зарегистрирован: 11 ноя 2009, 10:18
Сообщения: 6
Добавь ПИД регулятор. :good:
Power = Ki*(integral)+Kd(derivative)+Kp*(error)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

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


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

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


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

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