Įvadas
Jūsų robotui reikia sensorių, kad orientuotųsi realiame pasaulyje?
Yra keli sensorių tipai:
- Infraraudonųjų spindulių diodai (IR LED) ir IR fotodetektoriai. Tai pats paprasčiausias sprendimas objektų aptikimui. Didelis tokių sensorių trūkumas – jiems labai trukdo išorinė šviesa, todėl objekto aptikimas saulės šviesoje yra labai apsunkintas.
- Moduliuoto signalo IR sensoriai. Jie spinduliuoja moduliuotą IR šviesą ir „mato“ tik to paties dažnio moduliuotą šviesą. Tokiems sensoriams jau neturi įtakos išorinė šviesa. Jų trūkumas – tamsesnės spalvos objektai aptinkami blogiau nei šviesesnės spalvos objektai. Šiame straipsnyje aprašysiu būtent tokio tipo sensoriaus variantą.
- Trianguliaciniai IR sensoriai. Juose atsispindėjęs nuo objekto IR spindulis patenka į CCD matricą ir elektronika apskaičiuoja atstumą iki objekto. Tokie sensoriai beveik absoliučiai nejautrūs aplinkos šviesai ir objekto spalvai. Įmanoma aptikti juodą sieną saulės šviesoje.
- Kiti...
Arčiau reikalo
Man teko eksperimentuoti su įvairiais sensoriais:
1-o tipo sensoriai labiausiai tinka „line-following“ robotams. Tokie sensoriai dedami arti paviršiaus, kuriuo važinėja robotas, ir uždengiami nuo išorinės šviesos. Tik tokiose sąlygose galima tikėtis jų stabilaus darbo.
3-io tipo sensoriai plačiai naudojami objektų aptikimui, bet turi siaurą spindulį. Acroname rašo, kad jų spindulis yra apie 10 cm pločio. Mano trijų SHARP GP2D05 sensorių spindulio plotis yra vos 3–5 cm. Norint padengti didesni plotą, reikia daugiau sensorių arba gudraus jų išdėstymo.
„Sharp“ GP2D05 sensorius, sumontuotas ant mano roboto
2-o tipo sensoriai yra puikus sprendimas objektų aptikimui. Vienas iš geriausių yra DPRG IR „Proximity Detector“. Jo privalumai – paprastas dizainas, patikimumas, platus padengimas. Mikrokontroleris generuoja 38 kHz impulsus, kurie paduodami IR diodams. IR spindulis, atsispindėjęs nuo objekto, priimamas TV IR imtuvu. Kontroleris gali nustatyti, iš kurios pusės – kairės ar dešinės – yra objektas, nes IR diodai užsidega ne vienu metu, o paeiliui.
DPRG sensoriaus programos algoritmas:
- Pamirksėti Kairės pusės IR diodu 38 kHz dažniu 600 mikrosekundžių;
- Jei imtuvas mato IR signalą, pereiti prie punkto 3, kitu atveju pereiti prie punkto 6;
- Išjungti Kairės pusės IR diodą ir laikyti jį išjungtą 600 mikrosekundžių;
- Jei imtuvas vėl mato IR signalą, pereiti prie punkto 6;
- Objektas yra. Įjungti Kairės pusės šviesos diodą ir nustatyti HIGH būseną kontrolieriaus LEFT_DETECT išėjime, pereiti prie punkto 7;
- Objekto nėra;
- Grįžti į punktą 1 pakeitus Kairės pusės diodą į Dešinės pusės (ar atvirkščiai).
DPRG-klonas
Taigi nusprendžiau pasidaryti tokį sensorių. Kadangi neturėjau PIC valdiklių, teko panaudoti ATTINY2313. Taip pat perrašiau DPRG algoritmą „Bascom“ AVR'e. Pavadinau savo sensorių „DPRG-klonas“ originalaus DPRG garbei.
ATTINY2313 turi du „hardwarinius“ taimerius, su kuriais galima gauti bet kokio dažnio impulsus (PWM signalą) ant dviejų atskirų mikrokontrolerio kojelių. Su „Bascom“ AVR tai įvykdoma parašius porą eilučių kodo. Galime naudoti bet kokį turimą TV IR imtuvą (35-40kHz), nes dažnis reguliuojamas vieninteliu kintamuoju AVR programoje.
DPRG-klonas dirba stabiliai prie įvairių apšvietimo sąlygų ir gali matyti objektus iki 1 metro atstumu. Tačiau toks objekto aptikimo atstumas dažniausiai yra per didelis. Su pilna potenciometro varža (1k) objektų aptikimo atstumas sumažėja, bet išlieka apie 30–40 cm. Todėl mažesniems robotams aš rekomenduočiau nuosekliai su potenciometru palikti vietą varžai, kurios reikšmę bus galima parinkti bandymo būdu. Taip pat vietos taupymui galima naudoti mažesnius IR imtuvus, pavyzdžiui TSOPxx.
Yra galimybė praplėsti sensoriaus padengimo zoną. Tam reikia pridėti TV IR imtuvą + IR LEDą (-us) ir padaryti nesudėtingą programos korekciją. Papildomas valdiklis nereikalingas. Šis variantas dar nėra įgyvendintas.
DPRG-klonas, sumontuotas ant mano roboto
Išvados
Renkantis objektų aptikimo sensorius savo robotui, reikia atsižvelgti į keletą dalykų:
- Reikalingas objekto aptikimo atstumas; ar yra būdas jį reguliuoti;
- Veikimo principas. Paprastesniam robotui gali užtekti moduliuoto IR signalo sensorių, sudėtingesniam robotui galima naudoti trianguliacinius kartu su moduliuoto IR signalo sensoriais. Dar galima naudoti lazerinius skenerius ar videokameras, bet tai jau kito straipsnio tema.
Visas detales DPRG-klonui galima lengvai įsigyti Lietuvoje. Taigi, turint visas detales, sensorių galima surinkti per vieną vakarą.
Taigi, padovanokite savo robotui regėjimą. Sėkmės!
Nuorodos
- Geriausias objektų aptikimo sensorius – „DPRG IR Proximity Detector“.
- Panašaus sensoriaus projektas.
- Geras straipsnis apie trianguliacinius sensorius.
- Dar vienas geras straipsnis apie sensorius.
Failai
- DPRG-clone.bas – programa „Bascom“ AVR‘ui;
- DPRG-clone.hex – sukompiliuotas hex failas AVR‘ui;
- DPRG-clone.lay – DPRG-klono plokštes (pcb) išdėstymas SprintLayout‘ui;
- dprg clone.png – DPRG-klono schema;
- dprg-clone-ready.JPG – veikiančio DPRG-klono nuotrauka.
Visi failai viename archyve.
Filmukai, demonstruojantys roboto veikimą: roaming_robot.wmv [1,94 MB], robot_with_notebook.wmv [2,05 MB].