Vill du lära dig att bygga din egen robot? Det finns många olika typer av robotar som du kan göra själv. De flesta vill se en robot utföra de enkla uppgifterna att flytta från punkt A till punkt B. Du kan göra en robot helt från analoga komponenter eller köpa ett startpaket från början! Att bygga din egen robot är ett bra sätt att lära dig både elektronik och datorprogrammering.
Steg
Del 1 av 6: Montering av roboten
Steg 1. Samla dina komponenter
För att bygga en grundläggande robot behöver du flera enkla komponenter. Du hittar de flesta, om inte alla, av dessa komponenter hos din lokala elektronikhobbybutik eller flera onlinebutiker. Vissa grundläggande kit kan också innehålla alla dessa komponenter. Denna robot kräver ingen lödning:
- Arduino Uno (eller annan mikrokontroller)
- 2 servon för kontinuerlig rotation
- 2 hjul som passar servon
- 1 hjulrulle
- 1 liten lödfri brödbräda (leta efter en brödbräda som har två positiva och negativa linjer på varje sida)
- 1 distanssensor (med fyra-polig anslutningskabel)
- 1 mini tryckknapp
- 1 10kΩ motstånd
- 1 USB A till B -kabel
- 1 uppsättning utbrytningsrubriker
- 1 6 x AA -batterihållare med 9V DC -uttag
- 1 paket bygeltrådar eller 22-gauge-anslutningstråd
- Stark dubbelsidig tejp eller varmt lim
Steg 2. Vänd på batteriet så att den platta baksidan är uppåt
Du kommer att bygga robotens kropp med hjälp av batteriet som bas.
Steg 3. Rikta in de två servona i slutet av batteripaketet
Detta bör vara slutet som batteripaketets ledning kommer ut ur. Servoerna ska vidröra bottnarna och var och en av roterande mekanismer ska vända utåt på batteripaketet. Servon måste vara rätt inriktade så att hjulen går rakt. Kablarna till servon bör komma från baksidan av batteripaketet.
Steg 4. Fäst servon med tejp eller lim
Se till att de sitter ordentligt på batteriet. Servos baksida ska vara i linje med baksidan av batteripaketet.
Servon ska nu ta upp den bakre halvan av batteripaketet
Steg 5. Fäst brödbrädan vinkelrätt på det öppna utrymmet på batteripaketet
Det ska bara hänga över batteripackets framsida och sträcka sig utöver varje sida. Se till att den sitter ordentligt fast innan du fortsätter. "A" -raden ska vara närmast servon.
Steg 6. Fäst Arduino -mikrokontrollern på ovansidan av servon
Om du fäster servon ordentligt bör det finnas ett plant utrymme som görs genom att de rör vid varandra. Sätt fast Arduino -kortet på det här platta utrymmet så att Arduinos USB- och strömkontakter är vända bakåt (bort från brödbrädan). Framsidan av Arduino ska knappt överlappa brödbrädet.
Steg 7. Sätt hjulen på servona
Tryck fast hjulen på servomotorns roterande mekanism. Detta kan kräva en betydande kraft, eftersom hjulen är utformade för att passa så tätt som möjligt för bästa dragkraft.
Steg 8. Fäst hjulet på botten av brödbrädan
Om du vänder på chassit bör du se lite brödbräda som sträcker sig förbi batteripaketet. Fäst hjulet på detta förlängda stycke, använd vid behov stigerör. Hjulet fungerar som framhjulet, så att roboten lätt kan svänga åt alla håll.
Om du köpte ett kit kan det hända att caster har kommit med några stigerör som du kan använda för att se till att caster når marken. i
Del 2 av 6: Anslutning av roboten
Steg 1. Bryt av två 3-stifts rubriker
Du kommer att använda dessa för att ansluta servon till brödbrädan. Tryck ner tapparna genom rubriken så att tapparna kommer ut på lika avstånd på båda sidor.
Steg 2. Sätt in de två rubrikerna i stift 1-3 och 6-8 på rad E på brödbrädet
Se till att de sitter ordentligt.
Steg 3. Anslut servokablarna till sidhuvudena med den svarta kabeln på vänster sida (stift 1 och 6)
Detta kommer att ansluta servon till brödbrädan. Se till att vänster servo är ansluten till vänster rubrik och höger servo till höger rubrik.
Steg 4. Anslut röda bygelkablar från stift C2 och C7 till röda (positiva) skenor
Se till att du använder den röda skenan på baksidan av brödbrädan (närmare resten av chassit).
Steg 5. Anslut svarta bygelkablar från stift B1 och B6 till blå (mark) skenor
Se till att du använder den blå skenan på baksidan av brödbrädan. Anslut inte dem till de röda skenorna.
Steg 6. Anslut vita bygelkablar från stift 12 och 13 på Arduino till A3 och A8
Detta gör att Arduino kan styra servon och vrida hjulen.
Steg 7. Fäst sensorn på framsidan av brödbrädan
Den ansluts inte till de yttre kraftskenorna på brödbrädet, utan istället till den första raden med bokstäver (J). Se till att du placerar den i exakt mitt, med lika många stift tillgängliga på varje sida.
Steg 8. Anslut en svart bygelkabel från stift I14 till den första tillgängliga blå rälsstiftet till vänster om sensorn
Detta kommer att jorda sensorn.
Steg 9. Anslut en röd bygelkabel från stift I17 till den första tillgängliga röda rälsstiftet till höger om sensorn
Detta kommer att driva sensorn.
Steg 10. Anslut vita bygelkablar från stift I15 till stift 9 på Arduino och från I16 till stift 8
Detta kommer att mata information från sensorn till mikrokontrollern.
Del 3 av 6: Anslutning av ström
Steg 1. Vänd roboten på sidan så att du kan se batterierna i förpackningen
Rikta in den så att batterikabeln kommer ut till vänster längst ner.
Steg 2. Anslut en röd tråd till den andra fjädern från vänster på undersidan
Se till att batteriet är rätt riktat.
Steg 3. Anslut en svart kabel till den sista fjädern längst ned till höger
Dessa två kablar hjälper till att ge rätt spänning till Arduino.
Steg 4. Anslut de röda och svarta trådarna till de längst till höger röda och blå stiften på baksidan av brödbrädan
Den svarta kabeln ska anslutas till den blå rälsstiftet vid stift 30. Den röda kabeln ska anslutas till den röda rälsstiftet vid stift 30.
Steg 5. Anslut en svart kabel från GND -stiftet på Arduino till den blå bakre skenan
Anslut den med stift 28 på den blå skenan.
Steg 6. Anslut en svart tråd från den blå bakre skenan till den främre blåskenan vid stift 29 för varje
Anslut inte de röda skenorna, eftersom du sannolikt kommer att skada Arduino.
Steg 7. Anslut en röd tråd från den främre röda skenan på stift 30 till 5V -stiftet på Arduino
Detta kommer att ge ström till Arduino.
Steg 8. Sätt in tryckknappen i springan mellan raderna på stiften 24-26
Denna omkopplare låter dig stänga av roboten utan att behöva dra ut strömmen.
Steg 9. Anslut en röd tråd från H24 till den röda skenan i nästa tillgängliga stift till höger om sensorn
Detta kommer att slå på knappen.
Steg 10. Använd motståndet för att ansluta H26 till den blå skenan
Anslut den till stiftet direkt bredvid den svarta ledningen som du kopplade för några steg sedan.
Steg 11. Anslut en vit ledning från G26 till stift 2 på Arduino
Detta gör att Arduino kan registrera tryckknappen.
Del 4 av 6: Installera Arduino -programvaran
Steg 1. Ladda ner och extrahera Arduino IDE
Detta är Arduino -utvecklingsmiljön och låter dig programmera instruktioner som du sedan kan ladda upp till din Arduino -mikrokontroller. Du kan ladda ner den gratis från arduino.cc/en/main/software. Packa upp den nedladdade filen genom att dubbelklicka på den och flytta mappen in till en lättåtkomlig plats. Du kommer faktiskt inte att installera programmet. Istället kör du den bara från den extraherade mappen genom att dubbelklicka på arduino.exe.
Steg 2. Anslut batteripaketet till Arduino
Anslut batteribacken i kontakten på Arduino för att ge den ström.
Steg 3. Anslut Arduino till din dator via USB
Windows kommer troligen inte att känna igen enheten.
Steg 4. Tryck på
⊞ Vinn+R och typ devmgmt.msc.
Detta kommer att starta Enhetshanteraren.
Steg 5. Högerklicka på "Okänd enhet" i avsnittet "Andra enheter" och välj "Uppdatera drivrutinsprogramvara
" Om du inte ser det här alternativet klickar du istället på "Egenskaper", väljer fliken "Drivrutin" och klickar sedan på "Uppdatera drivrutin".
Steg 6. Välj "Bläddra i min dator efter drivrutinsprogramvara
" Detta låter dig välja drivrutinen som följde med Arduino IDE.
Steg 7. Klicka på "Bläddra" och navigera sedan till den mapp som du extraherade tidigare
Du hittar en "drivrutiner" -mapp inuti.
Steg 8. Välj mappen "drivrutiner" och klicka på "OK"
" Bekräfta att du vill fortsätta om du varnas för okänd programvara.
Del 5 av 6: Programmering av roboten
Steg 1. Starta Arduino IDE genom att dubbelklicka på arduino.exe-filen i IDE-mappen
Du kommer att hälsas med ett tomt projekt.
Steg 2. Klistra in följande kod för att få din robot att gå rak
Koden nedan gör att din Arduino kontinuerligt går framåt.
#include // detta lägger till "Servo" -biblioteket i programmet // följande skapar två servoobjekt Servo leftMotor; Servo högerMotor; void setup () {leftMotor.attach (12); // om du av misstag bytte till pin -numren för dina servon kan du byta numren här till högerMotor.attach (13); } void loop () {leftMotor.write (180); // med kontinuerlig rotation berättar 180 att servon ska röra sig i full hastighet "framåt". högermotor. skriva (0); // om båda dessa är på 180, kommer roboten att gå i en cirkel eftersom servon vänds. "0" säger att den ska flytta full hastighet "bakåt". }
Steg 3. Bygg och ladda upp programmet
Klicka på högerpilen i det övre vänstra hörnet för att bygga och ladda upp programmet till den anslutna Arduino.
Du kanske vill lyfta bort roboten från ytan, eftersom den bara kommer att fortsätta framåt när programmet laddas upp
Steg 4. Lägg till kill switch -funktionen
Lägg till följande kod i avsnittet "void loop ()" i din kod för att aktivera kill -omkopplaren ovanför "write ()" -funktionerna.
if (digitalRead (2) == HIGH) // detta registreras när knappen trycks på stift 2 på Arduino {while (1) {leftMotor.write (90); // "90" är neutralläge för servon, som säger åt dem att sluta svänga högerMotor.write (90); }}
Steg 5. Ladda upp och testa din kod
Med kill switch -koden tillagd kan du ladda upp och testa roboten. Den ska fortsätta att köra fram tills du trycker på strömbrytaren, då slutar den att röra sig. Hela koden ska se ut så här:
#include // följande skapar två servoobjekt Servo leftMotor; Servo högerMotor; void setup () {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 av 6: Exempel
Steg 1. Följ ett exempel
Följande kod använder sensorn som är kopplad till roboten för att få den att svänga till vänster när den stöter på ett hinder. Se kommentarerna i koden för detaljer om vad varje del gör. Koden nedan är hela programmet.
#inkludera Servo leftMotor; Servo högerMotor; const int serialPeriod = 250; // detta begränsar utmatningen till konsolen till en gång var 1/4 sekund osignerad long timeSerialDelay = 0; const int loopPeriod = 20; // detta anger hur ofta sensorn tar en avläsning till 20 ms, vilket är en frekvens på 50Hz osignerad long timeLoopDelay = 0; // detta tilldelar TRIG- och ECHO -funktionerna till stiften på Arduino. Justera siffrorna här om du anslöt annorlunda const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultraljud2Duration; // detta definierar de två möjliga tillstånden för roboten: kör framåt eller sväng vänster #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = kör framåt (DEFAULT), 1 = sväng vänster tomrumsinställning () {Serial.begin (9600); // dessa sensorstiftkonfigurationer pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // detta tilldelar motorerna till Arduino -stiften leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // detekterar dödsbrytaren {medan (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // detta skriver ut felsökningsmeddelanden till seriekonsolen om (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // detta instruerar sensorn att läsa och lagra de uppmätta avstånden stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // om inga hinder detekterats {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // om det inte finns något framför roboten. ultrasonicDistance kommer att vara negativ för vissa ultraljud om det inte finns något hinder {// kör framåt rightMotor.write (180); leftMotor.write (0); } annat // om det finns ett objekt framför oss {state = TURN_LEFT; }} annars om (state == TURN_LEFT) // om ett hinder upptäcks, sväng vänster {unsigned long timeToTurnLeft = 500; // Det tar cirka 0,5 sekunder att vända 90 grader. Du kan behöva justera detta om dina hjul har en annan storlek än exemplet osignerad lång turnStartTime = millis (); // spara den tid som vi började svänga medan ((millis ()-turnStartTime) <timeToTurnLeft) // stanna i den här slingan tills timeToTurnLeft har gått {// sväng vänster, kom ihåg att när båda är inställda på "180" kommer det att vända. rightMotor.write (180); leftMotor.write (180); } tillstånd = DRIVE_FORWARD; }} void readUltrasonicSensors () {// detta är för ultraljud 2. Du kan behöva ändra dessa kommandon om du använder en annan sensor. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // håller trigpinnen hög i minst 10 mikrosekunder digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulsIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; } // följande gäller felsökningsfel i konsolen. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}