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
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
Trin 2. Drej batterirummet, så dets flade bagside vender opad
Du vil bygge robotlegemet ved hjælp af batterirummet som base.
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.
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
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.
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.
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.
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
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.
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.
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.
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).
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.
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.
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.
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.
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.
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
Trin 1. Vend robotten om, så du kan se batterirummet indeni
Arranger batterirummet, så kablet kommer ud af bunden til venstre.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
Trin 2. Tilslut batterirummet til Arduino
Sæt batteriets bagstik i stikket på Arduino for at drive det.
Trin 3. Indsæt Arduino i din computer via USB
Chancerne er, at Windows ikke genkender enheden.
Trin 4. Tryk på
Vind+R og type devmgmt.msc.
Denne kommando åbner Enhedshåndtering.
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.
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.
Trin 7. Klik på Gennemse, og åbn derefter den mappe, du har hentet tidligere
Du finder mappen med drivere i den.
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
Trin 1. Åbn Arduino IDE ved at dobbeltklikke på arduino.exe-filen i IDE-mappen
Du bliver mødt med et tomt projekt.
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. }
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
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); }}
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 (); }}