Robotika ako hobby - vyrábame robota
V minulom čísle sme sa naučili naprogramovať procesor a postaviť základnú elektronickú schému na skúšobnej doske. Teraz dokončíme jednoduchého robota, ktorý dokáže sledovať čiernu čiaru na bielom podklade. Robot potrebuje na rozlíšenie čiary senzor, o ktorom si povieme v prvej časti článku. V druhej časti rozoberieme motory a uvedieme rôzne návody na konštrukciu a inšpiráciu.
Oči robota na sledovanie čiary
Základný princíp snímania polohy čiary sme objasnili už v prvom článku: svetelná dióda zasvieti na podlahu a fotocitlivá súčiastka alebo kamera prijme odrazený lúč svetla. Čierna čiara pohlcuje svetlo, kým biela podlaha ho odráža. Na detekciu čiary najspoľahlivejšie funguje červená až infračervená oblasť spektra, pretože také svetlo je čiernou čiarou najlepšie pohltené.
Pokročilejšou technikou je použiť kameru. Veľkou výhodou je, že robot dokáže vidieť čiaru a každú zákrutu v predstihu, a tak dokáže rýchlejšie reagovať. To však vyžaduje náročnejšie spracovanie obrazu a výkonnejší procesor.
Robot s kamerou. Na dráhu si svieti červenými diódami.
Robot s kamerou. Na dráhu si svieti červenými diódami.
Jednoduchšou možnosťou je postaviť vedľa seba niekoľko svetelných diód a fotodiód v pároch.
Robot s deviatimi „očami“ – dvojicami svetelných diód a fotodiód na podvozku
Robot s deviatimi „očami“ – dvojicami svetelných diód a fotodiód
na podvozku
Na jedno oko použijeme kombináciu infračervenej diódy a fototranzistora. Dôležité je, aby vysielač aj prijímač fungovali na rovnakej vlnovej dĺžke. Napríklad súčiastky s katalógovým označením IRS5 (infradióda) a IRE5 (fototranzistor) sa vyrábajú so zhodnou vlnovou dĺžkou 940 nm.
Infračervená dióda a fototranzistor a ich možné schematické značky
Infračervená dióda a fototranzistor a ich možné schematické značky
Svetelná dióda sa zapája do obvodu tak, že dlhšia noha (anóda) sa pripája na kladný pól zdroja, kým kratšia noha (katóda) sa pripája na záporný pól. Ak ju zapojíme naopak, diódou neprechádza prúd a nesvieti. Fototranzistor sa zapája presne opačne, teda normálne ním neprechádza prúd. Hneď, ako naň zasvietime, začne prepúšťať prúd závislý od intenzity svetla. Na čiare je intenzita odrazeného svetla takmer nulová, a teda fototranzistor nebude prepúšťať prúd. Naopak, biela podlaha odráža dostatok svetla. Keďže prúd má premenlivú hodnotu, dostávame analógový signál. Procesor však vyžaduje ako vstup jednoznačnú binárnu hodnotu buď 0 alebo 1, teda digitálny signál. Na úpravu signálu z analógového na digitálny používame napäťový komparátor.
Napäťový komparátor a jeho schematická značka. Označenia + a – nemajú nič spoločné s označením pre kladný a záporný pól.
Napäťový komparátor a jeho schematická značka.
Označenia + a – nemajú nič spoločné s označením pre kladný
a záporný pól.
Tento mikročip vykonáva jednoduchú aritmetickú úlohu. Na dva vstupy dostane dve rôzne napätia a porovná ich. Ak je napätie na vstupe + väčšie ako napätie na vstupe –, na výstupe bude binárna hodnota 1. V opačnom prípade bude na výstupe binárna hodnota 0. Na vstup + pripojíme pevné referenčné napätie a na druhom vstupe – bude napätie závislé od fototranzistora. Digitálny výstup už môžeme priamo pripojiť na procesor. Pri zapojení napäťového komparátora použijeme niekoľko rezistorov. Ich hodnoty boli určené experimentálne s prihliadnutím na normy podľa technickej špecifikácie.
Napäťový komparátor a fototranzistor tvorí jedno oko robota
Napäťový komparátor a fototranzistor tvorí jedno oko robota
Otočný rezistor s premennou hodnotou – trimer – určuje veľkosť referenčného napätia, a tým pádom citlivosť oka robota. Ak je intenzita svetla malá (na tmavej čiare), napätie spadne pod referenčné a na výstupe bude 1. Pri silnejšom svetle (na bielej ploche) napätie vystúpi nad referenčné a na výstupe bude 0. Otáčaním trimera nastavujeme optimálny kontrast medzi bielou a čiernou, keďže nikdy nie je dokonalá biela a dokonalá čierna. Pri maximálnom otočení na jednu stranu môže oko vidieť tmu aj na bielej ploche a zase pri opačnom extréme môže vnímať trochu odrazeného svetla aj na tmavej čiare.
Pre našu ukážku budeme potrebovať dve oči. Medzi nimi sa budeme snažiť udržať čiaru. Keď pravé oko zaregistruje čiaru, robot je vychýlený príliš doľava a musí odbočiť doprava. Naopak, keď bude čiara pod ľavým okom, robot odbočí doľava.
Obrázok
Ľavé oko pripojíme na pin 22 a pravé oko na pin 23 (prvé dva piny skupiny PORTC). Pre dve oči potrebujeme dva napäťové komparátory, a preto použijeme mikročip LM393, ktorý ma v sebe zabudované oba. Ak by sme chceli viac, môžeme použiť väčší mikročip LM339, ktorý obsahuje až štyri napäťové komparátory.
Umiestnenie komparátorov v mikročipoch LM393 a LM339
Umiestnenie komparátorov v mikročipoch LM393 a LM339
Pre každé oko použijeme vyššie načrtnutú schému zapojenia, ale trimer s referenčným napätím (žlto zvýraznená časť schémy) stačí jeden pre obe oči. Ešte musíme každému oku posvietiť na cestu infračervenou diódou, ktorá sa zapája štandardne (nesmieme zabudnúť na ochranný rezistor):
Obrázok
Obe oči spolu s infračervenými diódami na kontaktnom poli
Obe oči spolu s infračervenými diódami na kontaktnom poli
Počas činnosti robota odporúčame prikryť ich nepriesvitnou látkou, napríklad čiernym papierom, aby zvrchu nedopadalo vonkajšie rušivé svetlo. Aby sme mohli oči otestovať, pre kontrolu pripojíme dve svetelné diódy na piny 39 a 40 (prvé dva piny skupiny PORTA). Neskôr ich zameníme za motory.
Obrázok
Konštrukcia očí je hotová a teraz napíšeme program, ktorý pomocou svetelných diód prezradí, pod ktorým okom sa nachádza čiara. Pri experimentovaní môžeme zasvietiť na fototranzistor aj bežnou lampou. Reaguje, hoci je citlivý primárne na neviditeľné infračervené svetlo. Ak zasvietime na ľavý fototranzistor, mala by sa rozsvietiť červená dióda na pine 39. Ak zasvietime na pravý, rozsvieti sa zelená dióda na pine 40.
Obrázok
1. Ošetríme vstup a výstup. Prvé dva piny zo skupiny PORTA používame ako výstup na svetelnú diódu, a preto premennej DDRA priradíme binárnu hodnotu 00000011, čo sa rovná 3. Ďalej prvé dva piny zo skupiny PORTC používame ako vstup zo senzora, a preto premennej DDRC priradíme nulu.
2. Obom vstupným pinom priradíme na začiatku hodnotu 1, t. j. premennej PORTC priradíme hodnotu 3 (rovnaká matematika ako vyššie).
3. V nekonečnom cykle sa pýtame, aká je hodnota vstupných pinov. Najprv sa opýtame na pravé oko. Vieme, že sme ho pripojili na pin 22. V binárnej sústave je to nultý bit premennej PINC. Ak má hodnotu 1, premennej PORTA priradíme hodnotu 1. To znamená, že sa rozsvieti červená dióda a zelená zhasne (viď obrázok). Uvedený príkaz teda v našej reči znamená: Ak je pod pravým okom tma, rozsvieť iba červenú diódu.
Obrázok
4. Ak pod pravým okom nebola čiara, ideme testovať ľavé oko. Testujeme pin 23, čiže prvý bit premennej PINC. Napíšeme príkaz: Ak je pod ľavým okom tma, rozsvieť iba zelenú diódu. 5. V opačnom prípade nie je tma ani pod jedným okom a vtedy rozsvietime obe diódy. V praxi to zodpovedá situácii, keď je tmavá čiara medzi očami, alebo nebodaj robot opustil čiaru, a vtedy by robot mal ísť rovno.
Zapájame motory
Keď oči úspešne fungujú a robot uzrel svetlo sveta, môžeme sa pustiť do zapojenia motorov. Spomedzi alternatív opísaných v prvom článku nášho seriálu si vyberieme najdostupnejšiu a najjednoduchšiu na riadenie, a to motor na jednosmerný prúd. Taký motor ľahko nájdeme v starých magnetofónoch, hračkách, CD-romkách atď., a preto niet divu, že nadšencov elektroniky a robotiky niekedy stretnete na ulici rozoberať vyhodený brak.
Elektromotorček
Na rozdiel od svetelnej diódy vyžadujúcej na rozsvietenie slabý prúd okolo 20 mA, motor sa roztočí až pri takom prúde, pri ktorom by procesor zhorel. Nemôžeme ho teda priamo pripojiť na pin procesora. Výstupný prúd z procesora musíme zosilniť tranzistorom, prípadne sériou viacerých tranzistorov. Praktickým riešením je súčiastka TIP120, ktorá zosilňuje pomocou viacerých zabudovaných tranzistorov, ale navonok sa tvári ako jeden výkonný tranzistor.
Výkonný tranzistor TIP120
Výkonný tranzistor TIP120
Pomocou slabého prúdu na báze B tranzistora dokážeme spínať silnejší prúd prechádzajúci medzi kolektorom K a emitorom E.
Schéma zapojenia tranzistora s motorom
Schéma zapojenia tranzistora s motorom
Z kontaktného poľa teraz vyberieme červenú a zelenú diódu spolu s ochrannými rezistormi a namiesto nich pripojíme dva tranzistory pre dva motory (tu nesmieme zabudnúť na ochranný rezistor 1 kΩ). Každý motor pripojíme na kolektor tranzistora a kladný pól (farebne vyznačené miesta).
Zapojenie súčiastok
Červenú diódu nahradíme ľavým motorom a zelenú pravým. Analyzujme pohyb robota. Ak je čiara medzi očami, roztočia sa oba motory a robot pôjde rovno (viď ilustráciu na predchádzajúcej strane). Ak pravé oko zaregistruje čiaru, roztočí sa iba ľavý motor a pravý motor zastane. To spôsobí, že robot odbočí mierne doprava. Čiara sa opäť ocitne medzi očami, roztočia sa oba motory a robot pôjde ďalej rovno. Podobne, keď ľavé oko uvidí čiaru, vypne sa ľavý motor a robot odbočí mierne doľava. Takto sa robot v každom okamihu snaží vyrovnať a bezpečne prechádza po vyznačenej dráhe.
Mohli by sme očakávať, že motory reagujú rovnako ako svetelné diódy predtým. Tranzistor však mení správanie na opačné. Spomeňme si, že tranzistor prepúšťa prúd a roztočí motor, len ak dostane na bázu slabý prúd z pinu procesora. To znamená, že motor sa točí, keď je na pine procesora binárna hodnota 1 a netočí sa pri hodnote 0. Motor sa teda bude správať presne naopak ako svetelná dióda, ktorá svietila pri hodnote 0. Program musíme prepísať. Zmeníme výstupné hodnoty premennej PORTA.
Kód
A teraz prichádza hlavný technický problém: samotné motory sú príliš rýchle a len ťažko dokážu pohnúť robotom. Potrebujeme prevodovku. Niektorí konštruktéri si poskladajú prevodovku z lega či inej stavebnice. Populárnejším riešením je kúpiť servomotor a upraviť ho na naše potreby. Ďalšou jeho výhodou je, že má malý prúdový odber a spôsobuje podstatne menší šum v obvode na rozdiel od motorčeka na jednosmerný prúd. Šum je pre mnohých elektroamatérov nočnou morou a aj napriek stabilizovaniu väčším kondenzátorom sa môže procesor samovoľne resetnúť pri rozbiehaní a brzdení robota. V takom prípade je pokročilým riešením oddelenie elektrického zdroja zvlášť pre procesor a zvlášť pre motory. Na nasledujúcich obrázkoch je popísaná amatérska úprava lacnejšieho servomotora, ktorý sa dá kúpiť v modelárskom obchode za 250 Sk. Ceny sa pohybujú podľa kvality od stoviek do tisícov korún (drahšie sú najmä tie s kvalitnou kovovou prevodovkou a guľôčkovým ložiskom).
Úprava serva
Skrinku servomotora otvoríme odmontovaním štyroch skrutiek na zadnej strane. Opatrne otvoríme predný aj zadný kryt tak, aby sme nezbierali zo zeme prevodové kolieska.
Úprava serva
Na prednej strane si všimneme, čo bráni plnej otočke. Niekedy to býva kolík na prevodovom koliesku, v tomto prípade sa nachádza malá zarážka na prednom kryte. Odstránime ju skalpelom alebo ostrým nožom.
Úprava serva
Na zadnej strane vyberieme von elektroniku a odstrihnutím vodičov ju kompletne odstránime.
Úprava serva
Na voľné konce pripojíme vonkajšiu zásuvku a zaizolujeme ich lepiacou páskou. Skrinku môžeme zatvoriť a na vonkajšiu os priskrutkujeme biely kotúč z príslušenstva, aby sme naň mohli upevniť koleso.
Zapojenie serva
Koleso robota
Robot je až na kolesá a prenosný zdroj takmer hotový. Ako vhodné kolesá môžu poslúžiť vrchnáky od fliaš na zaváraniny, ktoré sa ľahko prišijú na kotúč motora. Aby koleso neprešmykovalo, odporúčame ho vybaviť gumeným pásom alebo silikónom.
Takto sme dostali dvojkolesovú konštrukciu. O tretí oporný bod sa postaráme tak, aby sa svetelná dióda a fototranzistor pohybovali tesne nad zemou. Tretí bod je výzvou fantázie. Na súťažiach bol riešený malým kolieskom, zubnou kefkou, guľôčkou, špendlíkovou hlavičkou, plechovkou a inými originálnymi nápadmi. Dôležité je, aby nevznikalo priveľké trenie o podlahu.
Odpojíme skúšobný adaptér a ako zdroj použijeme šesť nabíjacích ceruzkových akumulátorov. Ak majú priveľkú hmotnosť, môžeme skúsiť aj malú 9 V baterku, tá sa však rýchlo vybíja. Profesionálnejším riešením môže byť lítium-iónový akumulátor pre modely, ktorý je malý, ľahký a zároveň dlhšie vydrží. Náš motor je však dostatočne výkonný a hmotnosť šiestich ceruzkových bateriek spoľahlivo utiahne. Baterky vložíme do puzdra a získame tak zdroj 7,2 V.
Robota položíme na dráhu zhotovenú z bielej dosky alebo výkresového papiera a čiernej izolačnej lepiacej pásky a môžeme sledovať, ako si poradí s traťou.
Zapojenie zdroja
Náš robot spoľahlivo funguje a jeho video si môžete pozrieť na stránke
http://www.mladyvedec.sk/download/06/robotika3.avi.
Zdolanie nástrah ako prerušená čiara či tehla na dráhe, ktorú treba obísť, ponechávame konštruktérom. Prerušená čiara na veľmi krátkom úseku už môže byť zvládnutá, robot prerušenie bez povšimnutia preletí. Tehla by sa dala obísť naslepo, ak vieme odhadnúť približné rozmery tehly a vopred naprogramujeme, ako sa má robot správať. Pre zaregistrovanie tehly stačí pridať predný nárazník, ktorý bude fungovať ako dotykový spínač a spracovanie vstupného signálu zo spínača procesorom už poznáme. Trochu problematické pre nášho robota môže byť cúvanie dozadu alebo otáčanie sa na jednom mieste. Nemáme riadenie, ktorým by sme prikázali motorom ísť dozadu, vieme ich len roztočiť dopredu a zastaviť. Záujemcovia si môžu vyhľadať známe elektrotechnické zapojenie H-most, ktoré umožní prepínanie polarity motora na jednu a na druhú stranu.
Robot
Pre inšpiráciu si povieme niečo o ďalších alternatívnych konštrukciách. Robot s motorčekmi z nájdeného rozbitého magnetofónu a gumenou prevodovkou. Kolesá sú vyrobené z niekoľkých vrstiev kartónu a obalené silikónom. Zaujímavé pritom je, že tento robot patrí k víťazným. Všimnite si tiež tretí oporný bod.
Robot z lega s pásovým prevodom
Robot z lega s pásovým prevodom
Možno nie je náhoda, že takmer všetky roboty využívajú dvojkolesovú konštrukciu. Tá sa ukazuje nielen ako najjednoduchšie zostrojiteľná, ale aj praktická – taký robot dokáže rýchlejšie odbáčať, pružnejšie reagovať a lepšie manévrovať. Ale nájdeme aj chodiace „pavúky“:
Robot
Andrej Osuský