четверг, 24 июля 2014 г.

Wall-E: робот на Arduino (Часть 1: крутим головой)

Хотели ли вы иметь своего собственного робота WALL-E, которым можно было бы управлять? Так зачем мечтать? Возьмите и сделайте!
Эта статья открывает новый цикл инструкций по созданию робота Wall-E, который будет ездить, крутить головой и руками, обходить препятствия, управляться голосом и отзываться на команды.


Нам понадобиться:

  1. Игрушечный Wall-e
  2. Серво-привод
  3. Arduino (или любой другой микроконтроллер)
  4. Инструменты: отвёртка, кусачки, термоклеевой пистолет
Такую игрушку можно купить на Ebay за 3-4 $
Валл-И
Servo

Приступаем к созданию

Для начала, разберём полученную игрушку.
Разабранный Wall-E
Видим, что диаметр дырки для головы в точности совпадает с диаметром верхней части серво-привода, только у сервы есть небольшая выпуклость впереди. Нужно вырезать в корпусе игрушки отверстие под эту выпуклость. Для этого можно воспользоваться кусачками.
Расширяем отверстие под выпуклость
После этой небольшой операции серва идеально вписывается в корпус робота.
Корпус и серва
Теперь можно собирать основную часть корпуса.
Перед окончательной сборкой, ещё раз проверим, что размеры совпадают
И приклееваем серво-привод термоклеем.
К сожалению, клей у меня был только чёрный, так что выглядит не очень эстетично
Весло так же приклеиваем к нижней части головы


Теперь осталось насадить весло на шестирёнку, но перед этим выстовить серво-привод в положение 90 градусов. Сдеалать это можно, изменив стандартный пример в папке Examples>Servo.

Ну и собственно, всё готово. Для надёжности, можно прикрутить весло к шестерёнке болтом.
Грустно смотрящий в камеру, после операции, Wall-E

Программирование:

Но создать робота, это ещё пол дела. Надо научить его двигаться. Для этого серву подключаем к Arduino. Распиновка такая:
  • Красный провод - 5V
  • Коричневый провод - GND
  • Оранжевый провод - pin 9
Чтобы робот не просо двигался, а двигался по нашим командам, будем управлять им через Serial интерфейс. В ардуино прошивается скетч, который по Serial получает угол поворота, и поворачивает серву на нужное количество градусов. Отправляет же команды программа на Processing, которая изменяят угол при нажатии на клавиши:
  • Вправо/Влево - прибавляет/вычитает 1 градус
  • PageUp/PageDown - прибавляет/вычитает 10 градусов
  • Home/End - поворачивает в положение 0°/180°
  • Вверх - возвращает в положение 90°

Продолжение следует

В следующих версиях роботу будут добавлены:
  • Вращение руками
  • Святящиеся и мигающие глаза
  • Езда
  • Управление по Bluetooth
  • Умение разговаривать и издавать звуки
  • Управление голосом
С созданием каждой новой версии робота, в этом блоге будет добавляться статья с подробными инструкциями.
Чтобы не пропустить новые части, подписывайтесь на новые статьи по RSS, или по E-mail (для этого укажите ваш email в поле в правой верхней части страницы).