Vezja

Kako zgraditi robota - Lekcija 3: Zgradite robota za sledenje linij: 16 korakov

ОБЗОР на САМОГО БЫСТРОГО РОБОТА !

ОБЗОР на САМОГО БЫСТРОГО РОБОТА !

Kazalo:

Anonim

Po opravljenih osnovnih funkcijah smo sedaj pripravljeni robotu Arduino dati nadgrajeno zmogljivost - sledenje linijam!

V tej vadnici vas bodo korak za korakom naučili, da naredite robot za sledenje Arduino. Kot primer lahko uporabite Arduino robotski komplet (Pirate: 4WD Arduino Mobile Robot Kit z Bluetooth 4.0).

Lekcije Meni:

Lekcija 1: Uvod

Lekcija 2: Zgradite osnovni robot Arduino

Lekcija 3: Zgradite Arduino robot za sledenje linij

Lekcija 4: Zgradite robot Arduino, ki bi lahko preprečil ovire

Lekcija 5: Zgradite robot Arduino s svetlobnimi in zvočnimi učinki

Lekcija 6: Zgradite robot Arduino, ki lahko spremlja okolje

Lekcija 7: Zgradite robot za Arduino, ki ga upravlja Bluetooth

Deli strojne opreme, ki jih boste morda potrebovali:

Senzor za sledenje linij za Arduino × 3

Dobave:

Korak 1:

Širina 2.5CM črni električni trak × 1

2. korak:

1M * 1M Bela plošča × 1

3. korak:

M3 * 30MM Nylon nosilec (vijaki, matice) × 3

4. korak:

Navodila za montažo

Ni težko sestaviti robota Arduino. Upoštevajte naslednja navodila.

Korak 1:

Prvič, potrebujete 3 najlonske podpore in pripadajoče vijake in matice.

5. korak:

2. korak: pritrditev najlonskih opornikov

S pomočjo matic pritrdite najlonske opore na vrh senzorjev Mini. Pri pritrditvi opornikov bodite pozorni na njihovo smer: matice in sonde morata biti v eni smeri.

6. korak:

3. korak: Sestavljanje plošče senzorja

Odstranite zgornjo ploščo z robotske platforme. Nato pritrdite ploščo senzorja na sprednji del platforme.

7. korak:

4. korak: Sestavljanje senzorja za sledenje linij

Najprej priključite senzor z žico, ki je namenjena za prenos podatkov. Nato z vijaki M3 pritrdite senzorje na razširitveno ploščo, ki štrli iz sprednje strani platforme.

8. korak:

Povezovanje strojne opreme

Po montaži senzorjev ne hitite nazaj na ploščo - preden to storite, moramo najprej povezati senzorje z Romeo BLE.

Slika na levi strani prikazuje pravilno ABC namestitev senzorjev na plošči senzorja, ki ustreza zatičem 10, 9 in 8 na Romeo BLE. Pri povezovanju senzorjev preverite, ali ste jih priključili v pravilnem zaporedju. Po priključitvi senzorjev ponovno pritrdite zgornjo ploščo platforme nazaj na osnovno ploščo.

9. korak:

Nastavitev senzorjev

Preden prenesemo kodo, moramo prilagoditi naše senzorje. Najprej priključite USB kabel v svoj Romeo BLE (Arduino nadzorna plošča robota z Bluetoothom 4.0), da mu omogočite napajanje. Kot je prikazano na spodnji sliki, ima spodnji senzor glavo z vijakom Philips; ta vijačna glava se lahko uporabi za nastavitev zaznavanja razdalje senzorja. Vzemite beli list papirja in ga položite pod sondo senzorja (barva papirja se uporablja za umerjanje). Vzemite izvijač in ga uporabite za privijanje glave vijaka Philips. Čutili boste, da se sonda senzorja fizično premika navzgor in navzdol, odvisno od tega, kako čvrsto privijate glavo vijaka. Videli boste tudi, da LED lučka senzorja zasveti takoj, ko začnete zategovati. Pritegnite glavo vijaka, dokler je tipalna točka približno 2 cm nad kosom papirja.

Korak 10:

Kodiranje

Priključite USB. Prenesite kodo Arduino, imenovano »HuntingLineBlack.ino«, od GitHub. Kliknite gumb Naloži v Arduino IDE, da prenesete kodo na nadzorno ploščo BLE.

11. korak:

Konfiguriranje poti robota Arduino

Odstranite tablo. Uporabite 2,5 cm širok električni trak za postavitev poti na tablo, kot je prikazano na spodnji sliki.

12. korak:

Širina žice je približno 2,5 cm, približna razdalja med senzorjema A in C. Gornjo pot smo izbrali iz razlogov, ki se nanašajo na kodo; kasnejši del bo podrobneje pojasnil to razmišljanje.

13. korak:

Prenos: Kako deluje

Kako naj robot ostane na svoji poti? Zagotoviti moramo, da se robot dosledno nahaja na sredini tira. Robot uporablja svoja 3 senzorja za prenos, da umeri svoj položaj glede na progo - ko se robot obrne na stran, se bo robot sam prilagodil nazaj proti sredini.

Ko se bo naš robot premaknil, se bodo zgodili trije pogoji.

14. korak:

(a) Ko se robot začne najprej premikati po progi, samo srednji senzor (B) zazna črno črto - levi in ​​desni senzor še nista prišli v igro. Avto ostane centriran ob progi in se premakne naprej.

15. korak:

(b) Po nadaljevanju poti se robot lahko začne umikati iz središča. V teh okoliščinah bodo levi in ​​desni senzorji poskušali odkriti črno črto in samoprimeriti robota nazaj proti progi. Na primer, če se robot pomakne proti desni strani steze, se mora avto ponovno centrirati z obračanjem proti levi - levo tipalo se bo udarilo in avtomatsko obrnilo robota, dokler se ne ponovno centrira.

16. korak:

(c) Nasprotno pa, če se robot pomakne proti levi strani proge, se bo desni senzor udaril in prilagodil pot robota, dokler se ne ponovno centrira.

Povzetek kode

O osnovnem kodeksu ni treba razpravljati - poglejmo le del prenosa.

int RightValue; // Senzor traktorja na desni strani črte 8

int MiddleValue; // Senzor sredinskega traktorja na pin 9

int LeftValue; // Levi senzor traktorja na Pin 10

// branje vrednosti 3 pins senzorja za sledenje linij

RightValue = digitalRead (8);

MiddleValue = digitalRead (9);

LeftValue = digitalRead (10);

Uporabite tri spremenljivke - RightValue, MiddleValue, LeftValue - za beleženje vrednosti 3 odčitanih senzorjev.

Funkcija digitalRead (pin) se uporablja za branje vrednosti digitalnega vhoda / izhoda. Če je ta del še vedno nejasen, si oglejte naš terminološki priročnik ali spletno stran Arduino.

Ko srednji senzor prenosa zazna črno črto (progo), bo proizvedel nizko energijsko moč. Ko zaznajo belo površino, bodo proizvedli visoko energijsko moč.

Primer A spodaj prikazuje načela delovanja kode prenosa. Ko srednji senzor zazna črno črto (progo), bo ustvaril nizko energijsko moč. Ko levi / desni senzorji zaznajo belo površino, proizvajajo HIGH izhod.

if (MiddleValue == LOW) {// vrstica v sredini Robot.Speed ​​(100,100); zamuda (10);}

else if ((LeftValue == HIGH) && (RightValue == HIGH)) {Robot.Speed ​​(100,100); zamuda (10);}

Če senzorji zaznajo črno črto / stezo na levi, medtem ko prav tako odkrijejo belo površino na desni strani, robot zavije levo. Glej primer B spodaj:

else if ((LeftValue == LOW) && (RightValue == HIGH)) {Robot.Speed ​​(-100,100); // zavoj levo (10);}

Nasprotno, če senzorji zaznavajo črno črto / stezo na desni, medtem ko zaznavajo tudi belo levo, robot zavije desno. Glej primer C spodaj:

else if ((LeftValue == HIGH) && (RightValue == LOW)) {Robot.Speed ​​(100, -100); // zavijte desno zakasnitev (10);}