Cum să faci un robot simplu

Cum să faci un robot simplu

Construirea unui robot simplu este o modalitate distractivă de a învăța despre electronică, mecanică de bază și programare. Mulți oameni cred că roboții trebuie să fie scumpi și complicați, dar, de fapt, poți începe cu un proiect mic, ușor de asamblat acasă. În acest articol, vom construi un robot simplu care evită obstacolele folosind senzori cu ultrasunete. Acest robot poate merge înainte și se poate întoarce automat atunci când detectează un obiect în fața sa. Acest proiect este potrivit pentru începători, studenți sau oricine dorește să înceapă să învețe robotica.

1. Înțelegeți conceptul de roboți simpli

În general, roboții au trei componente principale: creierul (controlerul), simțurile (senzorii) și mușchii (actuatoarele). În acest proiect:

– Controler: Arduino Uno (sau compatibil)
– Senzor: senzor ultrasonic HC-SR04 pentru măsurarea distanței
– Actuator: motor de curent continuu care acționează roțile
– Driver de motor: driver de motor L298N (sau L293D) pentru ca motorul să poată fi controlat de Arduino

Când senzorul citește distanța din fața robotului și distanța este prea mică, Arduino va comanda driverului motorului să schimbe direcția de mișcare, de exemplu, virând la dreapta sau la stânga.

2. Unelte și materiale necesare

Iată o listă de componente utilizate în mod obișnuit, ușor de găsit în magazinele de electronice sau în piețe:

1. Arduino Uno (1 bucată)
2. Driver motor L298N (1 bucată)
3. Senzor cu ultrasunete HC-SR04 (1 bucată)
4. Motor de curent continuu + cutie de viteze și roți (2 bucăți) pentru robot cu 2 roți (acționare diferențială)
5. Roată pivotantă (1 bucată) roată mică de echilibrare în față sau în spate
6. Baterii (de exemplu, 2×18650 sau pachet de 7,4V) sau 6xAA, în funcție de nevoile motorului
7. Șasiu robot (poate fi achiziționat gata făcut sau fabricat din acril/placaj)
8. Cabluri de pornire (mascul-femelă și mascul-mascul)
9. Comutator pornit/oprit (opțional, dar foarte util)
10. Placă de test mică (opțional)
11. Șuruburi, piulițe, șurubelnițe și lipici fierbinte, după cum este necesar

Dacă doriți ceva și mai simplu (fără senzori cu ultrasunete), puteți construi un robot „de urmărire a liniei” cu senzori de linie, dar versiunile de evitare a obstacolelor par adesea mai „vii”, deoarece răspund la obiectele din fața lor.

CITIT  Utilizarea microprocesoarelor în dispozitive

3. Proiectarea șasiului robotului

Șasiul este cadrul pe care sunt montate toate componentele. Puteți utiliza un kit de șasiu gata făcut sau puteți construi propriul șasiu din materiale ușoare, cum ar fi acrilul, PVC-ul sau lemnul subțire. Principiul este:

– Montați două motoare de curent continuu pe partea stângă și pe cea dreaptă.
– Montați roțile pe motocicletă.
– Adăugați o roată pivotantă ca element de echilibrare pentru a face robotul stabil.
– Așezați bateria într-o poziție care să nu facă robotul să se încline.
– Arduino și driverele motorului ar trebui plasate în partea de sus pentru acces facil.

Asigurați-vă că cablul nu atârnă, pentru a nu se prinde în roți.

4. Schema de cablare de bază

Iată un concept general de conectare (pinii sunt personalizabili):

a) Motor către driver L298N
– Motor stânga către ieșirile OUT1 și OUT2
– Motorul drept la ieșirile OUT3 și OUT4

b) Driver L298N către Arduino
– IN1, IN2 pentru motorul stâng către niște pini digitali Arduino
– IN3, IN4 pentru motorul drept către niște pini digitali Arduino
– ENA și ENB (activare) pot fi conectate la pinii PWM ai Arduino pentru a controla viteza (opțional). Dacă nu, unele module L298N au deja un jumper de activare pentru a permite motorului să funcționeze la viteză maximă.

c) Senzor HC-SR04 către Arduino
– VCC la 5V Arduino
– GND la GND Arduino
– TRIG către pinul digital Arduino
– De la ECHO la pinul digital Arduino

d) Putere
Motorul necesită mai mult curent decât poate furniza Arduino. Prin urmare:
– Bateria principală se conectează la driverul motorului (terminalele (+12V și GND) de pe L298N.
– Arduino poate fi alimentat și de la baterie (prin VIN) sau de la o baterie externă separată/USB.
– Masă: Masa bateriei/driverului și masa Arduino trebuie să fie conectate pentru ca semnalul de control să fie stabil.

Cea mai frecventă greșeală printre începători este uitarea de a conecta GND-ul, astfel încât robotul se mișcă haotic.

CITIT  Programarea microcontrolerelor pentru începători

5. Logica de funcționare a robotului de evitare a obstacolelor

Robotul va funcționa cu un flux simplu:

1. Citiți distanța de la senzorul cu ultrasunete.
2. Dacă distanța > prag (de exemplu, 20 cm), robotul se mișcă înainte.
3. Dacă distanța este ≤ 20 cm, robotul se oprește scurt.
4. Robotul se mișcă puțin înapoi și apoi se rotește (de exemplu spre dreapta) timp de câteva sute de milisecunde.
5. Citiți din nou distanța și repetați.

Cu acest model, robotul va părea că „evită” obstacolele, chiar dacă nu alege cea mai optimă cale.

6. Exemplu simplu de cod Arduino

Mai jos este un exemplu de cod de bază. Puteți personaliza pinii pentru a se potrivi circuitului dvs.:

„`cpp
definiți TRIG 8
definiți ECHO 9

// Motorul stâng
definiți IN1 2
definiți IN2 3

// Motorul drept
definiți IN3 4
definiți IN4 5

durată lungă;
distanță întreagă;

int readDistance() {
digitalWrite(TRIG, LOW);
delayMicrosecunde(2);
scriere digitală(TRIG, HIGH);
delayMicrosecunde(10);
digitalWrite(TRIG, LOW);

durată = pulseIn(ECHO, HIGH);
int cm = durată 0.034 / 2;
return cm;
}

void înainte() {
scriere digitală(IN1, HIGH);
scriere digitală(IN2, LOW);
scriere digitală(IN3, HIGH);
scriere digitală(IN4, LOW);
}

void inversează() {
scriere digitală(IN1, LOW);
scriere digitală(IN2, HIGH);
scriere digitală(IN3, LOW);
scriere digitală(IN4, HIGH);
}

void virează la dreapta() {
scriere digitală(IN1, HIGH);
scriere digitală(IN2, LOW);
scriere digitală(IN3, LOW);
scriere digitală(IN4, HIGH);
}

void stop() {
scriere digitală(IN1, LOW);
scriere digitală(IN2, LOW);
scriere digitală(IN3, LOW);
scriere digitală(IN4, LOW);
}

void setup () {
pinMode(TRIG, IEȘIRE);
pinMode(ECHO, INPUT);

pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);

Serial.begin (9600);
}

bucla nulă () {
distanță = citeșteDistanța();
Serial.println(distanță);

dacă (distanță > 20) {
continuați();
} Else {
Stop();
întârziere (200);
verso();
întârziere (300);
Stop();
întârziere (200);
Obligatoriu Dreapta();
întârziere (400);
Stop();
}

întârziere (50);
}
„`

Acest cod este versiunea cea mai simplă. Dacă robotul se blochează prea des, puteți crește pragul la 25–30 cm sau puteți crește timpul de rotire.

7. Testare și reglare

După ce robotul este asamblat, efectuați testarea pas cu pas:

1. Testați mai întâi motorul: rulați funcția înainte/înapoi pentru a vă asigura că roțile se rotesc în direcția corectă.
2. Testați senzorul cu ultrasunete: vedeți rezultatele distanței în monitorul serial Arduino IDE.
3. Combinați sistemul: rulați programul complet și observați reacția robotului.

CITIT  Introducere în componentele electronice

Dacă robotul se rotește sau se mișcă înapoi când ar trebui să se miște înainte, este posibil să fie nevoie să schimbați cablurile motorului sau să inversați logica IN1-IN2 (și IN3-IN4).

8. Probleme comune și soluții

Câteva obstacole care apar adesea:

– Robotul nu se mișcă deloc: verificați bateria, verificați driverul motorului, asigurați-vă că jumperul de activare este activ.
– Arduino se resetează în timp ce motorul funcționează: sursă de alimentare insuficientă sau zgomot la motor. Încercați să folosiți o baterie separată pentru Arduino, adăugând un condensator și reparând împământarea.
– Citirea senzorului de distanță este instabilă: asigurați-vă că senzorul este orientat drept, ferit de vibrații excesive și asigurați-vă că cablul nu este slăbit.
– Robotul este „blocat” într-un colț: adăugați o logică de rotire aleatorie sau folosiți servomotoare pentru a mișca senzorii, astfel încât să poată „privi” la stânga și la dreapta.

9. Idei de dezvoltare după succes

Odată ce robotul de bază este funcțional, îl puteți actualiza la ceva mai interesant:

– Adăugarea de servomotoare pentru a mișca senzorii cu ultrasunete, astfel încât robotul să aleagă cea mai bună traiectorie.
– S-a adăugat control Bluetooth (HC-05) pentru a putea fi controlat de pe un telefon mobil.
– Utilizarea senzorilor liniari pentru a realiza un robot care urmărește linia.
– Reglați viteza PWM pentru o mișcare mai lină.
– Adăugați un buzzer sau un LED ca indicator la detectarea unui obstacol.

Concluzie

Construirea unui robot simplu nu trebuie să fie dificilă. Cu un Arduino, un motor de curent continuu, un driver de motor și un senzor cu ultrasunete, poți crea un robot care se poate mișca și evita obstacolele automat. Cheile succesului sunt cablarea îngrijită, resursele suficiente și testarea temeinică. Odată ce ai reușit acest proiect, vei fi mai bine pregătit să abordezi proiecte de robotică mai complexe, cum ar fi un robot inteligent bazat pe o cameră sau unul care poate urmări obiecte.

Dacă dorești, te pot ajuta să creezi o schemă de conectare mai detaliată în funcție de pinii pe care îi alegi sau să ajustezi codul astfel încât robotul să se poată roti stânga/dreapta aleatoriu și să fie mai „inteligent”.

Tinggalkan comentariu