Vil du lære at bygge din egen robot? Der er mange forskellige typer robotter, du kan lave selv. De fleste mennesker ønsker at se en robot udføre de enkle opgaver ved at flytte fra punkt A til punkt B. Du kan lave en robot fuldstændigt af analoge komponenter eller købe et startsæt fra bunden! At bygge din egen robot er en fantastisk måde at lære dig selv både elektronik og computerprogrammering.
Trin
Del 1 af 6: Montering af robotten
Trin 1. Saml dine komponenter
For at bygge en grundlæggende robot skal du bruge flere enkle komponenter. Du kan finde de fleste, hvis ikke alle, disse komponenter i din lokale elektronikhobbybutik eller flere online forhandlere. Nogle grundlæggende kits kan også indeholde alle disse komponenter. Denne robot kræver ikke lodning:
- Arduino Uno (eller anden mikrokontroller)
- 2 kontinuerlige rotation servoer
- 2 hjul, der passer til servoerne
- 1 hjul
- 1 lille loddefrit brødbræt (se efter et brødbræt, der har to positive og negative linjer på hver side)
- 1 afstandssensor (med firpins stik)
- 1 mini trykknapkontakt
- 1 10kΩ modstand
- 1 USB A til B kabel
- 1 sæt udbryderhoveder
- 1 6 x AA batteriholder med 9V DC strømstik
- 1 pakke jumperwires eller 22-gauge tilslutningstråd
- Stærk dobbeltsidet tape eller varm lim
Trin 2. Vend batteripakken om, så den flade bagside vender opad
Du bygger robottens krop ved hjælp af batteripakken som base.
Trin 3. Juster de to servoer på enden af batteripakken
Dette bør være den ende, som batteripakkens ledning kommer ud af. Servoerne skal røre bunden, og de roterende mekanismer for hver skal vende ud på siderne af batteripakken. Servoerne skal være korrekt justeret, så hjulene går lige. Ledningerne til servoerne skulle komme fra bagsiden af batteripakken.
Trin 4. Sæt servoerne fast med din tape eller lim
Sørg for, at de er solidt fastgjort til batteripakken. Bagsiden af servoerne skal flugte på linje med bagsiden af batteripakken.
Servoerne skal nu optage den bageste halvdel af batteripakken
Trin 5. Sæt brødbrættet vinkelret på den åbne plads på batteripakken
Den skal hænge lidt over forsiden af batteripakken og strækker sig ud over hver side. Sørg for, at den sidder godt fast, inden du fortsætter. "A" rækken skal være tættest på servoerne.
Trin 6. Fastgør Arduino -mikrokontrolleren til toppen af servoerne
Hvis du har monteret servoerne korrekt, skal der være et fladt mellemrum, der rører ved dem. Stik Arduino -kortet på dette flade rum, så Arduino's USB- og strømstik vender bagud (væk fra brødbrættet). Forsiden af Arduino skal bare næsten ikke overlappe brødbrættet.
Trin 7. Sæt hjulene på servoerne
Tryk hjulene fast på servoens roterende mekanisme. Dette kan kræve en betydelig mængde kraft, da hjulene er designet til at passe så tæt som muligt for den bedste trækkraft.
Trin 8. Fastgør hjulet til bunden af brødbrættet
Hvis du vender chassiset om, skal du se en smule brødbræt strække sig forbi batteripakken. Fastgør hjulet til dette forlængede stykke, brug om nødvendigt stigerør. Hjulet fungerer som forhjulet, så robotten let kan dreje i enhver retning.
Hvis du har købt et sæt, er hjulet muligvis kommet med et par stigerør, som du kan bruge til at sikre, at hjulet når jorden. jeg
Del 2 af 6: Kabelføring af robotten
Trin 1. Afbryd to 3-benede overskrifter
Du vil bruge disse til at forbinde servoerne til brødbrættet. Skub stifterne ned gennem overskriften, så stifterne kommer ud i lige stor afstand på begge sider.
Trin 2. Sæt de to overskrifter i stifterne 1-3 og 6-8 på række E på brødbrættet
Sørg for, at de sidder godt fast.
Trin 3. Tilslut servokablerne til headerne med det sorte kabel på venstre side (ben 1 og 6)
Dette vil forbinde servoer til brødbrættet. Sørg for, at den venstre servo er forbundet til den venstre side og den højre servo til den højre side.
Trin 4. Tilslut røde jumperwires fra ben C2 og C7 til røde (positive) skinnestifter
Sørg for at bruge den røde skinne på bagsiden af brødbrættet (tættere på resten af chassiset).
Trin 5. Tilslut sorte jumperwires fra ben B1 og B6 til blå (jord) skinnestifter
Sørg for, at du bruger den blå skinne på bagsiden af brødbrættet. Sæt dem ikke i de røde skinnestifter.
Trin 6. Tilslut hvide jumper -ledninger fra ben 12 og 13 på Arduino til A3 og A8
Dette vil give Arduino mulighed for at styre servoerne og dreje hjulene.
Trin 7. Sæt sensoren på forsiden af brødbrættet
Den bliver ikke tilsluttet de ydre strømskinner på brødbrættet, men i stedet til den første række med bogstaver (J). Sørg for at placere den i det nøjagtige center, med et lige antal stifter til rådighed på hver side.
Trin 8. Tilslut en sort jumper wire fra pin I14 til den første tilgængelige blå rail pin til venstre for sensoren
Dette vil jordføle sensoren.
Trin 9. Tilslut en rød jumper wire fra pin I17 til den første tilgængelige røde rail pin til højre for sensoren
Dette vil drive sensoren.
Trin 10. Tilslut hvide jumperwires fra pin I15 til pin 9 på Arduino og fra I16 til pin 8
Dette indfører information fra sensoren til mikrokontrolleren.
Del 3 af 6: Tilslutning af strømmen
Trin 1. Vend robotten på siden, så du kan se batterierne i pakken
Orienter det, så batterikablet kommer ud til venstre i bunden.
Trin 2. Tilslut en rød ledning til den anden fjeder fra venstre på bunden
Sørg for, at batteripakken er rettet korrekt.
Trin 3. Tilslut en sort ledning til den sidste fjeder nederst til højre
Disse to kabler hjælper med at give den korrekte spænding til Arduino.
Trin 4. Tilslut de røde og sorte ledninger til de yderste højre og blå stifter på bagsiden af brødbrættet
Det sorte kabel skal sættes i den blå skinnestift ved pin 30. Det røde kabel skal sættes i den røde skinnestift ved pin 30.
Trin 5. Tilslut en sort ledning fra GND -stiften på Arduino til den bageste blå skinne
Tilslut den med pin 28 på den blå skinne.
Trin 6. Tilslut en sort ledning fra den bageste blå skinne til den forreste blå skinne ved ben 29 for hver
Tilslut ikke de røde skinner, da du sandsynligvis vil beskadige Arduino.
Trin 7. Tilslut en rød ledning fra den forreste røde skinne ved pin 30 til 5V pin på Arduino
Dette vil give strøm til Arduino.
Trin 8. Indsæt trykknapkontakten i mellemrummet mellem rækker på ben 24-26
Denne kontakt giver dig mulighed for at slukke for robotten uden at skulle trække stikket ud.
Trin 9. Tilslut en rød ledning fra H24 til den røde skinne i den næste ledige pin til højre for sensoren
Dette vil tænde for knappen.
Trin 10. Brug modstanden til at forbinde H26 til den blå skinne
Slut den til stiften direkte ved siden af den sorte ledning, som du tilsluttede for et par trin siden.
Trin 11. Tilslut en hvid ledning fra G26 til pin 2 på Arduino
Dette gør det muligt for Arduino at registrere trykknappen.
Del 4 af 6: Installation af Arduino -softwaren
Trin 1. Download og udpak Arduino IDE
Dette er Arduino udviklingsmiljø og giver dig mulighed for at programmere instruktioner, som du derefter kan uploade til din Arduino mikrokontroller. Du kan downloade det gratis fra arduino.cc/en/main/software. Pak den downloadede fil ud ved at dobbeltklikke på den, og flyt mappen inde til et sted, der er let tilgængeligt. Du installerer faktisk ikke programmet. I stedet kører du den bare fra den udpakkede mappe ved at dobbeltklikke på arduino.exe.
Trin 2. Tilslut batteripakken til Arduino
Sæt batteristikket tilbage i stikket på Arduino for at give det strøm.
Trin 3. Tilslut Arduino til din computer via USB
Windows genkender sandsynligvis ikke enheden.
Trin 4. Tryk på
⊞ Vind+R og type devmgmt.msc.
Dette vil starte Enhedshåndtering.
Trin 5. Højreklik på "Ukendt enhed" i afsnittet "Andre enheder", og vælg "Opdater driversoftware
" Hvis du ikke kan se denne mulighed, skal du klikke på "Egenskaber" i stedet, vælge fanen "Driver" og derefter klikke på "Opdater driver".
Trin 6. Vælg "Gennemse min computer efter driversoftware
" Dette giver dig mulighed for at vælge den driver, der fulgte med Arduino IDE.
Trin 7. Klik på "Gennemse", og naviger derefter til den mappe, du har udpakket tidligere
Du finder en "drivere" -mappe indeni.
Trin 8. Vælg mappen "drivere", og klik på "OK
" Bekræft, at du vil fortsætte, hvis du advares om ukendt software.
Del 5 af 6: Programmering af robotten
Trin 1. Start Arduino IDE ved at dobbeltklikke på arduino.exe-filen i IDE-mappen
Du bliver mødt med et tomt projekt.
Trin 2. Indsæt følgende kode for at få din robot til at gå lige
Koden herunder får din Arduino til at bevæge sig kontinuerligt.
#include // dette tilføjer "Servo" -biblioteket til programmet // følgende skaber to servoobjekter Servo leftMotor; Servo højreMotor; tomrumsopsætning () {leftMotor.attach (12); // hvis du ved et uheld ændrede pin -numrene til dine servoer, kan du bytte tallene her til højreMotor.attach (13); } void loop () {leftMotor.write (180); // med kontinuerlig rotation fortæller 180 servoen at bevæge sig med fuld hastighed "fremad". højre motor. skrive (0); // hvis begge disse er på 180, vil robotten gå i en cirkel, fordi servoerne er vendt. "0" fortæller den at flytte fuld hastighed "bagud". }
Trin 3. Byg og upload programmet
Klik på højre pileknap i øverste venstre hjørne for at bygge og uploade programmet til den tilsluttede Arduino.
Det kan være en god idé at løfte robotten fra overfladen, da den bare vil fortsætte med at gå fremad, når programmet er uploadet
Trin 4. Tilføj kill switch -funktionaliteten
Tilføj følgende kode til afsnittet "void loop ()" i din kode for at aktivere kill -switch, over funktionerne "write ()".
hvis (digitalRead (2) == HIGH) // dette registreres, når der trykkes på knappen på pin 2 på Arduino {mens (1) {leftMotor.write (90); // "90" er neutral position for servoerne, som fortæller dem at stoppe med at dreje til højreMotor.write (90); }}
Trin 5. Upload og test din kode
Med kill switch -koden tilføjet, kan du uploade og teste robotten. Den skal fortsætte med at køre fremad, indtil du trykker på kontakten, hvorefter den stopper med at bevæge sig. Den fulde kode skal se sådan ud:
#include // følgende opretter to servoobjekter Servo leftMotor; Servo højreMotor; tomrumsopsætning () {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 af 6: Eksempel
Trin 1. Følg et eksempel
Følgende kode vil bruge sensoren, der er knyttet til robotten, til at få den til at dreje til venstre, når den støder på en forhindring. Se kommentarerne i koden for detaljer om, hvad hver del gør. Koden herunder er hele programmet.
#include Servo leftMotor; Servo højreMotor; const int serialPeriod = 250; // dette begrænser output til konsollen til en gang hvert 1/4 sekund usigneret lang timeSerialDelay = 0; const int loopPeriod = 20; // dette angiver, hvor ofte sensoren tager en aflæsning til 20 ms, hvilket er en frekvens på 50Hz usigneret lang timeLoopDelay = 0; // dette tildeler TRIG- og ECHO -funktionerne til benene på Arduino. Foretag justeringer af tallene her, hvis du tilsluttede forskelligt const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // dette definerer de to mulige tilstande for robotten: at køre fremad eller dreje til venstre #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = kør fremad (DEFAULT), 1 = drej til venstre tomrumsopsætning () {Serial.begin (9600); // disse sensor pin konfigurationer pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // dette tildeler motorerne til Arduino -benene leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // dette registrerer kill -kontakten {mens (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // dette udskriver fejlfindingsmeddelelser til den serielle konsol, hvis (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // dette instruerer sensoren i at læse og gemme de målte afstande stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // hvis der ikke er fundet nogen forhindringer {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // hvis der ikke er noget foran robotten. ultrasonicDistance vil være negativ for nogle ultralyd, hvis der ikke er nogen hindring {// køre fremad højreMotor.skrive (180); leftMotor.write (0); } ellers // hvis der er et objekt foran os {state = TURN_LEFT; }} ellers hvis (tilstand == TURN_LEFT) // hvis en forhindring opdages, drej til venstre {unsigned long timeToTurnLeft = 500; // det tager omkring.5 sekunder at dreje 90 grader. Du skal muligvis justere dette, hvis dine hjul har en anden størrelse end eksemplet unsigned long turnStartTime = millis (); // gem den tid, vi begyndte at dreje, mens ((millis ()-turnStartTime) <timeToTurnLeft) // blive i denne sløjfe, indtil timeToTurnLeft er gået {// drej til venstre, husk, at når begge er indstillet til "180", vil den dreje. rightMotor.write (180); leftMotor.write (180); } tilstand = DRIVE_FORWARD; }} void readUltrasonicSensors () {// dette er til ultralyd 2. Du skal muligvis ændre disse kommandoer, hvis du bruger en anden sensor. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // holder trig -pin høj i mindst 10 mikrosekunder digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulsIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // det følgende er til fejlfindingsfejl i konsollen. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}