Circuite

Cum se construiește un robot - Lecția 3: Construiți un robot de urmărire a liniei: 16 pași

LE LÉGENDAIRE UEKUSA ! - LE SHOW JAUNE #42

LE LÉGENDAIRE UEKUSA ! - LE SHOW JAUNE #42

Cuprins:

Anonim

După finalizarea funcțiilor de bază, suntem acum gata să oferim robotului Arduino o capacitate îmbunătățită - Urmărirea liniei!

În acest tutorial, veți fi instruiți pas cu pas pentru a face o linie de urmărire a robotului Arduino. Pentru a face acest tutorial ușor de urmărit, este folosit aici un exemplu de kit de robot Arduino (Pirate: Arduino Mobile Robot Kit 4WD cu Bluetooth 4.0).

Lecții Meniu:

Lecția 1: Introducere

Lectia 2: Construieste un robot de baza arduino

Lectia 3: Construieste un Robot Arduino de urmarire a liniei

Lectia 4: Construieste un Robot Arduino care ar putea evita obstacolele

Lectia 5: Construieste un Robot Arduino cu efecte de lumina si sunet

Lectia 6: Construieste un Robot Arduino care ar putea monitoriza mediul

Lectia 7: Construieste un Robot Arduino controlat cu Bluetooth

Piese hardware pe care le puteți avea nevoie:

Senzor de urmărire a liniei (următor) pentru Arduino × 3

Furnituri:

Pasul 1:

Lățime 2.5cm Banda electrică neagră × 1

Pasul 2:

Placă albă 1M * 1M × 1

Pasul 3:

M3 * 30mm Suport nailon (șuruburi, piulițe) × 3

Pasul 4:

Instrucțiuni de asamblare

Nu este dificil să asamblați robotul Arduino. Urmați instrucțiunile următoare.

Pasul 1:

În primul rând, aveți nevoie de 3 suporturi de nailon și șuruburile și piulițele însoțitoare.

Pasul 5:

Pasul 2: Atașați suporturile de nailon

Folosind piulițele, atașați suporturile nailonului deasupra senzorilor Mini. Când atașați suporturile, vă rugăm să fiți atenți la direcția lor: piulițele și sondele trebuie să fie într-o direcție.

Pasul 6:

Pasul 3: Asamblarea plăcii senzorilor

Scoateți placa superioară de pe platforma robotică. Apoi, atașați placa de senzori în fața platformei.

Pasul 7:

Pasul 4: Asamblarea senzorului de urmărire a liniei

Mai întâi, conectați senzorul cu firul destinat transmisiei de date. Apoi, utilizați șuruburile M3 pentru a fixa senzorii pe placa de expansiune care iese din fața plăcii.

Pasul 8:

Conectarea hardware-ului

După asamblarea senzorilor, nu vă grăbiți să puneți din nou placa superioară a platformei - înainte de a face acest lucru, trebuie să conectați mai întâi senzorii la Romeo BLE.

Imaginea de pe partea stângă arată poziționarea corectă a senzorilor ABC de pe placa senzorilor, care corespunde pinilor 10, 9 și 8 de pe Romeo BLE. La conectarea senzorilor, asigurați-vă că ați conectat-o ​​în ordinea corectă. După conectarea senzorilor, remontați placa superioară a platformei în spatele bazei.

Pasul 9:

Reglarea senzorilor

Înainte de a descărca codul, trebuie să ne ajustăm senzorii. Mai întâi, conectați un cablu USB în robotul dvs. Romeo BLE (placa de comandă Robot Arduino cu Bluetooth 4.0) pentru a vă da putere. După cum se vede în imaginea de mai jos, senzorul de mai jos are un cap de șurub Philips; acest cap de șurub poate fi folosit pentru reglarea detectării distanței de către senzor. Luați o bucată de hârtie albă și puneți-o sub sondă senzorului (culoarea hârtiei este utilizată pentru calibrare). Luați o șurubelniță și folosiți-o pentru a strânge capul cu șurub Philips. Veți simți că senzorul senzorului fizic se deplasează în sus și în jos, în funcție de cât de strâns strângeți șurubul. Veți vedea, de asemenea, LED-ul senzorului se aprinde de îndată ce începeți strângerea. Strângeți capul șurubului până când punctul sondei se află la aproximativ 2 cm deasupra bucății de hârtie.

Pasul 10:

Codificare

Conectați-vă dispozitivul USB. Descărcați codul Arduino, numit "HuntingLineBlack.ino", de la GitHub. Faceți clic pe butonul Încărcați din ID-ul Arduino pentru a încărca codul pe placa de control BLE.

Pasul 11:

Configurarea traseului robotului Arduino

Scoate-ți tabla. Utilizați banda dvs. electrică de 2,5 cm pentru a stabili o cale pe tablă, așa cum se arată în imaginea de mai jos.

Pasul 12:

Lățimea firului este de aproximativ 2,5 cm, distanța aproximativă dintre senzorii A și C. Am ales calea de mai sus din motive legate de cod; o secțiune ulterioară va explica mai bine acest raționament.

Pasul 13:

Transmisie: cum funcționează

Cum facem robotul să rămână pe pistă? Trebuie să ne asigurăm că robotul este amplasat în mod constant în mijlocul liniei. Robotul utilizează cei 3 senzori de transmisie pentru a calibra poziția sa față de pistă - odată ce se îndreaptă spre lateral, robotul se va regla automat înapoi spre mijloc.

Când robotul nostru se mișcă, se vor întâmpla trei condiții.

Pasul 14:

(a) Când robotul începe să se deplaseze de-a lungul pistei, numai senzorul de mijloc (B) detectează linia neagră - senzorii stânga și drept nu au intrat încă în joc. Masina va rămâne centrată de-a lungul pistei și va merge mai departe.

Pasul 15:

(b) După ce a continuat pe drumul său, robotul ar putea să înceapă să se retragă din centru. În aceste condiții, senzorii din stânga și din dreapta vor încerca să detecteze linia neagră și să-l conducă pe robot înapoi spre pistă. De exemplu, dacă robotul se îndreaptă spre partea dreaptă a pistei, mașina va trebui să se re-centralizeze prin rotirea spre stânga - senzorul din stânga va acționa și va roti automat robotul până când acesta va fi re-centrat.

Pasul 16:

(c) Dimpotrivă, în cazul în care robotul se îndreaptă spre partea stângă a pistei, senzorul din dreapta va da lovitura și va ajusta traseul robotului până când acesta va re-centura.

Sinopsisul codului

Nu este nevoie să discutăm codul de bază - să aruncăm o privire la partea care implică transmisia.

int RightValue; Senzorul tractorului din dreapta de pe pinul 8

int MiddleValue; Senzorul de tracțiune pe linia medie pe pinul 9

int LeftValue; Senzorul tractorului din stânga pe pinul 10

// citirea valorilor cu 3 pini ale senzorului de urmărire a liniei

RightValue = digitalRead (8);

MiddleValue = digitalRead (9);

LeftValue = digitalRead (10);

Utilizați trei variabile - RightValue, MiddleValue, LeftValue - pentru a înregistra valorile citite de 3 senzori.

Funcția digitală (PIN) este utilizată pentru a citi valoarea portului digital de intrare / ieșire. Dacă această parte este încă neclare, vă rugăm să citiți manualul nostru de terminologie sau site-ul web Arduino.

Când senzorul de transmisie mijlocie detectează o linie neagră (piesa), va produce o ieșire redusă de energie. Atunci când detectează un spațiu alb, vor produce o putere ridicată a energiei.

Exemplul A de mai jos ilustrează principiile de funcționare ale codului de transmisie. Când senzorul de mijloc detectează o linie neagră (piesa), va produce o ieșire redusă de energie. Când senzorii stânga / dreapta detectează un spațiu alb, vor produce o ieșire HIGH.

dacă (MiddleValue == LOW) {// linie în mijloc Robot.Speed ​​(100,100); întârziere (10);}

altceva dacă ((LeftValue == HIGH) && (RightValue == HIGH)) {Robot.Speed ​​(100,100); întârziere (10);}

Dacă senzorii detectează linia / pista neagră spre stânga, în timp ce detectează și spațiul alb spre dreapta, robotul se va întoarce spre stânga. Vezi exemplul B de mai jos:

altceva dacă ((LeftValue == LOW) && (RightValue == HIGH)) {Robot.Speed ​​(-100,100); // întoarce întârzierea stânga (10);}

Dimpotrivă, dacă senzorii detectează linia / pista neagră spre dreapta, în timp ce detectează și spațiul alb spre stânga, robotul se va întoarce spre dreapta. Vedeți exemplul C de mai jos:

altceva dacă ((LeftValue == HIGH) && (RightValue == LOW)) {Robot.Speed ​​(100, -100); // întârziere întârziere (10);}