Майлз – это робот-паук на базе 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: подключение и тестирование
Подключайте в следующем порядке:
- Передний левый поворотный мотор.
- Передний левый подъёмный мотор.
- Задний левый поворотный мотор.
- Задний левый подъёмный мотор.
- Задний правый поворотный мотор.
- Задний правый подъёмный мотор.
- Передний правый поворотный мотор.
- Передний правый подъёмный мотор.
Запускайте робота, передвинув выключатель.
Шаг 5: улучшения на будущее
Инверсная кинематика
Текущий код использует позиционный подход – мы задаём углы, на которые моторы должны повернуться для осуществления определённого передвижения. Инверсная кинематика даст роботу ходить более изощрённо.
Управление через Bluetooth
Коннектор UART на плате позволяет подключить Bluetooth-модуль, например, HC-05, чтобы управлять роботом со смартфона беспроводным методом.
Источник: habr.com