- Materiale necesare:
- Imprimarea 3D a pieselor necesare:
- Hardware și scheme:
- Asamblarea robotului:
- Programarea Arduino pentru robotul biped:
- Aplicație Android bazată pe procesare:
- Funcționarea robotului biped controlat prin Bluetooth:
Bine ați venit la un alt proiect în care vom construi un mic robot care poate merge și dansa. Proiectul își propune să vă învețe cum să creați roboți mici hobby folosind Arduino și cum să vă programați servomotorii pentru astfel de aplicații. La sfârșitul proiectului, veți putea face acest robot de mers și dans care preia comanda de pe un telefon mobil Android pentru a efectua câteva acțiuni predefinite. De asemenea, puteți utiliza programul (oferit la sfârșitul tutorialului) pentru a manipula cu ușurință acțiunile propriului robot prin controlul poziției servo-motoarelor folosind monitorul Serial. Dacă aveți o imprimantă 3D, acest proiect va face mai interesant și va arăta grozav. Dar, dacă nu aveți unul, puteți utiliza oricare dintre serviciile online sau pur și simplu folosiți niște cartoane pentru a construi același lucru.
Materiale necesare:
Următoarele sunt materialele necesare construirii acestui robot:
- Arduino nano
- Servo SG90 - 4Nos
- Bâte masculine Berg
- Modul Bluetooth HC-05 / HC-06
- imprimantă 3d
După cum puteți vedea, acest robot tipărit 3D necesită construirea unor piese electronice foarte mici pentru a menține costul proiectului cât mai mic posibil. Acest proiect are doar scop conceptual și distractiv și nu are nicio aplicație în timp real până acum.
Imprimarea 3D a pieselor necesare:
Imprimarea 3D este un instrument uimitor care poate contribui mult atunci când construiți proiecte prototip sau experimentați cu noi modele mecanice. Dacă nu ați descoperit încă beneficiile unei imprimante 3D sau cum funcționează, puteți citi Ghidul pentru începători pentru imprimarea 3D.
În acest proiect, corpul robotului prezentat mai sus este complet imprimat 3D. Puteți descărca fișierele STL de aici. Încărcați aceste fișiere pe software-ul dvs. de imprimare 3D precum Cura și imprimați-le direct. Am folosit o imprimantă de bază a mea pentru a imprima toate piesele. Imprimanta este FABX v1 de la 3ding, care vine la un preț accesibil, cu un volum de imprimare de 10 cm cubi. Prețul ieftin vine cu un compromis cu rezoluție mică de imprimare și fără card SD sau funcție de reluare a tipăririi. Folosesc software-ul numit Cura pentru a imprima fișierele STL. Setările pe care le-am folosit pentru a imprima materialele sunt prezentate mai jos, le puteți utiliza la fel sau le puteți modifica pe baza imprimantei.
Odată ce ați imprimat toate piesele, curățați suporturile (dacă există) și apoi asigurați-vă că găurile de pe picior și partea din burtă sunt suficient de mari pentru a se potrivi cu un șurub. Dacă nu, utilizați un ac pentru a face gaura ușor mai mare. Părțile dvs. imprimate 3D vor arăta ca ceva de mai jos.
Hardware și scheme:
Hardware-ul acestui robot Arduino biped controlat de telefonul mobil este foarte simplu. Schema completă este prezentată în imaginea de mai jos
Am folosit o placă Perf pentru a face conexiunile de mai sus. Asigurați-vă că circuitul dvs. se va potrivi și în capul robotului. Odată ce placa dvs. Perf este gata, ar trebui să arate ca mai jos.
Asamblarea robotului:
Odată ce hardware-ul și piesele imprimate 3D sunt gata, putem asambla robotul. Înainte de fixarea motoarelor, asigurați-vă că așezați motoarele în unghiurile de mai jos, astfel încât programul să funcționeze perfect.
Număr motor |
Loc motor |
Poziția motorului |
1 |
Motorul șoldului stâng |
110 |
2 |
Motorul drept al șoldului |
100 |
4 |
Motor glezna dreapta |
90 |
5 |
Motorul drept al șoldului |
80 |
Aceste unghiuri pot fi setate utilizând programul oferit la sfârșitul tutorialului. Pur și simplu încărcați programul pe Arduino după efectuarea conexiunilor de mai sus și tastați următoarele în monitorul serial (Notă: rata Baud este 57600).
1, 100, 110
2.90.100
4.80,90
5,70,80
Monitorul dvs. serial ar trebui să arate cam așa după ce ați plasat toate motoarele în poziție.
Odată ce motoarele sunt setate în unghiurile corespunzătoare montați-le așa cum se arată în figura de mai sus.
Dacă sunteți confuz cu privire la modul de asamblare a motoarelor, urmați videoclipul de la sfârșitul acestui tutorial. Odată ce robotul este asamblat, este timpul să ne programăm robotul dansant
Programarea Arduino pentru robotul biped:
Programarea robotului BBB ( Bluetooth Biped Bob ) este cea mai interesantă și mai distractivă parte a acestui tutorial. Dacă sunteți foarte priceput în programarea servomotorelor cu Arduino, atunci vă recomand să vă creați programul. Bt, dacă doriți să învățați cum să utilizați servomotorii pentru aplicații robotizate de genul acesta, atunci acest program vă va fi de mare ajutor. Puteți afla mai multe despre programarea arduino în categoria noastră de proiecte arduino.
Programul complet este dat la sfârșitul acestui tutorial sau puteți descărca codul complet de aici. Voi explica segmentele acelorași mai jos. Programul este capabil să controleze acțiunile roboților prin monitor serial sau Bluetooth. De asemenea, vă puteți face propriile mișcări controlând fiecare motor individual folosind monitorul serial.
servo1.attach (3); servo2.attach (5); servo4.attach (9); servo5.attach (10);
Liniile de cod de mai sus pe care le folosește pentru a menționa ce servomotor este conectat la ce pin al Arduino. Aici, în cazul nostru, Servo 1,2,4 și 5 sunt conectate la pinii 3,5,9 și respectiv 10.
Bot_BT.begin (9600); // porniți comunicația Bluetooth la 9600 baudrate Serial.begin (57600);
După cum am spus mai devreme, robotul nostru de mers poate funcționa pe comenzi Bluetooth și, de asemenea, din comenzi de pe monitorul serial. Prin urmare, comunicarea serială Bluetooth funcționează cu o rată Baud de 9600, iar comunicarea serială funcționează cu o rată Baud de 57600. Numele obiectului nostru Bluetooth aici este „Bot_BT”.
switch (motor) {case 1: // For motor one {Serial.println ("Executing motor one"); if (num1
Carcasa comutatorului prezentată mai sus este utilizată pentru controlul individual al servomotorelor. Acest lucru vă va ajuta să faceți propriile mișcări creative cu robotul dvs. Cu acest segment de cod puteți spune pur și simplu numărul motorului, din unghi și în unghi, pentru a face un anumit motor să se deplaseze într-o locație dorită.
De exemplu, dacă vrem să mutăm motorul numărul 1 care este motorul șoldului stâng de la locația sa implicită de 110 grade la 60 de grade. Putem pur și simplu să scriem „1.110,60” în monitorul serial al Arduino și să apăsăm Enter. Acest lucru vă va fi util pentru a vă face propriile mișcări complexe cu robotul dvs. Odată ce experimentați cu toate de la înger și la unghi, puteți face propriile mișcări și le puteți repeta făcându-le ca o funcție.
if (Serial.available ()> 0) // Citiți ce vine prin Serial {gmotor = Serial.parseInt (); Serial.print ("Număr selectat->"); Serial.print (gmotor); Serial.print (","); gnum1 = Serial.parseInt (); Serial.print (gnum1); Serial.print ("grad"); gnum2 = Serial.parseInt (); Serial.print (gnum2); Serial.println („grad”); steag = 1; }
Dacă este disponibilă o serie de date, numărul dinaintea primului „,” este considerat ca gmotor și apoi numărul dinaintea celui de-al doilea „,” este considerat ca gnum1 și numărul după al doilea „,” este considerat ca gnum2.
if (Bot_BT.available ()) // Citiți ce vine prin Bluetooth {BluetoothData = Bot_BT.read (); Serial.print ("Primire de la BT:"); Serial.println (BluetoothData); }
Dacă Bluetooth primește unele informații, informațiile primite sunt stocate în variabila „BluetoothData”. Această variabilă este apoi comparată cu valorile predefinite pentru a executa o anumită acțiune.
if (flag == 1) apel (gmotor, gnum1, gnum2); // chemați motorul respectiv pentru acțiune // Executați funcțiile conform comenzii primite prin monitorul serial sau 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 (); if (BluetoothData == 49 - gmotor == 49) say_hi (); if (BluetoothData == 50 - gmotor == 50) walk1 (); if (BluetoothData == 51 - gmotor == 51) walk2 (); if (BluetoothData == 52 - gmotor == 52) dance1 (); if (BluetoothData == 53 - gmotor == 53) dance2 (); if (BluetoothData == 54 - gmotor == 54) {test (); test (); test ();}
Aici se apelează funcțiile pe baza valorilor primite de la monitorul serial sau Bluetooth. După cum se arată mai sus, variabila gmotor va avea valoarea monitorului serial, iar BluetoothData va avea valoarea de pe dispozitivul Bluetooth. Numerele 10,11,12 până la 53,54 sunt numere predefinite.
De exemplu, dacă introduceți numărul 49 în monitorul serial. Funcția say_hi () va fi executată acolo unde robotul vă va saluta.
Toate funcțiile sunt definite în pagina „Bot_Functions”. Puteți să-l deschideți și să vedeți ce se întâmplă de fapt în interiorul fiecărei funcții. Toate aceste funcții au fost create prin experimentarea de la înger și la îngerul fiecărui motor folosind carcasa comutatorului explicată mai sus. Dacă aveți vreo îndoială, puteți folosi secțiunea de comentarii pentru a le posta și voi fi bucuros să vă ajut.
Aplicație Android bazată pe procesare:
Aplicația Android pentru controlul robotului a fost construită folosind modul Procesare Android. Dacă doriți să faceți unele modificări ale aplicației, puteți descărca de aici programul complet de procesare.
Dacă doriți pur și simplu să utilizați aplicația, o puteți descărca de aici ca fișier APK și o puteți instala direct pe telefonul mobil.
Notă: Modulul dvs. Bluetooth ar trebui să fie numit HC-06, altfel aplicația nu se va putea conecta la modulul dvs. Bluetooth.
Odată ce aplicația este instalată, puteți asocia modulul Bluetooth cu telefonul dvs. și apoi lansați aplicația. Ar trebui să arate așa ceva mai jos.
Dacă doriți să vă faceți aplicația mai atractivă sau să vă conectați la orice alt dispozitiv în afară de Hc-06. Puteți utiliza codul de procesare și face unele modificări la acesta și apoi încărcați codul direct pe telefon.
Funcționarea robotului biped controlat prin Bluetooth:
Odată ce hardware-ul, aplicația Android și Arduino Sketch sunt gata, este timpul să vă distrați cu robotul nostru. Puteți controla robotul din aplicația Bluetooth utilizând butoanele din aplicație sau direct de pe monitorul serial utilizând una dintre următoarele comenzi, așa cum se arată în imaginea de mai jos.
Fiecare comandă îl va face pe robot să efectueze unele sarcini deosebite și puteți adăuga și mai multe acțiuni bazate pe creativitatea dvs.
Robotul poate fi alimentat și de un adaptor de 12V sau poate fi alimentat și cu ajutorul unei baterii de 9V. Această baterie poate fi poziționată cu ușurință sub placa Perf și poate fi acoperită și cu capul robotului.
Funcționarea completă a acestui robot controlat prin telefon inteligent poate fi găsită în videoclipul de mai jos.