- Необходимые материалы:
- 3D-печать необходимых деталей:
- Аппаратное обеспечение и схемы:
- Сборка робота:
- Программирование Arduino для двуногого робота:
- Приложение для Android на основе обработки:
- Работа двуногого робота, управляемого через Bluetooth:
Добро пожаловать в другой проект, в котором мы создадим маленького робота, который может ходить и танцевать. Проект направлен на то, чтобы научить вас создавать маленьких роботов-хобби с помощью Arduino и программировать серводвигатели для таких приложений. В конце проекта вы сможете создать этого шагающего и танцующего робота, который будет выполнять команды с мобильного телефона Android для выполнения определенных действий. Вы также можете использовать программу (приведенную в конце учебника), чтобы легко управлять действиями вашего собственного робота, контролируя положение серводвигателей с помощью последовательного монитора. Наличие 3д-принтера сделает этот проект интереснее и круто будет смотреться. Но, если у вас его нет, вы можете использовать любой из онлайн-сервисов или просто использовать картон, чтобы построить то же самое.
Необходимые материалы:
Для сборки этого робота необходимы следующие материалы:
- Ардуино нано
- Сервопривод SG90 - 4Nos
- Мужские айсберговые палочки
- Модуль Bluetooth HC-05 / HC-06
- 3д принтер
Как видите, для сборки этого 3D-печатного робота требуется минимальное количество электронных компонентов, чтобы снизить стоимость проекта. Этот проект предназначен только для концептуальных и развлекательных целей и пока не имеет приложения в реальном времени.
3D-печать необходимых деталей:
3D-печать - потрясающий инструмент, который может внести большой вклад при создании проектов прототипов или экспериментировании с новыми механическими конструкциями. Если вы еще не узнали о преимуществах 3D-принтера или о том, как он работает, вы можете прочитать Руководство для начинающих по 3D-печати.
В этом проекте тело робота, показанного выше, полностью напечатано на 3D-принтере. Вы можете скачать файлы STL отсюда. Загрузите эти файлы в свое программное обеспечение для 3D-печати, например Cura, и распечатайте их напрямую. Я использовал свой очень простой принтер, чтобы распечатать все детали. Это принтер FABX v1 от 3ding, который поставляется по доступной цене с объемом печати 10 кубических сантиметров. Низкая цена достигается за счет низкого разрешения печати, отсутствия SD-карты или функции возобновления печати. Я использую программное обеспечение под названием Cura для печати файлов STL. Настройки, которые я использовал для печати материалов, приведены ниже, вы можете использовать их или изменить в зависимости от вашего принтера.
После того, как вы распечатаете все детали, очистите опоры (если есть), а затем убедитесь, что отверстия на ноге и животе достаточно большие, чтобы в них можно было вставить винт. Если нет, воспользуйтесь иглой, чтобы немного увеличить отверстие. Ваши детали, напечатанные на 3D-принтере, будут выглядеть примерно так, как показано ниже.
Аппаратное обеспечение и схемы:
Аппаратное обеспечение этого двуногого робота Arduino, управляемого мобильным телефоном, действительно простое. Полная схема показана на изображении ниже.
Я использовал плату Perf для выполнения вышеуказанных подключений. Убедитесь, что ваша схема также поместится в голове робота. Когда ваша плата Perf будет готова, она должна выглядеть примерно так, как показано ниже.
Сборка робота:
Когда оборудование и детали, напечатанные на 3D-принтере, будут готовы, мы сможем собрать робота. Перед установкой двигателей убедитесь, что вы разместили двигатели под указанными ниже углами, чтобы программа работала безупречно.
Номер двигателя |
Моторное место |
Положение двигателя |
1 |
Левый бедренный мотор |
110 |
2 |
Правый бедренный мотор |
100 |
4 |
Мотор правой лодыжки |
90 |
5 |
Правый бедренный мотор |
80 |
Эти углы можно установить с помощью программы, приведенной в конце урока. Просто загрузите программу на свой Arduino после выполнения вышеуказанных подключений и введите следующее в последовательном мониторе (Примечание: скорость передачи составляет 57600 бод).
1, 100, 110
2,90,100
4,80,90
5,70,80
Ваш серийный монитор должен выглядеть примерно так после установки всех ваших двигателей на место.
Установив двигатели в соответствующие углы, установите их, как показано на рисунке выше.
Если вы не уверены в том, как собрать моторы, посмотрите видео в конце этого урока. Когда робот собран, пора программировать нашего танцующего робота.
Программирование Arduino для двуногого робота:
Программирование BBB Robot ( Bluetooth Biped Bob ) - самая интересная и увлекательная часть этого руководства. Если вы очень хорошо разбираетесь в программировании серводвигателей с помощью Arduino, я бы порекомендовал вам создать свою программу. Кстати, если вы хотите научиться использовать серводвигатели для подобных робототехнических задач, то эта программа будет очень полезна. Вы можете узнать больше о программировании Arduino в нашей категории проектов Arduino.
Полная программа приведена в конце этого руководства, или вы можете загрузить полный код отсюда. Ниже я объясню его части. Программа способна контролировать действия роботов через последовательный монитор или Bluetooth. Вы также можете делать свои собственные шаги, управляя каждым отдельным двигателем с помощью последовательного монитора.
servo1.attach (3); servo2.attach (5); servo4.attach (9); servo5.attach (10);
В приведенных выше строках кода указывается, какой сервомотор подключен к какому выводу Arduino. В нашем случае сервоприводы 1,2,4 и 5 подключены к контактам 3,5,9 и 10 соответственно.
Bot_BT.begin (9600); // запускаем соединение Bluetooth на скорости 9600 бод Serial.begin (57600);
Как было сказано ранее, наш шагающий робот может работать по командам Bluetooth, а также по командам с последовательного монитора. Следовательно, последовательная связь Bluetooth работает со скоростью передачи 9600, а последовательная связь работает со скоростью передачи 57600 бод. Имя нашего объекта Bluetooth здесь - «Bot_BT».
switch (мотор) {case 1: // Для первого двигателя {Serial.println ("Выполнение первого двигателя"); если (число1
Показанный выше корпус переключателя используется для индивидуального управления серводвигателями. Это поможет вам создавать собственные творческие ходы с вашим роботом. С помощью этого сегмента кода вы можете просто указать номер двигателя, от угла до угла, чтобы конкретный двигатель переместился в желаемое место.
Например, если мы хотим переместить двигатель номер 1, который является двигателем левого бедра, со 110 градусов по умолчанию на 60 градусов. Мы можем просто написать «1,110,60» на последовательном мониторе Arduino и нажать Enter. Это пригодится, чтобы делать ваши собственные сложные движения с вашим роботом. После того, как вы поэкспериментируете со всеми движениями от ангела и до угла, вы сможете делать свои собственные движения и повторять их, как функцию.
if (Serial.available ()> 0) // Прочитать данные, поступающие через Serial {gmotor = Serial.parseInt (); Serial.print ("выбранный номер->"); Серийный принт (мотор); Serial.print (","); gnum1 = Serial.parseInt (); Serial.print (gnum1); Serial.print ("степень"); gnum2 = Serial.parseInt (); Serial.print (gnum2); Serial.println («степень»); flag = 1; }
Если доступны последовательные данные, число перед первым «,» рассматривается как gmotor, а затем число перед вторым «,» рассматривается как gnum1, а число после второго «,» считается как gnum2.
if (Bot_BT.available ()) // Чтение того, что приходит через Bluetooth {BluetoothData = Bot_BT.read (); Serial.print ("Входящие от BT:"); Serial.println (BluetoothData); }
Если Bluetooth получает некоторую информацию, полученная информация сохраняется в переменной «BluetoothData». Затем эта переменная сравнивается с предопределенными значениями для выполнения определенного действия.
if (flag == 1) call (gmotor, gnum1, gnum2); // вызов соответствующего двигателя для действия // Выполнение функций в соответствии с сообщением, полученным через последовательный монитор или Bluetooth // if (gmotor == 10) left_leg_up (); если (gmotor == 11) right_leg_up (); если (gmotor == 12) move_left_front (); если (gmotor == 13) move_right_front (); если (BluetoothData == 49 - gmotor == 49) say_hi (); если (BluetoothData == 50 - gmotor == 50) walk1 (); если (BluetoothData == 51 - gmotor == 51) walk2 (); если (BluetoothData == 52 - gmotor == 52) dance1 (); если (BluetoothData == 53 - gmotor == 53) dance2 (); if (BluetoothData == 54 - gmotor == 54) {test (); test (); test ();}
Здесь функции вызываются на основе значений, полученных от последовательного монитора или Bluetooth. Как показано выше, переменная gmotor будет иметь значение последовательного монитора, а BluetoothData будет иметь значение от устройства Bluetooth. Цифры от 10,11,12 до 53,54 являются заранее заданными числами.
Например, если вы введете номер 49 в серийный монитор. Функция say_hi () будет выполнена там, где робот машет вам привет.
Все функции определены на странице «Bot_Functions». Вы можете открыть его и посмотреть, что на самом деле происходит внутри каждой функции. Все эти функции были созданы путем экспериментов от ангела до ангела каждого мотора с использованием корпуса переключателя, описанного выше. Если у вас есть какие-либо сомнения, вы можете опубликовать их в разделе комментариев, и я буду рад вам помочь.
Приложение для Android на основе обработки:
Приложение Android для управления роботом было создано с использованием режима Android Processing. Если вы хотите внести некоторые изменения в Приложение, вы можете загрузить полную программу обработки отсюда.
Если вы просто хотите использовать приложение, вы можете загрузить его отсюда в виде файла APK и напрямую установить на свой мобильный телефон.
Примечание. Ваш модуль Bluetooth должен называться HC-06, иначе приложение не сможет подключиться к вашему модулю Bluetooth.
После установки приложения вы можете выполнить сопряжение модуля Bluetooth со своим телефоном, а затем запустить приложение. Это должно выглядеть примерно так, как показано ниже.
Если вы хотите сделать свое приложение более привлекательным или подключиться к любому другому устройству, кроме Hc-06. Вы можете использовать код обработки и внести в него некоторые изменения, а затем загрузить код прямо на свой телефон.
Работа двуногого робота, управляемого через Bluetooth:
Как только ваше оборудование, приложение для Android и Arduino Sketch будут готовы, пора немного повеселиться с нашим роботом. Вы можете управлять роботом из приложения Bluetooth с помощью кнопок в приложении или непосредственно с последовательного монитора, используя следующие команды, как показано на изображении ниже.
Каждая команда заставит робота выполнять некоторые специфические задачи, и вы также можете добавить дополнительные действия в зависимости от вашего творчества.
Робот также может питаться от адаптера на 12 В или от аккумулятора 9 В. Эту батарею можно легко разместить под платой Perf, а также можно накрыть головой робота.
Полную информацию о работе этого робота, управляемого смартфоном, можно найти в видео ниже.