Робот iRobot Create — программируемый робот. В 2007 году разработан компанией iRobot на базе платформы робота пылесоса Roomba
Электронный интерфейс включает 7 pin mini-DIN и DB-25 разъемы для обмена данными, электронные датчики, световые индикаторы. Программный интерфейс позволяет управлять поведением робота. Он позволяет считывать информацию с сенсоров при помощи серии команд, включает команды режима, команды привода, звуковые команды, демонстрационные команды и команды опроса сенсоров. Эти команды можно посылать на последовательный порт робота с компьютера или микроконтроллера.На базе irobot_create у меня собран Turtlebot, но на данный момент необходимость использовать эту конструкцию в других целях (помощь в торжественном вручении цветов).
Необходимо управлять движением данной конструкции, а также отправка дополнительных команд на irobot_create с помощью джойстика.
Использую беспроводной геймпад Defender Scorpion RS3
Джойстик подключен к плате Arduino через USB_Host_Shield
Плата расширения USB Host Shield 2.0 позволяет Arduino выступать Arduino в роли родительского USB-устройства для множества имеющейся USB-периферии. С этой платой открывается масса новых возможностей для создания интересных устройств. В настоящее время платой USB Host Shield 2.0 поддерживаются следующие классы устройств щит:
- HID -устройства, такие как клавиатуры, мыши, джойстики и др.;
- игровые устройства -: Sony PS3, Nintendo Wii, Xbox360;
- USB преобразователи -: FTDI, PL-2303, ACM, а также некоторые аппараты и GPS- приемники;
- Android -устройства;
- цифровые фотоаппараты -: Canon (EOS, PowersShot), Nikon.
С этой платой открывается масса новых возможностей для создания интересных устройств. Для программирования USB Host Shield используется специальная библиотека, скачать которую можно со страницы – https://github.com/felis/USB_Host_Shield_2.0. Спецификацию и примеры использования этой библиотеки можно найти на сайте Circuits@Home – http://www.circuitsathome.com/arduino_usb_host_shield_projects.
В библиотеке имеется пример для беспроводного джойстика PS3, C геймпадом Defender Scorpion RS3 пример сразу не заработал. После правки самого примера и правки заголовочного файла PS3Enums.h, входящего в библиотеку, джойстик стал работать приемлемо, возникла проблема лишь с установкой светодиодов на джойстике (периодически зависал), но мне это не особенно нужно, поэтому от управления светодиодами отказался.
Cкетч на Arduino отслеживает состояние кнопок и джойстиков выполняет отправку команд на irobot_create.
Программный интерфейс irobot_create позволяет манипулировать его поведением. Он считывает информацию с сенсоров при помощи серии команд, включает команды режима, команды привода, звуковые команды, демонстрационные команды и команды опроса сенсоров. Эти команды посылаются на последовательный порт irobot_create.
По ссылке http://www.irobot.com/filelibrary/pdfs/hrd/create/Create%20Open%20Interface_v2.pdf можно скачать описание открытого интерфейса.
Я подсоединял плату Arduino к 25-контактному разъему грузового отсека с помощью спаянного переходника.
irobot_creater
Arduino
1
1 (Rx)
4
2
2 (Tx)
3
3
14 (GND)
GND
4
8 (+5В)
Vin
Назначение кнопок геймпада:
Для управления движением использую правый джойстик геймпада
Кнопка Start/10 — для перевода irobot_create в режим full — полное управление
Кнопка Select/9 — для перевода irobot_create в пассивный режим
R1 и R2 — для проигрывания мелодий irobot_create
L1, L2 — для установки светодиодов irobot_create
Кнопка 4 (квадрат) — выполнение скрипта движения по квадрату
Скетч на Arduino (подправленная библиотека Usb_Host) — пример PS3USB1.
Прикрепленные файлы:
- USB_Host.zip (286 Кб)