Vrei să înveți cum să-ți faci propriul robot? Există multe tipuri diferite de roboți pe care îi puteți construi singuri. Majoritatea oamenilor doresc să vadă un robot care face treaba ușoară de a trece de la punctul A la B. Puteți construi un robot complet din componente analogice sau puteți cumpăra un kit de pornire. Realizarea propriului robot este o modalitate excelentă de a învăța electronice și programarea computerelor.
Etapa
Partea 1 din 5: Asamblarea robotului
Pasul 1. Asamblați componentele
Pentru a construi un robot de bază, veți avea nevoie de câteva componente simple. Puteți găsi majoritatea sau toate aceste componente la magazinul dvs. local de produse electronice sau la unii comercianți online. Unele truse includ toate aceste componente. Acest robot nu necesită lipire:
- Arduino Uno (sau alt microcontroler)
- 2 servo 360 de grade
- 2 roți potrivite servo
- 1 roată liberă
- 1 tablă de testare (panou de testare sau tablă de proiect) care nu a fost lipită (căutați o tablă de testare care are două rânduri pozitive și negative pe fiecare parte)
- 1 senzor de proximitate (cu cablu conector cu patru pini)
- 1 buton comutator
- 1 rezistor 10kΩ
- 1 cablu USB A la B.
- 1 set de anteturi care se pot sparge
- 1 6 x suport baterie AA cu priză de 9V DC
- 1 pachet de 22. cabluri jumper sau cablu unic
- Izolație înainte și înapoi (bandă dublă) sau pistol de lipit
Pasul 2. Întoarceți compartimentul bateriei astfel încât spatele plat să fie orientat în sus
Veți construi corpul robotului folosind compartimentul bateriei ca bază.
Pasul 3. Aranjați două servome orientate în aceeași direcție la capătul compartimentului bateriei
Acest capăt este capătul în care cablul iese din baterie. Servo-urile trebuie să atingă partea inferioară, iar mecanismul de rotație al fiecărui servo trebuie să fie orientat în afară din părțile laterale ale compartimentului bateriei. Este important ca aceste servo să fie aranjate corect, astfel încât roțile să fie drepte. Cablurile pentru servo trebuie să iasă din spatele compartimentului bateriei.
Pasul 4. Lipiți servomotoarele cu izolația sau lipiciul
Asigurați-vă că servo-ul este fixat ferm de compartimentul bateriei. Partea din spate a servo-ului trebuie să fie aliniată cu partea din spate a compartimentului pentru baterii.
Acum, servo-urile ar trebui să ocupe jumătate din spațiul din spatele compartimentului bateriei
Pasul 5. Aderați placa de testare perpendicular pe spațiul rămas în compartimentul bateriei
Această placă de testare va atârna ușor peste partea din față a compartimentului bateriei și se va extinde pe ambele părți. Asigurați-vă că placa de testare este strânsă înainte de a continua. Rândul „A” trebuie să fie cel mai aproape de servo.
Pasul 6. Atașați microcontrolerul Arduino la partea superioară a servo-ului
Dacă atașați corect servo-ul, ar trebui să existe o parte plană a celor două servos care se ating. Aderați placa Arduino la acest punct plat, astfel încât conectorii de alimentare USB și Arduino să fie orientați în jos (departe de placa de testare). Partea frontală a Arduino se va suprapune cu placa de testare.
Pasul 7. Instalați roțile pe servomotoare
Apăsați ferm roțile pe mecanismul servo rotativ. Acest lucru poate necesita o forță considerabilă, deoarece roțile sunt proiectate pentru a avea găuri care se potrivesc exact cu forma vârfului servo.
Pasul 8. Instalați roata liberă pe partea inferioară a plăcii de testare
Dacă întoarceți robotul cu susul în jos, veți vedea o mică placă de testare atârnată de compartimentul bateriei. Atașați roata liberă la această parte suspendată. Folosiți o pană, dacă este necesar. Roata liberă servește drept roată din față, care permite robotului să se întoarcă cu ușurință în orice direcție.
Dacă ați achiziționat un kit, roata gratuită poate avea câteva pene pe care le puteți utiliza pentru a vă asigura că roata este liberă să atingă solul
Partea 2 din 5: Cablarea robotului
Pasul 1. Tăiați două anteturi cu 3 pini
Veți folosi acest lucru pentru a conecta servo la placa de testare. Împingeți știfturile în jos prin anteturi, astfel încât acestea 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 din rândul E de pe placa de testare
Asigurați-vă că sunt introduse ferm sau ferm.
Pasul 3. Conectați firele servo cu antetul, cu firul negru pe partea stângă (pinii 1 și 6)
Aceasta va conecta servo-ul cu placa de testare. Asigurați-vă că servo-ul stâng este conectat la antetul stâng și că servo-ul drept este conectat la antetul drept.
Pasul 4. Conectați firul roșu jumper de la pinii C2 și C7 la pinul roșu al șinei (pozitiv)
Asigurați-vă că utilizați șina roșie pe spatele tabloului de testare (mai aproape de restul corpului robotului).
Pasul 5. Conectați firul jumper negru de la pinii B1 și B6 la pinul albastru al șinei (masă)
Asigurați-vă că utilizați șina albastră pe spatele tabloului de testare. Nu atașați cablul la știftul roșu al șinei.
Pasul 6. Conectați firele de jumper albe de la pinii 12 și 13 de pe Arduino la A3 și A8
Acest lucru va permite Arduino să controleze servo-ul și să rotească roata.
Pasul 7. Atașați senzorul la partea din față a plăcii de testare
Senzorul nu este montat pe șina de alimentare externă de pe placa de testare, ci pe primele două rânduri de pini cu litere (J). Asigurați-vă că îl așezați chiar în mijloc cu un număr egal de știfturi goale pe fiecare parte.
Pasul 8. Conectați firul jumper negru de la pinul I14 la primul pin albastru al șinei din stânga senzorului
Aceasta va lega senzorul.
Pasul 9. Conectați firul roșu jumper de la pinul I17 la primul pin roșu cu șină din dreapta senzorului
Acest lucru va furniza energie senzorului.
Pasul 10. Conectați firele de 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 5: Instalarea cablului de alimentare
Pasul 1. Întoarceți robotul astfel încât să puteți vedea compartimentul bateriei în interior
Aranjați compartimentul bateriei astfel încât cablul să iasă prin colțul din stânga jos.
Pasul 2. Conectați firul roșu cu al doilea arc din partea stângă în partea de jos
Asigurați-vă că compartimentul bateriei este aliniat corect sau orientat în direcția corectă.
Pasul 3. Conectați firul negru cu ultimul arc din dreapta jos
Aceste două fire vor ajuta la furnizarea tensiunii corecte către Arduino.
Pasul 4. Conectați firele roșii și negre la știfturile roșii și albastre care se află pe partea dreaptă pe partea din spate a plăcii de testare
Firul negru ar trebui să meargă la știftul albastru al șinei de pe pinul 30. Firul roșu ar trebui să meargă la știftul roșu al șinei de la pinul 30.
Pasul 5. Conectați firul negru de la pinul GND de pe Arduino la partea din spate a șinei albastre
Conectați firul la pinul 28 de pe șina albastră.
Pasul 6. Conectați firul negru din spatele șinei albastre la partea din față a șinei albastre de pe pinul 29 pentru ambele șine
Nu conectați șina roșie, deoarece puteți deteriora Arduino.
Pasul 7. Conectați firul roșu din fața șinei roșii de pe pinul 30 la pinul de 5V de pe Arduino
Acest lucru va furniza energie Arduino.
Pasul 8. Introduceți comutatorul cu buton în spațiul dintre pinii 24-26
Acest comutator vă va permite să opriți robotul fără a fi nevoie să opriți alimentarea.
Pasul 9. Conectați firul roșu de la H24 la șina roșie de pe următorul știft gol din dreapta senzorului
Acest lucru va furniza alimentare butonului.
Pasul 10. Folosiți un rezistor pentru a conecta H26 la șina albastră
Conectați-l la pinul de lângă firul negru pe care tocmai l-ați conectat în pașii anteriori.
Pasul 11. Conectați firul alb de la G26 la pinul 2 de pe Arduino
Acest lucru va permite Arduino să detecteze butoane.
Partea 4 din 5: Instalarea software-ului Arduino
Pasul 1. Descărcați și extrageți IDE Arduino
Aici este dezvoltat Arduino și vă permite să programați instrucțiuni pe care le puteți încărca apoi pe microcontrolerul dvs. 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 fișier și mutând folderul pe care îl conține într-o locație ușor de accesat. De fapt, nu veți instala programul, ci doar îl veți rula dintr-un folder extras făcând dublu clic pe arduino.exe.
Pasul 2. Conectați compartimentul bateriei la Arduino
Introduceți mufa din spate a bateriei în conectorul de pe Arduino pentru a o alimenta.
Pasul 3. Introduceți Arduino în computer prin USB
Este posibil ca Windows să nu recunoască dispozitivul.
Pasul 4. Apăsați
Câștigă + R și tastați devmgmt.msc.
Această comandă va deschide Managerul de dispozitive.
Pasul 5. Faceți clic dreapta pe Dispozitiv necunoscut sub 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 Actualizare driver.
Pasul 6. Selectați Răsfoiți computerul pentru software-ul driverului
Acest lucru vă va permite să selectați driverele încorporate care au venit cu Arduino IDE.
Pasul 7. Faceți clic pe Răsfoire, apoi deschideți folderul pe care l-ați extras mai devreme
În acesta veți găsi folderul de 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 5: Programarea roboților
Pasul 1. Deschideț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 sau lipiți următorul cod pentru a face robotul să avanseze
Codul de mai jos va menține Arduino în funcțiune.
#include // aceasta adaugă biblioteca „Servo” la program // următoarea comandă creează două obiecte servo Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); // dacă ați schimbat accidental numerele pinului pentru servo, puteți schimba numerele aici rightMotor.attach (13); } void loop () {leftMotor.write (180); // cu o rotație de 360 de grade (rotație continuă), numărul 180 instruiește servo să se deplaseze „înainte” la viteză maximă. rightMotor.write (0); // dacă ambele valori sunt 180, robotul se va roti într-un cerc deoarece servo este inversat. „0” îi spune robotului să se deplaseze „înapoi” la viteză maximă. }
Pasul 3. Creați și încărcați programul
Faceți clic pe butonul săgeată dreapta din colțul din stânga sus pentru a crea și încărca un program pe Arduino conectat.
Poate doriți să ridicați robotul de pe suprafață, deoarece robotul va continua să meargă înainte după încărcarea programului
Pasul 4. Adăugați o funcție de oprire a opritorului (comutator de oprire)
Adăugați următorul cod la secțiunea „void loop ()” din codul dvs. pentru a adăuga o funcție de comutare oprită deasupra funcției „write ()”.
if (digitalRead (2) == HIGH) // această comandă rulează când butonul este apăsat pe pinul 2 Arduino {în timp ce (1) {leftMotor.write (90); // „90” este poziția neutră pentru servo, care îi spune servoului să oprească rotirea la dreapta Motor.write (90); }}
Pasul 5. Încărcați și verificați codul
Cu codul comutatorului de oprire adăugat deja, puteți încărca codul și testa robotul. Robotul ar trebui să continue înainte până când apăsați butonul de comutare a opririi, ceea ce va determina oprirea robotului. Codul complet va arăta astfel:
#include // următoarea comandă creează două Servo leftMotor servo obiecte; 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); }
Exemplu
Următorul cod va folosi senzori instalați pe robot pentru a-l face să vireze la stânga ori de câte ori robotul întâlnește un obstacol. Uitați-vă la comentariile din cod pentru detalii despre modul de utilizare a fiecărei părți. Codul de mai jos este întregul program.
#include Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // acest cod conferă întârzierii de ieșire a consolei să fie la fiecare 1/4 de secundă (250 ms) nesemnat mult timp SerialDelay = 0; const int loopPeriod = 20; // acest cod setează frecvența de citire a senzorului la 20 ms, care este de 50 Hz nesemnat mult timp LoopDelay = 0; // acest cod atribuie funcțiile TRIG și ECHO pinilor de pe Arduino. Ajustați numerele aici dacă le conectați într-un mod diferit const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // acest cod definește două stări posibile ale robotului: continuați înainte sau rotiți la stânga #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = continua înainte (DEFAULT), 1 = virează stânga setare nulă () {Serial.begin (9600); // acest senzor determină configurarea pin pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ultrasonic2EchoPin, INPUT); // aceasta atribuie motorul pinilor Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // acest cod detectează un '' stop '' {în timp ce (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // acest cod tipărește mesaje de depanare pe consola serială dacă (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // acest cod instruiește senzorul să citească și să stocheze date despre distanța măsurată stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // dacă nu este detectat niciun obstacol {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // dacă nu este 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 0,5 secunde până la 90 de grade. Este posibil să trebuiască să ajustați această valoare dacă roțile dvs. diferă ca dimensiune de dimensiunea din exemplul unsigned long turnStartTime = millis (); // păstrați starea când robotul începe să se întoarcă în timp ce ((millis () - turnStartTime) <timeToTurnLeft) // păstrați acest ciclu până când trece timeToTurnLeft (500) {// faceți stânga, amintiți-vă că atunci când ambele sunt „180”, robotul se va întoarce. rightMotor.write (180); leftMotor.write (180); } state = DRIVE_FORWARD; }} void readUltrasonicSensors () {// este pentru ultrasunete 2. Este posibil să fie necesar să modificați această comandă dacă utilizați un alt senzor. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // trageți pinul TRIG în sus 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 (); }}