Hoe maak je een robot thuis (met afbeeldingen)

Inhoudsopgave:

Hoe maak je een robot thuis (met afbeeldingen)
Hoe maak je een robot thuis (met afbeeldingen)

Video: Hoe maak je een robot thuis (met afbeeldingen)

Video: Hoe maak je een robot thuis (met afbeeldingen)
Video: How to Get PICTURE MAPS in Minecraft (1.15/1.16) Vanilla [Turn your Maps to Images] 2024, November
Anonim

Wil je leren hoe je je eigen robot maakt? Er zijn veel verschillende soorten robots, die je zelf kunt bouwen. De meeste mensen willen een robot het gemakkelijke werk zien doen om van punt A naar B te gaan. Je kunt een robot volledig uit analoge componenten bouwen of een starterskit kopen. Het maken van je eigen robot is een geweldige manier om elektronica en computerprogrammering te leren.

Stap

Deel 1 van 5: De robot in elkaar zetten

1123333 1
1123333 1

Stap 1. Monteer uw componenten

Om een basisrobot te bouwen, heb je een paar eenvoudige componenten nodig. U kunt de meeste of al deze componenten vinden bij uw plaatselijke elektronica-hobbywinkel of bij sommige online winkels. Sommige kits bevatten al deze componenten. Deze robot vereist geen solderen:

  • Arduino Uno (of andere microcontroller)
  • 2 servo's 360 graden
  • 2 wielen bijpassende servo
  • 1 vrij wiel
  • 1 testbord (breadboard of projectboard) dat niet is gesoldeerd (zoek een testbord met aan elke kant twee positieve en negatieve rijen)
  • 1 naderingssensor (met vierpolige connectorkabel)
  • 1 drukknopschakelaar
  • 1 weerstand 10kΩ
  • 1 USB A naar B-kabel
  • 1 set breekbare headers
  • 1 6 x AA batterijhouder met 9V DC stopcontact
  • 1 pak van 22 startkabels of enkele kabel
  • Isolatie heen en weer (dubbele tape) of lijmpistool
1123333 2
1123333 2

Stap 2. Draai het batterijcompartiment zodat de platte achterkant naar boven wijst

Je gaat het robotlichaam bouwen met het batterijcompartiment als basis.

1123333 3
1123333 3

Stap 3. Plaats twee servo's in dezelfde richting aan het einde van het batterijcompartiment

Dit uiteinde is het uiteinde waar de kabel uit de batterij komt. De servo's moeten de bodem raken en het rotatiemechanisme van elke servo moet naar buiten wijzen vanaf de zijkanten van het batterijcompartiment. Het is belangrijk dat deze servo's correct worden geplaatst, zodat de wielen recht staan. De kabels voor de servo moeten uit de achterkant van het batterijcompartiment komen.

1123333 4
1123333 4

Stap 4. Lijm de servo's met je isolatie of lijm

Zorg ervoor dat de servo stevig aan het batterijcompartiment is bevestigd. De achterkant van de servo moet worden uitgelijnd met de achterkant van het batterijcompartiment.

Nu zouden de servo's de helft van de ruimte aan de achterkant van het batterijcompartiment moeten innemen

1123333 5
1123333 5

Stap 5. Bevestig het testbord loodrecht op de resterende ruimte in het batterijcompartiment

Dit testbord zal iets over de voorkant van het batterijcompartiment hangen, en zal naar beide kanten uitschuiven. Zorg ervoor dat het testbord goed vastzit voordat u verder gaat. De rij "A" moet zich het dichtst bij de servo bevinden.

1123333 6
1123333 6

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

Als u de servo correct bevestigt, moet er een plat deel van de twee servo's zijn die elkaar raken. Bevestig het Arduino-bord op deze vlakke plek, zodat de USB- en Arduino-voedingsconnectoren naar beneden zijn gericht (weg van het testbord). De voorkant van de Arduino overlapt met het testbord.

1123333 7
1123333 7

Stap 7. Installeer de wielen op de servo's

Druk de wielen stevig op het roterende servomechanisme. Dit kan aanzienlijke kracht vergen omdat de wielen zijn ontworpen om gaten te hebben die precies overeenkomen met de vorm van de servotip.

1123333 8
1123333 8

Stap 8. Installeer het freewheel aan de onderkant van het testbord

Als je de robot ondersteboven houdt, zie je een klein testbordje aan het batterijcompartiment hangen. Bevestig het vrijloopwiel aan dit ophangdeel. Gebruik indien nodig een wig. Het vrijloopwiel dient als voorwiel waardoor de robot gemakkelijk in elke richting kan draaien.

Als u een kit hebt gekocht, kan het vrijwiel enkele wiggen hebben die u kunt gebruiken om ervoor te zorgen dat het wiel vrij de grond raakt

Deel 2 van 5: De robot bedraden

1123333 9
1123333 9

Stap 1. Knip twee 3-pins headers

Hiermee sluit je de servo aan op het testbord. Duw de pinnen naar beneden door de headers, zodat ze aan beide kanten op gelijke afstand naar buiten komen.

1123333 10
1123333 10

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

Zorg ervoor dat ze stevig of stevig zijn geplaatst.

1123333 11
1123333 11

Stap 3. Verbind de servodraden met de header, met de zwarte draad aan de linkerkant (pin 1 en 6)

Dit verbindt de servo met het testbord. Zorg ervoor dat de linker servo is aangesloten op de linker header en de rechter servo is aangesloten op de rechter header.

1123333 12
1123333 12

Stap 4. Verbind de rode jumperdraad van pin C2 en C7 met de rode railpin (positief)

Zorg ervoor dat u de rode rail aan de achterkant van het testbord gebruikt (dichter bij de rest van het robotlichaam).

1123333 13
1123333 13

Stap 5. Verbind de zwarte jumperdraad van pin B1 en B6 met de blauwe railpin (massa)

Zorg ervoor dat je de blauwe rail aan de achterkant van het testbord gebruikt. Bevestig de kabel niet aan de rode railpin.

1123333 14
1123333 14

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

Hierdoor kan de Arduino de servo besturen en aan het stuur draaien.

1123333 15
1123333 15

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

De sensor is niet op de externe voedingsrail op het testbord gemonteerd, maar op de eerste twee rijen pennen met de letters (J). Zorg ervoor dat je hem precies in het midden plaatst met aan elke kant een gelijk aantal lege pinnen.

1123333 16
1123333 16

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

Hierdoor wordt de sensor geaard.

1123333 17
1123333 17

Stap 9. Sluit de rode jumperdraad van pin I17 aan op de eerste rode railpin rechts van de sensor

Dit zal de sensor van stroom voorzien.

1123333 18
1123333 18

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

Dit levert informatie van de sensor aan de microcontroller.

Deel 3 van 5: De voedingskabel installeren

1123333 19
1123333 19

Stap 1. Draai de robot om zodat u het batterijcompartiment binnenin kunt zien

Schik het batterijcompartiment zo dat de kabel linksonder naar buiten komt.

1123333 20
1123333 20

Stap 2. Verbind de rode draad met de tweede veer van links onderaan

Zorg ervoor dat het batterijcompartiment goed is uitgelijnd of in de juiste richting wijst.

1123333 21
1123333 21

Stap 3. Verbind de zwarte draad met de laatste veer rechtsonder

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

1123333 22
1123333 22

Stap 4. Sluit de rode en zwarte draden aan op de rode en blauwe pinnen die zich aan de rechterkant op de achterkant van het testbord bevinden

De zwarte draad moet naar de blauwe railpin op pin 30 gaan. De rode draad moet naar de rode railpin op pin 30 gaan.

1123333 23
1123333 23

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

Sluit de draad aan op pin 28 op de blauwe rail.

1123333 24
1123333 24

Stap 6. Sluit de zwarte draad van de achterkant van de blauwe rail aan op de voorkant van de blauwe rail op pin 29 voor beide rails

Sluit de rode rail niet aan, omdat u de Arduino kunt beschadigen.

1123333 25
1123333 25

Stap 7. Verbind de rode draad van de voorkant van de rode rail op pin 30 met de 5V pin op Arduino

Dit zal de Arduino van stroom voorzien.

1123333 26
1123333 26

Stap 8. Steek de drukknopschakelaar in de ruimte tussen pinnen 24-26

Met deze schakelaar kunt u de robot uitschakelen zonder de stroom uit te schakelen.

1123333 27
1123333 27

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

Dit zal de knop van stroom voorzien.

1123333 28
1123333 28

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

Sluit hem aan op de pin direct naast de zwarte draad die u zojuist in de vorige stappen hebt aangesloten.

1123333 29
1123333 29

Stap 11. Verbind de witte draad van G26 met pin 2 op Arduino

Hierdoor kan Arduino drukknoppen detecteren.

Deel 4 van 5: De Arduino-software installeren

1123333 30
1123333 30

Stap 1. Download en pak Arduino IDE uit

Hier wordt Arduino ontwikkeld en kun je instructies programmeren die je vervolgens kunt uploaden naar je Arduino-microcontroller. Je kunt het gratis downloaden van arduino.cc/en/main/software. Pak het gedownloade bestand uit door te dubbelklikken op het bestand en de map die het bevat naar een gemakkelijk toegankelijke locatie te verplaatsen. U zult het programma niet echt installeren, maar uitvoeren vanuit een map die is uitgepakt door te dubbelklikken op arduino.exe.

1123333 31
1123333 31

Stap 2. Sluit het batterijcompartiment aan op de Arduino

Steek de achterste aansluiting van de batterij in de connector op de Arduino om hem van stroom te voorzien.

1123333 32
1123333 32

Stap 3. Steek Arduino via USB in uw computer

De kans is groot dat Windows het apparaat niet herkent.

1123333 33
1123333 33

Stap 4. Druk op

Win+R en typ devmgmt.msc.

Met deze opdracht wordt Apparaatbeheer geopend.

1123333 34
1123333 34

Stap 5. Klik met de rechtermuisknop op Onbekend apparaat onder Andere apparaten en selecteer Stuurprogramma bijwerken

Als u deze optie niet ziet, klikt u op Eigenschappen, selecteert u het tabblad Stuurprogramma en klikt u vervolgens op Stuurprogramma bijwerken.

1123333 35
1123333 35

Stap 6. Selecteer Op mijn computer naar stuurprogramma's zoeken

Hiermee kunt u de ingebouwde stuurprogramma's selecteren die bij de Arduino IDE zijn geleverd.

1123333 36
1123333 36

Stap 7. Klik op Bladeren en open vervolgens de map die u eerder hebt uitgepakt

Daarin vindt u de map met stuurprogramma's.

1123333 37
1123333 37

Stap 8. Selecteer de map drivers en klik op OK

Bevestig dat u wilt doorgaan als u wordt gewaarschuwd voor onbekende software.

Deel 5 van 5: Robots programmeren

1123333 38
1123333 38

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

U wordt begroet met een leeg project.

1123333 39
1123333 39

Stap 2. Plak of plak de volgende code om uw robot geavanceerd te maken

De onderstaande code houdt je Arduino draaiende.

#include // dit voegt de "Servo" -bibliotheek toe aan het programma // het volgende commando maakt twee servo-objecten Servo leftMotor; Servo rechtsMotor; void setup() { leftMotor.attach (12); // als je per ongeluk de pinnummers voor je servo hebt verwisseld, kun je de nummers hier omwisselen rightMotor.attach(13); } void loop() { leftMotor.write(180); // met een rotatie van 360 graden (continue rotatie), instrueert het getal 180 de servo om op volle snelheid "vooruit" te bewegen. rechtsMotor.schrijven(0); // als beide waarden 180 zijn, draait de robot in een cirkel omdat de servo omgekeerd is. "0" vertelt de robot om op volle snelheid "achteruit" te bewegen. }

1123333 40
1123333 40

Stap 3. Maak en upload het programma

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

Misschien wilt u de robot van het oppervlak tillen, aangezien de robot vooruit blijft lopen nadat het programma is geüpload

1123333 41
1123333 41

Stap 4. Voeg een stopschakelaarfunctie toe (kill-schakelaar)

Voeg de volgende code toe aan het gedeelte "void loop()" van uw code om een stopschakelaarfunctie toe te voegen aan de functie "write()".

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

1123333 42
1123333 42

Stap 5. Upload en controleer uw code

Met de stopschakelaarcode al toegevoegd, kunt u de code uploaden en de robot testen. De robot moet vooruit blijven gaan totdat u op de stopschakelaar drukt, waardoor de robot stopt. De volledige code ziet er als volgt uit:

#include // het volgende commando creëert twee Servo leftMotor servo-objecten; 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); }

Voorbeeld

De volgende code maakt gebruik van sensoren die op de robot zijn geïnstalleerd om hem naar links te laten draaien wanneer de robot een obstakel tegenkomt. Kijk naar de opmerkingen in de code voor details over het gebruik van elk onderdeel. Onderstaande code is het hele programma.

#inclusief Servo leftMotor; Servo rechtsMotor; const int serialPeriod = 250; // deze code geeft de uitvoervertraging van de console elke 1/4 seconde (250 ms) unsigned long timeSerialDelay = 0; const int loopPeriode = 20; // deze code stelt de sensorleesfrequentie in op 20 ms, wat 50 Hz is zonder teken lang timeLoopDelay = 0; // deze code wijst de TRIG- en ECHO-functies toe aan de pinnen op de Arduino. Pas de getallen hier aan als je ze op een andere manier verbindt const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasoon2Afstand; int ultrasoon2Duur; // deze code definieert twee mogelijke robottoestanden: ga vooruit of sla linksaf #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = ga vooruit (DEFAULT), 1 = sla linksaf void setup () { Serial.begin (9600); // deze sensor bepaalt de pinconfiguratie pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasone2EchoPin, INPUT); // dit wijst de motor toe aan de Arduino-pinnen leftMotor.attach (12); rechtsMotor.attach(13); } void loop () { if (digitalRead (2) == HIGH) // deze code detecteert een ''stop'' { while(1) { leftMotor.write (90); rightMotor.write(90); } } debugOutput(); // deze code drukt foutopsporingsberichten af naar de seriële console if(millis() - timeLoopDelay>= loopPeriod) { readUltrasonicSensors(); // deze code instrueert de sensor om gegevens over de gemeten afstand te lezen en op te slaan stateMachine(); timeLoopDelay = millis(); } } void stateMachine() { if(state == DRIVE_FORWARD) // als er geen obstakel wordt gedetecteerd { if(ultrasonic2Distance > 6 || ultrasonic2Distance <0) // als er niets voor de robot is. ultrasonicDistance zal negatief zijn voor sommige ultrasone apparaten als er geen obstakels zijn { // 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; // duurt ongeveer 0,5 seconden om 90 graden te draaien. Mogelijk moet u deze waarde aanpassen als uw wielen qua maat verschillen van de maat in het voorbeeld unsigned long turnStartTime = millis(); // behoud de voorwaarde wanneer de robot begint te draaien while((millis()-turnStartTime) <timeToTurnLeft) // bewaar deze cyclus totdat timeToTurnLeft (500) voorbij is { // draai naar links, onthoud dat wanneer beide "180" zijn, de robot zal draaien. rechtsMotor.schrijven(180); leftMotor.write(180); } staat = DRIVE_FORWARD; } } void readUltrasonicSensors() { // dit is voor ultrasone 2. Mogelijk moet u deze opdracht wijzigen als u een andere sensor gebruikt. digitalWrite (ultrasoon2TrigPin, HOOG); vertraging Microseconden (10); // trek de TRIG-pin hoog gedurende ten minste 10 microseconden 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: