С 4 курса университета мои работы были связанны с мультиагентными системами (МАС) (по которым я защищал бакалаврский и магистерские дипломы), но всегда это было нечно абстрактное, существующие только в коде, а иногда хотелось, что бы оно было более материально. Соединив это желание с наиболее часто упоминаемым приложением МАС я решил связать своё обучение в аспирантуре с робототехникой.
Священным долгом каждого разработчика игр является реализация своего движка, веб-разработчки – своей CMS, ну а те кто дружат в руками могут себе позволить сделать свою роботележку. О своей я и хочу рассказать.
Итак, тележка претерпела ни одно изменение, поэтому я расскажу о ее нынешнем состоянии.
Итак, за механическую основу был взят детская радиоуправляемая игрушка танка (с которой мы конечно же успели поиграться). С нее были самым наглым и вандальным образом убраны башня, внутренности (кроме мотор-редуктора) и верхняя крышка. Крышка была заменена на пластину оргстекла, на которой были закреплены все элементы тележки.
Для того, что бы тележка умела хоть как то воспринимать окружающий мир, были поставлены сенсоры:
• ИК-дальномер (GP2Y0A02YK0F)
• 3-х осевой акселерометр (MMA7361L)
• 2-х осевой гироскоп (LPY510AL)
• Цифровой термометр (DS18B20)
Для аналого-цифрового преобразования используется 10-разрядная 8 канальная микросхема AD7998 с шиной I2C.
Помимо мотор-редуктора для движения самой платформы был установлен серво-привод, который управляет поворотом дальномера.
Кроме этих узлов, так же был разработан цифирный двухразрядный дисплей для отображения состояния, а так же индикатор уровня заряда батареи.
Питание осуществляется от двух LiPo аккумуляторов (Turnigy 1000mAh 2S 20C (7.4V)). Время автономной работы – 2ч.
Так как изначально был прицел на автономную работу тележки его сразу оборудовали хорошим «мозгом» — все вычисления и управления на верхнем уровне выполняет отладочная плата SK-iMX233:
• ARM9 – 454 MHz
• RAM — 64 MB
• I2C, SPI
• Много чего еще, что нам не нужно
Для управления периферией (моторами, сервоприводом, взаимодействие с датчиком температуры по шине OneWire, а так же управление цифирным дисплеем) возложена на Arduino (куда же без нее).Изначально стояла Freeduino 168, однако в процессе разработки выяснилось, что ее ресурсов нам явно не хватает, она была заменена на 328, а та вскоре перекочевала в другой проект, а ее место заняла Arduino Mega.
Arduino, АЦП и «мозг» соединены по шине I2C.
Были разработаны модуля для Arduino и «мозга». Конфигурация платформы не является жесткой и может быть изменена без перекомпиляции проектов, путем изменения конфигурационного файла (для парсинга используется libconfig).
На данный момент API предоставляет доступ ко всем типам поддерживаемых устройств.
p.s. на картинке не последняя версия платформы — к сожалению, я приболел, и пишу статью из дома, а платформа находиться на работе)