Hur man bygger en robot hemma (med bilder)

Innehållsförteckning:

Hur man bygger en robot hemma (med bilder)
Hur man bygger en robot hemma (med bilder)

Video: Hur man bygger en robot hemma (med bilder)

Video: Hur man bygger en robot hemma (med bilder)
Video: SketchUp Tips and Tricks: Image, Texture, Matched Photo Import Options 2024, Maj
Anonim

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

1123333 1
1123333 1

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
1123333 2
1123333 2

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.

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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.

1123333 7
1123333 7

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.

1123333 8
1123333 8

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

1123333 9
1123333 9

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.

1123333 10
1123333 10

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.

1123333 11
1123333 11

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.

1123333 12
1123333 12

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).

1123333 13
1123333 13

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.

1123333 14
1123333 14

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.

1123333 15
1123333 15

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.

1123333 16
1123333 16

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.

1123333 17
1123333 17

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.

1123333 18
1123333 18

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

1123333 19
1123333 19

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.

1123333 20
1123333 20

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.

1123333 21
1123333 21

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.

1123333 22
1123333 22

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.

1123333 23
1123333 23

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.

1123333 24
1123333 24

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.

1123333 25
1123333 25

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.

1123333 26
1123333 26

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.

1123333 27
1123333 27

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.

1123333 28
1123333 28

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.

1123333 29
1123333 29

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

1123333 30
1123333 30

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.

1123333 31
1123333 31

Steg 2. Anslut batteripaketet till Arduino

Anslut batteribacken i kontakten på Arduino för att ge den ström.

1123333 32
1123333 32

Steg 3. Anslut Arduino till din dator via USB

Windows kommer troligen inte att känna igen enheten.

1123333 33
1123333 33

Steg 4. Tryck på

⊞ Vinn+R och typ devmgmt.msc.

Detta kommer att starta Enhetshanteraren.

1123333 34
1123333 34

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".

1123333 35
1123333 35

Steg 6. Välj "Bläddra i min dator efter drivrutinsprogramvara

" Detta låter dig välja drivrutinen som följde med Arduino IDE.

1123333 36
1123333 36

Steg 7. Klicka på "Bläddra" och navigera sedan till den mapp som du extraherade tidigare

Du hittar en "drivrutiner" -mapp inuti.

1123333 37
1123333 37

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

1123333 38
1123333 38

Steg 1. Starta Arduino IDE genom att dubbelklicka på arduino.exe-filen i IDE-mappen

Du kommer att hälsas med ett tomt projekt.

1123333 39
1123333 39

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". }

1123333 40
1123333 40

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

1123333 41
1123333 41

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); }}

1123333 42
1123333 42

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 (); }}

Rekommenderad: