Hoe een robot thuis te bouwen (met afbeeldingen)

Inhoudsopgave:

Hoe een robot thuis te bouwen (met afbeeldingen)
Hoe een robot thuis te bouwen (met afbeeldingen)

Video: Hoe een robot thuis te bouwen (met afbeeldingen)

Video: Hoe een robot thuis te bouwen (met afbeeldingen)
Video: SketchUp Match Photo Tutorial (Easy Method) 2024, Mei
Anonim

Wil je leren hoe je je eigen robot kunt bouwen? Er zijn veel verschillende soorten robots die je zelf kunt maken. De meeste mensen willen een robot de eenvoudige taken zien uitvoeren om van punt A naar punt B te gaan. Je kunt een robot volledig maken van analoge componenten of een volledig nieuw startpakket kopen! Het bouwen van je eigen robot is een geweldige manier om jezelf zowel elektronica als computerprogrammering te leren.

Stappen

Deel 1 van 6: De robot in elkaar zetten

1123333 1
1123333 1

Stap 1. Verzamel uw componenten

Om een basisrobot te bouwen, heb je verschillende eenvoudige componenten nodig. U kunt de meeste, zo niet alle, van deze componenten vinden bij uw plaatselijke elektronica-hobbywinkel of bij verschillende online retailers. Sommige basiskits kunnen ook al deze componenten bevatten. Deze robot vereist geen solderen:

  • Arduino Uno (of andere microcontroller)
  • 2 continu draaiende servo's
  • 2 wielen die op de servo's passen
  • 1 zwenkwiel
  • 1 klein soldeerloos breadboard (zoek een breadboard met aan elke kant twee positieve en negatieve lijnen)
  • 1 afstandssensor (met vierpolige aansluitkabel)
  • 1 mini-drukknopschakelaar
  • 1 10kΩ weerstand
  • 1 USB A naar B-kabel
  • 1 set afgescheiden headers
  • 1 6 x AA-batterijhouder met 9V DC-voedingsaansluiting
  • 1 pak jumperdraden of 22-gauge aansluitdraad
  • Sterke dubbelzijdige tape of hete lijm
1123333 2
1123333 2

Stap 2. Draai de batterij om zodat de platte achterkant naar boven wijst

Je gaat het lichaam van de robot bouwen met het batterijpakket als basis.

1123333 3
1123333 3

Stap 3. Lijn de twee servo's uit op het uiteinde van het batterijpakket

Dit zou het einde moeten zijn waar de draad van het batterijpakket uit komt. De servo's moeten de bodem raken en de roterende mechanismen van elk moeten naar de zijkanten van het batterijpakket wijzen. De servo's moeten goed worden uitgelijnd zodat de wielen recht gaan. De draden voor de servo's moeten van de achterkant van het batterijpakket komen.

1123333 4
1123333 4

Stap 4. Bevestig de servo's met je tape of lijm

Zorg ervoor dat ze stevig aan het batterijpakket zijn bevestigd. De achterkant van de servo's moet gelijk liggen met de achterkant van het batterijpakket.

De servo's zouden nu de achterste helft van het batterijpakket moeten innemen

1123333 5
1123333 5

Stap 5. Bevestig het breadboard loodrecht op de open ruimte op het batterijpakket

Het moet een klein beetje over de voorkant van het batterijpakket hangen en zal voorbij elke kant uitsteken. Zorg ervoor dat deze goed vastzit voordat u verder gaat. De rij "A" moet zich het dichtst bij de servo's bevinden.

1123333 6
1123333 6

Stap 6. Bevestig de Arduino-microcontroller aan de bovenkant van de servo's

Als je de servo's goed hebt bevestigd, moet er een vlakke ruimte zijn die wordt gemaakt door ze aan te raken. Plak het Arduino-bord op deze vlakke ruimte zodat de USB- en voedingsconnectoren van de Arduino naar de achterkant wijzen (weg van het breadboard). De voorkant van de Arduino moet het breadboard net overlappen.

1123333 7
1123333 7

Stap 7. Zet de wielen op de servo's

Druk de wielen stevig op het draaimechanisme van de servo. Dit kan een aanzienlijke hoeveelheid kracht vereisen, omdat de wielen zo strak mogelijk zijn ontworpen voor de beste tractie.

1123333 8
1123333 8

Stap 8. Bevestig het zwenkwiel aan de onderkant van het breadboard

Als u het chassis omdraait, ziet u een stukje breadboard dat zich voorbij het batterijpakket uitstrekt. Bevestig de caster aan dit verlengde stuk, indien nodig met behulp van risers. Het zwenkwiel fungeert als voorwiel, waardoor de robot gemakkelijk in elke richting kan draaien.

Als je een set hebt gekocht, is het zwenkwiel mogelijk geleverd met een paar stootborden die je kunt gebruiken om ervoor te zorgen dat het zwenkwiel de grond bereikt. l

Deel 2 van 6: De robot bedraden

1123333 9
1123333 9

Stap 1. Breek twee 3-pins headers af

Deze gebruik je om de servo's op het breadboard aan te sluiten. Duw de pinnen naar beneden door de kop zodat de pinnen aan beide zijden op gelijke afstand naar buiten komen.

1123333 10
1123333 10

Stap 2. Steek de twee headers in pinnen 1-3 en 6-8 op rij E van het breadboard

Zorg ervoor dat ze stevig vast zitten.

1123333 11
1123333 11

Stap 3. Sluit de servokabels aan op de headers, met de zwarte kabel aan de linkerkant (pin 1 en 6)

Hiermee worden de servo's op het breadboard aangesloten. Zorg ervoor dat de linker servo is aangesloten op de linker header en de rechter servo op de rechter header.

1123333 12
1123333 12

Stap 4. Sluit rode jumperdraden van pinnen C2 en C7 aan op rode (positieve) railpinnen

Zorg ervoor dat je de rode rail aan de achterkant van het breadboard gebruikt (dichter bij de rest van het chassis).

1123333 13
1123333 13

Stap 5. Sluit zwarte jumperdraden van pin B1 en B6 aan op blauwe (aarde) railpinnen

Zorg ervoor dat je de blauwe rail aan de achterkant van het breadboard gebruikt. Steek ze niet in de rode railpinnen.

1123333 14
1123333 14

Stap 6. Verbind witte jumperdraden van pinnen 12 en 13 op de Arduino met A3 en A8

Hierdoor kan de Arduino de servo's besturen en de wielen draaien.

1123333 15
1123333 15

Stap 7. Bevestig de sensor aan de voorkant van het breadboard

Het wordt niet aangesloten op de buitenste stroomrails op het breadboard, maar in plaats daarvan op de eerste rij pinnen met letters (J). Zorg ervoor dat u het precies in het midden plaatst, met aan elke kant een gelijk aantal pinnen.

1123333 16
1123333 16

Stap 8. Sluit een zwarte jumperdraad van pin I14 aan op de eerst beschikbare blauwe railpin aan de linkerkant van de sensor

Hierdoor wordt de sensor geaard.

1123333 17
1123333 17

Stap 9. Sluit een rode jumperdraad van pin I17 aan op de eerst beschikbare rode railpin rechts van de sensor

Dit zal de sensor van stroom voorzien.

1123333 18
1123333 18

Stap 10. Verbind witte jumperdraden van pin I15 naar pin 9 op de Arduino, en van I16 naar pin 8

Dit zal informatie van de sensor naar de microcontroller sturen.

Deel 3 van 6: De stroom aansluiten

1123333 19
1123333 19

Stap 1. Draai de robot op zijn kant zodat je de batterijen in de verpakking kunt zien

Richt het zo dat de kabel van het batterijpakket aan de onderkant naar links naar buiten komt.

1123333 20
1123333 20

Stap 2. Sluit een rode draad aan op de tweede veer van links onderaan

Zorg ervoor dat de accu in de juiste richting is geplaatst.

1123333 21
1123333 21

Stap 3. Sluit een zwarte draad aan op de laatste veer rechtsonder

Deze twee kabels zorgen ervoor dat de Arduino de juiste spanning krijgt.

1123333 22
1123333 22

Stap 4. Sluit de rode en zwarte draden aan op de uiterst rechtse rode en blauwe pinnen aan de achterkant van het breadboard

De zwarte kabel moet in de blauwe railpin op pin 30 worden gestoken. De rode kabel moet in de rode railpin op pin 30 worden gestoken.

1123333 23
1123333 23

Stap 5. Sluit een zwarte draad van de GND-pin op de Arduino aan op de blauwe rail aan de achterkant

Sluit deze aan op pin 28 op de blauwe rail.

1123333 24
1123333 24

Stap 6. Sluit een zwarte draad van de achterste blauwe rail aan op de voorste blauwe rail op pin 29 voor elk

Sluit de rode rails niet aan, omdat u de Arduino waarschijnlijk zult beschadigen.

1123333 25
1123333 25

Stap 7. Sluit een rode draad van de voorste rode rail op pin 30 aan op de 5V-pin op de Arduino

Dit zal de Arduino van stroom voorzien.

1123333 26
1123333 26

Stap 8. Steek de drukknopschakelaar in de opening tussen de rijen op pinnen 24-26

Met deze schakelaar kunt u de robot uitschakelen zonder de stroom uit het stopcontact te halen.

1123333 27
1123333 27

Stap 9. Sluit een rode draad van H24 aan op de rode rail in de volgende beschikbare pin rechts van de sensor

Hierdoor wordt de knop van stroom voorzien.

1123333 28
1123333 28

Stap 10. Gebruik de weerstand om H26 aan te sluiten op de blauwe rail

Sluit hem aan op de pin direct naast de zwarte draad die je een paar stappen geleden hebt aangesloten.

1123333 29
1123333 29

Stap 11. Sluit een witte draad van G26 aan op pin 2 op de Arduino

Hierdoor kan de Arduino de drukknop registreren.

Deel 4 van 6: De Arduino-software installeren

1123333 30
1123333 30

Stap 1. Download en pak de Arduino IDE uit

Dit is de Arduino-ontwikkelomgeving en stelt u in staat instructies te programmeren die u vervolgens kunt uploaden naar uw Arduino-microcontroller. Je kunt het gratis downloaden van arduino.cc/en/main/software. Pak het gedownloade bestand uit door erop te dubbelklikken en verplaats de map naar een gemakkelijk toegankelijke locatie. U installeert het programma niet daadwerkelijk. In plaats daarvan voer je het gewoon uit vanuit de uitgepakte map door te dubbelklikken op arduino.exe.

1123333 31
1123333 31

Stap 2. Sluit het batterijpakket aan op de Arduino

Sluit de batterij-achteraansluiting aan op de connector op de Arduino om hem van stroom te voorzien.

1123333 32
1123333 32

Stap 3. Sluit de Arduino via USB aan op uw computer

Windows zal het apparaat waarschijnlijk niet herkennen.

1123333 33
1123333 33

Stap 4. Druk op

⊞ Win+R en typ devmgmt.msc.

Hiermee wordt Apparaatbeheer gestart.

1123333 34
1123333 34

Stap 5. Klik met de rechtermuisknop op "Onbekend apparaat" in het gedeelte "Andere apparaten" en selecteer "Stuurprogramma bijwerken"

" Als u deze optie niet ziet, klikt u in plaats daarvan op 'Eigenschappen', selecteert u het tabblad 'Driver' en klikt u vervolgens op 'Stuurprogramma bijwerken'.

1123333 35
1123333 35

Stap 6. Selecteer "Blader op mijn computer naar stuurprogramma's

" Hiermee kunt u het stuurprogramma selecteren dat bij de Arduino IDE is geleverd.

1123333 36
1123333 36

Stap 7. Klik op "Bladeren" en navigeer vervolgens naar de map die u eerder hebt uitgepakt

Binnenin vind je een map "drivers".

1123333 37
1123333 37

Stap 8. Selecteer de map "drivers" en klik op "OK

" Bevestig dat je verder wilt gaan als je wordt gewaarschuwd voor onbekende software.

Deel 5 van 6: De robot programmeren

1123333 38
1123333 38

Stap 1. Start de Arduino IDE door te dubbelklikken op het bestand arduino.exe in de IDE-map

Je wordt begroet met een leeg project.

1123333 39
1123333 39

Stap 2. Plak de volgende code om je robot rechtdoor te laten gaan

De onderstaande code zorgt ervoor dat je Arduino continu vooruit gaat.

#include // dit voegt de "Servo"-bibliotheek toe aan het programma // het volgende creëert twee servo-objecten Servo leftMotor; Servo rechtsMotor; void setup() { leftMotor.attach (12); // als je per ongeluk de pinnummers voor je servo's hebt verwisseld, kun je de nummers hier omwisselen rightMotor.attach(13); } void loop() { leftMotor.write(180); // met continue rotatie vertelt 180 de servo om op volle snelheid "vooruit" te bewegen. rechtsMotor. schrijf(0); // als deze beide op 180 staan, gaat de robot in een cirkel omdat de servo's zijn omgedraaid. "0," vertelt het om op volle snelheid "achteruit" te gaan. }

1123333 40
1123333 40

Stap 3. Bouw en upload het programma

Klik op de pijl naar rechts in de linkerbovenhoek om het programma te bouwen en te uploaden naar de aangesloten Arduino.

Misschien wil je de robot van het oppervlak optillen, omdat hij gewoon vooruit blijft gaan zodra het programma is geüpload

1123333 41
1123333 41

Stap 4. Voeg de kill-schakelaarfunctionaliteit toe

Voeg de volgende code toe aan het gedeelte "void loop()" van uw code om de kill-schakelaar in te schakelen, boven de functies "write()".

if (digitalRead (2) == HIGH) // dit registreert wanneer de knop op pin 2 van de Arduino wordt ingedrukt { while(1) { leftMotor.write (90); // "90" is de neutrale positie voor de servo's, die hen vertelt te stoppen met draaien naar rechts Motor.write(90); } }

1123333 42
1123333 42

Stap 5. Upload en test uw code

Met de kill-schakelaarcode toegevoegd, kun je de robot uploaden en testen. Het moet vooruit blijven rijden totdat u op de schakelaar drukt, waarna het stopt met bewegen. De volledige code zou er als volgt uit moeten zien:

#include // het volgende creëert twee servo-objecten Servo leftMotor; Servo rechtsMotor; void setup() { leftMotor.attach (12); rechtsMotor.attach(13); } void loop () {if (digitalRead (2) == HOOG) { while (1) { leftMotor.write (90); rightMotor.write(90); } } leftMotor.write(180); rechtsMotor.schrijven(0); }

Deel 6 van 6: Voorbeeld

Stap 1. Volg een voorbeeld

De volgende code gebruikt de sensor die aan de robot is bevestigd om hem naar links te laten draaien wanneer hij een obstakel tegenkomt. Zie de opmerkingen in de code voor details over wat elk onderdeel doet. Onderstaande code is het hele programma.

#inclusief Servo leftMotor; Servo rechtsMotor; const int serialPeriod = 250; // dit beperkt de uitvoer naar de console tot een keer per 1/4 seconde unsigned long timeSerialDelay = 0; const int loopPeriode = 20; // dit stelt in hoe vaak de sensor meet tot 20ms, wat een frequentie is van 50Hz unsigned long timeLoopDelay = 0; // dit wijst de TRIG- en ECHO-functies toe aan de pinnen op de Arduino. Maak hier aanpassingen aan de nummers als u anders hebt aangesloten const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasoon2Afstand; int ultrasoon2Duur; // dit definieert de twee mogelijke toestanden voor de robot: vooruit rijden of naar links draaien #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = vooruit rijden (STANDAARD), 1 = linksaf void setup() {Serial.begin(9600); // deze sensor pin-configuraties pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasone2EchoPin, INPUT); // dit wijst de motoren toe aan de Arduino-pinnen leftMotor.attach (12); rechtsMotor.attach(13); } void loop () {if (digitalRead (2) == HOOG) // dit detecteert de kill-schakelaar { while(1) { leftMotor.write (90); rightMotor.write(90); } } debugOutput(); // dit drukt foutopsporingsberichten af naar de seriële console if(millis() - timeLoopDelay>= loopPeriod) { readUltrasonicSensors(); // dit instrueert de sensor om de gemeten afstanden te lezen en op te slaan stateMachine(); timeLoopDelay = millis(); } } void stateMachine() { if(state == DRIVE_FORWARD) // als er geen obstakels zijn gedetecteerd { if(ultrasonic2Distance > 6 || ultrasonic2Distance <0) // als er niets voor de robot staat. ultrasonicDistance zal negatief zijn voor sommige ultrasone apparaten als er geen obstakel is {// drive forward rightMotor.write(180); leftMotor.write(0); } else // als er een object voor ons staat { state = TURN_LEFT; } } else if(state == TURN_LEFT) // als een obstakel wordt gedetecteerd, sla linksaf { unsigned long timeToTurnLeft = 500; // het duurt ongeveer 0,5 seconden om 90 graden te draaien. Mogelijk moet u dit aanpassen als uw wielen een andere maat hebben dan het voorbeeld unsigned long turnStartTime = millis(); // sla de tijd op dat we begonnen te draaien while((millis()-turnStartTime) <timeToTurnLeft) // blijf in deze lus totdat timeToTurnLeft is verstreken { // sla linksaf, onthoud dat wanneer beide zijn ingesteld op "180" het zal draaien. rightMotor.write(180); leftMotor.write(180); } staat = DRIVE_FORWARD; } } void readUltrasonicSensors() { // dit is voor ultrasone 2. Mogelijk moet u deze opdrachten wijzigen als u een andere sensor gebruikt. digitalWrite (ultrasoon2TrigPin, HOOG); vertraging Microseconden (10); // houdt de trig-pin ten minste 10 microseconden hoog digitalWrite (ultrasonic2TrigPin, LOW); ultrasone2Duration = pulseIn (ultrasone2EchoPin, HOOG); ultrasoon2Afstand = (ultrasoon2Duur/2)/29; } // het volgende is voor het opsporen van fouten in de console. void debugOutput() {if((millis() - timeSerialDelay) > serialPeriod) { Serial.print("ultrasonic2Distance: "); Serial.print (ultrasone2Distance); Serial.print("cm"); Serieel.println(); timeSerialDelay = millis(); } }

Aanbevolen: