- Vereiste materialen:
- 3D printen van de benodigde onderdelen:
- Hardware en schema's:
- De robot in elkaar zetten:
- Programmeren van de Arduino voor tweevoetige robot:
- Op verwerking gebaseerde Android-applicatie:
- Werking van Bluetooth-gestuurde tweevoetige robot:
Welkom bij een ander project waarin we een kleine robot gaan bouwen die kan lopen en dansen. Het doel van het project is om u te leren hoe u kleine hobbyrobots kunt maken met Arduino en hoe u uw servomotoren kunt programmeren voor dergelijke toepassingen. Aan het einde van het project zul je in staat zijn om deze lopende en dansende robot, die het commando overneemt van een Android mobiele telefoon, een aantal vooraf gedefinieerde acties uit te voeren. Je kunt het programma (aan het einde van de tutorial) ook gebruiken om eenvoudig de acties van je eigen robot te manipuleren door de positie van de servomotoren te regelen met behulp van de seriële monitor. Het hebben van een 3D-printer maakt dit project interessanter en ziet er cool uit. Maar als u er geen heeft, kunt u een van de online services gebruiken of gewoon wat karton gebruiken om hetzelfde te bouwen.
Vereiste materialen:
Het volgende zijn de materialen die nodig zijn om deze robot te bouwen:
- Arduino nano
- Servo SG90 - 4 nrs
- Mannelijke bergstokken
- HC-05 / HC-06 Bluetooth-module
- 3D-printer
Zoals u kunt zien, vereist deze 3D-geprinte robot zeer minimale elektronische onderdelen om te bouwen om de kosten van het project zo laag mogelijk te houden. Dit project is alleen voor conceptuele en leuke doeleinden en heeft tot nu toe geen real-time applicatie.
3D printen van de benodigde onderdelen:
3D-printen is een geweldige tool die veel kan bijdragen bij het bouwen van prototypeprojecten of het experimenteren met nieuwe mechanische ontwerpen. Als je de voordelen van een 3D-printer of hoe deze werkt nog niet hebt ontdekt, kun je de beginnershandleiding voor 3D-printen lezen.
In dit project is het lichaam van de hierboven getoonde Robot volledig 3D geprint. U kunt de STL-bestanden hier downloaden. Laad deze bestanden op uw 3D-printsoftware zoals Cura en print ze direct. Ik heb een heel eenvoudige printer van mij gebruikt om alle onderdelen af te drukken. De printer is FABX v1 van 3ding die voor een betaalbare prijs wordt geleverd met een afdrukvolume van 10 kubieke cm. De goedkope prijs komt met een afweging met een lage afdrukresolutie en geen SD-kaart of functie voor het hervatten van afdrukken. Ik gebruik software genaamd Cura om de STL-bestanden af te drukken. De instellingen die ik heb gebruikt om de materialen af te drukken, worden hieronder gegeven, je kunt hetzelfde gebruiken of ze wijzigen op basis van je printer.
Nadat u alle onderdelen hebt afgedrukt, reinigt u de steunen (indien aanwezig) en zorgt u ervoor dat de gaten in het been- en buikgedeelte groot genoeg zijn om een schroef te passen. Als dit niet het geval is, gebruik dan een naald om het gat iets groter te maken. Uw 3D-geprinte onderdelen zullen er als volgt uitzien.
Hardware en schema's:
De hardware voor deze door een mobiele telefoon bestuurde tweevoetige Arduino-robot is heel eenvoudig. Het volledige schema wordt getoond in de onderstaande afbeelding
Ik heb een Perf-bord gebruikt om de bovenstaande verbindingen te maken. Zorg ervoor dat uw circuit ook in de kop van de robot past. Als je Perf-bord klaar is, zou het er ongeveer zo uit moeten zien als hieronder.
De robot in elkaar zetten:
Zodra de hardware en de 3D-geprinte onderdelen klaar zijn, kunnen we de robot in elkaar zetten. Voordat u de motoren bevestigt, moet u ervoor zorgen dat u de motoren in de onderstaande hoeken plaatst, zodat het programma feilloos werkt.
Motornummer |
Motor plaats |
Motorpositie |
1 |
Linkerheupmotor |
110 |
2 |
Rechter heupmotor |
100 |
4 |
Rechter enkelmotor |
90 |
5 |
Rechter heupmotor |
80 |
Deze hoeken kunnen worden ingesteld met behulp van het programma dat aan het einde van de tutorial wordt gegeven. Upload het programma eenvoudig naar uw Arduino nadat u de bovenstaande verbindingen hebt gemaakt en typ het volgende in de seriële monitor (Opmerking: baudrate is 57600).
1, 100, 110
2,90,100
4,80,90
5,70,80
Uw seriële monitor zou er ongeveer zo uit moeten zien nadat al uw motoren op hun plaats zijn geplaatst.
Zodra de motoren in de overeenkomstige hoeken zijn ingesteld, monteert u ze zoals weergegeven in de bovenstaande afbeelding.
Als u niet weet hoe u de motoren moet monteren, volgt u de video aan het einde van deze zelfstudie. Zodra de robot is gemonteerd, is het tijd om onze dansrobot te programmeren
Programmeren van de Arduino voor tweevoetige robot:
Het programmeren van de BBB Robot ( Bluetooth Biped Bob ) is het interessantste en leukste onderdeel van deze tutorial. Als je heel goed bent in het programmeren van servomotoren met Arduino, dan zou ik je aanraden om je programma te maken. Bt, als je wilt leren hoe je servomotoren kunt gebruiken voor robottoepassingen zoals deze, dan zal dit programma erg nuttig zijn voor. U kunt meer leren over het programmeren van arduino in onze categorie arduino-projecten.
Het volledige programma wordt aan het einde van deze tutorial gegeven, of u kunt de volledige code hier downloaden. Ik zal de segmenten ervan hieronder uitleggen. Het programma kan de Robots-acties besturen via seriële monitor of Bluetooth. U kunt ook uw eigen bewegingen maken door elke afzonderlijke motor te besturen met behulp van de seriële monitor.
servo1.attach (3); servo2.attach (5); servo4.attach (9); servo5.attach (10);
De bovenstaande regels code gebruiken het om te vermelden welke servomotor is aangesloten op welke pin van de Arduino. Hier in ons geval zijn Servo 1,2,4 en 5 verbonden met respectievelijk pinnen 3,5,9 en 10.
Bot_BT.begin (9600); // start de Bluetooth-communicatie op 9600 baudrate Serial.begin (57600);
Zoals eerder gezegd kan onze lopende robot werken met Bluetooth-commando's en ook met commando's van de seriële monitor. Daarom werkt de seriële Bluetooth-communicatie met een baudrate van 9600 en de seriële communicatie met een baudrate van 57600. De naam van ons Bluetooth-object hier is "Bot_BT".
schakelaar (motor) {case 1: // Voor motor één {Serial.println ("Uitvoeren motor één"); if (num1
De hierboven getoonde schakelkast wordt gebruikt om de servomotoren afzonderlijk aan te sturen. Dit zal helpen bij het maken van uw eigen creatieve bewegingen met uw robot. Met dit codesegment kunt u eenvoudig het motornummer vertellen, van hoek naar hoek om een bepaalde motor naar een gewenste locatie te laten bewegen.
Als we bijvoorbeeld motor nummer 1, de motor van de linkerheup, willen verplaatsen van de standaardlocatie van 110 graden naar 60 graden. We kunnen simpelweg "1,110,60" in de seriële monitor van Arduino schrijven en op enter drukken. Dit is handig om uw eigen complexe bewegingen met uw robot te maken. Als je eenmaal hebt geëxperimenteerd met alle van engel en hoek, kun je je eigen bewegingen maken en ze herhalen door het als een functie te maken.
if (Serial.available ()> 0) // Lees wat er binnenkomt via Serial {gmotor = Serial.parseInt (); Serial.print ("geselecteerd nummer->"); Serial.print (gmotor); Serial.print (","); gnum1 = Serial.parseInt (); Serial.print (gnum1); Serial.print ("graad"); gnum2 = Serial.parseInt (); Serial.print (gnum2); Serial.println ("graad"); vlag = 1; }
Als er seriegegevens beschikbaar zijn, wordt het nummer vóór de eerste "," beschouwd als gmotor en vervolgens wordt het nummer vóór de tweede "," beschouwd als gnum1 en wordt het nummer na de tweede "," beschouwd als gnum2.
if (Bot_BT.available ()) // Lees wat er binnenkomt via Bluetooth {BluetoothData = Bot_BT.read (); Serial.print ("Inkomend van BT:"); Serial.println (BluetoothData); }
Als de Bluetooth enige informatie ontvangt, wordt de ontvangen informatie opgeslagen in de variabele "BluetoothData". Deze variabele wordt vervolgens vergeleken met de vooraf gedefinieerde waarden om een bepaalde actie uit te voeren.
if (vlag == 1) call (gmotor, gnum1, gnum2); // bel de respectievelijke motor voor actie // Voer de functies uit volgens de commond die is ontvangen via de seriële monitor of 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 ();}
Dit is waar de functies worden aangeroepen op basis van de waarden die worden ontvangen van de seriële monitor of Bluetooth. Zoals hierboven getoond, heeft de variabele gmotor de waarde van seriële monitor en heeft BluetoothData de waarde van een Bluetooth-apparaat. De nummers 10,11,12 t / m 53,54 zijn voorgedefinieerde nummers.
Bijvoorbeeld als u nummer 49 invoert in de seriële monitor. De functie say_hi () wordt uitgevoerd waar de robot je hallo zwaait.
Alle functies zijn gedefinieerd op de pagina "Bot_Functions". U kunt het openen en zien wat er werkelijk binnen elke functie gebeurt. Al deze functies zijn tot stand gekomen door het experimenteren van engel en engel van elke motor met behulp van de schakelkast die hierboven is uitgelegd. Als je twijfelt, kun je het commentaargedeelte gebruiken om ze te plaatsen en ik help je graag verder.
Op verwerking gebaseerde Android-applicatie:
De Android-applicatie om de robot te besturen is gebouwd met behulp van de Processing Android-modus. Als u enkele wijzigingen aan de applicatie wilt aanbrengen, kunt u hier het volledige verwerkingsprogramma downloaden.
Als u de applicatie gewoon wilt gebruiken, kunt u deze vanaf hier downloaden als APK-bestand en direct op uw mobiele telefoon installeren.
Opmerking: uw Bluetooth-module moet HC-06 heten, anders kan de toepassing geen verbinding maken met uw Bluetooth-module.
Nadat de applicatie is geïnstalleerd, kunt u de Bluetooth-module met uw telefoon koppelen en vervolgens de applicatie starten. Het zou er hieronder ongeveer zo uit moeten zien.
Als u uw app aantrekkelijker wilt maken of verbinding wilt maken met een ander apparaat dan Hc-06. U kunt de verwerkingscode gebruiken en er enkele wijzigingen in aanbrengen en de code vervolgens rechtstreeks naar uw telefoon uploaden.
Werking van Bluetooth-gestuurde tweevoetige robot:
Zodra je hardware, Android-applicatie en Arduino Sketch klaar zijn, is het tijd om wat plezier te hebben met onze robot. U kunt de robot besturen vanuit de Bluetooth-applicatie door de knoppen in de applicatie te gebruiken of rechtstreeks vanuit de seriële monitor door een van de volgende opdrachten te gebruiken, zoals weergegeven in de onderstaande afbeelding.
Elk commando zorgt ervoor dat de robot een aantal eigenaardige taken uitvoert en je kunt ook meer acties toevoegen op basis van je creativiteit.
De robot kan ook worden gevoed door een 12V-adapter of kan ook worden gevoed door een 9V-batterij. Deze batterij kan eenvoudig onder het Perf-bord worden geplaatst en kan ook worden afgedekt met het hoofd van de robot.
De volledige werking van deze door een smartphone bestuurde robot is te vinden in de onderstaande video.