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

Indholdsfortegnelse:

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

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

Video: Sådan laver du en robot derhjemme (med billeder)
Video: Danske Minecraft Tutorials - E11 Kort og Kompas (Danish) 2024, Kan
Anonim

Vil du lære at lave din egen robot? Der findes mange forskellige typer robotter, som du selv kan bygge. De fleste mennesker vil se en robot gøre det let at flytte fra punkt A til B. Du kan bygge en robot fuldstændigt af analoge komponenter eller købe et startsæt. At lave din egen robot er en fantastisk måde at lære elektronik og computerprogrammering på.

Trin

Del 1 af 5: Montering af robotten

1123333 1
1123333 1

Trin 1. Saml dine komponenter

For at bygge en grundlæggende robot skal du bruge et par enkle komponenter. Du kan finde de fleste eller alle disse komponenter i din lokale elektronikhobbybutik eller hos nogle online forhandlere. Nogle kits indeholder alle disse komponenter. Denne robot kræver ikke lodning:

  • Arduino Uno (eller anden mikrokontroller)
  • 2 servoer 360 grader
  • 2 hjul matchende servo
  • 1 gratis hjul
  • 1 testbræt (brødbræt eller projektbræt), der ikke er loddet (se efter et testbræt, der har to positive og negative rækker på hver side)
  • 1 nærhedssensor (med fire -polet stik)
  • 1 trykknapkontakt
  • 1 modstand 10kΩ
  • 1 USB A til B kabel
  • 1 sæt skærehoveder, der kan brydes
  • 1 6 x AA batteriholder med 9V DC. Stikkontakt
  • 1 pakke med 22. jumperkabler eller enkelt kabel
  • Isolering frem og tilbage (dobbelt tape) eller limpistol
1123333 2
1123333 2

Trin 2. Drej batterirummet, så dets flade bagside vender opad

Du vil bygge robotlegemet ved hjælp af batterirummet som base.

1123333 3
1123333 3

Trin 3. Arranger to servoer i samme retning i enden af batterirummet

Denne ende er den ende, hvor kablet kommer ud af batteriet. Servoerne skal røre bunden, og rotationsmekanismen for hver servo skal vende ud fra siderne af batterirummet. Det er vigtigt, at disse servoer er placeret korrekt, så hjulene er lige. Kablerne til servoen skal komme ud af bagsiden af batterirummet.

1123333 4
1123333 4

Trin 4. Lim servoerne med din isolering eller lim

Sørg for, at servoen sidder godt fast i batterirummet. Bagsiden af servoen skal flugte med bagsiden af batterirummet.

Nu skulle servoerne optage halvdelen af pladsen bag på batterirummet

1123333 5
1123333 5

Trin 5. Sæt testkortet vinkelret på den resterende plads i batterirummet

Dette testkort vil hænge lidt over forsiden af batterirummet og strække sig til begge sider. Sørg for, at testkortet er stramt, inden du fortsætter. "A" rækken skal være tættest på servoen.

1123333 6
1123333 6

Trin 6. Fastgør Arduino -mikrokontrolleren til toppen af servoen

Hvis du fastgør servoen korrekt, skal der være en flad del af de to servoer, der rører hinanden. Sæt Arduino -kortet fast på dette flade sted, så USB- og Arduino -strømforbindelserne vender nedad (væk fra testkortet). Forsiden af Arduino vil overlappe med testbrættet.

1123333 7
1123333 7

Trin 7. Installer hjulene på servoerne

Tryk hjulene fast på den roterende servomekanisme. Dette kan kræve betydelig kraft, da hjulene er designet til at have huller, der præcist matcher formen på servospidsen.

1123333 8
1123333 8

Trin 8. Installer det frie hjul på bunden af testkortet

Hvis du vender robotten på hovedet, ser du et lille testbræt hænge fra batterirummet. Fastgør det frie hjul til denne hængende del. Brug en kile, hvis det er nødvendigt. Det frie hjul fungerer som forhjulet, som gør det muligt for robotten let at dreje i enhver retning.

Hvis du har købt et sæt, kan det frie hjul have nogle kiler, som du kan bruge til at sikre, at hjulet frit kan røre jorden

Del 2 af 5: Kabelføring af robotten

1123333 9
1123333 9

Trin 1. Skær to 3-benede overskrifter

Du vil bruge dette til at forbinde servoen til testkortet. Skub stifterne ned gennem overskrifterne, så de kommer lige langt ud på begge sider.

1123333 10
1123333 10

Trin 2. Sæt de to overskrifter i stifterne 1-3 og 6-8 i række E på testbrættet

Sørg for, at de er sat fast eller fast.

1123333 11
1123333 11

Trin 3. Tilslut servotråde med headeren med den sorte ledning på venstre side (ben 1 og 6)

Dette forbinder servoen med testkortet. Sørg for, at den venstre servo er forbundet til den venstre header, og den højre servo er forbundet til den højre header.

1123333 12
1123333 12

Trin 4. Tilslut den røde jumperledning fra ben C2 og C7 til den røde skinnestift (positiv)

Sørg for at bruge den røde skinne på bagsiden af testbrættet (tættere på resten af robotlegemet).

1123333 13
1123333 13

Trin 5. Tilslut den sorte jumper wire fra ben B1 og B6 til den blå skinnestift (jord)

Sørg for at bruge den blå skinne på bagsiden af testbrættet. Sæt ikke kablet på den røde skinnestift.

1123333 14
1123333 14

Trin 6. Tilslut de hvide jumperkabler fra ben 12 og 13 på Arduino til A3 og A8

Dette vil gøre det muligt for Arduino at styre servoen og dreje hjulet.

1123333 15
1123333 15

Trin 7. Sæt sensoren på forsiden af testkortet

Sensoren er ikke monteret på den eksterne strømskinne på testkortet, men på de to første rækker af stifter med bogstaver (J). Sørg for at placere den lige i midten med et lige antal tomme stifter på hver side.

1123333 16
1123333 16

Trin 8. Tilslut den sorte jumper wire fra pin I14 til den første blå rail pin til venstre for sensoren

Dette vil jordføle sensoren.

1123333 17
1123333 17

Trin 9. Tilslut den røde jumper wire fra pin I17 til den første røde rail pin til højre for sensoren

Dette giver strøm til sensoren.

1123333 18
1123333 18

Trin 10. Tilslut de hvide jumperwires fra pin I15 til pin 9 på Arduino og fra I16 til pin 8

Dette vil give information fra sensoren til mikrokontrolleren.

Del 3 af 5: Installation af strømkablet

1123333 19
1123333 19

Trin 1. Vend robotten om, så du kan se batterirummet indeni

Arranger batterirummet, så kablet kommer ud af bunden til venstre.

1123333 20
1123333 20

Trin 2. Tilslut den røde ledning med den anden fjeder fra venstre i bunden

Sørg for, at batterirummet er korrekt justeret eller vender i den rigtige retning.

1123333 21
1123333 21

Trin 3. Tilslut den sorte ledning med den sidste fjeder nederst til højre

Disse to ledninger hjælper med at give den rigtige spænding til Arduino.

1123333 22
1123333 22

Trin 4. Tilslut de røde og sorte ledninger til de røde og blå stifter, der er på højre side på bagsiden af testkortet

Den sorte ledning skal gå til den blå skinnestift på ben 30. Den røde ledning skal gå til den røde skinnestift på stift 30.

1123333 23
1123333 23

Trin 5. Tilslut den sorte ledning fra GND -stiften på Arduino til bagsiden af den blå skinne

Tilslut ledningen til pin 28 på den blå skinne.

1123333 24
1123333 24

Trin 6. Tilslut den sorte ledning fra bagsiden af den blå skinne til forsiden af den blå skinne på ben 29 til begge skinner

Tilslut ikke den røde skinne, da du kan beskadige Arduino.

1123333 25
1123333 25

Trin 7. Tilslut den røde ledning fra forsiden af den røde skinne på pin 30 til 5V pin på Arduino

Dette vil give strøm til Arduino.

1123333 26
1123333 26

Trin 8. Sæt trykknapkontakten i mellemrummet mellem benene 24-26

Denne kontakt giver dig mulighed for at slukke robotten uden at skulle slukke for strømmen.

1123333 27
1123333 27

Trin 9. Tilslut den røde ledning fra H24 til den røde skinne på den næste tomme stift til højre for sensoren

Dette giver strøm til knappen.

1123333 28
1123333 28

Trin 10. Brug en modstand til at forbinde H26 til den blå skinne

Slut den til stiften direkte ved siden af den sorte ledning, du lige har tilsluttet i de foregående trin.

1123333 29
1123333 29

Trin 11. Tilslut den hvide ledning fra G26 til pin 2 på Arduino

Dette vil gøre det muligt for Arduino at registrere trykknapper.

Del 4 af 5: Installation af Arduino -softwaren

1123333 30
1123333 30

Trin 1. Download og udpak Arduino IDE

Det er her Arduino er udviklet 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å filen og flytte den mappe, den indeholder, til et let tilgængeligt sted. Du vil faktisk ikke installere programmet, i stedet kører du det bare fra en mappe, der blev ekstraheret ved at dobbeltklikke på arduino.exe.

1123333 31
1123333 31

Trin 2. Tilslut batterirummet til Arduino

Sæt batteriets bagstik i stikket på Arduino for at drive det.

1123333 32
1123333 32

Trin 3. Indsæt Arduino i din computer via USB

Chancerne er, at Windows ikke genkender enheden.

1123333 33
1123333 33

Trin 4. Tryk på

Vind+R og type devmgmt.msc.

Denne kommando åbner Enhedshåndtering.

1123333 34
1123333 34

Trin 5. Højreklik på Ukendt enhed under Andre enheder, og vælg Opdater driversoftware

Hvis du ikke kan se denne mulighed, skal du klikke på Egenskaber, 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 de indbyggede drivere, der fulgte med Arduino IDE.

1123333 36
1123333 36

Trin 7. Klik på Gennemse, og åbn derefter den mappe, du har hentet tidligere

Du finder mappen med drivere i den.

1123333 37
1123333 37

Trin 8. Vælg drivermappen, og klik på OK

Bekræft, at du vil fortsætte, hvis du advares om ukendt software.

Del 5 af 5: Programmering af robotter

1123333 38
1123333 38

Trin 1. Åbn 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 eller indsæt følgende kode for at gøre din robot avanceret

Koden herunder vil holde din Arduino i gang.

#include // dette tilføjer "Servo" -biblioteket til programmet // følgende kommando opretter to servoobjekter Servo leftMotor; Servo højreMotor; tomrumsopsætning () {leftMotor.attach (12); // hvis du ved et uheld byttede pin -numrene til din servo, kan du bytte tallene her rightMotor.attach (13); } void loop () {leftMotor.write (180); // med en 360 graders rotation (kontinuerlig rotation) instruerer tallet 180 servoen til at bevæge sig fremad med fuld hastighed. rightMotor.write (0); // hvis begge værdier er 180, roterer robotten i en cirkel, fordi servoen er omvendt. "0" fortæller robotten at bevæge sig "baglæns" ved fuld hastighed. }

1123333 40
1123333 40

Trin 3. Opret og upload programmet

Klik på højre pileknap i øverste venstre hjørne for at oprette og uploade et program til den tilsluttede Arduino.

Du vil måske løfte robotten fra overfladen, da robotten vil fortsætte med at gå fremad, efter at programmet er uploadet

1123333 41
1123333 41

Trin 4. Tilføj en stopkontaktfunktion (kill switch)

Tilføj følgende kode til sektionen "void loop ()" i din kode for at tilføje en stopkontaktfunktion oven på funktionen "write ()".

hvis (digitalRead (2) == HIGH) // denne kommando kører, når der trykkes på knappen på pin 2 Arduino {mens (1) {leftMotor.write (90); // "90" er den neutrale position for servoen, som fortæller servoen at stoppe med at dreje til højreMotor.write (90); }}

1123333 42
1123333 42

Trin 5. Upload og tjek din kode

Med stopkontaktkoden allerede tilføjet, kan du uploade koden og teste robotten. Robotten skal fortsætte fremad, indtil du trykker på stopkontaktknappen, hvilket får robotten til at stoppe. Den fulde kode vil se sådan ud:

#include // følgende kommando opretter to Servo leftMotor servo -objekter; 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); }

Eksempel

Følgende kode vil bruge sensorer installeret på robotten til at få den til at dreje til venstre, når robotten støder på en forhindring. Se kommentarerne i koden for detaljer om, hvordan du bruger hver del. Koden herunder er hele programmet.

#include Servo leftMotor; Servo højreMotor; const int serialPeriod = 250; // denne kode giver konsolens output -tidsforsinkelse hvert 1/4 sekund (250 ms) usigneret lang timeSerialDelay = 0; const int loopPeriod = 20; // denne kode indstiller sensorlæsningsfrekvensen til 20 ms, hvilket er 50 Hz usigneret long timeLoopDelay = 0; // denne kode tildeler TRIG- og ECHO -funktionerne til benene på Arduino. Juster tallene her, hvis du forbinder dem på en anden måde const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // denne kode definerer to mulige robottilstande: fortsæt fremad eller drej til venstre #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = fortsæt fremad (DEFAULT), 1 = drej til venstre tomrumsopsætning () {Serial.begin (9600); // denne sensor bestemmer pin -konfigurationen pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // dette tildeler motoren til Arduino -benene leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // denne kode registrerer et '' stop '' {mens (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // denne kode udskriver fejlfindingsmeddelelser til den serielle konsol, hvis (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // denne kode instruerer sensoren til at læse og gemme data om den målte afstand stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // hvis der ikke opdages nogen forhindring {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 forhindringer {// drive forward rightMotor.write (180); leftMotor.write (0); } ellers // hvis der er et objekt foran os {tilstand = TURN_LEFT; }} ellers hvis (tilstand == TURN_LEFT) // hvis en forhindring opdages, drej til venstre {unsigned long timeToTurnLeft = 500; // tager cirka 0,5 sekunder at dreje 90 grader. Du skal muligvis justere denne værdi, hvis dine hjul afviger i størrelse fra størrelsen i eksemplet unsigned long turnStartTime = millis (); // behold tilstanden, når robotten begynder at dreje, mens ((millis ()-turnStartTime) <timeToTurnLeft) // behold denne cyklus, indtil timeToTurnLeft (500) er gået {// drej til venstre, husk, at når begge er "180", robotten vil dreje. rightMotor.write (180); leftMotor.write (180); } tilstand = DRIVE_FORWARD; }} void readUltrasonicSensors () {// dette er til ultralyd 2. Du skal muligvis ændre denne kommando, hvis du bruger en anden sensor. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // træk TRIG -stiften højt 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: