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
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
Trinn 2. Snu batteripakken slik at den flate baksiden vender opp
Du skal bygge robotens kropp ved å bruke batteripakken som base.
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.
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
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.
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.
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.
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
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.
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.
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.
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).
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.
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.
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.
Trinn 8. Koble en svart startkabel fra pin I14 til den første tilgjengelige blå skinnestiften til venstre på sensoren
Dette vil jordet sensoren.
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.
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
Trinn 1. Snu roboten på siden slik at du kan se batteriene i pakken
Rett den slik at batteripakken kommer ut til venstre nederst.
Trinn 2. Koble en rød ledning til den andre fjæren fra venstre på bunnen
Kontroller at batteripakken er riktig orientert.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
Trinn 2. Koble batteripakken til Arduino
Koble batterikontakten tilbake til kontakten på Arduino for å gi den strøm.
Trinn 3. Koble Arduino til datamaskinen via USB
Windows vil sannsynligvis ikke gjenkjenne enheten.
Trinn 4. Trykk
⊞ Vinn+R og skriv devmgmt.msc.
Dette vil starte Enhetsbehandling.
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".
Trinn 6. Velg "Bla gjennom datamaskinen min etter driverprogramvare
" Dette lar deg velge driveren som fulgte med Arduino IDE.
Trinn 7. Klikk på "Bla gjennom" og naviger til mappen du hentet ut tidligere
Du finner en "drivere" -mappe inne.
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
Trinn 1. Start Arduino IDE ved å dobbeltklikke på arduino.exe-filen i IDE-mappen
Du blir møtt med et tomt prosjekt.
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". }
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
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); }}
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 (); }}