- Nødvendige materialer:
- 3D-udskrivning af de nødvendige dele:
- Hardware og skemaer:
- Montering af robotten:
- Programmering af Arduino til Biped Robot:
- Behandlingsbaseret Android-applikation:
- Arbejde med Bluetooth-styret bipet robot:
Velkommen til et andet projekt, hvor vi vil bygge en lille robot, som kan gå og danse. Projektet har til formål at lære dig, hvordan du laver små hobbyrobotter ved hjælp af Arduino, og hvordan du programmerer dine servomotorer til sådanne applikationer. I slutningen af projektet vil du være i stand til at lave denne gående og dansende robot, der tager kommando fra en Android-mobiltelefon til at udføre nogle foruddefinerede handlinger. Du kan også bruge programmet (givet i slutningen af vejledningen) til let at manipulere handlinger fra din helt egen robot ved at kontrollere placeringen af servomotorer ved hjælp af den serielle skærm. At have en 3d-printer vil gøre dette projekt mere interessant og se cool ud. Men hvis du ikke har en, kan du bruge nogen af onlinetjenesterne eller bare bruge noget pap til at bygge det samme.
Nødvendige materialer:
Følgende er de nødvendige materialer til at bygge denne robot:
- Arduino nano
- Servo SG90 - 4 nr
- Mandlige bergpinde
- HC-05 / HC-06 Bluetooth-modul
- 3D-printer
Som du kan se, kræver denne 3D-trykte robot meget minimale elektronikkomponenter, der skal bygges for at holde projektets omkostninger så lave som muligt. Dette projekt er kun til konceptuelt og sjovt formål og har hidtil ikke nogen realtidsanvendelse.
3D-udskrivning af de nødvendige dele:
3D-udskrivning er et fantastisk værktøj, der kan bidrage meget, når man bygger prototype-projekter eller eksperimenterer med nye mekaniske designs. Hvis du endnu ikke har opdaget fordelene ved en 3D-printer, eller hvordan den fungerer, kan du læse Begyndervejledningen til 3D-udskrivning.
I dette projekt er robotens krop vist ovenfor 3D-trykt. Du kan downloade STL-filerne herfra. Indlæs disse filer på din 3D-udskrivningssoftware som Cura og udskriv dem direkte. Jeg har brugt en meget grundlæggende printer til at udskrive alle delene. Printeren er FABX v1 fra 3ding, som har en overkommelig pris med et udskriftsvolumen på 10 kubik cm. Den billige pris kommer med en afvejning med lav udskriftsopløsning og ingen SD-kort eller genoptagelsesfunktion. Jeg bruger softwaren Cura til at udskrive STL-filerne. De indstillinger, som jeg brugte til at udskrive materialerne, er angivet nedenfor, du kan bruge det samme eller ændre dem baseret på din printer.
Når du har udskrevet alle delene, skal du rengøre understøtningerne (hvis nogen) og derefter sørge for, at hullerne på benet og maven er store nok til at passe til en skrue. Hvis ikke, skal du bruge en nål til at gøre hullet lettere. Dine 3D-trykte dele vil se ud som noget nedenfor.
Hardware og skemaer:
Hardware til denne mobiltelefonstyrede biped Arduino-robot er virkelig enkel. Det komplette skema er vist i nedenstående billede
Jeg har brugt et Perf-kort til at oprette ovenstående forbindelser. Sørg for, at dit kredsløb også passer inden i robotens hoved. Når dit Perf-bord er klar, skal det se ud som nedenfor.
Montering af robotten:
Når hardwaren og de 3D-trykte dele er klar, kan vi samle robotten. Før motorerne monteres, skal du sørge for at placere motorerne i nedenstående vinkler, så programmet fungerer fejlfrit.
Motor nummer |
Motor sted |
Motorposition |
1 |
Venstre hofte motor |
110 |
2 |
Højre hofte motor |
100 |
4 |
Højre ankelmotor |
90 |
5 |
Højre hofte motor |
80 |
Disse vinkler kan indstilles ved hjælp af det program, der er angivet i slutningen af vejledningen. Upload blot programmet til din Arduino efter at have foretaget ovenstående forbindelser, og indtast følgende i den serielle skærm (Bemærk: Baudhastighed er 57600).
1, 100, 110
2,90,100
4,80,90
5,70,80
Din serielle skærm skal se sådan ud, når alle dine motorer er placeret i position.
Når motorerne er indstillet i de tilsvarende vinkler, monteres de som vist i figuren ovenfor.
Hvis du er forvirret over, hvordan du monterer motorerne, skal du følge videoen i slutningen af denne vejledning. Når robotten er samlet, er det tid til at programmere vores danserobot
Programmering af Arduino til Biped Robot:
Programmering af BBB-robotten ( Bluetooth Biped Bob ) er den mest interessante og sjove del i denne vejledning. Hvis du er meget god til at programmere servomotorer med Arduino, vil jeg anbefale dig at lave dit program. Bt, hvis du vil lære at bruge servomotorer til robotapplikationer som denne, så vil dette program være meget nyttigt for. Du kan lære mere om arduino-programmering i vores arduino-projektkategori.
Det komplette program gives i slutningen af denne vejledning, eller du kan downloade den komplette kode herfra. Jeg vil forklare segmenterne af det samme nedenfor. Programmet er i stand til at kontrollere robottens handlinger via seriel skærm eller Bluetooth. Du kan også foretage dine egne bevægelser ved at kontrollere hver enkelt motor ved hjælp af den serielle skærm.
servo1. vedhæft (3); servo2. vedhæft (5); servo4. vedhæft (9); servo5. vedhæft (10);
Ovenstående kodelinjer bruger den til at nævne, hvilken servomotor der er forbundet til hvilken pin på Arduino. Her i vores tilfælde er Servo 1,2,4 og 5 forbundet til henholdsvis ben 3,5,9 og 10.
Bot_BT.begin (9600); // start Bluetooth-kommunikationen ved 9600 baudrate Serial.begin (57600);
Som tidligere sagt kan vores gårobot arbejde på Bluetooth-kommandoer og også fra kommandoer fra den serielle skærm. Derfor fungerer Bluetooth seriel kommunikation med en Baudrate på 9600, og den serielle kommunikation fungerer med Baud Rate på 57600. Navnet på vores Bluetooth-objekt her er “Bot_BT”.
switch (motor) {case 1: // For motor one {Serial.println ("Executing motor one"); hvis (num1
Afbryderkassen vist ovenfor bruges til at styre servomotorer individuelt. Dette hjælper med at lave dine egne kreative bevægelser med din robot. Med dette kodesegment kan du blot fortælle motornummeret fra vinkel til vinkel for at få en bestemt motor til at flytte til et ønsket sted.
For eksempel hvis vi vil flytte motor nummer 1, som er venstre hofte motor fra sin standard placering på 110 grader til 60 grader. Vi kan ganske enkelt skrive “1.110,60” i Arduinos serielle skærm og trykke på Enter. Dette vil være nyttigt for at lave dine egne komplekse bevægelser med din robot. Når du har eksperimenteret med alt fra engel og til vinkel, kan du derefter foretage dine egne bevægelser og gentage dem ved at gøre det som en funktion.
hvis (Serial.available ()> 0) // Læs hvad der kommer ind gennem Serial {gmotor = Serial.parseInt (); Serial.print ("valgt nummer->"); Serial.print (gmotor); Serial.print (","); gnum1 = Serial.parseInt (); Serial.print (gnum1); Serial.print ("grad"); gnum2 = Serial.parseInt (); Serial.print (gnum2); Serial.println ("grad"); flag = 1; }
Hvis der findes serielle data, betragtes tallet før den første "," som gmotor, og derefter betragtes tallet før det andet "," som gnum1, og tallet efter det andet "," betragtes som gnum2.
hvis (Bot_BT.available ()) // Læs hvad der kommer ind via Bluetooth {BluetoothData = Bot_BT.read (); Serial.print ("Indgående fra BT:"); Serial.println (BluetoothData); }
Hvis Bluetooth modtager nogle oplysninger, gemmes de modtagne oplysninger i variablen "BluetoothData". Denne variabel sammenlignes derefter med de foruddefinerede værdier for at udføre en bestemt handling.
hvis (flag == 1) kalder (gmotor, gnum1, gnum2); // kald den respektive motor til handling // Udfør funktionerne i henhold til den commond, der modtages via den serielle skærm eller Bluetooth // hvis (gmotor == 10) left_leg_up (); hvis (gmotor == 11) right_leg_up (); hvis (gmotor == 12) move_left_front (); hvis (gmotor == 13) move_right_front (); hvis (BluetoothData == 49 - gmotor == 49) say_hi (); hvis (BluetoothData == 50 - gmotor == 50) walk1 (); hvis (BluetoothData == 51 - gmotor == 51) walk2 (); hvis (BluetoothData == 52 - gmotor == 52) dance1 (); hvis (BluetoothData == 53 - gmotor == 53) dance2 (); hvis (BluetoothData == 54 - gmotor == 54) {test (); test (); test ();}
Det er her, funktionerne kaldes på baggrund af de værdier, der modtages fra den serielle skærm eller Bluetooth. Som vist ovenfor har den variable gmotor værdien af seriel skærm, og BluetoothData har værdien fra Bluetooth-enheden. Tallene 10,11,12 op til 53,54 er foruddefinerede tal.
For eksempel hvis du indtaster nummer 49 i den serielle skærm. Say_hi () -funktionen udføres, hvor robotten vinker dig en hej.
Alle funktionerne er defineret inde på siden “Bot_Funktioner”. Du kan åbne den og se, hvad der faktisk sker inden for hver funktion. Alle disse funktioner blev oprettet ved at eksperimentere fra engel og til engel på hver motor ved hjælp af omskifteren beskrevet ovenfor. Hvis du er i tvivl, kan du bruge kommentarsektionen til at sende dem, og jeg hjælper dig gerne.
Behandlingsbaseret Android-applikation:
Android-applikationen til at styre robotten blev bygget ved hjælp af Processing Android-tilstand. Hvis du vil foretage nogle ændringer i applikationen, kan du downloade det komplette behandlingsprogram herfra.
Hvis du blot vil bruge applikationen, kan du downloade den herfra som en APK-fil og installere den direkte på din mobiltelefon.
Bemærk: Dit Bluetooth-modul skal have navnet HC-06, ellers kan applikationen ikke oprette forbindelse til dit Bluetooth-modul.
Når applikationen er installeret, kan du parre Bluetooth-modulet med din telefon og derefter starte applikationen. Det skal se sådan ud nedenfor.
Hvis du vil gøre din app mere attraktiv eller oprette forbindelse til en anden enhed end Hc-06. Du kan bruge behandlingskoden og foretage nogle ændringer i den og derefter uploade koden direkte til din telefon.
Arbejde med Bluetooth-styret bipet robot:
Når din hardware, Android-applikation og Arduino Sketch er klar, er det tid til at have det sjovt med vores robot. Du kan styre robotten fra Bluetooth-applikationen ved hjælp af knapperne i applikationen eller direkte fra seriel skærm ved hjælp af følgende kommandoer som vist på billedet nedenfor.
Hver kommando får robotten til at udføre nogle ejendommelige opgaver, og du kan også tilføje flere handlinger baseret på din kreativitet.
Robotten kan også drives af en 12V adapter eller kan også drives af et 9V batteri. Dette batteri kan let placeres under Perf-kortet og kan også dækkes med robotens hoved.
Den komplette bearbejdning af denne smarttelefonstyrede robot kan findes i videoen nedenfor.