Sådan bygger du en robot derhjemme (med billeder)

Indholdsfortegnelse:

Sådan bygger du en robot derhjemme (med billeder)
Sådan bygger du en robot derhjemme (med billeder)

Video: Sådan bygger du en robot derhjemme (med billeder)

Video: Sådan bygger du en robot derhjemme (med billeder)
Video: SketchUp Tips and Tricks: Image, Texture, Matched Photo Import Options 2024, Kan
Anonim

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

1123333 1
1123333 1

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
1123333 2
1123333 2

Trin 2. Vend batteripakken om, så den flade bagside vender opad

Du bygger robottens krop ved hjælp af batteripakken som base.

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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.

1123333 7
1123333 7

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.

1123333 8
1123333 8

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

1123333 9
1123333 9

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.

1123333 10
1123333 10

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.

1123333 11
1123333 11

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.

1123333 12
1123333 12

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).

1123333 13
1123333 13

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.

1123333 14
1123333 14

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.

1123333 15
1123333 15

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.

1123333 16
1123333 16

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.

1123333 17
1123333 17

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.

1123333 18
1123333 18

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

1123333 19
1123333 19

Trin 1. Vend robotten på siden, så du kan se batterierne i pakken

Orienter det, så batterikablet kommer ud til venstre i bunden.

1123333 20
1123333 20

Trin 2. Tilslut en rød ledning til den anden fjeder fra venstre på bunden

Sørg for, at batteripakken er rettet korrekt.

1123333 21
1123333 21

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.

1123333 22
1123333 22

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.

1123333 23
1123333 23

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.

1123333 24
1123333 24

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.

1123333 25
1123333 25

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.

1123333 26
1123333 26

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.

1123333 27
1123333 27

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.

1123333 28
1123333 28

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.

1123333 29
1123333 29

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

1123333 30
1123333 30

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.

1123333 31
1123333 31

Trin 2. Tilslut batteripakken til Arduino

Sæt batteristikket tilbage i stikket på Arduino for at give det strøm.

1123333 32
1123333 32

Trin 3. Tilslut Arduino til din computer via USB

Windows genkender sandsynligvis ikke enheden.

1123333 33
1123333 33

Trin 4. Tryk på

⊞ Vind+R og type devmgmt.msc.

Dette vil starte Enhedshåndtering.

1123333 34
1123333 34

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".

1123333 35
1123333 35

Trin 6. Vælg "Gennemse min computer efter driversoftware

" Dette giver dig mulighed for at vælge den driver, der fulgte med Arduino IDE.

1123333 36
1123333 36

Trin 7. Klik på "Gennemse", og naviger derefter til den mappe, du har udpakket tidligere

Du finder en "drivere" -mappe indeni.

1123333 37
1123333 37

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

1123333 38
1123333 38

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

Du bliver mødt med et tomt projekt.

1123333 39
1123333 39

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". }

1123333 40
1123333 40

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

1123333 41
1123333 41

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); }}

1123333 42
1123333 42

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 (); }}

Anbefalede: