Vill du lära dig att göra din egen robot? Det finns många olika typer av robotar, som du kan bygga själv. De flesta vill se en robot göra det enkelt att flytta från punkt A till B. Du kan bygga en robot helt från analoga komponenter eller köpa ett startpaket. Att göra din egen robot är ett bra sätt att lära sig elektronik och datorprogrammering.
Steg
Del 1 av 5: Montering av roboten
Steg 1. Montera dina komponenter
För att bygga en grundläggande robot behöver du några enkla komponenter. Du kan hitta de flesta eller alla dessa komponenter i din lokala elektronikhobbybutik eller hos några onlinebutiker. Vissa kit innehåller alla dessa komponenter. Denna robot kräver ingen lödning:
- Arduino Uno (eller annan mikrokontroller)
- 2 servon 360 grader
- 2 hjul matchande servo
- 1 gratis hjul
- 1 testbräda (brödbräda eller projektbräda) som inte har lödts (leta efter en testbräda som har två positiva och negativa rader på varje sida)
- 1 närhetssensor (med fyra stiftskabel)
- 1 tryckknappsbrytare
- 1 motstånd 10kΩ
- 1 USB A till B -kabel
- 1 uppsättning brytbara rubriker
- 1 6 x AA -batterihållare med 9V DC. Eluttag
- 1 förpackning med 22. hopparkablar eller enstaka kabel
- Isolering fram och tillbaka (dubbeltejp) eller limpistol
Steg 2. Vrid batterifacket så att dess platta baksida är vänd uppåt
Du kommer att bygga robotkroppen med batterifacket som bas.
Steg 3. Ordna två servon i samma riktning i slutet av batterifacket
Denna ände är slutet där kabeln kommer ut ur batteriet. Servon ska röra botten och rotationsmekanismen för varje servo ska vara vänd ut från sidorna av batterifacket. Det är viktigt att dessa servon är ordnade korrekt så att hjulen är raka. Kablarna till servon måste komma ut från baksidan av batterifacket.
Steg 4. Limma servon med din isolering eller lim
Se till att servon sitter ordentligt fast i batterifacket. Servos baksida måste vara i linje med baksidan av batterifacket.
Nu ska servon ta upp hälften av utrymmet på baksidan av batterifacket
Steg 5. Fäst testkortet vinkelrätt mot det återstående utrymmet i batterifacket
Denna testbräda hänger något över batterifackets framsida och sträcker sig till båda sidor. Se till att testkortet är tätt 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 korrekt ska det vara en platt del av de två servon som rör vid varandra. Fäst Arduino -kortet på denna platta plats så att USB- och Arduino -strömkontakterna är vända nedåt (bort från testkortet). Arduino -fronten överlappar testbordet.
Steg 7. Montera hjulen på servona
Tryck fast hjulen på den roterande servomekanismen. Detta kan kräva avsevärd kraft eftersom hjulen är utformade för att ha hål som exakt matchar formen på servospetsen.
Steg 8. Installera det fria hjulet på undersidan av testkortet
Om du vänder upp och ner på roboten ser du en liten testtavla som hänger från batterifacket. Fäst fria hjulet på denna hängande del. Använd en kil om det behövs. Det fria hjulet fungerar som framhjulet som gör att roboten lätt kan svänga i alla riktningar.
Om du köpte ett kit kan det fria hjulet ha några kilar som du kan använda för att se till att hjulet är fritt att röra marken
Del 2 av 5: Anslutning av roboten
Steg 1. Skär två 3-stifts rubriker
Du kommer att använda detta för att ansluta servon till testkortet. Tryck ner stiften genom sidhuvudena så att de kommer ut lika långt på båda sidor.
Steg 2. Sätt in de två rubrikerna i stiften 1-3 och 6-8 i rad E på testbrädan
Se till att de sitter ordentligt eller ordentligt.
Steg 3. Anslut servotrådarna med huvudet, med den svarta tråden på vänster sida (stift 1 och 6)
Detta kommer att ansluta servon till testkortet. Se till att vänster servo är ansluten till vänster rubrik, och höger servo är ansluten till höger rubrik.
Steg 4. Anslut den röda bygelkabeln från stift C2 och C7 till den röda rälsstiftet (positivt)
Se till att du använder den röda skenan på testkortets baksida (närmare resten av robotkroppen).
Steg 5. Anslut den svarta bygeln från stift B1 och B6 till den blå rälsstiftet (marken)
Se till att du använder den blå skenan på testbrädets baksida. Fäst inte kabeln på den röda rälsstiftet.
Steg 6. Anslut de vita bygelkablarna från stift 12 och 13 på Arduino till A3 och A8
Detta gör att Arduino kan styra servon och vrida på hjulet.
Steg 7. Fäst sensorn på testkortets framsida
Sensorn är inte monterad på den externa kraftskenan på testkortet, utan på de två första raderna med stift (J). Se till att du placerar den rätt i mitten med lika många tomma stift på varje sida.
Steg 8. Anslut den svarta bygelkabeln från stift I14 till den första blåskenan till vänster om sensorn
Detta kommer att jorda sensorn.
Steg 9. Anslut den röda bygelkabeln från stift I17 till den första röda rälsstiften till höger om sensorn
Detta ger sensorn ström.
Steg 10. Anslut de vita bygelkablarna från stift I15 till stift 9 på Arduino och från I16 till stift 8
Detta kommer att ge information från sensorn till mikrokontrollern.
Del 3 av 5: Installera strömkabeln
Steg 1. Vänd roboten så att du kan se batterifacket inuti
Placera batterifacket så att kabeln kommer ut genom nedre vänstra hörnet.
Steg 2. Anslut den röda tråden med den andra fjädern från vänster längst ner
Se till att batterifacket är rätt inriktat eller riktat åt rätt håll.
Steg 3. Anslut den svarta tråden med den sista fjädern längst ner till höger
Dessa två ledningar hjälper till att ge rätt spänning till Arduino.
Steg 4. Anslut de röda och svarta ledningarna till de röda och blå stiften som finns på höger sida på testbordets baksida
Den svarta tråden ska gå till den blå rälsstiftet på stift 30. Den röda tråden ska gå till den röda rälsstiftet på stift 30.
Steg 5. Anslut den svarta ledningen från GND -stiftet på Arduino till baksidan av den blå skenan
Anslut kabeln till stift 28 på den blå skenan.
Steg 6. Anslut den svarta tråden från baksidan av den blå skenan till den blå skenans framsida på stift 29 för båda skenorna
Anslut inte den röda skenan eftersom du kan skada Arduino.
Steg 7. Anslut den röda tråden från framsidan av den 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 utrymmet mellan stiften 24-26
Denna omkopplare låter dig stänga av roboten utan att behöva stänga av strömmen.
Steg 9. Anslut den röda ledningen från H24 till den röda skenan på nästa tomma stift till höger om sensorn
Detta ger ström till knappen.
Steg 10. Använd ett motstånd för att ansluta H26 till den blå skenan
Anslut den till stiftet direkt bredvid den svarta ledningen du just anslutit i föregående steg.
Steg 11. Anslut den vita ledningen från G26 till stift 2 på Arduino
Detta gör att Arduino kan upptäcka tryckknappar.
Del 4 av 5: Installera Arduino -programvaran
Steg 1. Ladda ner och extrahera Arduino IDE
Det är här Arduino utvecklas 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å filen och flytta mappen som den innehåller till en lättåtkomlig plats. Du kommer faktiskt inte att installera programmet, istället kör du det bara från en mapp som extraherades genom att dubbelklicka på arduino.exe.
Steg 2. Anslut batterifacket till Arduino
Sätt i det bakre uttaget på batteriet i kontakten på Arduino för att driva det.
Steg 3. Sätt in Arduino i din dator via USB
Chansen är stor att Windows inte känner igen enheten.
Steg 4. Tryck på
Vinn+R och typ devmgmt.msc.
Detta kommando öppnar Enhetshanteraren.
Steg 5. Högerklicka på Okänd enhet under Andra enheter och välj Uppdatera drivrutinsprogramvara
Om du inte ser det här alternativet klickar du på Egenskaper, väljer fliken Drivrutin och klickar sedan på Uppdatera drivrutin.
Steg 6. Välj Bläddra i min dator efter drivrutinsprogram
Detta låter dig välja de inbyggda drivrutinerna som följde med Arduino IDE.
Steg 7. Klicka på Bläddra och öppna sedan den mapp du extraherade tidigare
Du hittar drivrutinsmappen i den.
Steg 8. Välj drivrutinsmappen och klicka på OK
Bekräfta att du vill fortsätta om du varnas för okänd programvara.
Del 5 av 5: Programmering av robotar
Steg 1. Öppna 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 eller klistra in följande kod för att göra din robot avancerad
Koden nedan kommer att hålla din Arduino igång.
#include // detta lägger till "Servo" -biblioteket i programmet // följande kommando skapar två servoobjekt Servo leftMotor; Servo högerMotor; void setup () {leftMotor.attach (12); // om du av misstag bytte stiftnumren till din servo kan du byta numren här till högerMotor.attach (13); } void loop () {leftMotor.write (180); // med en 360 graders rotation (kontinuerlig rotation) instruerar siffran 180 servon att gå framåt med full hastighet. rightMotor.write (0); // om båda värdena är 180 roterar roboten i en cirkel eftersom servon är omvänd. "0" säger roboten att gå "bakåt" i full hastighet. }
Steg 3. Skapa och ladda upp programmet
Klicka på högerpilen i det övre vänstra hörnet för att skapa och ladda upp ett program till den anslutna Arduino.
Du kanske vill lyfta roboten från ytan eftersom roboten kommer att fortsätta gå framåt efter att programmet har laddats upp
Steg 4. Lägg till en stoppbrytarfunktion (kill switch)
Lägg till följande kod i avsnittet "void loop ()" i din kod för att lägga till en stoppbrytarfunktion ovanpå funktionen "write ()".
if (digitalRead (2) == HIGH) // detta kommando körs när knappen trycks på stift 2 Arduino {medan (1) {leftMotor.write (90); // "90" är neutralläget för servon, som uppmanar servon att sluta svänga högerMotor.write (90); }}
Steg 5. Ladda upp och kontrollera din kod
Med stoppbrytarkoden redan tillagd kan du ladda upp koden och testa roboten. Roboten ska fortsätta framåt tills du trycker på stoppknappen, vilket gör att roboten stannar. Hela koden kommer att se ut så här:
#include // följande kommando skapar två Servo leftMotor servoobjekt; 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); }
Exempel
Följande kod använder sensorer installerade på roboten för att svänga vänster när roboten stöter på ett hinder. Titta på kommentarerna i koden för detaljer om hur du använder varje del. Koden nedan är hela programmet.
#inkludera Servo leftMotor; Servo högerMotor; const int serialPeriod = 250; // denna kod ger konsolens utmatningstid fördröjning till var 1/4 sekund (250 ms) osignerad long timeSerialDelay = 0; const int loopPeriod = 20; // denna kod ställer in sensoravläsningsfrekvensen till 20 ms, vilket är 50 Hz osignerad long timeLoopDelay = 0; // denna kod tilldelar TRIG- och ECHO -funktionerna till stiften på Arduino. Justera siffrorna här om du ansluter dem på ett annat sätt const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultraljud2Duration; // denna kod definierar två möjliga robottillstånd: fortsätt framåt eller sväng vänster #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = fortsätt framåt (DEFAULT), 1 = sväng vänster tomrumsinställning () {Serial.begin (9600); // denna sensor bestämmer pin -konfigurationen pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // detta tilldelar motorn till Arduino -stiften leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // denna kod detekterar ett '' stopp '' {medan (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // denna kod skriver ut felsökningsmeddelanden till seriekonsolen om (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // denna kod instruerar sensorn att läsa och lagra data om det uppmätta avståndet stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // om inget hinder detekteras {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // om ingenting är framför roboten. ultrasonicDistance kommer att vara negativ för vissa ultraljud om det inte finns några hinder {// kör framåt rightMotor.write (180); leftMotor.write (0); } else // 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; // tar cirka 0,5 sekunder att vända 90 grader. Du kan behöva justera detta värde om dina hjul skiljer sig i storlek från storleken i exemplet unsigned long turnStartTime = millis (); // behåll villkoret när roboten börjar svänga medan ((millis ()-turnStartTime) <timeToTurnLeft) // behåll denna cykel tills timeToTurnLeft (500) har passerat {// sväng vänster, kom ihåg att när båda är "180", roboten kommer 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 detta kommando om du använder en annan sensor. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // dra TRIG -stiftet högt 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 (); }}