- Необхідні матеріали:
- 3D друк необхідних деталей:
- Обладнання та схеми:
- Збірка робота:
- Програмування Arduino для двоногих роботів:
- Додаток Android на основі обробки:
- Робота робота з двоногими, керованого Bluetooth:
Ласкаво просимо до чергового проекту, в якому ми створимо маленького робота, який може ходити та танцювати. Проект має на меті навчити вас, як виготовляти маленьких роботів-хобі за допомогою Arduino та програмувати свої сервомотори для таких застосувань. В кінці проекту ви зможете зробити цього ходячого та танцювального робота, який приймає команду від мобільного телефону Android для виконання деяких заздалегідь визначених дій. Ви також можете використовувати програму (подану в кінці навчального посібника), щоб легко маніпулювати діями власного робота, контролюючи положення серводвигунів за допомогою послідовного монітора. Наявність 3d-принтера зробить цей проект цікавішим і виглядатиме круто. Але якщо у вас його немає, ви можете скористатися будь-якою з онлайн-служб або просто використовувати якийсь картон, щоб створити такий самий.
Необхідні матеріали:
Нижче наведено матеріали, необхідні для побудови цього робота:
- Arduino nano
- Сервопривід SG90 - 4Ні
- Чоловічі бергові палички
- Модуль Bluetooth HC-05 / HC-06
- 3D-принтер
Як бачите, для цього 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 ( Bluetooth Biped Bob ) - найцікавіша і найцікавіша частина цього посібника. Якщо ви дуже добре програмуєте серводвигуни за допомогою Arduino, я б порадив вам скласти вашу програму. Bt, якщо ви хочете навчитися використовувати серводвигуни для таких робототехнічних програм, то ця програма буде дуже корисна для. Ви можете дізнатись більше про програмування 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”.
перемикач (двигун) {випадок 1: // Для двигуна один {Serial.println ("Виконання двигуна перший"); якщо (num1
Показаний вище корпус вимикача використовується для індивідуального управління сервомоторами. Це допоможе зробити власні творчі кроки разом із роботом. За допомогою цього сегмента коду ви можете просто визначити номер двигуна, від кута до кута, щоб змусити певний двигун рухатися до потрібного місця.
Наприклад, якщо ми хочемо перемістити двигун номер 1, який є двигуном лівого стегна, із місця розташування за замовчуванням на 110 градусів до 60 градусів. Ми можемо просто написати “1,110,60” на послідовному моніторі Arduino і натиснути клавішу Enter. Це стане в нагоді для здійснення власних складних рухів за допомогою робота. Як тільки ви експериментуєте з усіма ангелами та під кутом, ви можете робити власні рухи і повторювати їх, роблячи це як функцію.
if (Serial.available ()> 0) // Прочитайте, що надходить через Serial {gmotor = Serial.parseInt (); Serial.print ("вибраний номер->"); Serial.print (gmotor); Serial.print (","); gnum1 = Serial.parseInt (); Serial.print (gnum1); Serial.print ("ступінь"); gnum2 = Serial.parseInt (); Serial.print (gnum2); Serial.println ("ступінь"); прапор = 1; }
Якщо доступні послідовні дані, номер перед першим “,” вважається gmotor, а тоді число перед другим “,” вважається gnum1, а число після другого “,” - gnum2.
if (Bot_BT.available ()) // Прочитайте, що надходить через Bluetooth {BluetoothData = Bot_BT.read (); Serial.print ("Вхід з BT:"); Serial.println (BluetoothData); }
Якщо Bluetooth отримує деяку інформацію, отримана інформація зберігається у змінній “BluetoothData”. Потім цю змінну порівнюють із заздалегідь визначеними значеннями для виконання певної дії.
якщо (прапор == 1) виклик (gmotor, gnum1, gnum2); // викликаємо відповідний двигун до дії // Виконуємо функції відповідно до коммонда, отриманого через послідовний монітор або Bluetooth // if (gmotor == 10) left_leg_up (); if (gmotor == 11) right_leg_up (); if (gmotor == 12) move_left_front (); if (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, а також покрити головою робота.
Повна робота цього керованого смарт-телефоном робота знаходиться у відео нижче.