Это мой первый проект четырёхногого робота. Разработка первой версии длилась около года, последняя модификация уже четвёртая. Есть два варианта исполнения - под сервоприводы sg90 и mg90. Если интересна история развития проекта, можете посмотреть её в блоге.
Ещё два проекта, связанных с пауком – это симулятор на vPython и дистанционное управление с использованием Bluetooth. Они будут рассмотрены во второй и третьей части.
Делать такого паука весело, однако для его реализации Вам потребуется время и терпение.
Скачать все необходимые файлы можно по этой ссылке.
Список основных деталей:
1 x Arduino Pro Mini;
1 x 3А понижающий DC-DC преобразователь;
1 x модуль Bluetooth HC-06 или HC-05 (не обязательно);
12 x сервоприводов SG90 или MG90;
1 x 3000мАч литиевый аккумулятор (DC12300, 90x43x17мм);
1 x разъём питания;
1 x 680 Ом 1/4 Вт 5% резистор;
1 x 3мм светодиод;
1 x выключатель;
1 x макетная плата 5x7см;
Немного штыревых разъёмов PLS и PBS;
Немного одножильного или многожильного провода.
Несколько советов по сборке печатной платы:
До установки на плату, убедитесь, что подстроечный резистор на модуле понижающего DC-DC преобразователя настроен правильно и на выходе модуля 5В;
Сервоприводы потребляют почти 3А в режиме полной нагрузки, используйте достаточно толстый провод;
Когда закончите пайку, с помощью мультиметра проверьте что бы не были соединены соседние выводы, которые не должны быть соединены;
Вместо пайки модулей непосредственно на макетную плату, запаяйте PLS и PBS разъёмы, в которые уже будут устанавливаться Arduino, модуль DC-DC, Bluetooth и сервоприводы;
Светодиод будет светиться, пока выключатель выключен. Так было сделано для проверки, исправен ли источник питания.
Не подключайте модуль DC-DC и Arduino Pro Mini к основной плате.
Подключите аккумулятор к разъему основной платы.
Проверьте светодиод, если он светиться, это хорошее начало.
Нажмите выключатель питания, светодиод должен погаснуть.
С помощью мультиметра проверьте правильность всех выводов +5В и GND.
Нажмите выключатель питания, чтобы выключить питание, светодиод опять должен светиться.
Подключите DC-DC и Arduino Pro Mini к основной плате.
Нажмите выключатель питания, светодиод выключится, но светодиод Arduino Pro Mini включится.
Отключите питание и подключите сервопривод к первому ряду разъемов Leg1 основной платы (вывод 2 Arduino).
Загрузите скетч servo_test.ino в Arduino, сервопривод должен начать вращать вал от 0 до 180 градусов.
Моделирование производилось в программе в Sketchup Make. Кроме STL файлов, исходный файл моделей в Sketchup так же в открытом доступе.
Файлы для SG90 находятся в архиве Spider_robotquad_robot_quadruped-SG90.zip (папка "Spider\3D parts").
Список деталей и их количество:
1x body_d.stl
1x body_u.stl
2x coxa_l.stl
2x coxa_r.stl
2x tibia_l.stl
2x tibia_r.stl
4x femur_1.stl
8x s_hold.stl
Файлы для MG90 находятся в архиве Spider_robotquad_robot_quadruped-MG90.zip.
Список деталей и их количество:
2x tibia-f.stl
2x tibia-b.stl
2x coxa-f.stl
2x coxa-b.stl
4x femur.stl
8x hinge.stl
1x body-u.stl
1x body-m.stl
1x body-d.stl
Перед печатью проверьте настройки, печать займет много времени.
Мои настройки:
- плотность заполнения - 15%
- сопло - 0.3мм
- скорость печати - 65
Снимаем детали, проверяем качество печати объектов, удаляем бримы и затем наждачной бумагой полируем поверхность, чтобы она выглядела хорошо.
Размещаем аккумулятор между верхней и нижней частью корпуса и соединяем с помощью четырёх винтов M3x25мм.
Сервоприводы прикручиваем винтами M1.6x3мм.
Примечания:
1. Соедините все детали, но не устанавливайте качалку сервопривода на этом этапе;
2. Ориентируйтесь по фотографии и убедитесь, что все детали сориентированы правильно.
Соединяем все ноги с корпусом и проверяем, что все суставы двигаются гладко.
Размещаем основную плату на корпусе фиксируя её клеем или двусторонней липкой лентой. Ориентируясь по изображениям (цифрами помечено какие сервоприводы куда подключаются), подключаем все сервоприводы.
При подключении сервоприводов нужно не перепутать как подключать штекеры. На изображении основной платы вверху справа над разъёмами зелёным цветом указано где какие выводы ("S", "+" и "-").
Распиновка:
коричневый - земля ("-")
красный - плюс питания ("+")
сигнальный ("S")
Для нормальной работы это важная процедура:
Загружаем скетч legs_init.ino в Arduino, чтобы сервоприводы провернули вал в начальное положение;
Выставляем ноги, как показано на изображении выше;
Устанавливаем на валы качалки и фиксируем их, вкручивая винты.
Что бы провода не мешались, и паук нормально выглядел, организуем провода. На этом сборка завершена.
Устанавливаем библиотеку FlexiTimer2 (архив в файле flexitimer2_lib.zip).
Загружаем скетч spider_open_v1.ino в Arduino.
Вы увидите следующую демонстрационную последовательность движений:
1. встать, подождать 2сек
2. вперед на 5 шагов, подождать 2 секунды
3. назад на 5 шагов, подождать 2 секунды
4. поворот направо, подождать 2 секунды
5. поворот налево, подождать 2 секунды
6. движение "помахать рукой", подождать 2 сек
7. движение "пожать руку", подождать 2 сек
8. сесть, подождать 2 сек
9. вернуться к первому шагу
В скетче spider_open_v3.ino добавлено движение "танец".
Это хороший проект для старта и его можно адаптировать под себя. Можно добавить больше функций, например, динамическое изменение скорости движения. Реализовать дистанционное управление. Использовать другие аккумуляторы (18650 li-ion или пальчиковые Ni-Mh), добавить датчиков и т.д.
Перед аккумулятором нет платы защиты, и нужно следить что бы аккумулятор не разрядился слишком сильно. В противном случае это может привести к значительному снижению ресурса аккумулятора или выходу его из строя. В своём проекте Вы можете добавить плату защиты (как минимум с функцией защиты от глубокого разряда).
Кому больше нравиться собирать из модулей, а не паять, можно использовать другие детали. Вы можете сделать свой ремикс корпуса или использовать ремиксы, сделанные другими людьми:
https://www.thingiverse.com/thing:1009659/remixes
https://www.thingiverse.com/thing:2825097
https://www.thingiverse.com/thing:2901132
Я использую vPython для симуляции движений моего робота-паука. Это упрощает проработку движений, которые затем реализуются на Arduino.
VPython - это язык программирования Python плюс модуль трехмерной графики. VPython позволяет легко создавать трехмерные интерфейсы и анимацию даже для тех, кто имеет ограниченный опыт программирования. Поскольку он основан на Python, он также может многое предложить опытным программистам.
В редакторе PyCharm откройте файл Spider_robot_vpython.py и запустите код. Вы увидите на экране причудливого трехмерного робота-паука.
Для управления используйте мышь. Зажав (нажать и держать) правую кнопку и перемещая мышь - вращение. Зажав среднюю (или одновременно правую и левую) и перемещая мышь - зум.
Создавайте свои движения в этом симуляторе.
Модули Bluetooth HC-06 и HC-05 очень популярные для Arduino. Оба модуля сделаны на одном чипе, но есть и отличия. Основное отличие заключается в том, что HC-06 может работать только в режиме ведомого. А HC-05 работает и в режиме ведомого и в режиме ведущего. В данном проекте используется HC-06.
При включении питания модуль HC-06 находится в режиме ожидания подключения. В этом режиме будет мигать светодиод. После подключения светодиод постоянно светиться.