Liniją sekantis robotas

Neseniai, kraustydamas stalčius, radau prieš keletą metų pradėtą, bet taip ir nepabaigtą daryt robotą. Buvo darytas PIC programavimo mokymosi tikslais. Internete apie tokius robotus galima rasti labai daug informacijos. Angliškai jis vadinasi „line follower robot“. Rengiamos net tokių robotų varžybos. Principas paprastas – jis turi važiuoti ant grindų ar didelio popieriaus lapo nupiešta linija. Linija gali būti įvairi ir pakankamai sudėtinga.

Taigi, prieš keletą metų buvo padaryta tik mechaninė dalis ir davikliai. Tokiam robotui reikia dviejų variklių, kuriuos junginėjant, galima keisti judėjimo kryptį ir greitį. Dar reikia foto daviklių, kurie galėtų „matyti“ liniją. Ir paskutinis reikalingas dalykas – mikrokontroleris, kuris gali visai tai valdyt. Dabar aš jau neprogramuoju PIC, perėjau prie Atmel mikrokontrolerių. Todėl ir čia panaudojau tinkamiausią tokiam dalykui – mega8.

Daviklius galima naudoti įvairius, jų gaminama daugybė, bet galima pasirinkti ir visai pigų variantą – išlupti iš kompiuterinės pelės. Ten galima rasti du tokius daviklius. Tik pelė turi būti ne optinė o su ratuku apačioje. Pelėje yra infraraudonųjų spindulių foto tranzistoriai. Kokie tiksliai nežinau, bet tai ir nesvarbu. Nesu net įsitikinęs, kad ten tikrai foto tranzistoriai, gal tai foto diodai. Bet esmė tame, kad jie tinka šiam tikslui. Dar ten yra du infraraudonųjų spindulių šviesos diodai, kurie irgi reikalingi šiam projektui. Šiaip jau toks pasirinkimas nelabai geras, tačiau pas mus nėra kur nusipirkt normalesnių daviklių, reikia užsakinėt arba pirk užsienyje.

Panaudojau keturis daviklius. Tai nėra pats geriausias variantas, galima naudoti ir daugiau, tada robotą galima būtų valdyti tiksliau. Bet tai nebuvo mano tikslas, norėjau tik pabandyt, kaip toks robotas veikia. Kaip padaryta matosi nuotraukoje.

Keturi foto davikliai, šalia jų keturi šviesos diodai, kad apšviestų paviršių. Robotas turi atskirti juodą spalvą nuo baltos maždaug 0,5 cm atstumu nuo paviršiaus. Signalas iš daviklių (atsispindinti šviesa) patenka į komparatorius, kurių persijungimo momentas sureguliuotas taip, kad patikimai reaguotų į spalvos pasikeitimą. Davikliai iš viršaus uždengti. Tai būtina tam, kad nereaguotų į išorinę šviesą.

Robotuose sudėtingiausia – mechaninė dalis. Reikia reduktorių. Aš padariau labai paprastus „reduktorius“. Kaip atrodo, matosi nuotraukoje.

Ratai pritvirtinti taip, kad pakėlus robotą nuo žemės, neliečia variklių ašių. Liečia tik tada, kai robotas padėtas. Veikia tai visai neblogai. Trečias roboto ratas laisvai sukinėjasi. Tai leidžia gana neblogai sukinėtis į visas puses, ir apsisukti beveik vietoje, bet nelabai gali važiuoti tiesiai. Bet šiuo atveju tas važiavimas tiesiai nelabai svarbus.

Varikiai valdomi paprasčiausiu būdu – panaudota L293D mikroschema. Tai leidžia variklius įjungti abiem kryptimis ir reguliuoti greitį naudojant PWM.

Variklių valdymo algoritmas labai paprastas, nors prie jo reikia gerai pagalvot. Kitaip robotas gali kai kurias atvejais pamesti liniją. Aš naudojau tik keturis daviklius, ir iš jų gaunu tik 0 arba 1 priklausomai nuo to, kokia spalva po davikliu. Galima daryti ir kitaip. Pvz. pajungti prie analoginių mega8 įėjimų, o komparatorių nenaudoti visai. Tada galima būtų daug tiksliau sekti liniją. Tikslumą padidina ir variklių greičio reguliavimas. Nors aš naudoju tik 3 greičius.

Kaip veikia robotas matosi video. Ten matosi ir tai, kaip jis „mato“ liniją. Gavosi linksmas žaisliukas, kuris šiaip jau nieko nevertas. :) Tačiau gal ir neblogas variantas mokantis programavimo. Reikia juk kažką bandyt padaryt…

This entry was posted in Elektronika, Programavimas, Robotai. Bookmark the permalink.

4 Responses to Liniją sekantis robotas

  1. oviuxxxx says:

    sveikutis mane domina sio robotuko elektrine schema butent kokiu detaliu reikia. gal galetum ikelt detaliu sarasa su ju tyksliais pavadinimais

  2. ReM says:

    Deja, schema yra tik mano galvoje. Taigi, norint ją parodyti tektų pirmiau nubraižyt, o man visai nėra noro… :) Liniją sekančių robotų schemų tikrai galima rast internete…

  3. Donatas says:

    geras pavaros prijungimas, reikės pasinaudoti kada idėja :)
    aš dariau per diržinę pavarikę, tai teko pavargti konkrečiai kad veiktų, bet vis tiek dažnai numeta dirželį.

  4. vyttasas says:

    sveikas gal galėtum atsiust c koda?

Leave a Reply

Your email address will not be published. Required fields are marked *