- Material som krävs:
- 3D-utskrift av nödvändiga delar:
- Hårdvara och scheman:
- Montering av roboten:
- Programmering av Arduino för Biped Robot:
- Bearbetningsbaserad Android-applikation:
- Arbeta med Bluetooth-kontrollerad bipad robot:
Välkommen till ett annat projekt där vi bygger en liten robot som kan gå och dansa. Projektet syftar till att lära dig hur du tillverkar små hobbyrobotar med Arduino och hur du programmerar dina servomotorer för sådana applikationer. I slutet av projektet kommer du att kunna göra denna gång- och dansrobot som tar kommandot från en Android-mobiltelefon för att utföra några fördefinierade åtgärder. Du kan också använda programmet (ges i slutet av självstudien) för att enkelt manipulera åtgärderna för din egen robot genom att styra servomotorernas position med hjälp av Serial monitor. Att ha en 3d-skrivare gör det här projektet mer intressant och ser coolt ut. Men om du inte har någon kan du använda någon av onlinetjänsterna eller bara använda lite kartong för att bygga densamma.
Material som krävs:
Följande är det material som krävs för att bygga den här roboten:
- Arduino nano
- Servo SG90 - 4Nos
- Manliga bergpinnar
- HC-05 / HC-06 Bluetooth-modul
- 3d skrivare
Som du kan se kräver den här 3D-tryckta roboten mycket minimala elektronikdelar för att bygga för att hålla projektets kostnad så låg som möjligt. Detta projekt är endast för konceptuella och roliga ändamål och har hittills ingen realtidsapplikation.
3D-utskrift av nödvändiga delar:
3D-utskrift är ett fantastiskt verktyg som kan bidra mycket när man bygger prototypprojekt eller experimenterar med nya mekaniska mönster. Om du ännu inte har upptäckt fördelarna med en 3D-skrivare eller hur den fungerar kan du läsa Nybörjarguiden för 3D-utskrift.
I detta projekt är Robotens kropp som visas ovan helt 3D-tryckt. Du kan ladda ner STL-filerna härifrån. Ladda dessa filer på din 3D-utskriftsprogramvara som Cura och skriv ut dem direkt. Jag har använt en mycket grundläggande skrivare av mig för att skriva ut alla delar. Skrivaren är FABX v1 från 3ding som har ett överkomligt pris med en utskriftsvolym på 10 kubik cm. Det billiga priset kommer med en avvägning med låg utskriftsupplösning och inget SD-kort eller återupptagningsfunktion. Jag använder programvara som heter Cura för att skriva ut STL-filerna. Inställningarna som jag använde för att skriva ut materialet ges nedan. Du kan använda samma eller ändra dem baserat på din skrivare.
När du har skrivit ut alla delar ska du rengöra stöden (om sådana finns) och se till att hålen på benet och magdelen är tillräckligt stora för att passa en skruv. Om inte, använd en nål för att göra hålet lättare. Dina 3D-utskrivna delar kommer att se ut som något nedan.
Hårdvara och scheman:
Hårdvaran för den här mobiltelefonstyrda bipediga Arduino-roboten är väldigt enkel. Hela schemat visas i bilden nedan
Jag har använt ett Perf-kort för att skapa ovanstående anslutningar. Se till att din krets också passar inuti huvudet på roboten. När ditt Perf-kort är klart bör det se ut som nedan.
Montering av roboten:
När hårdvaran och de 3D-tryckta delarna är klara kan vi montera roboten. Innan du fixerar motorerna, se till att du placerar motorerna i nedanstående vinklar så att programmet fungerar felfritt.
Motornummer |
Motorplats |
Motorposition |
1 |
Vänster höftmotor |
110 |
2 |
Höger höftmotor |
100 |
4 |
Höger fotmotor |
90 |
5 |
Höger höftmotor |
80 |
Dessa vinklar kan ställas in med hjälp av programmet som ges i slutet av handledningen. Ladda bara upp programmet till din Arduino efter att ha gjort ovanstående anslutningar och skriv in följande i den seriella bildskärmen (Obs! Överföringshastighet är 57600).
1, 100, 110
2,90,100
4,80,90
5,70,80
Din seriella bildskärm ska se ut så här efter att alla dina motorer har placerats på plats.
När motorerna är inställda i motsvarande vinklar monterar du dem enligt bilden ovan.
Om du är förvirrad över hur du monterar motorerna, följ videon i slutet av denna handledning. När roboten är monterad är det dags att programmera vår dansrobot
Programmering av Arduino för Biped Robot:
Programmering av BBB-roboten ( Bluetooth Biped Bob ) är den mest intressanta och roliga delen i denna handledning. Om du är väldigt bra i programmering av servomotorer med Arduino, skulle jag rekommendera dig att göra ditt program. Bt, om du vill lära dig att använda servomotorer för robotapplikationer som denna, kommer det här programmet att vara till stor hjälp. Du kan lära dig mer om arduino-programmering i vår kategori av arduino-projekt.
Hela programmet ges i slutet av denna handledning, eller så kan du ladda ner hela koden härifrån. Jag kommer att förklara segmenten av samma nedan. Programmet kan styra roboternas åtgärder via seriell bildskärm eller Bluetooth. Du kan också göra dina egna drag genom att styra varje enskild motor med den seriella bildskärmen.
servo1.attach (3); servo2.attach (5); servo4.attach (9); servo5.attach (10);
Ovanstående kodrader använder den för att nämna vilken servomotor som är ansluten till vilken stift av Arduino. Här i vårt fall är Servo 1,2,4 och 5 anslutna till stiften 3,5,9 respektive 10.
Bot_BT.begin (9600); // starta Bluetooth-kommunikationen vid 9600 baudrate Serial.begin (57600);
Som sagt tidigare kan vår gångrobot fungera på Bluetooth-kommandon och även från kommandon från den seriella bildskärmen. Därför fungerar Bluetooth-seriekommunikation med en Baud-hastighet på 9600 och den seriella kommunikationen fungerar med Baud-hastighet på 57600. Namnet på vårt Bluetooth-objekt här är "Bot_BT".
switch (motor) {case 1: // För motor one {Serial.println ("Executing motor one"); om (num1
Brytarkåpan som visas ovan används för att styra servomotorerna individuellt. Detta hjälper dig att göra dina egna kreativa drag med din robot. Med detta kodsegment kan du helt enkelt berätta motornumret, från vinkel och till vinkel för att få en viss motor att flytta till önskad plats.
Till exempel om vi vill flytta motor nummer 1, som är den vänstra höftmotorn, från sin standardposition på 110 grader till 60 grader. Vi kan helt enkelt skriva “1.110,60” i Arduinos seriella bildskärm och trycka på Enter. Detta kommer att vara till nytta för att göra dina egna komplexa drag med din robot. När du väl har experimenterat med allt från ängel och till vinkel kan du sedan göra dina egna drag och upprepa dem genom att göra det som en funktion.
if (Serial.available ()> 0) // Läs vad som kommer in via Serial {gmotor = Serial.parseInt (); Serial.print ("valt nummer->"); Serial.print (gmotor); Serial.print (","); gnum1 = Serial.parseInt (); Serial.print (gnum1); Serial.print ("grad"); gnum2 = Serial.parseInt (); Serial.print (gnum2); Serial.println ("grad"); flagga = 1; }
Om en seriell data finns tillgänglig betraktas numret före den första "," som gmotor och sedan betraktas numret före den andra "," som gnum1 och siffran efter den andra "," betraktas som gnum2.
if (Bot_BT.available ()) // Läs vad som kommer in via Bluetooth {BluetoothData = Bot_BT.read (); Serial.print ("Inkommande från BT:"); Serial.println (BluetoothData); }
Om Bluetooth får viss information lagras den mottagna informationen i variabeln "BluetoothData". Denna variabel jämförs sedan med de fördefinierade värdena för att utföra en viss åtgärd.
if (flagga == 1) anrop (gmotor, gnum1, gnum2); // anropa respektive motor för åtgärd // Utför funktionerna enligt kommandot som tas emot via den seriella bildskärmen eller Bluetooth // om (gmotor == 10) left_leg_up (); om (gmotor == 11) right_leg_up (); om (gmotor == 12) move_left_front (); om (gmotor == 13) move_right_front (); om (BluetoothData == 49 - gmotor == 49) say_hi (); om (BluetoothData == 50 - gmotor == 50) walk1 (); om (BluetoothData == 51 - gmotor == 51) walk2 (); om (BluetoothData == 52 - gmotor == 52) dance1 (); om (BluetoothData == 53 - gmotor == 53) dance2 (); om (BluetoothData == 54 - gmotor == 54) {test (); test (); test ();}
Det är här som funktionerna anropas baserat på värden som tas emot från seriell bildskärm eller Bluetooth. Som visas ovan kommer den variabla gmotorn att ha värdet på seriell bildskärm och BluetoothData kommer att ha värdet från Bluetooth-enheten. Siffrorna 10,11,12 upp till 53,54 är fördefinierade nummer.
Till exempel om du anger nummer 49 i den seriella bildskärmen. Say_hi () -funktionen kommer att utföras där roboten vinkar dig en hej.
Alla funktioner definieras på sidan “Bot_Functions”. Du kan öppna den och se vad som faktiskt händer i varje funktion. Alla dessa funktioner skapades genom att experimentera från ängel till ängel för varje motor med hjälp av omkopplingsfodralet som beskrivs ovan. Om du är osäker kan du använda kommentarsektionen för att lägga upp dem så hjälper jag dig gärna.
Bearbetningsbaserad Android-applikation:
Android-applikationen för att kontrollera roboten byggdes med bearbetningsläget för Android. Om du vill göra några ändringar i applikationen kan du ladda ner hela bearbetningsprogrammet härifrån.
Om du bara vill använda appen kan du ladda ner den härifrån som en APK-fil och installera den direkt på din mobiltelefon.
Obs! Din Bluetooth-modul ska ha namnet HC-06, annars kommer applikationen inte att kunna ansluta till din Bluetooth-modul.
När applikationen är installerad kan du para ihop Bluetooth-modulen med din telefon och sedan starta appen. Det borde se ut så här nedan.
Om du vill göra din app mer attraktiv eller ansluta till någon annan enhet än Hc-06. Du kan använda bearbetningskoden och göra några ändringar i den och sedan ladda upp koden direkt till din telefon.
Arbeta med Bluetooth-kontrollerad bipad robot:
När din hårdvara, Android-applikation och Arduino Sketch är redo är det dags att ha lite kul med vår robot. Du kan styra roboten från Bluetooth-applikationen genom att använda knapparna i applikationen eller direkt från seriell bildskärm med hjälp av följande kommandon som visas i bilden nedan.
Varje kommando kommer att få roboten att utföra några märkliga uppgifter och du kan också lägga till fler åtgärder baserat på din kreativitet.
Roboten kan också drivas med en 12V-adapter eller kan också drivas med ett 9V-batteri. Detta batteri kan lätt placeras under Perf-kortet och kan också täckas med robotens huvud.
Den fullständiga funktionen för denna smarttelefonstyrda robot finns i videon nedan.