Роботизированные змеи

Автор Юлия Костина

Если вы всю жизнь мечтали завести домашнюю рептилию, но родители в страхе махали руками и категорически отказывались её покупать — этот туториал для вас. В статье мы расскажем о создании двух роботизированных змей с одной осью (1D-змея) и с двойной осью (2D-змея), поделимся файлами для 3D-печати, разберёмся в кодах и алгоритмах.

Первым делом необходимо приготовить компоненты, с помощью которых наши змейки оживут. Каждый пункт умножайте на два, чтобы материалов хватило на обоих роботов.

Что нам понадобится?

  • 10 сервоприводов MG996R*;
  • филамент для 3D-печати 1,75 мм (жёлтый, чёрный, белый);
  • 10 шариковых подшипников 608 (можно взять со спиннеров Jitterspin);
  • 20 шариковых подшипников r188**;
  • 40 винтов с крестообразным шлицем М3,5 х 40;
  • 8 длинных винтов (того же диаметра, что и крестообразные);
  • 5 м мягкого красного и чёрного провода 0,8 мм2;
  • стандартный провод 0,4 мм2;
  • 30 штифтов;
  • Arduino Nano;
  • детали, напечатанные на 3D-принтере (см. шаг 1)
  • модифицированный блок питания ATX;
  • электролитический конденсатор 1000мкФ 25В;
  • термоусадочные трубки разных размеров, припой, клей.

* Можете использовать другие типы, но нужно будет изменить 3D-файлы, чтобы они соответствовали вашим сервоприводам. Не рекомендуем использовать сервоприводы меньшего размера, такие как sg90, потому что они недостаточно мощные.

** В качестве альтернативы можно использовать колёса LEGO.

Шаг 1: 3D-печать

Рисунок 1. 3D-модель четырёх сегментов робота.

Детали для 1D-змеи:
https://github.com/WillDonaldson/Robotic-Snake/tree/master/1D%20Snake%20Components

Детали для 2D-змеи:

https://github.com/WillDonaldson/Robotic-Snake/tree/master/2D%20Snake%20Components

Важное примечание: иногда масштаб расходится с размером сервопривода. Распечатайте одну деталь, чтобы проверить, подходит ли она для вашего MG996R.

Шаг 2: Сборка змей часть 1

Рисунок 2.Сервопривод.

Процесс сборки для двух роботов почти идентичный. Единственное отличие состоит в том, что в змее 2D каждый сегмент поворачивается на 90 градусов относительно предыдущего, а в змее 1D они выровнены по одной оси.

Удалите винты с сервопривода и снимите верхнюю и нижнюю часть чёрного корпуса. Будьте осторожны — не потеряйте винтики! 

Рисунок 3. Сервопривод и 3D-деталь.

Вставьте сервопривод в белую раму, напечатанную на 3D-принтере, как показано на рисунке 3. Снимите верхнюю часть корпуса сервопривода и закрепите её четырьмя винтами 12 мм. Снимите нижнюю часть рамы (сохраните на случай, если вы захотите снова использовать её в следующих проектах) и замените на напечатанный корпус. Прикрутите крышку MG996R обратно. Проделайте то же самое с оставшимися 9 сервоприводами. 

Рисунок 4. Соединение сервопривода и 3D-детали.

Прежде чем продолжить, загрузите код в Arduino IDE (локальная копия) и переместите каждый сервопривод на 90 градусов.  Для этого подключите красный провод сервопривода к 5V на Arduino, коричневый к GND, жёлтый к цифровому контакту 9, затем загрузите код:

#include <Servo.h>

сервопривод;

недействительная установка ()

{

  myservo.attach(9);

  myservo.write(90); // установить сервопривод в среднюю точку

}

недействительный цикл () {}

Невыполнение этого требования может привести к поломке одного или нескольких сервоприводов и рамок, напечатанных на 3D-принтере. 

Вставьте X-образный рычаг в правое отверстие, как показано на рисунке 5.

Рисунок 5. Присоединение X-образного рычага и сегмента.

Шаг 3: сборка змей часть 2

Рисунок 6. Соединение сегментов между собой.

Соедините 10 сервоприводов, вставив ручку шарикового подшипника из одного корпуса сервопривода в отверстие второй части сегмента (рисунок 6). 

Рисунок 7. Вставка подшипника.

Затем прикрепите шариковый подшипник (рисунок 7). Для 1D-змеи сделайте все сервоприводы ровными, а для 2D мы уже повернули их на 90 градусов с помощью Arduino. Обратите внимание, что каркас хвоста и головы равна половине длины другого сегмента.

Рисунок 8. Сравнение деталей двух змей.

Рисунок 9. Вид четырёх скрепленных деталей.

Шаг 4: Схема

Рисунок 10. Схема соединения.

Схема одинакова для обеих роботизированных змей. В процессе подключения убедитесь, что каждому сегменту достаточно места для полного вращения, особенно в 2D варианте.

На рисунке 10 приведена схема проводки двух сервоприводов. Остальные подключаются аналогично. Не забудьте присоединить провода ШИМ к контактам на Arduino Nano.

При прокладке линий электропередач необходимо использовать цельный кусок провода 0,8 мм2 (он достаточно толстый, чтобы выдерживать 10 ампер). 

Инструментом для зачистки проводов удаляем небольшие участки изолятора через 10 равных интервалов и припаиваем кусок провода к группе из 3 штыревых разъёмов (рисунок 11).

Рисунок 11. Группа штыревых разъёмов.

Повторите те же действия с чёрным проводом GND 0,8 мм2 и вторым вилочным наконечником. Припаяйте длинный провод к третьему штыревому разъему — он будет передавать сигнал ШИМ на Arduino Nano, которая будет располагаться на голове змеи (провод должен быть достаточно длинным, чтобы работать даже при сгибании сегментов). При необходимости прикрепите термоусадочную трубку. 

Рисунок 12. Конденсатор.

Припаяйте провода GND и 5V к макетной плате 3x7 (находится в хвосте змеи, рисунок 12) с конденсатором и винтовыми клеммами (GND к контакту GND Nano, а 5V к контакту 5V). Конденсатор предназначен для устранения любых всплесков потребляемого тока, возникающих при запуске сервоприводов. 

Припаяйте 10 проводов ШИМ к контактам на Arduino Nano в следующем порядке: A0, A1, A2, A3, A4, A5, D4, D3, D8, D7 (Рисунок 13).

Рисунок 13. Плата Arduino Nano.

Используйте стяжки, чтобы аккуратно скрепить провода на нашей змее. Убедитесь, что все сегменты свободно двигаются. 

Рисунок 14. Стяжка проводов.

Присоедините заглушки к голове и хвосту. Обратите внимание, что в хвосте есть отверстие для шнура, а в голове для кабеля программирования Arduino.

Рисунок 15. Заглушка.

Шаг 5: подключение змеи

Рисунок 16. Блок питания.

Сервоприводы подключены параллельно и получают одинаковое напряжение, но ток необходимо суммировать. Один сервопривод MG996r без остановки может потреблять до 900 мА. Общее потребление тока при одновременном движении всех 10 сервоприводов составляет 0,9 А * 10 = 9 А.

Делаем вывод, что обычный сетевой адаптер 5 В при 2 А работать не будет. Подбирайте блок питания ATX, способный на 5 В при 20 А. Если вы не смогли его найти, используйте встроенный аккумулятор Lipo. 

Шаг 6: всё ли работает?

Рисунок 17. Змея с одной осью.

Прежде чем продолжить, давайте проверим, всё ли работает. Загрузите этот код:

https://github.com/WillDonaldson/Robotic-Snake/blob/master/robotic_snake_servo_test_code/robotic_snake_servo_test_code.ino

Каждый сервопривод должен перемещаться отдельно, в диапазоне от 0 до 180 градусов, а затем вытягиваться в прямую линию. Если это не так, стоит вернуться к началу гайда и перепроверить каждый шаг. Скорее всего, вы допустили ошибку в подключении или сервоприводы не были отцентрированы на 90 градусов, как указано в разделе «Сборка змей часть 1».

Шаг 7: код

Рисунок 18. Скольжение.

Для того чтобы наша змея пришла в движение, необходимо залить соответствующий код.  

Рисунок 19. Движение червя.

В программу 1D-змеи будут входить: скольжение, движение червя, C-образные и U-образные изгибы. 

https://github.com/WillDonaldson/Robotic-Snake/blob/master/_1D_robotic_snake/_1D_robotic_snake.ino

Рисунок 20 . Движение в сторону.

В программу 2D-змеи входят: движение в сторону, нанесение ударов.

https://github.com/WillDonaldson/Robotic-Snake/blob/master/_2D_snake_sidewinding/_2D_snake_sidewinding.ino

Рисунок 21. Нанесение удара.

Эксперименты с кодом только приветствуются! Вы можете внести свои собственные изменения и создать новые алгоритмы. 

Шаг 8: колёса

Рисунок 22. Подшипник.

Для создания полноценных колёс мы будем использовать шариковые подшипники r188 и термоусадочную трубку. Вставьте их в напечатанную ранее 3D-деталь и прикрепите конструкцию к каждому сегменту змеи (смотри рисунки 23 и 24)

Рисунок 23. Колёса.

Рисунок 24. Присоединение колёс.

Все готово, пользуйтесь!

Роботизированные змеи готовы покорять не только траву перед вашим домом, но и друзей! Теперь для того, чтобы подшутить над товарищем, необходимо захватить лишь блок питания и нового питомца, но не слишком увлекайтесь — наш гайд доступен всем, и друзья могут отплатить вам той же монетой.

 

Ссылки