- Необходими материали:
- 3D печат на необходимите части:
- Хардуер и схеми:
- Сглобяване на робота:
- Програмиране на Arduino за двуног робот:
- Приложение за Android за обработка:
- Работа на двукопитен робот с контролиран Bluetooth:
Добре дошли в друг проект, в който ще изградим малък робот, който може да ходи и да танцува. Проектът цели да ви научи как да правите малки хоби роботи с помощта на Arduino и как да програмирате вашите серво мотори за такива приложения. В края на проекта ще можете да направите този робот за ходене и танци, който приема команда от мобилен телефон с Android, за да изпълнява някои предварително определени действия. Можете също да използвате програмата (дадена в края на урока), за да манипулирате лесно действията на вашия собствен робот, като контролирате позицията на сервомоторите с помощта на серийния монитор. Наличието на 3D принтер ще направи този проект по-интересен и ще изглежда страхотно. Но ако нямате такава, можете да използвате някоя от онлайн услугите или просто да използвате някакъв картон, за да създадете същата.
Необходими материали:
По-долу са материалите, необходими за изграждането на този робот:
- Arduino nano
- Servo SG90 - 4Nos
- Мъжки берг пръчки
- HC-05 / HC-06 Bluetooth модул
- 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 Robot ( Bluetooth Biped Bob ) е най-интересната и забавна част в този урок. Ако сте много добри в програмирането на серво мотори с Arduino, тогава бих ви препоръчал да създадете вашата програма. Bt, ако искате да научите как да използвате серво мотори за роботизирани приложения като тази, тогава тази програма ще бъде много полезна за. Можете да научите повече за програмирането на arduino в нашата категория проекти за arduino.
Пълната програма е дадена в края на този урок или можете да изтеглите пълния код от тук. Ще обясня сегментите на същото по-долу. Програмата е в състояние да контролира действията на роботи чрез сериен монитор или Bluetooth. Можете също така да правите свои собствени движения, като контролирате всеки отделен двигател с помощта на серийния монитор.
servo1.attach (3); servo2.attach (5); servo4.attach (9); servo5.attach (10);
Горните редове код използва, за да спомене кой серво мотор е свързан към кой щифт на Arduino. Тук в нашия случай Servo 1,2,4 и 5 са свързани съответно с щифтове 3,5,9 и 10.
Bot_BT.begin (9600); // стартираме Bluetooth комуникацията на 9600 baudrate 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 ("Incoming from BT:"); Serial.println (BluetoothData); }
Ако Bluetooth получи някаква информация, получената информация се съхранява в променливата „BluetoothData“. След това тази променлива се сравнява с предварително дефинираните стойности за изпълнение на определено действие.
if (flag == 1) call (gmotor, gnum1, gnum2); // извикваме съответния мотор за действие // Изпълняваме функциите според commond, получени чрез сериен монитор или Bluetooth // if (gmotor == 10) left_leg_up (); if (gmotor == 11) right_leg_up (); ако (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. Ако искате да направите някои промени в Приложението, можете да изтеглите пълната програма за обработка от тук.
Ако просто искате да използвате приложението, можете да го изтеглите от тук като APK файл и директно да го инсталирате на мобилния си телефон.
Забележка: Вашият Bluetooth модул трябва да носи името HC-06, иначе приложението няма да може да се свърже с вашия Bluetooth модул.
След като приложението е инсталирано, можете да сдвоите Bluetooth модула с вашия телефон и след това да стартирате приложението. По-долу трябва да изглежда нещо подобно.
Ако искате да направите приложението си по-привлекателно или да се свържете с друго устройство, различно от Hc-06. Можете да използвате кода за обработка и да направите някои промени в него и след това да го качите директно в телефона си.
Работа на двукопитен робот с контролиран Bluetooth:
След като вашият хардуер, приложение за Android и Arduino Sketch са готови, е време да се позабавлявате с нашия робот. Можете да контролирате робота от приложението Bluetooth, като използвате бутоните в приложението или директно от сериен монитор, като използвате следните команди, както е показано на изображението по-долу.
Всяка команда ще накара робота да изпълнява някои специфични задачи и можете също да добавите повече действия въз основа на вашата креативност.
Роботът може да бъде захранван и от 12V адаптер или може да бъде захранван чрез използване на 9V батерия. Тази батерия може лесно да бъде разположена под дъската Perf и може да бъде покрита с главата на робота.
Цялостната работа на този контролиран от смарт телефон робот може да бъде намерена във видеото по-долу.