Это улучшенная версия робота избегающего препятствия. Я решил назвать этого робота Боб. Были исправлены недостатки и недочеты предыдущей версии. Было улучшено:
- Система питания
- Добавлены дополнительные датчики
- Соединения были выполнены более качественно
- Применен другой более быстрый контроллер
Для питания используется аккумулятор 9.6В и импульсный регулятор напряжения. Было улучшено крепление датчиков и добавлен дополнительный ИК датчик GP2D12. Ультразвуковой дальномер был установлен на сервопривод. На плату Arduino был установлен микроконтроллер ATmega168.
Я всегда любил проекты на микроконтроллерах, и проектирование робота на них – это лучший способ показать их возможности.
Список деталей
Сервоприводы:
1x Futaba S3003
2x Parallax Сервоприводы непрерывного вращения
Монтажные компоненты:
1x 3pin кабель для датчика
1х Макетная плата
1х Разъем для аккумулятора
Кабельные стяжки
Провода различной длины
Датчики:
3x ИК-датчики GP2D12
Ультразвуковой дальномер «Ping)))»
Питание:
1х Ni-Cd аккумулятор 9.6В
1х Импульсный стабилизатор напряжения 5В, 1А
Основа:
Arduino
Шасси:
Я использовал шасси из комплекта «BOE-Bot Kit» от Parallax. Вы можете использовать оргстекло, пластик или даже кусок дерева нужной формы.
Прочее:
1x Пьезо динамик — я использовал его для индикации начала работы программы.
1x Светодиод
1x 200 Ом резистор для светодиода
Установка ИК датчиков
На кронштейне датчика есть несколько отверстий, которые совпадают с отверстиями на шасси. Соедините их винтами.
Установка дальномера с сервоприводом
Серво привод служит для вращения дальномера по горизонтали для получения большего радиуса измерений.
Я использовал самодельную стойку из плексигласа для установки дальномера. Нужно вырезать два куска плексигласа размером на пару мм больше, чем размер дальномера, просверлить необходимые отверстия и склеит эти часть под прямым углом. Потом необходимо просверлить отверстие немного больше чем винт на сервомоторе, и при помощи него прикрепить сервомотор. Эта операция достаточно проста и вы с ней без проблем справитесь. Если у вас есть сервопривод который может повернуться на 180 градусов, то нет необходимости покупать S3003 Futaba. Настройте значения ШИМ в программе, если используете другой привод. Если их не настроить, он будет пытаться повернуться больше, чем может физически и выйдет из строя.
Установка Arduino
Для большего быстродействия я решил использовать ATmega168, которая несмотря на низкую частоту работает быстро и отвечает всем моим требованиям.
В интернете я нашел «Arduino Proto Shield » – макетную плату для установки на неё Arduino. Прикрепите её к Arduino и подключите провода к ней:
Pin (АЦП) 0: Левый GP2D12
Pin (АЦП) 1: Центральный GP2D12
Pin (АЦП) 2: Правый GP2D12
Pin 5: Сервопривод дальномера
Pin 6: Левый сервопривод
Pin 7: Ультразвуковой дальномер Ping
Pin 9: Правый сервопривод
Pin 11: Пьезо динамик
Я не использовал дополнительные фильтрующие конденсаторы, т.к. стабилизатор 5В имеет встроенные. Необходимо использовать 220 Ом резистор между светодиодом и VCC.
Программа
Код для Боба подробно прокомментирован и его понимание не составит труда. Также закомментированы те части кода, которые не используются. Кусок кода, который обрабатывает показания дальномера, был взят с сайта Arduino. Код можно просмотреть в любом текстовом редакторе.
Заключение
Я буду расширять возможности Боба – скоро я добавлю датчик звука и света, фоторезистор для обнаружения людей и некоторые другие датчики.
Сейчас Боб лишь избегает препятствий. 3 ИК датчика служат для обнаружения объектов на пути и ультразвуковой дальномер служит для обнаружения объектов в слепых пятнах ИК-датчиков и для поиска пути при обнаружении большего количества объектов. Я думаю, что время его работы составляет около 1 часа 20 мин. при полном заряде батареи. Я также думаю над его внешним видом.
Прикрепленные файлы:
- BOB_V2_0.pde (8 Кб)