Майлз – это робот-паук на базе Arduino Nano, использующий 4 ноги для ходьбы и маневрирования. В качестве приводов для ног используются 8 сервомоторов SG90 / MG90. Специально сделанная плата позволяет управлять моторами и подавать питание на них и Arduino Nano. В плате есть специальные слоты для модулей IMU, Bluetooth и инфракрасного датчика, придающего роботу автономности. Тело собирается из нарезанного на лазерном резаке плексигласа толщиной 2 мм, но его можно и распечатать на 3D-принтере. Отличный проект для энтузиастов, изучающих тему с инверсной кинематики в робототехнике.

Вдохновлён проектом mePed (www.meped.io), и использует код на его базе.





Материалы


Компоненты:

  • Плата (1)
  • Miles компоненты для сборки корпуса.
  • SG90/MG90 сервомоторы (12)
  • Aduino Nano (1)
  • LM7805 регулятор напряжения (6)
  • Выключатель (1)
  • 0.33uF электролитический конденсатор (2)
  • 0.1uF электролитический конденсатор (1)
  • 3.08mm 2 pin коннектор Phoenix (1)
  • Коннекторы «папа» для сервомоторов.

Опционально:

  • 2 pin коннектор Relimate (1)
  • 10 pin коннектор Relimate (1)
  • 4 in коннектор Relimate (1)

Шаг 1: разработка схемы и платы









Я свои платы проектирую в Altium. 12 сервомоторов SG90/MG90 могут потребить до 4-5 А при одновременной работе, поэтому схема должна уметь обрабатывать большие токи. Я использовал регуляторы напряжения 7805 для питания моторов, однако каждый из них может выдавать максимум по 1 А. Поэтому я соединил 6 LM7805 параллельно, увеличив доступный выходной ток.

Схемы и файлы Gerber качайте по ссылке.

Особенности схемы:

  • Для измерения углов используются MPU6050/9250.
  • Выходной ток до 6 А.
  • Изолированное питание сервомоторов.
  • Выход для ультразвукового датчика HCsr04.
  • Есть периферия для Bluetooth и I2C/
  • На Relimate есть все аналоговые контакты для датчиков и приводов.
  • Выходы с 12 сервомоторов.
  • Индикаторный светодиод.

Особенности платы:

  • 77 ? 94 мм.
  • 2 слойная FR4.
  • 1,6 мм.

Шаг 2: пайка компонентов и загрузка кода




Паяйте компоненты по мере увеличения их роста, и начинайте с устройств с поверхностным монтажом.

В моей схеме есть всего один ТМП резистор. Добавьте контакты «мама» к Arduino и LM7805, чтобы их по необходимости можно было менять. Припаяйте контакты «папа» к коннекторам моторов.

Схема использует питание 5 В, раздельно для моторов и Arduino. Проверьте на отсутствие закорачивания на землю всех шин питания – выход с Arduino 5 В, выход с моторов VCC и вход 12 В на Phoenix.

Проверив плату, можно программировать Arduino. Тестовый код я выложил на Github. Залейте его и соберите робота.

Шаг 3: сборка корпуса








Всего робот состоит из 26 деталей, которые можно распечатать на 3D-принтере или нарезать из плексигласа толщиной 2 мм. Я использовал листы красного и синего плексигласа 2 мм, чтобы робот был похож на Спайдермена.

В корпусе есть несколько соединений, которые можно закрепить при помощи болтов и гаек М2 и М3. Сервомоторы крепятся болтами М2. Установите батарейки и плату перед тем, как прикручивать крышку.

Необходимые файлы я выложил на Github.

Шаг 4: подключение и тестирование


Подключайте в следующем порядке:

  1. Передний левый поворотный мотор.
  2. Передний левый подъёмный мотор.
  3. Задний левый поворотный мотор.
  4. Задний левый подъёмный мотор.
  5. Задний правый поворотный мотор.
  6. Задний правый подъёмный мотор.
  7. Передний правый поворотный мотор.
  8. Передний правый подъёмный мотор.

Запускайте робота, передвинув выключатель.

Шаг 5: улучшения на будущее


Инверсная кинематика


Текущий код использует позиционный подход – мы задаём углы, на которые моторы должны повернуться для осуществления определённого передвижения. Инверсная кинематика даст роботу ходить более изощрённо.

Управление через Bluetooth


Коннектор UART на плате позволяет подключить Bluetooth-модуль, например, HC-05, чтобы управлять роботом со смартфона беспроводным методом.