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
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
Pasul 2. Întoarceți acumulatorul astfel încât spatele plat să fie orientat în sus
Veți construi corpul robotului folosind acumulatorul ca bază.
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.
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
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.
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.
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ă.
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
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.
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.
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.
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).
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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ă.
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.
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.
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.
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.
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.
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
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.
Pasul 2. Conectați acumulatorul la Arduino
Conectați mufa din spate a bateriei la conectorul de pe Arduino pentru a-i alimenta.
Pasul 3. Conectați Arduino la computer prin USB
Este posibil ca Windows să nu recunoască dispozitivul.
Pasul 4. Apăsați
⊞ Win + R și tastați devmgmt.msc.
Aceasta va lansa Managerul de dispozitive.
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”.
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.
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”.
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
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.
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”. }
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
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); }}
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 (); }}