Cum să construiești un robot acasă (cu imagini)

Cuprins:

Cum să construiești un robot acasă (cu imagini)
Cum să construiești un robot acasă (cu imagini)

Video: Cum să construiești un robot acasă (cu imagini)

Video: Cum să construiești un robot acasă (cu imagini)
Video: SketchUp Tips and Tricks: Image, Texture, Matched Photo Import Options 2024, Mai
Anonim

Vrei să înveți cum să-ți construiești propriul robot? Există o mulțime de tipuri diferite de roboți pe care îi puteți face singuri. Majoritatea oamenilor doresc să vadă un robot îndeplinind sarcinile simple de a trece de la punctul A la punctul B. Puteți face un robot complet din componente analogice sau puteți cumpăra un kit de pornire de la zero! Construirea propriului robot este o modalitate excelentă de a vă învăța atât electronica, cât și programarea computerelor.

Pași

Partea 1 din 6: Asamblarea robotului

1123333 1
1123333 1

Pasul 1. Adunați componentele

Pentru a construi un robot de bază, veți avea nevoie de mai multe componente simple. Puteți găsi majoritatea, dacă nu toate, dintre aceste componente la magazinul local de hobby-uri electronice sau la mai mulți comercianți online. Unele truse de bază pot include și toate aceste componente. Acest robot nu necesită lipire:

  • Arduino Uno (sau alt microcontroler)
  • 2 servouri de rotație continuă
  • 2 roți care se potrivesc servomotoarelor
  • 1 rolă rulantă
  • 1 placă mică de lipit (căutați o placă care să aibă două linii pozitive și negative pe fiecare parte)
  • 1 senzor de distanță (cu cablu conector cu patru pini)
  • 1 mini comutator cu buton
  • 1 rezistor de 10kΩ
  • 1 cablu USB A la B.
  • 1 set de anteturi separatiste
  • 1 6 x suport baterie AA cu mufă de alimentare de 9V DC
  • 1 pachet de fire jumper sau sârmă de conectare de calibru 22
  • Bandă puternică pe două fețe sau lipici fierbinte
1123333 2
1123333 2

Pasul 2. Întoarceți acumulatorul astfel încât spatele plat să fie orientat în sus

Veți construi corpul robotului folosind acumulatorul ca bază.

1123333 3
1123333 3

Pasul 3. Aliniați cele două servouri de la capătul acumulatorului

Acesta ar trebui să fie sfârșitul prin care firul acumulatorului iese din servomotoare care trebuie să atingă fundul, iar mecanismele de rotație ale fiecăruia să fie orientate spre părțile laterale ale acumulatorului. Servo-urile trebuie aliniate corespunzător, astfel încât roțile să meargă drepte. Cablurile pentru servome ar trebui să se desprindă din spatele acumulatorului.

1123333 4
1123333 4

Pasul 4. Atașați servomotoarele cu banda sau lipici

Asigurați-vă că sunt fixate solid la acumulator. Partea din spate a servomotorului trebuie aliniată la același nivel cu partea din spate a acumulatorului.

Servo-urile ar trebui să preia acum jumătatea din spate a acumulatorului

1123333 5
1123333 5

Pasul 5. Atașați placa de masă perpendicular pe spațiul deschis de pe acumulator

Ar trebui să stea puțin peste partea din față a acumulatorului și se va extinde dincolo de fiecare parte. Asigurați-vă că este bine fixat înainte de a continua. Rândul „A” ar trebui să fie cel mai aproape de servo.

1123333 6
1123333 6

Pasul 6. Atașați microcontrolerul Arduino la vârfurile servo-urilor

Dacă ați atașat servo-urile în mod corespunzător, ar trebui să existe un spațiu plat făcut prin atingerea lor. Lipiți placa Arduino pe acest spațiu plat, astfel încât conectorii USB și Power ai Arduino să fie orientați spre spate (departe de panou). Partea din față a Arduino ar trebui să se suprapună abia peste tabla.

1123333 7
1123333 7

Pasul 7. Puneți roțile pe servomotoare

Apăsați ferm roțile pe mecanismul rotativ al servo-ului. Acest lucru poate necesita o cantitate semnificativă de forță, deoarece roțile sunt proiectate pentru a se potrivi cât mai bine posibil pentru o tracțiune optimă.

1123333 8
1123333 8

Pasul 8. Atașați rotorul la partea inferioară a panoului

Dacă răsturnați șasiul, ar trebui să vedeți o bucată de panou care se extinde pe lângă acumulator. Atașați rola la această piesă extinsă, folosind ridicatoare, dacă este necesar. Rola rulează ca roata din față, permițând robotului să se întoarcă cu ușurință în orice direcție.

Dacă ați cumpărat un kit, este posibil ca rola să vină cu câteva răsuci pe care să le puteți folosi pentru a vă asigura că rola ajunge la sol. eu

Partea 2 din 6: Cablarea robotului

1123333 9
1123333 9

Pasul 1. Întrerupeți două anteturi cu 3 pini

Le veți folosi pentru a conecta servo-urile la panoul de verificare. Împingeți știfturile în jos prin antet, astfel încât știfturile să iasă la o distanță egală de ambele părți.

1123333 10
1123333 10

Pasul 2. Introduceți cele două anteturi în pinii 1-3 și 6-8 pe rândul E al panoului

Asigurați-vă că sunt bine introduse.

1123333 11
1123333 11

Pasul 3. Conectați cablurile servo la anteturi, cu cablul negru pe partea stângă (pinii 1 și 6)

Aceasta va conecta servo-urile la panoul de verificare. Asigurați-vă că servo stânga este conectat la antetul stâng și servo dreapta la antetul drept.

1123333 12
1123333 12

Pasul 4. Conectați firele roșu de jumper de la pinii C2 și C7 la pinii de șină roșii (pozitivi)

Asigurați-vă că utilizați șina roșie pe partea din spate a panoului (mai aproape de restul șasiului).

1123333 13
1123333 13

Pasul 5. Conectați firele de jumper negre de la pinii B1 și B6 la pinii șinei albastre (la sol)

Asigurați-vă că utilizați șina albastră pe spatele panoului. Nu le conectați la știfturile roșii ale șinei.

1123333 14
1123333 14

Pasul 6. Conectați firele jumper albe de la pinii 12 și 13 de pe Arduino la A3 și A8

Acest lucru va permite Arduino să controleze servomotoarele și să rotească roțile.

1123333 15
1123333 15

Pasul 7. Atașați senzorul la partea din față a panoului

Nu se conectează la șinele exterioare de alimentare de pe panou, ci în primul rând de știfturi cu litere (J). Asigurați-vă că îl așezați în centrul exact, cu un număr egal de ace disponibile pe fiecare parte.

1123333 16
1123333 16

Pasul 8. Conectați un fir jumper negru de la pinul I14 la primul pin albastru disponibil al șinei din stânga senzorului

Aceasta va lega senzorul.

1123333 17
1123333 17

Pasul 9. Conectați un cablu roșu jumper de la pinul I17 la primul pin roșu disponibil din dreapta senzorului

Acest lucru va alimenta senzorul.

1123333 18
1123333 18

Pasul 10. Conectați firele jumper albe de la pinul I15 la pinul 9 de pe Arduino și de la I16 la pinul 8

Aceasta va furniza informații de la senzor la microcontroler.

Partea 3 din 6: Cablarea alimentării

1123333 19
1123333 19

Pasul 1. Întoarceți robotul pe lateral, astfel încât să puteți vedea bateriile din pachet

Orientați-l astfel încât cablul bateriei să iasă în stânga în partea de jos.

1123333 20
1123333 20

Pasul 2. Conectați un fir roșu la al doilea arc din stânga din partea de jos

Asigurați-vă că bateria este orientată corect.

1123333 21
1123333 21

Pasul 3. Conectați un fir negru la ultimul arc din colțul din dreapta jos

Aceste două cabluri vor ajuta la furnizarea tensiunii corecte Arduino.

1123333 22
1123333 22

Pasul 4. Conectați firele roșii și negre la știfturile roșii și albastre din extrema dreaptă de pe spatele panoului

Cablul negru ar trebui să fie conectat la știftul albastru al șinei la pinul 30. Cablul roșu ar trebui să fie conectat la știftul roșu al șinei la pinul 30.

1123333 23
1123333 23

Pasul 5. Conectați un fir negru de la pinul GND de pe Arduino la șina albastră din spate

Conectați-l la pinul 28 de pe șina albastră.

1123333 24
1123333 24

Pasul 6. Conectați un fir negru de la șina albastră din spate la șina albastră din față la pinul 29 pentru fiecare

Nu conectați șinele roșii, deoarece probabil veți deteriora Arduino.

1123333 25
1123333 25

Pasul 7. Conectați un fir roșu de la șina roșie din față la pinul 30 la pinul de 5V de pe Arduino

Acest lucru va furniza energie Arduino.

1123333 26
1123333 26

Pasul 8. Introduceți comutatorul butonului în spațiul dintre rândurile de pe pinii 24-26

Acest comutator vă va permite să opriți robotul fără a fi nevoie să deconectați alimentarea.

1123333 27
1123333 27

Pasul 9. Conectați un fir roșu de la H24 la șina roșie în următorul pin disponibil în dreapta senzorului

Aceasta va porni butonul.

1123333 28
1123333 28

Pasul 10. Folosiți rezistorul pentru a conecta H26 la șina albastră

Conectați-l la pinul de lângă firul negru pe care l-ați conectat acum câțiva pași.

1123333 29
1123333 29

Pasul 11. Conectați un fir alb de la G26 la pinul 2 de pe Arduino

Acest lucru va permite Arduino să înregistreze butonul.

Partea 4 din 6: Instalarea software-ului Arduino

1123333 30
1123333 30

Pasul 1. Descărcați și extrageți ID-ul Arduino

Acesta este mediul de dezvoltare Arduino și vă permite să programați instrucțiuni pe care le puteți încărca apoi pe microcontrolerul Arduino. Îl puteți descărca gratuit de pe arduino.cc/en/main/software. Dezarhivați fișierul descărcat făcând dublu clic pe acesta și mutați folderul în interior într-o locație ușor de accesat. Nu veți instala de fapt programul. În schimb, îl veți rula din folderul extras făcând dublu clic pe arduino.exe.

1123333 31
1123333 31

Pasul 2. Conectați acumulatorul la Arduino

Conectați mufa din spate a bateriei la conectorul de pe Arduino pentru a-i alimenta.

1123333 32
1123333 32

Pasul 3. Conectați Arduino la computer prin USB

Este posibil ca Windows să nu recunoască dispozitivul.

1123333 33
1123333 33

Pasul 4. Apăsați

⊞ Win + R și tastați devmgmt.msc.

Aceasta va lansa Managerul de dispozitive.

1123333 34
1123333 34

Pasul 5. Faceți clic dreapta pe „Dispozitiv necunoscut” din secțiunea „Alte dispozitive” și selectați „Actualizare software driver

" Dacă nu vedeți această opțiune, faceți clic pe „Proprietăți”, selectați fila „Driver”, apoi faceți clic pe „Actualizați driverul”.

1123333 35
1123333 35

Pasul 6. Selectați „Răsfoiți computerul pentru software-ul driverului

" Acest lucru vă va permite să selectați driverul care a venit cu Arduino IDE.

1123333 36
1123333 36

Pasul 7. Faceți clic pe „Răsfoiți”, apoi navigați la folderul pe care l-ați extras anterior

În interior veți găsi un folder „drivere”.

1123333 37
1123333 37

Pasul 8. Selectați folderul „drivere” și faceți clic pe „OK

" Confirmați că doriți să continuați dacă sunteți avertizat cu privire la software-ul necunoscut.

Partea 5 din 6: Programarea robotului

1123333 38
1123333 38

Pasul 1. Porniți Arduino IDE făcând dublu clic pe fișierul arduino.exe din folderul IDE

Veți fi întâmpinat cu un proiect gol.

1123333 39
1123333 39

Pasul 2. Lipiți următorul cod pentru a face robotul să meargă drept

Codul de mai jos va face ca Arduino să avanseze continuu.

#include // aceasta adaugă biblioteca "Servo" la program // următoarele creează două obiecte servo Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); // dacă ați schimbat din greșeală numerele PIN pentru servo-urile dvs., puteți schimba numerele aici rightMotor.attach (13); } void loop () {leftMotor.write (180); // cu rotație continuă, 180 îi spune servo-ului să se deplaseze la viteză maximă „înainte”. dreaptaMotor. scrie (0); // dacă ambele sunt la 180, robotul va merge într-un cerc deoarece servo-urile sunt răsturnate. „0” îi spune să se deplaseze cu viteza maximă „înapoi”. }

1123333 40
1123333 40

Pasul 3. Construiți și încărcați programul

Faceți clic pe butonul săgeată dreapta din colțul din stânga sus pentru a construi și încărca programul pe Arduino conectat.

Poate doriți să ridicați robotul de pe suprafață, deoarece acesta va continua să avanseze odată ce programul este încărcat

1123333 41
1123333 41

Pasul 4. Adăugați funcționalitatea kill switch

Adăugați următorul cod la secțiunea „void loop ()” din codul dvs. pentru a activa comutatorul kill, deasupra funcțiilor „write ()”.

if (digitalRead (2) == HIGH) // aceasta se înregistrează când butonul este apăsat pe pinul 2 al Arduino {while (1) {leftMotor.write (90); // „90” este poziția neutră pentru servomotoare, care le spune să nu mai întoarcă rightMotor.write (90); }}

1123333 42
1123333 42

Pasul 5. Încărcați și testați codul

Odată adăugat codul kill switch, puteți încărca și testa robotul. Ar trebui să continue să conducă înainte până când apăsați comutatorul, moment în care se va opri din mișcare. Codul complet ar trebui să arate astfel:

#include // următoarele creează două obiecte servo Servo leftMotor; Servo rightMotor; 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); }

Partea 6 din 6: Exemplu

Pasul 1. Urmează un exemplu

Următorul cod va utiliza senzorul atașat robotului pentru a-l face să se întoarcă spre stânga ori de câte ori întâlnește un obstacol. Consultați comentariile din cod pentru detalii despre ceea ce face fiecare parte. Codul de mai jos este întregul program.

#include Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // aceasta limitează ieșirea către consolă la o dată la 1/4 de secundă nesemnat mult timp SerialDelay = 0; const int loopPeriod = 20; // setează cât de des senzorul are o citire la 20 ms, care este o frecvență de 50Hz nesemnată mult timp LoopDelay = 0; // aceasta atribuie funcțiile TRIG și ECHO pinilor de pe Arduino. Ajustați numerele aici dacă v-ați conectat diferit const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // aceasta definește cele două stări posibile pentru robot: conducerea înainte sau virarea la stânga #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = drive forward (DEFAULT), 1 = virare stânga setare nulă () {Serial.begin (9600); // aceste configurații pin pin senzor pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // aceasta atribuie motoarele pinilor Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // acesta detectează comutatorul kill {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // aceasta tipărește mesaje de depanare pe consola serială dacă (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // aceasta instruiește senzorul să citească și să stocheze distanțele măsurate stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // dacă nu s-au detectat obstacole {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // dacă nu există nimic în fața robotului. ultrasonicDistance va fi negativă pentru unele ultrasunete dacă nu există obstacole {// drive forward rightMotor.write (180); leftMotor.write (0); } else // dacă există un obiect în fața noastră {state = TURN_LEFT; }} else if (state == TURN_LEFT) // dacă este detectat un obstacol, virează la stânga {unsigned long timeToTurnLeft = 500; // durează aproximativ 5 secunde pentru a întoarce 90 de grade. Este posibil să trebuiască să reglați acest lucru dacă roțile dvs. au o dimensiune diferită de exemplul turnat fără semn lung StartStartTime = millis (); // salvați timpul pe care am început să-l întoarcem în timp ce ((millis () - turnStartTime) <timeToTurnLeft) // rămâneți în această buclă până când a trecut timeToTurnLeft {// faceți stânga, amintiți-vă că atunci când ambele sunt setate la „180” se va transforma. rightMotor.write (180); leftMotor.write (180); } state = DRIVE_FORWARD; }} void readUltrasonicSensors () {// este pentru ultrasunete 2. Este posibil să fie necesar să modificați aceste comenzi dacă utilizați un alt senzor. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // menține pinul trigonal ridicat pentru cel puțin 10 microsecunde digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration / 2) / 29; } // următoarele sunt pentru erorile de depanare din consolă. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}

Recomandat: