Cum să faci un robot acasă (cu imagini)

Cuprins:

Cum să faci un robot acasă (cu imagini)
Cum să faci un robot acasă (cu imagini)

Video: Cum să faci un robot acasă (cu imagini)

Video: Cum să faci un robot acasă (cu imagini)
Video: CUM SA FOLOSESTI HARTILE! - Ghid Pentru Survival Minecraft 1.14 [21] 2024, Noiembrie
Anonim

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

1123333 1
1123333 1

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

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

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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.

1123333 7
1123333 7

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.

1123333 8
1123333 8

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

1123333 9
1123333 9

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.

1123333 10
1123333 10

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.

1123333 11
1123333 11

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.

1123333 12
1123333 12

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

1123333 13
1123333 13

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.

1123333 14
1123333 14

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.

1123333 15
1123333 15

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.

1123333 16
1123333 16

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.

1123333 17
1123333 17

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.

1123333 18
1123333 18

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

1123333 19
1123333 19

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.

1123333 20
1123333 20

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

1123333 21
1123333 21

Pasul 3. Conectați firul negru cu ultimul arc din dreapta jos

Aceste două fire vor ajuta la furnizarea tensiunii corecte către Arduino.

1123333 22
1123333 22

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.

1123333 23
1123333 23

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

1123333 24
1123333 24

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.

1123333 25
1123333 25

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.

1123333 26
1123333 26

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.

1123333 27
1123333 27

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.

1123333 28
1123333 28

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.

1123333 29
1123333 29

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

1123333 30
1123333 30

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.

1123333 31
1123333 31

Pasul 2. Conectați compartimentul bateriei la Arduino

Introduceți mufa din spate a bateriei în conectorul de pe Arduino pentru a o alimenta.

1123333 32
1123333 32

Pasul 3. Introduceți Arduino în computer prin USB

Este posibil ca Windows să nu recunoască dispozitivul.

1123333 33
1123333 33

Pasul 4. Apăsați

Câștigă + R și tastați devmgmt.msc.

Această comandă va deschide Managerul de dispozitive.

1123333 34
1123333 34

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.

1123333 35
1123333 35

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.

1123333 36
1123333 36

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.

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 5: Programarea roboților

1123333 38
1123333 38

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.

1123333 39
1123333 39

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

1123333 40
1123333 40

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

1123333 41
1123333 41

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

1123333 42
1123333 42

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

Recomandat: