CAMBOT на базе Fishertechnik+Arduino+Raspberry Pi

Обсуждаем Arduino, Raspberry Pi и другие электронные компоненты и проекты DIY
Ответить
serg
Сообщения: 17
Зарегистрирован: 27 мар 2013, 16:18

CAMBOT на базе Fishertechnik+Arduino+Raspberry Pi

Сообщение serg »

Прочитав множество статей про Raspberry Pi, решил сделать робота с камерой - благо что все необходимое у меня было.
Собрал гусеничное шасси Fischertechnik ROBO TX Explorer. Моторы подключены к Arduino UNO через Motor Shield.
Сзади на бота установил web-камеру Logitec C210.
Кстати, старался выбирать оборудование по списку совместимости:
http://elinux.org/RPi_VerifiedPeripherals
Для управления выводами GPIO Raspberry Pi из браузера я использовал приложение WebIOPi.
http://code.google.com/p/webiopi/.
Его автор в журнале MagPi привел заинтересовавший меня пример -CAMBOT.
http://www.themagpi.com/en/issue/9 и http://www.themagpi.com/en/issue/10.
свои файлы я выложил в директорию /usr/share/webiopi/htdocs/app/cambot
Для связки Raspberry Pi с Arduino воспользовался идеей автора статьи
http://inductible.wordpress.com/2013/02 ... d-arduino/
чтобы в качестве команд управления микроконтроллер принимал простые коды - вперед "1111" стоп -"0000" и т.д. по четырем проводам от Raspberry Pi к Arduino. Не забыв про 5-й провод -"землю".

Код: Выделить всё

int pwm_a = 3;  
int pwm_b = 11;  
int dir_a = 12;  
int dir_b = 13;

int pwm_a1 = 4;  
int pwm_b1 = 5;  
int dir_a1 = 6;  
int dir_b1 = 7;

int val1=0;
int val2=0;
int val3=0;
int val4=0;

void setup()
{Serial.begin(9600);
  pinMode(pwm_a1, INPUT);         
  pinMode(pwm_b1, INPUT);
  pinMode(dir_a1, INPUT);
  pinMode(dir_b1, INPUT);
  
  pinMode(pwm_a, OUTPUT);         
  pinMode(pwm_b, OUTPUT);
  pinMode(dir_a, OUTPUT);
  pinMode(dir_b, OUTPUT);
    }
void loop() {
   val1=digitalRead(pwm_a1);
   val2=digitalRead(pwm_b1);
   val3=digitalRead(dir_a1);
   val4=digitalRead(dir_b1); 
       if(val1 == 1&val2==1&val3==1&val4==1)
       { 
          digitalWrite(dir_a, 1);
          digitalWrite(dir_b, 1);
          analogWrite(pwm_a, 255);
          analogWrite(pwm_b, 255);
        };
       
       if(val1 == 1&val2==0&val3==1&val4==0) 
       {
         digitalWrite(dir_a, 0);
         digitalWrite(dir_b, 0);
         analogWrite(pwm_a, 255);
         analogWrite(pwm_b, 255);
       };

       if(val1 == 1&val2==1&val3==1&val4==0)
       {
         analogWrite(pwm_a, 0);
         analogWrite(pwm_b, 255);
       };
       
       if(val1 == 1&val2==0&val3==1&val4==1)
       {
         analogWrite(pwm_a, 255);
         analogWrite(pwm_b, 0);
       }; 
       
       if(val1 == 0&val2==0&val3==0&val4==0)
       {
       analogWrite(pwm_a, 0);
       analogWrite(pwm_b, 0);
       };  
   }
Для запуска видео сразу при старте попробовал применить информацию из статьи на Хабре
http://habrahabr.ru/post/181930/.
Но при выходе из браузера бот теряет управление и putty не коннектится с Raspberry. Буду искать другое решение.
Wi-fi донгл TrendNet 648UBM сразу не устанавливается -поэтому нашел решение вот здесь
http://dl.dropboxusercontent.com/u/8025 ... 188cus.txt.
Были проблемы с установкой mjpg-streamer. Перепробовав все советы, обнаружил что лучшее - выкачать по svn весь пакет.
(здесь http://sourceforge.net/projects/mjpg-streamer/ старая версия).
В качестве источников питания поставил две батареи - GYGABIT 6600 мАч для Raspberry Pi, камеры и Wi-Fi ,
старая noname батарея 2S1p 800 mAh для двигателей и Arduino. (с GYGABIT боролся неделю - очень чувстительна к "не- контакту") Заряда хватает на 3 часа непрерывной работы.
Хочу предупредить, что WebIOPi в IE и Opere не работает! Я тестировал с Chrome и Firefox . К сожалению, с планшета рулить пока не получается - чтобы ехать надо "непрерывно-прерывисто" нажимать на экранные кнопки. С нетбука тачпедом дети самостоятельно справляются с управлением.
Во вложении - вариант с закомментированным автозапуском.
Вложения
cambot.zip
(2.96 КБ) 1029 скачиваний
DSC00232.JPG
DSC00232.JPG (90 КБ) 13008 просмотров
DSC00233.JPG
DSC00233.JPG (88.37 КБ) 13008 просмотров
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: CAMBOT на базе Fishertechnik+Arduino+Raspberry Pi

Сообщение Mr.Kubikus »

Привет!

Мне очень понравился ваш проект. Хочу попробовать повторить.

Для начала подобрал следующие компоненты:
  • Raspberry Pi Model B
  • Microsoft LifeCam HD-3000 (VID:PID=045E:0772)
  • RaspiRobot Board (драйвер для мотора)
  • WiFi адаптер TP-LINK TL-WN725N
С уважением, Григорий
GitHub FB ВК
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: CAMBOT на базе Fishertechnik+Arduino+Raspberry Pi

Сообщение Mr.Kubikus »

Вот такая кучка комплектухи получилась:
rp-robot-01-500.jpg
rp-robot-01-500.jpg (79.54 КБ) 12603 просмотра
Теперь надо спаять плату RaspiRobot Board, к которой будут подключаться моторы.
С уважением, Григорий
GitHub FB ВК
Ответить