Krugovi

Kako izgraditi robota - Lekcija 3: Izgraditi robota za praćenje linija: 16 koraka

KAKO NAPRAVITI ROBOTA - samostalno kod kuće

KAKO NAPRAVITI ROBOTA - samostalno kod kuće

Sadržaj:

Anonim

Nakon završetka osnovnih funkcija, sada smo spremni dati Arduino robotu nadogradnju - Line-tracking!

U ovom vodiču učit ćete korak po korak kako bi napravili praćenje Arduino robota koji prati liniju. Da bi se ovaj udžbenik lako slijedio, ovdje se kao primjer koristi Arduino kit za robote (Pirate: 4WD Arduino Mobile Robot Kit s Bluetoothom 4.0).

Izbornik Lekcije:

Lekcija 1: Uvod

Lekcija 2: Izgradite osnovni Arduino robot

Lekcija 3: Napravite Arduino robot za praćenje linija

Lekcija 4: Izgradite Arduino Robot koji bi mogao izbjeći prepreke

Lekcija 5: Izgradite Arduino robot sa svjetlosnim i zvučnim efektima

Lekcija 6: Izgradite Arduino robot koji bi mogao pratiti okoliš

Lekcija 7: Izgradite Arduino Robot koji kontrolira Bluetooth

Hardverski dijelovi koje trebate:

Senzor praćenja linije (slijed) za Arduino × 3

Pribor:

Korak 1:

Širina 2.5CM Crna Električna vrpca × 1

Korak 2:

1M * 1M Bijela ploča × 1

Korak 3:

M3 * 30MM Nylon nosač (vijci, matice) × 3

Korak 4:

Upute za sastavljanje

Nije teško sastaviti Arduino robota. Slijedite sljedeće upute.

Korak 1:

Prvo, trebate 3 najlonske potpore i pripadajuće vijke i matice.

Korak 5:

Korak 2: Pričvršćivanje najlonskih nosača

Pomoću matica pričvrstite najlonske držače na vrh Mini senzora. Pri postavljanju nosača obratite pozornost na njihov smjer: matice i sonde moraju biti u jednom smjeru.

Korak 6:

Korak 3: Sastavljanje ploče senzora

Skinite gornju ploču s robotske platforme. Zatim pričvrstite ploču senzora na prednju stranu platforme.

Korak 7:

Korak 4: Sastavljanje senzora praćenja linije

Prvo spojite senzor s žicom određenom za prijenos podataka. Zatim pomoću vijaka M3 pričvrstite senzore na ploču za proširenje koja strši s prednje strane platforme.

8. korak:

Povezivanje hardvera

Nakon sastavljanja senzora, nemojte žuriti da ponovno postavite gornju ploču platforme - prije nego to učinite, prvo moramo spojiti senzore s Romeo BLE.

Slika na lijevoj strani prikazuje točan ABC položaj senzora na ploči senzora, što odgovara pinovima 10, 9 i 8 na Romeo BLE. Prilikom spajanja senzora provjerite jeste li ih povezali u odgovarajućem redoslijedu. Nakon spajanja senzora, ponovno priključite gornju ploču platforme natrag na bazu.

9. korak:

Podešavanje senzora

Prije preuzimanja koda, moramo prilagoditi naše senzore. Prvo, priključite USB kabel u svoj Romeo BLE (Arduino upravljačka ploča s Bluetoothom 4.0) kako biste mu omogućili napajanje. Kao što se vidi na slici ispod, senzor ispod ima glavu vijka tvrtke Philips; Ova glava vijka može se koristiti za podešavanje udaljenosti senzora. Uzmite bijeli komad papira i stavite ga ispod sonde senzora (boja papira koristi se za potrebe kalibriranja). Uzmite odvijač i pomoću njega zategnite glavu vijka tvrtke Philips. Osjetit ćete da se sonda senzora fizički pomiče gore i dolje ovisno o tome koliko čvrsto ste zategli glavu vijka. Vidjet ćete i da LED dioda senzora svijetli čim počnete pritezati. Pritegnite glavu vijka tako da je točka sonde oko 2 cm iznad komada papira.

Korak 10:

šifriranje

Priključite USB. Preuzmite Arduino kod, nazvan “HuntingLineBlack.ino”, od tvrtke GitHub. Kliknite gumb Učitaj u Arduino IDE-u za učitavanje koda na BLE kontrolnu ploču.

11. korak:

Konfiguriranje staze vašeg Arduino Robota

Izvadite svoju pametnu ploču. Upotrijebite električnu traku širine 2,5 cm kako biste postavili putanju na pametnu ploču kao što je prikazano na slici ispod.

12. korak:

Širina žice je otprilike 2,5 cm, približna udaljenost između senzora A i C. Odabrali smo gore navedenu stazu iz razloga koji se odnose na kod; u sljedećem odjeljku detaljnije će se objasniti ovo razmišljanje.

Korak 13:

Prijenos: kako radi

Kako ćemo robota ostati na svojoj stazi? Moramo osigurati da se robot dosljedno nalazi u sredini staze. Robot koristi svoja 3 senzora za prijenos kako bi kalibrirao svoj položaj u odnosu na stazu - kada se skrene u stranu, robot će se samopodešavati natrag prema sredini.

Kada se naš robot pomakne, dogodit će se tri uvjeta.

Korak 14:

(a) Kada se robot najprije kreće duž staze, samo srednji senzor (B) detektira crnu liniju - lijevi i desni senzori još nisu ušli u igru. Automobil će ostati usmjeren duž staze i kretati se naprijed.

Korak 15:

(b) Nakon nastavka vožnje, robot može početi skretati s centra. Pod tim okolnostima, lijevi i desni senzori pokušat će otkriti crnu liniju i samopodesiti robota natrag prema stazi. Na primjer, ako se robot okrene prema desnoj strani staze, automobil će se morati ponovno centrirati okretanjem ulijevo - lijevi senzor će se uključiti i automatski okrenuti robota dok se ne centrira.

Korak 16:

(c) I obrnuto, ako se robot pomakne prema lijevoj strani staze, desni senzor će udariti i prilagoditi put robota dok se ne centrira.

Kratki opis

Nema potrebe raspravljati o osnovnom kodu - pogledajmo samo dio koji se odnosi na prijenos.

int RightValue; // Senzor traktora desnog voda na Pin 8

int MiddleValue; // Srednji senzor traktora na pin 9

int LeftValue; // Senzor traktora lijeve trake na Pin 10

// očitavanje 3 pin vrijednosti senzora praćenja linije

RightValue = digitalRead (8);

MiddleValue = digitalRead (9);

LeftValue = digitalRead (10);

Upotrijebite tri varijable - RightValue, MiddleValue, LeftValue - za snimanje očitanih vrijednosti 3 senzora.

Funkcija digitalRead (pin) koristi se za očitavanje vrijednosti digitalnog ulaza / izlaza. Ako je ovaj dio još uvijek nejasan, pogledajte naš Terminološki priručnik ili Arduino web stranicu.

Kada srednji senzor prijenosa otkrije crnu liniju (stazu), proizvest će NISKU energiju. Kada otkriju bijeli prostor, proizvest će VISOKI izlaz energije.

Primjer A u nastavku ilustrira principe rada prijenosnog koda. Kada srednji senzor otkrije crnu liniju (stazu), proizvest će NISKU energiju. Kada lijevi / desni senzori detektiraju bijeli prostor, proizvest će VISOK izlaz.

if (MiddleValue == LOW) {// linija u sredini Robot.Speed ​​(100,100); kašnjenje (10);}

inače ako ((LeftValue == HIGH) && (RightValue == HIGH)) {Robot.Speed ​​(100,100); kašnjenje (10);}

Ako senzori detektiraju crnu liniju / tračnicu lijevo dok istovremeno otkrivaju bijeli prostor desno, robot će skrenuti lijevo. Pogledajte primjer B u nastavku:

inače ako ((LeftValue == LOW) && (RightValue == HIGH)) {Robot.Speed ​​(-100,100); // skrenite lijevo (10);}

Isto tako, ako senzori detektiraju crnu liniju / putanju desno dok istovremeno otkrivaju bijeli prostor s lijeve strane, robot će skrenuti desno. Pogledajte Primjer C u nastavku:

inače ako ((LeftValue == HIGH) && (RightValue == LOW)) {Robot.Speed ​​(100, -100); // skretanje udesno (10);}