Hur man bygger en robot hemma
Vill du lära dig hur du bygger 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 startkit från början! Att bygga din egen robot är ett utmärkt sätt att lära dig både elektronik såväl som datorprogrammering.
Steg
Del 1 av 6:
Montering av roboten1. Samla dina komponenter. För att bygga en grundläggande robot behöver du flera enkla komponenter. Du kan hitta de flesta, om inte alla, av dessa komponenter på din lokala elektronikhobbybutik eller flera online-återförsäljare. Vissa grundläggande kit kan också innehålla alla dessa komponenter. Denna robot kräver ingen lödning:
- Arduino Uno (eller annan mikrokontroller)
- 2 kontinuerliga rotationsservos
- 2 hjul som passar servosen
- 1 Caster Roller
- 1 liten lödfri brödbräda (leta efter en brödbräda som har två positiva och negativa linjer på varje sida)
- 1 Avståndssensor (med fyrstiftig anslutningskabel)
- 1 mini push-button switch
- 1 10kΩ motstånd
- 1 USB A till B-kabel
- 1 uppsättning av breakaway-rubriker
- 1 6 x AA Batterihållare med 9V DC Power Jack
- 1 pack av jumperkablar eller 22-gauge anslutningstråd
- Starkt dubbelsidigt tejp eller varmt lim
2. Vänd batteriet över så att den platta baksidan är vänd uppåt. Du kommer att bygga robotens kropp med batteriet som en bas.
3. Justera de två servosna i slutet av batteriet. Detta bör vara slutet att batteripaketets tråd kommer ut ur servosen bör röra botten, och de roterande mekanismerna för varje bör vända ut sidorna på batteriet. Servorna måste vara ordentligt inriktade så att hjulen går rakt. Ledningarna för servosen ska komma från baksidan av batteriet.
4. Fäst servosen med ditt band eller lim. Se till att de är fasta fast på batteriet. Servos baksida ska vara inriktad på med baksidan av batteriet.
5. Fäst brödbrädet vinkelrätt på det öppna utrymmet på batteriet. Det borde hänga över batteripaketets framsida bara lite och kommer att sträcka sig utöver varje sida. Se till att den är ordentligt fastsatt innan du fortsätter. De "A" rad bör vara närmast servosen.
6. Fäst arduino mikrokontroller till servos toppar. Om du bifogade servosen ordentligt, det borde finnas ett plattutrymme som görs av dem som rör. Stick The Arduino Board på detta platta utrymme så att Arduino`s USB och Power Connectors står inför baksidan (bort från breadboard). Arduinoens framsida bör bara knappt överlappa brädan.
7. Sätt hjulen på servosen. Tryck fast på hjulen på servos roterande mekanism. Detta kan kräva en betydande mängd kraft, eftersom hjulen är utformade för att passa så tätt som möjligt för den bästa dragkraften.
8. Fäst caster till botten av breadboard. Om du vrider chassit över, bör du se lite brödbräda som sträcker sig förbi batteriet. Fäst caster till det här utökade stycket, med hjälp av stigare om det behövs. Caster verkar som framhjulet, så att roboten lätt kan vända sig i någon riktning.
Del 2 av 6:
Ledning av roboten1. Bryt av två 3-stifts rubriker. Du kommer att använda dessa för att ansluta servos till breadboard. Tryck på stiften ner genom rubriken så att stiften kommer ut på lika avstånd på båda sidor.
2. Sätt i de två rubrikerna i stiften 1-3 och 6-8 på rad E på brödbrädet. Se till att de är ordentligt införda.
3. Anslut servokablarna till rubrikerna, med den svarta kabeln på vänster sida (stift 1 och 6). Detta kommer att ansluta servos till breadboard. Se till att vänster servo är ansluten till vänster rubrik och rätt servo till höger rubrik.
4. Anslut röda jumperkablar från stiften C2 och C7 till röda (positiva) skenpinnar. Se till att du använder den röda skenan på baksidan av brödbrädan (närmare resten av chassit).
5. Anslut Black Jumper Wires från PINS B1 och B6 till Blå (Jord) Rail Pins. Se till att du använder den blå skenan på baksidan av brödbrädet. Anslut inte dem i de röda järnvägarna.
6. Anslut White Jumper Wires från stift 12 och 13 på Arduino till A3 och A8. Detta gör det möjligt för Arduino att styra servosna och vrida hjulen.
7. Fäst sensorn på framsidan av breadboard. Det blir inte ansluten till de yttre strömskenorna på brödbrädet, men istället i den första raden av bokstäver (j). Se till att du placerar den i det exakta centrumet, med lika många stift som är tillgängliga på varje sida.
8. Anslut en svart jumper tråd från PIN I14 till den första tillgängliga blå skenan till vänster om sensorn. Detta kommer att malna sensorn.
9. Anslut en röd jumper tråd från PIN I17 till den första tillgängliga Röda järnvägsstiftet till höger om sensorn. Detta kommer att driva sensorn.
10. Anslut White Jumper Wires från PIN I15 till stift 9 på Arduino, och från I16 till Pin 8. Detta kommer att mata information från sensorn till mikrokontrollern.
Del 3 av 6:
Leder kraften1. Vänd roboten på sin sida så att du kan se batterierna i förpackningen. Orientera det så att batteripaketet kommer ut till vänster längst ner.
2. Anslut en röd tråd till den andra våren från vänster på botten. Se till att batteriet är orienterat korrekt.
3. Anslut en svart tråd till den sista fjädern på botten höger. Dessa två kablar hjälper till att ge den korrekta spänningen till Arduino.
4. Anslut de röda och svarta ledningarna till de högra röda och blåa stiften på baksidan av breadboard. Den svarta kabeln ska anslutas till den blå skenans stift vid stift 30. Den röda kabeln ska anslutas till den röda skenans stift vid stift 30.
5. Anslut en svart tråd från GND-stiftet på arduino till den bakre blåen. Anslut den till stift 28 på den blå skenan.
6. Anslut en svart tråd från den bakre blåskenan till den främre blåskenan vid stift 29 för var och en. Do inte Anslut de röda skenorna, eftersom du sannolikt kommer att skada Arduino.
7. Anslut en röd tråd från främre Röd skena vid stift 30 till 5V-stiftet på arduino. Detta kommer att ge makt till Arduino.
8. Sätt in tryckknappsomkopplaren i gapet mellan rader på stiften 24-26. Den här omkopplaren kan du stänga av roboten utan att behöva koppla ur strömmen.
9. Anslut en röd tråd från H24 till den röda skenan i nästa lediga stift till höger om sensorn. Detta kommer att strömma på knappen.
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 anslutit några steg sedan.
11. Anslut en vit tråd från G26 till PIN 2 på Arduino. Detta gör det möjligt för Arduino att registrera tryckknappen.
Del 4 av 6:
Installera Arduino-programvaran1. Hämta och extrahera Arduino IDE. Detta är Arduino-utvecklingsmiljön och låter dig hitta instruktioner som du kan ladda upp till din Arduino Microcontroller. Du kan ladda ner det gratis från arduino.CC / EN / MAIN / SOFTWARE. Unzip den nedladdade filen genom att dubbelklicka på den och flytta mappen inuti till en lättillgänglig plats. Du kommer inte att installera programmet. I stället kommer du bara att köra den från den extraherade mappen genom att dubbelklicka arduino.exe.
2. Anslut batteriet till Arduino. Anslut batteriet tillbaka till kontakten på Arduino för att ge den effekt.
3. Anslut Arduino till din dator via USB. Windows kommer sannolikt inte att känna igen enheten.
4. Tryck . ⊞ vinna+R och typ devmgmt.msc. Detta startar enhetshanteraren.
5. Högerklicka på "Okänd enhet" i "Andra enheter" avsnitt och välj "Uppdatera drivrutinsprogram." Om du inte ser det här alternativet, klicka på "Egenskaper" välj istället "Förare" fliken och klicka sedan på "Uppdatera drivrutinen."
6. Välj "Bläddra i den här datorn för drivrutinsprogram." Detta gör att du kan välja föraren som följde med Arduino IDE.
7. Klick "Bläddra" Navigera sedan till den mapp som du extraherade tidigare. Du hittar a "förare" mapp inuti.
8. Välj "förare" mapp och klicka "OK." Bekräfta att du vill fortsätta om du varnas om okänd programvara.
Del 5 av 6:
Programmering av roboten1. Starta Arduino IDE genom att dubbelklicka på arduino.exe Fil i IDE-mappen. Du kommer att hälsas med ett tomt projekt.
2. Klistra in följande kod för att få din robot att gå rakt. Koden nedan kommer att göra din Arduino kontinuerligt framåt.
#include // Detta lägger till "Servo" Bibliotek till programmet // följande skapar två servoobjektservo vänstermotor-servo rightmotor-void setup () {vänstermotor.Fäst (12) - // Om du av misstag bytte upp PIN-nummer för dina servos, kan du byta numren HererightMotor.Bifoga (13) -} Void Loop () {vänstermotor.Skriv (180) - // Med kontinuerlig rotation, 180 berättar servoen att flytta i full fart "fram-."rättmotor. Skriv (0) - // Om båda dessa är 180, kommer roboten att gå i en cirkel eftersom servorna vänds. "0," berättar att det ska flytta full fart "bakåt."}
3. Bygga och ladda upp programmet. Klicka på högerpilknappen i det övre vänstra hörnet för att bygga och ladda upp programmet till den anslutna arduino.
4. Lägg till Kill Switch-funktionaliteten. Lägg till följande kod till "Void Loop ()" Sektion av din kod för att aktivera dödsbrytaren ovanför "skriva()" funktioner.
Om (digitalread (2) == hög) // dessa register när knappen trycks på PIN 2 i Arduino {medan (1) {vänstermotor.Skriv (90) - // "90" är neutral position för servos, som berättar att de ska sluta vrida sig.Skriv (90) -}}
5. Ladda upp och testa din kod. Med den tillagt killknappen kan du ladda upp och testa roboten. Det bör fortsätta att köra framåt tills du trycker på strömbrytaren, vid vilken tidpunkt det kommer att sluta flytta. Den fullständiga koden ska se ut så här:
#include // följande skapar två servoobjektservo vänstermotor-servo rightmotor-void setup () {vänstermotor.Fäst (12) -rightmotor.Bifoga (13) -} Void Loop () {IF (DIGITALREAD (2) == hög) {medan (1) {vänstermotor.Skriv (90) -RIGHTMOTOR.Skriv (90) -}} vänstermotor.Skriv (180) -RIGHTMOTOR.Skriv (0) -}
Del 6 av 6:
Exempel1. Följ ett exempel. Följande kod kommer att använda sensorn som är ansluten till roboten för att få den till vänster när den möter ett hinder. Se kommentarerna i koden för detaljer om vad varje del gör. Koden nedan är hela programmet.
#Ilclude servo leftmotor-servo rightmotor-const int Serialperiod = 250 - // Denna gränser utmatas till konsolen till en gång var 1/4 sekundersignerad långtidererialDelay = 0-const int loopperiod = 20 - // Detta ställer hur ofta sensorn tar en läser till 20ms, vilket är en frekvens av 50hzunsigned Long TimeLoopDelay = 0 - // Detta tilldelar trig- och ekofunktionerna till stiften på Arduino. Gör justeringar till siffrorna här om du anslutit DIFFERNLYCONST INT Ultrasonic2Trigpin = 8-const int Ultrasonic2echopin = 9-int Ultraljud2Distance-int Ultraljud2Duration - // Detta definierar de två möjliga staterna för roboten: Kör framåt eller vrid till vänster # Defin_Left1int State = Drive_Forward- // 0 = Drive framåt (standard), 1 = sväng vänster uppställning () {seriell.Börja (9600) - // Denna sensorstift ConfigurationSpinMode (Ultrasonic2Trigpin, Output) -pinmode (Ultrasonic2echopin, Input) - // Detta tilldelar motorerna till Arduino Pinsleftmotor.Fäst (12) -rightmotor.Fäst (13) -} Void Loop () {IF (DigitalRead (2) == High) // Detta detekterar dödsbrytaren {medan (1) {vänstermotor.Skriv (90) -RIGHTMOTOR.Skriv (90) -}} Debugoutput () - // Detta skriver ut felsökningsmeddelanden till seriekonsoleif (Millis () - TimeLoopDelay >= LoopPeriod) {Readultrasonicsensors () - // Detta instruerar sensorn att läsa och lagra den uppmätta distansstatemaskinen () - TimeLoopDelay = Millis () -}} void Statemachine () {If (State == Drive_Forward) // Om inga hinder upptäcks {IF (Ultrasonic2Distance > 6 || Ultrasonic2Distance < 0) // om det inte finns något framför roboten. ultraljuddistans kommer att vara negativ för några ultraljud om det inte finns något hinder {// kör framåtriktadmotor.Skriv (180) -Leftmotor.Skriv (0) -} annars // om det finns ett föremål framför oss {state = turn_left -}} annars om (tillstånd == Turn_left) // om ett hinder detekteras, sväng vänster {unsigned Long TimetoTurnLeft = 500- / / det tar runt .5 sekunder att vrida 90 grader. Du kan behöva justera detta om dina hjul är en annan storlek än den exempel < TimeToTurnleft) // Stanna i den här slingan tills TimeToTurnLeft har förflutit {// sväng vänster, kom ihåg att när båda är inställda på "180" det kommer att vända sig.rättmotor.Skriv (180) -Leftmotor.Skriv (180) -} State = 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) -Delaymicrosekunder (10) - // håller trigstiftet hög för minst 10 mikrosekondsdigitalwrite (ultraljud2trigpin, låg) -ultrasonic2duration = pulsein (ultraljud2ekopin, hög) -ultrasonic2distans = (ultraljud2drift / 2) / 29-} // Följande är för felsökning av fel i konsolen.void debugoutput () {IF ((Millis () - TimeseRialDelay) > Serialperiod) {Serial.skriva ut("Ultrasonic2Distance: ")-Serie.Skriv ut (Ultrasonic2Distance) -Serial.skriva ut("centimeter")-Serie.Println () - TimeseRialDelay = Millis () -}}
Video
Genom att använda den här tjänsten kan viss information delas med YouTube.
Tips
Dela på det sociala nätverket: