Hur man gör en robot hemma (med bilder)

Innehållsförteckning:

Hur man gör en robot hemma (med bilder)
Hur man gör en robot hemma (med bilder)

Video: Hur man gör en robot hemma (med bilder)

Video: Hur man gör en robot hemma (med bilder)
Video: How To Make Mapart From Any Image In Minecraft 2024, Maj
Anonim

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

1123333 1
1123333 1

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

Steg 2. Vrid batterifacket så att dess platta baksida är vänd uppåt

Du kommer att bygga robotkroppen med batterifacket som bas.

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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.

1123333 7
1123333 7

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.

1123333 8
1123333 8

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

1123333 9
1123333 9

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.

1123333 10
1123333 10

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.

1123333 11
1123333 11

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.

1123333 12
1123333 12

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

1123333 13
1123333 13

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.

1123333 14
1123333 14

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.

1123333 15
1123333 15

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.

1123333 16
1123333 16

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.

1123333 17
1123333 17

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.

1123333 18
1123333 18

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

1123333 19
1123333 19

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.

1123333 20
1123333 20

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.

1123333 21
1123333 21

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.

1123333 22
1123333 22

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.

1123333 23
1123333 23

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.

1123333 24
1123333 24

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.

1123333 25
1123333 25

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.

1123333 26
1123333 26

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.

1123333 27
1123333 27

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.

1123333 28
1123333 28

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.

1123333 29
1123333 29

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

1123333 30
1123333 30

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.

1123333 31
1123333 31

Steg 2. Anslut batterifacket till Arduino

Sätt i det bakre uttaget på batteriet i kontakten på Arduino för att driva det.

1123333 32
1123333 32

Steg 3. Sätt in Arduino i din dator via USB

Chansen är stor att Windows inte känner igen enheten.

1123333 33
1123333 33

Steg 4. Tryck på

Vinn+R och typ devmgmt.msc.

Detta kommando öppnar Enhetshanteraren.

1123333 34
1123333 34

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.

1123333 35
1123333 35

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.

1123333 36
1123333 36

Steg 7. Klicka på Bläddra och öppna sedan den mapp du extraherade tidigare

Du hittar drivrutinsmappen i den.

1123333 37
1123333 37

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

1123333 38
1123333 38

Steg 1. Öppna 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 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. }

1123333 40
1123333 40

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

1123333 41
1123333 41

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

1123333 42
1123333 42

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

Rekommenderad: