Hvordan bygge en robot hjemme (med bilder)

Innholdsfortegnelse:

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

Video: Hvordan bygge en robot hjemme (med bilder)

Video: Hvordan bygge en robot hjemme (med bilder)
Video: SketchUp Tips and Tricks: Image, Texture, Matched Photo Import Options 2024, April
Anonim

Vil du lære å bygge din egen robot? Det er mange forskjellige typer roboter du kan lage selv. De fleste vil se en robot utføre de enkle oppgavene med å flytte fra punkt A til punkt B. Du kan lage en robot helt fra analoge komponenter eller kjøpe et startsett fra bunnen av! Å bygge din egen robot er en fin måte å lære deg selv både elektronikk og dataprogrammering.

Trinn

Del 1 av 6: Montering av roboten

1123333 1
1123333 1

Trinn 1. Samle komponentene

For å bygge en grunnleggende robot trenger du flere enkle komponenter. Du finner de fleste, om ikke alle, komponentene i din lokale elektronikkhobbybutikk eller flere nettbutikker. Noen grunnleggende sett kan også inneholde alle disse komponentene. Denne roboten krever ikke lodding:

  • Arduino Uno (eller annen mikrokontroller)
  • 2 servoer for kontinuerlig rotasjon
  • 2 hjul som passer til servoene
  • 1 hjul
  • 1 lite loddefritt brødbrett (se etter et brødbrett som har to positive og negative linjer på hver side)
  • 1 avstandssensor (med firepolet tilkoblingskabel)
  • 1 mini trykknappbryter
  • 1 10kΩ motstand
  • 1 USB A til B -kabel
  • 1 sett utbryterhoder
  • 1 6 x AA batteriholder med 9V DC strømkontakt
  • 1 pakke hoppetråder eller 22-gauge tilkoblingstråd
  • Sterk dobbeltsidig tape eller varmt lim
1123333 2
1123333 2

Trinn 2. Snu batteripakken slik at den flate baksiden vender opp

Du skal bygge robotens kropp ved å bruke batteripakken som base.

1123333 3
1123333 3

Trinn 3. Juster de to servoene på enden av batteripakken

Dette bør være enden som batteripakkens ledning kommer ut av. Servoene skal berøre bunnen, og hver roterende mekanisme skal vende ut på sidene av batteripakken. Servoene må være riktig justert slik at hjulene går rett. Ledningene til servoene skal komme av baksiden av batteripakken.

1123333 4
1123333 4

Trinn 4. Fest servoene med tape eller lim

Sørg for at de er godt festet til batteripakken. Baksiden av servoene bør justeres i flukt med baksiden av batteripakken.

Servoene skal nå ta opp den bakre halvdelen av batteripakken

1123333 5
1123333 5

Trinn 5. Fest brødbrettet vinkelrett på det åpne rommet på batteripakken

Den skal henge litt over forsiden av batteripakken og strekker seg utover hver side. Sørg for at den er godt festet før du fortsetter. "A" -raden skal være nærmest servoene.

1123333 6
1123333 6

Trinn 6. Fest Arduino -mikrokontrolleren til toppen av servoene

Hvis du festet servoene ordentlig, bør det være et flatt mellomrom ved at de berører dem. Fest Arduino -brettet på denne flate plassen slik at Arduinos USB- og strømkontakter vender bakover (vekk fra brødbrettet). Forsiden av Arduino skal bare knapt overlappe brødbrettet.

1123333 7
1123333 7

Trinn 7. Sett hjulene på servoene

Trykk hjulene fast på servoens roterende mekanisme. Dette kan kreve betydelig kraft, ettersom hjulene er designet for å passe så tett som mulig for best trekkraft.

1123333 8
1123333 8

Trinn 8. Fest hjulet til bunnen av brødbrettet

Hvis du snur kabinettet, bør du se litt brødbrett som strekker seg forbi batteripakken. Fest hjulet til dette forlengede stykket, bruk stigerør om nødvendig. Hjulet fungerer som forhjulet, slik at roboten enkelt kan svinge i alle retninger.

Hvis du kjøpte et sett, kan det være at hjulet har kommet med noen stigerør som du kan bruke for å sikre at hjulet når bakken. Jeg

Del 2 av 6: Kabling av roboten

1123333 9
1123333 9

Trinn 1. Bryt av to 3-pins hoder

Du vil bruke disse til å koble servoene til brødbrettet. Skyv pinnene ned gjennom overskriften slik at pinnene kommer ut i like stor avstand på begge sider.

1123333 10
1123333 10

Trinn 2. Sett de to topptekstene i pinnene 1-3 og 6-8 på rad E på brødbrettet

Sørg for at de er ordentlig satt inn.

1123333 11
1123333 11

Trinn 3. Koble servokablene til hodene med den svarte kabelen på venstre side (pinne 1 og 6)

Dette vil koble servoene til brødbrettet. Sørg for at venstre servo er koblet til venstre topp og høyre servo til høyre topp.

1123333 12
1123333 12

Trinn 4. Koble røde jumperledninger fra pinne C2 og C7 til røde (positive) skinnestifter

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

1123333 13
1123333 13

Trinn 5. Koble svarte jumperledninger fra pinne B1 og B6 til blå (bakken) skinnestifter

Sørg for at du bruker den blå skinnen på baksiden av brødbrettet. Ikke koble dem til de røde skinnestiften.

1123333 14
1123333 14

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

Dette vil tillate Arduino å kontrollere servoene og snu hjulene.

1123333 15
1123333 15

Trinn 7. Fest sensoren på forsiden av brødbrettet

Den blir ikke plugget inn i de ytre strømskinnene på brødbrettet, men i stedet i den første raden med bokstaver (J). Sørg for å plassere den i det nøyaktige midten, med like mange pinner tilgjengelig på hver side.

1123333 16
1123333 16

Trinn 8. Koble en svart startkabel fra pin I14 til den første tilgjengelige blå skinnestiften til venstre på sensoren

Dette vil jordet sensoren.

1123333 17
1123333 17

Trinn 9. Koble en rød jumper wire fra pin I17 til den første tilgjengelige røde rail pin til høyre for sensoren

Dette vil drive sensoren.

1123333 18
1123333 18

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

Dette vil mate informasjon fra sensoren til mikrokontrolleren.

Del 3 av 6: Koble til strømmen

1123333 19
1123333 19

Trinn 1. Snu roboten på siden slik at du kan se batteriene i pakken

Rett den slik at batteripakken kommer ut til venstre nederst.

1123333 20
1123333 20

Trinn 2. Koble en rød ledning til den andre fjæren fra venstre på bunnen

Kontroller at batteripakken er riktig orientert.

1123333 21
1123333 21

Trinn 3. Koble en svart ledning til den siste fjæren nederst til høyre

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

1123333 22
1123333 22

Trinn 4. Koble de røde og svarte ledningene til de høyre og blå pinnene på høyre side av brødbrettet

Den svarte kabelen skal plugges inn i den blå skinnestiften ved pin 30. Den røde kabelen skal plugges inn i den røde skinnestiften ved pin 30.

1123333 23
1123333 23

Trinn 5. Koble en svart ledning fra GND -pinnen på Arduino til den blå bakre skinnen

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

1123333 24
1123333 24

Trinn 6. Koble en svart ledning fra den blå bakre skinnen til den blå fronten på pin 29 for hver

Ikke koble til de røde skinnene, da du sannsynligvis vil skade Arduino.

1123333 25
1123333 25

Trinn 7. Koble en rød ledning fra den fremre røde skinnen ved pinne 30 til 5V -pinnen på Arduino

Dette vil gi strøm til Arduino.

1123333 26
1123333 26

Trinn 8. Sett trykknappbryteren inn i gapet mellom radene på pinnene 24-26

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

1123333 27
1123333 27

Trinn 9. Koble en rød ledning fra H24 til den røde skinnen i den neste tilgjengelige pinnen til høyre for sensoren

Dette vil slå på knappen.

1123333 28
1123333 28

Trinn 10. Bruk motstanden til å koble H26 til den blå skinnen

Koble den til pinnen rett ved siden av den svarte ledningen du koblet til for noen få skritt siden.

1123333 29
1123333 29

Trinn 11. Koble en hvit ledning fra G26 til pinne 2 på Arduino

Dette vil tillate Arduino å registrere trykknappen.

Del 4 av 6: Installere Arduino -programvaren

1123333 30
1123333 30

Trinn 1. Last ned og pakk ut Arduino IDE

Dette er Arduino utviklingsmiljø og lar deg programmere instruksjoner som du deretter kan laste opp til Arduino mikrokontroller. Du kan laste den ned gratis fra arduino.cc/en/main/software. Pakk ut den nedlastede filen ved å dobbeltklikke på den og flytte mappen til et lett tilgjengelig sted. Du vil faktisk ikke installere programmet. I stedet vil du bare kjøre den fra den ekstraherte mappen ved å dobbeltklikke på arduino.exe.

1123333 31
1123333 31

Trinn 2. Koble batteripakken til Arduino

Koble batterikontakten tilbake til kontakten på Arduino for å gi den strøm.

1123333 32
1123333 32

Trinn 3. Koble Arduino til datamaskinen via USB

Windows vil sannsynligvis ikke gjenkjenne enheten.

1123333 33
1123333 33

Trinn 4. Trykk

⊞ Vinn+R og skriv devmgmt.msc.

Dette vil starte Enhetsbehandling.

1123333 34
1123333 34

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

" Hvis du ikke ser dette alternativet, klikker du "Egenskaper" i stedet, velger "Driver" -fanen og klikker deretter "Oppdater driver".

1123333 35
1123333 35

Trinn 6. Velg "Bla gjennom datamaskinen min etter driverprogramvare

" Dette lar deg velge driveren som fulgte med Arduino IDE.

1123333 36
1123333 36

Trinn 7. Klikk på "Bla gjennom" og naviger til mappen du hentet ut tidligere

Du finner en "drivere" -mappe inne.

1123333 37
1123333 37

Trinn 8. Velg mappen "drivere" og klikk "OK"

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

Del 5 av 6: Programmering av roboten

1123333 38
1123333 38

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

Du blir møtt med et tomt prosjekt.

1123333 39
1123333 39

Trinn 2. Lim inn følgende kode for å få roboten til å gå rett

Koden nedenfor vil få din Arduino til å fortsette fremover.

#include // dette legger til "Servo" -biblioteket i programmet // følgende oppretter to servoobjekter Servo leftMotor; Servo høyre Motor; ugyldig oppsett () {leftMotor.attach (12); // hvis du ved et uhell byttet opp pin -tallene for servoene dine, kan du bytte tallene her til høyre Motor.attach (13); } void loop () {leftMotor.write (180); // med kontinuerlig rotasjon, forteller 180 at servoen skal bevege seg i full hastighet "fremover". høyre motor. skrive (0); // hvis begge disse er på 180, vil roboten gå i en sirkel fordi servoene er vendt. "0" forteller at den skal bevege seg full fart "bakover". }

1123333 40
1123333 40

Trinn 3. Bygg og last opp programmet

Klikk på høyre pilknapp i øvre venstre hjørne for å bygge og laste opp programmet til den tilkoblede Arduino.

Det kan være lurt å løfte roboten av overflaten, da den bare vil fortsette å gå fremover når programmet er lastet opp

1123333 41
1123333 41

Trinn 4. Legg til kill switch -funksjonaliteten

Legg til følgende kode i delen "void loop ()" i koden for å aktivere kill -bryteren, over funksjonene "write ()".

hvis (digitalRead (2) == HIGH) // dette registreres når knappen trykkes på pinne 2 på Arduino {mens (1) {leftMotor.write (90); // "90" er nøytral posisjon for servoene, som forteller dem å slutte å svinge til høyreMotor.write (90); }}

1123333 42
1123333 42

Trinn 5. Last opp og test koden din

Med kill switch -koden lagt til, kan du laste opp og teste roboten. Den skal fortsette å kjøre fremover til du trykker på bryteren, og da vil den slutte å bevege seg. Hele koden skal se slik ut:

#include // følgende oppretter to servoobjekter Servo leftMotor; 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); }

Del 6 av 6: Eksempel

Trinn 1. Følg et eksempel

Følgende kode vil bruke sensoren festet til roboten for å få den til å svinge til venstre når den støter på et hinder. Se kommentarene i koden for detaljer om hva hver del gjør. Koden nedenfor er hele programmet.

#include Servo leftMotor; Servo høyre Motor; const int serialPeriod = 250; // dette begrenser utdata til konsollen til en gang hvert 1/4 sekund usignert long timeSerialDelay = 0; const int loopPeriod = 20; // dette angir hvor ofte sensoren tar en avlesning til 20 ms, som er en frekvens på 50Hz usignert lang tidLoopDelay = 0; // dette tildeler TRIG- og ECHO -funksjonene til pinnene på Arduino. Gjør justeringer på tallene her hvis du koblet annerledes til const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // dette definerer de to mulige tilstandene for roboten: å kjøre fremover eller svinge til venstre #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = kjør fremover (DEFAULT), 1 = sving til venstre tomrom oppsett () {Serial.begin (9600); // disse sensorpinnkonfigurasjonene pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // dette tilordner motorene til Arduino -pinnene leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // dette oppdager drepebryteren {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // dette skriver ut feilsøkingsmeldinger til seriekonsollen hvis (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // dette instruerer sensoren om å lese og lagre de målte avstandene stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // hvis ingen hindringer er oppdaget {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // hvis det ikke er noe foran roboten. ultrasonicDistance vil være negativ for noen ultralyd hvis det ikke er noen hindring {// drive forward rightMotor.write (180); leftMotor.write (0); } annet // hvis det er et objekt foran oss {state = TURN_LEFT; }} annet hvis (state == TURN_LEFT) // hvis det oppdages et hinder, sving til venstre {unsigned long timeToTurnLeft = 500; // det tar rundt. 5 sekunder å snu 90 grader. Du må kanskje justere dette hvis hjulene har en annen størrelse enn eksemplet usignert lang turnStartTime = millis (); // lagre tiden vi begynte å snu mens ((millis ()-turnStartTime) <timeToTurnLeft) // bli i denne sløyfen til timeToTurnLeft har gått {// sving til venstre, husk at når begge er satt til "180" vil den snu. rightMotor.write (180); leftMotor.write (180); } state = DRIVE_FORWARD; }} void readUltrasonicSensors () {// dette er for ultralyd 2. Du må kanskje endre disse kommandoene hvis du bruker en annen sensor. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // holder trig -pinnen høy 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: