Hvordan lage en robot hjemme (med bilder)

Innholdsfortegnelse:

Hvordan lage en robot hjemme (med bilder)
Hvordan lage en robot hjemme (med bilder)

Video: Hvordan lage en robot hjemme (med bilder)

Video: Hvordan lage en robot hjemme (med bilder)
Video: How To Make Mapart From Any Image In Minecraft 2024, November
Anonim

Vil du lære å lage din egen robot? Det er mange forskjellige typer roboter som du kan bygge selv. De fleste ønsker å se en robot gjøre den enkle jobben med å flytte fra punkt A til B. Du kan bygge en robot helt fra analoge komponenter eller kjøpe et startsett. Å lage din egen robot er en fin måte å lære elektronikk og dataprogrammering.

Steg

Del 1 av 5: Montering av roboten

1123333 1
1123333 1

Trinn 1. Monter komponentene

For å bygge en grunnleggende robot trenger du noen få enkle komponenter. Du kan finne de fleste eller alle disse komponentene i din lokale elektronikkhobbybutikk, eller hos noen nettbutikker. Noen sett inneholder alle disse komponentene. Denne roboten krever ikke lodding:

  • Arduino Uno (eller annen mikrokontroller)
  • 2 servoer 360 grader
  • 2 hjul matchende servo
  • 1 gratis hjul
  • 1 testbrett (brødbrett eller prosjektbrett) som ikke er loddet (se etter et testbrett som har to positive og negative rader på hver side)
  • 1 nærhetssensor (med firepinners kontaktkabel)
  • 1 trykknappbryter
  • 1 motstand 10kΩ
  • 1 USB A til B -kabel
  • 1 sett med hodeskader som kan brytes
  • 1 6 x AA batteriholder med 9V DC. Stikkontakt
  • 1 pakke med 22. jumperkabler eller enkeltkabel
  • Isolasjon frem og tilbake (dobbelt tape) eller limpistol
1123333 2
1123333 2

Trinn 2. Vri batterirommet slik at den flate baksiden vender opp

Du vil bygge robotkroppen ved å bruke batterirommet som base.

1123333 3
1123333 3

Trinn 3. Ordne to servoer i samme retning i enden av batterirommet

Denne enden er enden der kabelen kommer ut av batteriet. Servoene skal berøre bunnen, og rotasjonsmekanismen til hver servo skal vende ut fra sidene av batterirommet. Det er viktig at disse servoene er ordnet riktig slik at hjulene er rette. Kablene til servoen må komme ut på baksiden av batterirommet.

1123333 4
1123333 4

Trinn 4. Lim servoene med isolasjonen eller limet ditt

Sørg for at servoen er godt festet til batterirommet. Baksiden av servoen må være på linje med baksiden av batterirommet.

Nå skal servoene ta opp halvparten av plassen på baksiden av batterirommet

1123333 5
1123333 5

Trinn 5. Fest testkortet vinkelrett på gjenværende plass i batterirommet

Dette testbordet vil henge litt over forsiden av batterirommet, og vil strekke seg til begge sider. Kontroller at testkortet er tett før du fortsetter. "A" -raden skal være nærmest servoen.

1123333 6
1123333 6

Trinn 6. Fest Arduino -mikrokontrolleren til toppen av servoen

Hvis du fester servoen riktig, bør det være en flat del av de to servoene som berører hverandre. Fest Arduino -kortet til dette flate stedet slik at USB- og Arduino -strømkontaktene vender ned (vekk fra testkortet). Forsiden av Arduino vil overlappe med testbrettet.

1123333 7
1123333 7

Trinn 7. Monter hjulene på servoene

Trykk hjulene fast på den roterende servomekanismen. Dette kan kreve betydelig kraft ettersom hjulene er designet for å ha hull som nøyaktig samsvarer med formen på servospissen.

1123333 8
1123333 8

Trinn 8. Installer det frie hjulet på bunnen av testkortet

Hvis du snur roboten opp ned, ser du et lite testkort som henger fra batterirommet. Fest det frie hjulet til denne hengende delen. Bruk en kile om nødvendig. Gratishjulet fungerer som forhjulet som gjør at roboten lett kan svinge i alle retninger.

Hvis du har kjøpt et sett, kan gratishjulet ha noen kiler som du kan bruke for å sikre at hjulet er fritt til å berøre bakken

Del 2 av 5: Kabling av roboten

1123333 9
1123333 9

Trinn 1. Skjær to 3-pins hoder

Du vil bruke dette til å koble servoen til testkortet. Skyv pinnene ned gjennom topptekstene, så de kommer like langt ut på begge sider.

1123333 10
1123333 10

Trinn 2. Sett de to overskriftene inn i pinnene 1-3 og 6-8 i rad E på testbrettet

Sørg for at de er satt godt eller godt inn.

1123333 11
1123333 11

Trinn 3. Koble servoledningene med overskriften, med den svarte ledningen på venstre side (pinner 1 og 6)

Dette vil koble servoen til testkortet. Kontroller at venstre servo er koblet til venstre topp, og høyre servo er koblet til høyre topp.

1123333 12
1123333 12

Trinn 4. Koble den røde jumperwiren fra pinne C2 og C7 til den røde skinnestiften (positiv)

Sørg for at du bruker den røde skinnen på baksiden av testkortet (nærmere resten av robothuset).

1123333 13
1123333 13

Trinn 5. Koble den svarte startkabelen fra pinne B1 og B6 til den blå skinnestiften (bakken)

Sørg for at du bruker den blå skinnen på baksiden av testbrettet. Ikke fest kabelen til den røde skinnestiften.

1123333 14
1123333 14

Trinn 6. Koble de hvite hoppetrådene fra pinne 12 og 13 på Arduino til A3 og A8

Dette vil tillate Arduino å kontrollere servoen og snu hjulet.

1123333 15
1123333 15

Trinn 7. Fest sensoren på forsiden av testkortet

Sensoren er ikke montert på den eksterne kraftskinnen på testkortet, men på de to første radene med pinner (J). Sørg for at du plasserer den midt på midten med like mange tomme pinner på hver side.

1123333 16
1123333 16

Trinn 8. Koble den svarte startkabelen fra pin I14 til den første blå skinnestiften til venstre på sensoren

Dette vil jordet sensoren.

1123333 17
1123333 17

Trinn 9. Koble den røde jumperwiren fra pin I17 til den første røde railstiften til høyre for sensoren

Dette gir strøm til sensoren.

1123333 18
1123333 18

Trinn 10. Koble de hvite jumperledningene fra pin I15 til pin 9 på Arduino, og fra I16 til pin 8

Dette vil gi informasjon fra sensoren til mikrokontrolleren.

Del 3 av 5: Installere strømkabelen

1123333 19
1123333 19

Trinn 1. Snu roboten slik at du kan se batterirommet inni

Plasser batterirommet slik at kabelen kommer ut nederst til venstre.

1123333 20
1123333 20

Trinn 2. Koble den røde ledningen med den andre fjæren fra venstre nederst

Kontroller at batterirommet er riktig justert eller vender i riktig retning.

1123333 21
1123333 21

Trinn 3. Koble den svarte ledningen med den siste fjæren nederst til høyre

Disse to ledningene vil bidra til å gi riktig spenning til Arduino.

1123333 22
1123333 22

Trinn 4. Koble de røde og svarte ledningene til de røde og blå pinnene som er på høyre side på baksiden av testkortet

Den svarte ledningen skal gå til den blå skinnestiften på pinne 30. Den røde ledningen skal gå til den røde skinnestiften på pinne 30.

1123333 23
1123333 23

Trinn 5. Koble den svarte ledningen fra GND -pinnen på Arduino til baksiden av den blå skinnen

Koble ledningen til pinne 28 på den blå skinnen.

1123333 24
1123333 24

Trinn 6. Koble den svarte ledningen fra baksiden av den blå skinnen til forsiden av den blå skinnen på pinne 29 for begge skinnene

Ikke koble til den røde skinnen, da du kan skade Arduino.

1123333 25
1123333 25

Trinn 7. Koble den røde ledningen fra forsiden av den røde skinnen på pinne 30 til 5V -pinnen på Arduino

Dette vil gi strøm til Arduino.

1123333 26
1123333 26

Trinn 8. Sett trykknappbryteren inn i mellomrommet mellom pinnene 24-26

Denne bryteren lar deg slå av roboten uten å måtte slå av strømmen.

1123333 27
1123333 27

Trinn 9. Koble den røde ledningen fra H24 til den røde skinnen på den neste tomme pinnen til høyre for sensoren

Dette gir strøm til knappen.

1123333 28
1123333 28

Trinn 10. Bruk en motstand for å koble H26 til den blå skinnen

Koble den til pinnen rett ved siden av den svarte ledningen du nettopp koblet til i de foregående trinnene.

1123333 29
1123333 29

Trinn 11. Koble den hvite ledningen fra G26 til pinne 2 på Arduino

Dette vil tillate Arduino å oppdage trykknapper.

Del 4 av 5: Installere Arduino -programvaren

1123333 30
1123333 30

Trinn 1. Last ned og pakk ut Arduino IDE

Det er her Arduino er utviklet og lar deg programmere instruksjoner som du deretter kan laste opp til din Arduino mikrokontroller. Du kan laste den ned gratis fra arduino.cc/en/main/software. Pakk ut den nedlastede filen ved å dobbeltklikke på filen og flytte mappen den inneholder til et lett tilgjengelig sted. Du vil faktisk ikke installere programmet, i stedet vil du bare kjøre det fra en mappe som ble hentet ut ved å dobbeltklikke på arduino.exe.

1123333 31
1123333 31

Trinn 2. Koble batterirommet til Arduino

Sett den bakre kontakten på batteriet inn i kontakten på Arduino for å drive det.

1123333 32
1123333 32

Trinn 3. Sett Arduino inn i datamaskinen via USB

Sjansen er stor for at Windows ikke gjenkjenner enheten.

1123333 33
1123333 33

Trinn 4. Trykk

Vinn+R. og skriv devmgmt.msc.

Denne kommandoen åpner Enhetsbehandling.

1123333 34
1123333 34

Trinn 5. Høyreklikk på Ukjent enhet under Andre enheter og velg Oppdater driverprogramvare

Hvis du ikke ser dette alternativet, klikker du Egenskaper, velger kategorien Driver og klikker deretter Oppdater driver.

1123333 35
1123333 35

Trinn 6. Velg Bla gjennom datamaskinen min etter driverprogramvare

Dette lar deg velge de innebygde driverne som fulgte med Arduino IDE.

1123333 36
1123333 36

Trinn 7. Klikk på Bla gjennom, og åpne deretter mappen du hentet ut tidligere

Du finner drivermappen i den.

1123333 37
1123333 37

Trinn 8. Velg drivermappen og klikk OK

Bekreft at du vil fortsette hvis du blir advart om ukjent programvare.

Del 5 av 5: Programmering av roboter

1123333 38
1123333 38

Trinn 1. Åpne Arduino IDE ved å dobbeltklikke på arduino.exe-filen i IDE-mappen

Du vil bli møtt med et tomt prosjekt.

1123333 39
1123333 39

Trinn 2. Lim inn eller lim inn følgende kode for å gjøre roboten din avansert

Koden nedenfor vil holde Arduino i gang.

#include // dette legger til "Servo" -biblioteket i programmet // følgende kommando oppretter to servoobjekter Servo leftMotor; Servo høyre Motor; ugyldig oppsett () {leftMotor.attach (12); // hvis du ved et uhell byttet pin -tallene for servoen din, kan du bytte tallene her rightMotor.attach (13); } void loop () {leftMotor.write (180); // med en 360 graders rotasjon (kontinuerlig rotasjon), instruerer tallet 180 servoen til å bevege seg fremover i full hastighet. rightMotor.write (0); // hvis begge verdiene er 180, vil roboten rotere i en sirkel fordi servoen er reversert. “0” forteller roboten å bevege seg “bakover” i full fart. }

1123333 40
1123333 40

Trinn 3. Lag og last opp programmet

Klikk på høyre pilknapp øverst til venstre for å opprette og laste opp et program til den tilkoblede Arduino.

Det kan være lurt å løfte roboten fra overflaten, da roboten vil fortsette å gå fremover etter at programmet er lastet opp

1123333 41
1123333 41

Trinn 4. Legg til en stoppbryterfunksjon (drepebryter)

Legg til følgende kode i delen "void loop ()" i koden for å legge til en stoppbryterfunksjon på toppen av "write ()" - funksjonen.

if (digitalRead (2) == HIGH) // denne kommandoen kjøres når knappen trykkes på pin 2 Arduino {mens (1) {leftMotor.write (90); // "90" er nøytral posisjon for servoen, som forteller servoen om å slutte å svinge til høyreMotor.write (90); }}

1123333 42
1123333 42

Trinn 5. Last opp og sjekk koden din

Med stoppbryterkoden allerede lagt til, kan du laste opp koden og teste roboten. Roboten skal fortsette fremover til du trykker på stoppbryteren, noe som får roboten til å stoppe. Hele koden vil se slik ut:

#include // følgende kommando oppretter to Servo leftMotor servo -objekter; Servo høyre Motor; ugyldig oppsett () {leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }

Eksempel

Følgende kode vil bruke sensorer installert på roboten for å få den til å svinge til venstre når roboten støter på et hinder. Se på kommentarene i koden for detaljer om hvordan du bruker hver del. Koden nedenfor er hele programmet.

#include Servo leftMotor; Servo høyre Motor; const int serialPeriod = 250; // denne koden gir konsollets utgangstidsforsinkelse til å være hvert 1/4 sekund (250 ms) usignert lang timeSerialDelay = 0; const int loopPeriod = 20; // denne koden setter sensorens lesefrekvens til 20 ms, som er 50 Hz usignert long timeLoopDelay = 0; // denne koden tilordner TRIG- og ECHO -funksjonene til pinnene på Arduino. Juster tallene her hvis du kobler dem til på en annen måte const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // denne koden definerer to mulige robottilstander: fortsett fremover eller ta til venstre #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = fortsett fremover (DEFAULT), 1 = sving til venstre for ugyldig oppsett () {Serial.begin (9600); // denne sensoren bestemmer pin -konfigurasjonen pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // dette tildeler motoren til Arduino -pinnene leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // denne koden oppdager et '' stopp '' {mens (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // denne koden skriver ut feilsøkingsmeldinger til seriekonsollen hvis (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // denne koden instruerer sensoren til å lese og lagre data om den målte avstanden stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // hvis det ikke oppdages noen hindring {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // hvis ingenting er foran roboten. ultrasonicDistance vil være negativ for noen ultralyd hvis det ikke er noen hindringer {// drive forward rightMotor.write (180); leftMotor.write (0); } else // hvis det er et objekt foran oss {state = TURN_LEFT; }} annet hvis (state == TURN_LEFT) // hvis det oppdages et hinder, ta til venstre {unsigned long timeToTurnLeft = 500; // tar omtrent 0,5 sekunder å snu 90 grader. Du må kanskje justere denne verdien hvis hjulene avviker i størrelse fra størrelsen i eksempelet unsigned long turnStartTime = millis (); // behold tilstanden når roboten begynner å snu mens ((millis ()-turnStartTime) <timeToTurnLeft) // behold denne syklusen til timeToTurnLeft (500) har passert {// sving til venstre, husk at når begge er "180", roboten vil snu. rightMotor.write (180); leftMotor.write (180); } state = DRIVE_FORWARD; }} void readUltrasonicSensors () {// dette er for ultralyd 2. Du må kanskje endre denne kommandoen hvis du bruker en annen sensor. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // trekk TRIG -pinnen høyt i minst 10 mikrosekunder digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulsIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // følgende er for feilsøkingsfeil i konsollen. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}

Anbefalt: