Собрал гусеничное шасси 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 . К сожалению, с планшета рулить пока не получается - чтобы ехать надо "непрерывно-прерывисто" нажимать на экранные кнопки. С нетбука тачпедом дети самостоятельно справляются с управлением.
Во вложении - вариант с закомментированным автозапуском.