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
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
Trinn 2. Vri batterirommet slik at den flate baksiden vender opp
Du vil bygge robotkroppen ved å bruke batterirommet som base.
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.
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
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.
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.
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.
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
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.
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.
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.
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).
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.
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.
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.
Trinn 8. Koble den svarte startkabelen fra pin I14 til den første blå skinnestiften til venstre på sensoren
Dette vil jordet sensoren.
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.
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
Trinn 1. Snu roboten slik at du kan se batterirommet inni
Plasser batterirommet slik at kabelen kommer ut nederst til venstre.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
Trinn 2. Koble batterirommet til Arduino
Sett den bakre kontakten på batteriet inn i kontakten på Arduino for å drive det.
Trinn 3. Sett Arduino inn i datamaskinen via USB
Sjansen er stor for at Windows ikke gjenkjenner enheten.
Trinn 4. Trykk
Vinn+R. og skriv devmgmt.msc.
Denne kommandoen åpner Enhetsbehandling.
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.
Trinn 6. Velg Bla gjennom datamaskinen min etter driverprogramvare
Dette lar deg velge de innebygde driverne som fulgte med Arduino IDE.
Trinn 7. Klikk på Bla gjennom, og åpne deretter mappen du hentet ut tidligere
Du finner drivermappen i den.
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
Trinn 1. Åpne Arduino IDE ved å dobbeltklikke på arduino.exe-filen i IDE-mappen
Du vil bli møtt med et tomt prosjekt.
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. }
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
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); }}
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 (); }}