Andurid Robootika KodulaborisAutor: Raivo Sell Käesolev õpiobjekt tutvustab erinevate andurite kasutamist Robootika Kodulaboriga.Andurid on seadmed, mis teisendavad mingi füüsikalise suuruse, näiteks temperatuuri, valgustugevuse, jõu, kiirenduse, inimesele või masinale arusaadavale kujule. Nende abil saab mikrokontrolleri programm infot ümbritsevast keskkonnast ja selle põhjal otsuseid teha. Andureid on väga erinevat liiki, kuid mikrokontrolleritega saab ühendada andureid, mille väljundiks on elektriline signaal. Elektrilise väljundsignaali järgi võib andurid jagada väga üldiselt kahte tüüpi: analoog- ja digitaalandurid. ![]() Analooganduris muutub füüsikalise suuruse muutudes mõni selle elektriline parameeter, tavaliselt kas pinge, vool või takistus. Kuna mikrokontrollerid on digitaalsed seadmed, siis analooganduri info edastamiseks kontrollerile tuleb see digitaalseks teisendada. Selleks kasutatakse peamiselt mikrokontrolleritesse integreeritud analoog-digitaalmuundureid. Kui analoogandur juba sisaldab info digitaliseerijat, nimetatakse seda digitaalseks anduriks. Peale digitaliseerimise võivad digitaalsed andurid infot ka normeerida, andurit kalibreerida ja palju muid funktsioone täita. Digitaalse anduri info edastamine mikrokontrollerile võib toimuda mitmel viisil - lihtsamal juhul loogiliste signaalidega, keerukamal juhul mõne andmesideliidese kaudu. ![]() Õpiobjekti nimi: Andurid Robootika KodulaborisÕpiväljundid:Pärast mooduli läbimist õpilane:
Kasutusjuhend:
Õpetatav osa: Lugeda teoreetilist ülevaadet enne riistvara reaalset ühendamist ja pingestamist. Vaadata õpivideosid korrektse riistvara käsitlemise tagamiseks. Õpitu kinnistamiseks tuleb praktilised näited reaalselt läbi teha. Seoste loomine: Läbi õppevideo ja sõnalise selgituse järgimise. Kinnistav osa: Iseseisev praktika reaalse riistvarakomplekti baasil. TEOREETILINE OSA![]() Analoog-digitaal muundurAnaloog-digitaalmuundur (inglise keeles analog to digital converter, lühend ADC) muundab analoogpinge väärtuse digitaalseks väärtuseks. AVR-i ADC analoogpinge sisend on lubatud 0-5,5 V piires. Digitaalne väärtus on 10-bitine, kuid selle täpsus on ±2 ühikut. Viga võib veelgi kasvada, kui kiibi toitepinget häirete eest ei kaitsta. ADC jaoks on AVR-il eraldi toite ja võrdluspinge viik. Eraldi toide on mürakindluse pärast ja see ei tohi kiibi toitepingest erineda rohkem kui 0,3 V. Võrdluspinge määrab maksimaalse digitaalse väärtuse. Ehk kui võrdluspinge on 3 V, siis sama pingega sisend annab väärtuseks 210 - 1 ehk 1023. AVR ADC töötab võrdlusmeetodil (inglise keeles successive approximation). Lühidalt öeldes toimub mõõdetava pinge võrdlemine kindlate nivoopingetega ja tulemuste esitamine tõeväärtuste-, ehk bitijadana. See meetod on suhteliselt aeganõudev, sest iga biti leidmine lõppväärtuses toimub eraldi. AVR-il kulub töö ajal 13 takti ühe mõõtmise tegemiseks ja 25 takti kõige esimesel mõõtmisel (käivitusel). Need taktid pole aga kontrolleri töötaktid, vaid spetsiaalselt ADC üksuse jaoks sagedusjaguriga saadud taktid. Maksimaalse täpsuse saamiseks peaks ADC takt olema 50-200 kHz. Kõrgemal taktil kaob täpsus. Vahel on ka mõõtmiste suur arv olulisem kui täpsus ja siis on põhjendatud suurema sageduse kasutamine. Ühele mõõtmisele kuluvaks ajaks on AVR dokumentatsioonis antud 13-260 µs. Mõõtetulemust saab kasutaja lugeda 8- ja 10-bitisena. Kuna AVR on 8-bitine, siis ADC mõõteväärtuste jaoks on sel kaks 8-bitist registrit. Seadistustes saab määrata, kas 10-bitisest väärtusest 2 esimest või 2 viimast bitti lähevad eraldi registrisse. Kui eraldatakse 2 noorimat ehk tulemust vähem iseloomustavat bitti, saab mõõtetulemuse 8-bitisena lugeda - sellist kombinatsiooni nimetatakse vasak-asetusega mõõtetulemuseks (left align). Teistpidist kombinatsiooni, kus kaht tulemusregistrit lugedes tekib 10-bitine arv, nimetatakse parem-asetusega mõõtetulemuseks (right align). Mõõdetavaid analoogpinge sisendkanaleid on AVR-idel tavaliselt 8, ATtiny seerial üksikud, mõnel ATmega seeria kiibil 16, kuid muundureid on siiski üks. Erinevate sisendite kasutamiseks on kiibis multiplekser. Multiplekseri sisend on spetsiaalse registriga määratav. ADC üksusel on veel mõned omadused: muundamine protsessori magamisrežiimis müra vähendamiseks ja sisemise fikseeritud võrdluspinge (2,56 V, mõnel ka 1 V) kasutamise võimalus. Analoog-digitaal muunduri registridJärgnevalt on toodud ülevaade ühe analoog-digitaal muunduriga seotud registrid AVR Atmega kontrolleri näitel. Muunduri töö juhtimiseks ja andmete hoidmiseks on neli eraldi registrid, milleks on ADMUX, ADCSRA, ADCH, ADCL.
![]() Takistuslikud anduridPotentsiomeeter![]() ![]() Potentsiomeeter on kolme kontaktiga muuttakisti, mille kahe äärmise kontakti vahel on fikseeritud takistus ja äärmiste ning keskmise kontakti vahel muutuv takistus. Potentsiomeeter on põhimõtteliselt ka pingejagur, kus takistid moodustuvad äärmiste kontaktide ja keskmise kontakti vahel. Potentsiomeetri (inglise keeles potentiometer) sünonüüm on reostaat (inglise keeles rheostat). Tüüpiline potentsiomeeter koosneb voolu juhtiva pinnaga takistist ja sellel liuglevast liikuvast kontaktist ehk liugurist. Mida lähemal on liugur takisti servale, seda väiksem on liuguri ja selle serva vaheline takistus ning vastupidi. Takisti rolli võib täita kas suure eritakistusega materjal või takistustraadist keritud mähis. Potentsiomeetreid on olemas nii lineaarse kui ka logaritmilise takistuse ja positsiooni suhtega. Suurem osa potentsiomeetritest on pööratavad (näide kõrvaloleval pildil), kuid eksisteerib ka liugtakisteid. Potentsiomeetrite eriliik on digitaalsed potentsiomeetrid, milles takistuse reguleerimine toimub mikroskeemi sees vastavalt juhtsignaalidele. Kodulabori Andurite mooduli plaadil asub pööratav 4,7 kΩ potentsiomeeter. Potentsiomeeter on ühendatud maa ja +5 V potentsiaalide vahele ning liugur ühendub mikrokontrolleri analoog-digitaalmuunduri kanaliga 3. Selliselt ühendatuna saab potentsiomeetri väljundpinget reguleerida vahemikus 0 kuni 5 V. Kui ka AVR-i analoog-digitaalmuunduri võrdluspinge võtta AVCC viigult, saab potentsiomeetri väljundpinge digitaalse väärtuse kogu selle reguleerimispiirkonna ulatuses. AVR ADC kasutamiseks on Kodulabori teegis kirjutatud järgmised funktsioonid: Termistor![]() ![]() Termistor on takisti, mille takistus muutub temperatuuriga. Termistore on kahte liiki: positiivse ja negatiivse temperatuuri koefitsiendiga. Positiivse koefitsiendiga termistori takistus temperatuuri tõustes kasvab ja negatiivsel väheneb. Vastavad lühendatud ingliskeelsed nimed on neil PTC (positive temperature coefficient) ja NTC (negative temperature coefficient). Termistori kasutamise teeb keeruliseks tema takistuse temperatuurisõltuvuse mittelineaarsus. Lineaarne on sõltuvus vaid väikestes vahemikes, mitmekümnekraadise ja suurema mõõtepiirkonna arvutamiseks sobib Steinhart-Harti kolmandat järku eksponentsiaalne võrrand. NTC termistoride jaoks on olemas järgmine B-parameetriga lihtsustatud võrrand: ![]() kus:
B-parameeter on koefitsient, mis tavaliselt antakse termistori andmelehes. Samas on see ainult teatud temperatuurivahemikes piisavalt konstantne, näiteks 25–50 °C või 25–85 °C. Kui mõõdetav temperatuurivahemik on suurem, tuleb võimalusel kasutada andmelehel antud võrrandit. Termistori takistust mõõdetakse kaudselt pingejaguriga, kus ühe takisti asemel on termistor ja mille sisendpinge on konstantne. Mõõdetakse pingejaguri väljundpinget, mis muutub koos termistori takistuse muutusega. Pinget rakendades läbib termistori aga elektrivool, mis termistori selle takistuse tõttu soojendab ja seega omakorda takistust muudab. Termistori soojenemisest tekkivat viga saab arvutuslikult kompenseerida, kuid lihtsam on kasutada suurema takistusega termistori, mis soojeneb vähem. Piiratud ressurssidega ja suurt täpsust mittenõudvates rakendustes kasutatakse eelnevalt välja arvutatud temperatuuri ja takistuse vahelise sõltuvuse tabelit. Tabelis on üldjuhul kirjas kindla vahemikuga temperatuurinäitude vastavus anduri takistuse, pinge või analoog-digitaalmuunduri väärtusega. Tabeli puhul on kogu eksponentsiaalne arvutus eelnevalt ära tehtud ja programmis tuleb vaid mõõdetud parameetrile vastav rida üles otsida ja temperatuur välja lugeda. Fototakisti![]() ![]() Fototakisti on andur, mille elektriline takistus muutub sõltuvalt temale pealelangeva valguse intensiivsusest. Mida intensiivsem on valgus, seda rohkem tekib vabu laengukandjaid ning seda väiksemaks jääb elemendi takistus. Fototakisti kaks välist metallkontakti ulatuvad läbi keraamilise alusmaterjali valgustundliku kileni, mis oma geomeetria ja materjali omaduse poolest määravad elektrilised takistuslikud omadused. Kuna fototundlik materjal on iseloomult suure takistusega, siis peenikese käänulise rajaga elektroodide vahel saavutatakse madal elemendi kogutakistus keskmise valguse intensiivsuse juures. Nii nagu inimese silm, on ka fototakisti tundlik kindlale valguse lainepikkuse vahemikule. Fotoelemendi valikul tuleb sellega kindlasti arvestada, kuna vastasel juhul ei pruugi see rakenduses kasutatavale valgusallikale üldse reageeridagi. Siinkohal olgu ära toodud nähtava valguse lainepikkused jaotatuna lihtsustatult värvide järgi.
Fototakistil on kindlasti määratud ka töötemperatuuri vahemik. Kui tahta lasta anduril töötada erinevatel temperatuuridel, siis tuleb kindlasti sisse viia täpsustavad teisendused, kuna anduri takistuslik omadus sõltub välistemperatuurist. Valguse intensiivsuse iseloomustamiseks kasutatakse füüsikalist suurust valgustustihedus (tähis E), mis näitab mingile pinnale jõudva valgusvoo hulka. Mõõdetavaks ühikuks on luks (lx), kus 1 luks tähendab, et 1 m2 suurusele pinnale langeb ühtlaselt valgusvoog 1 luumen. Reaalses elus praktiliselt kunagi aga ei lange valgus (elamis)pinnale ühtlaselt ning seetõttu valgustustihedus saadakse rohkem keskmise väärtusena. Võrdluseks olgu ära toodud ka mõningad valgustustiheduse näited:
KaugusanduridInfrapuna kaugusandur![]() ![]() Sharp GP2Y0A21YK Objekti kauguse mõõtmiseks on olemas triangulatsioonimeetodil töötavad optilised andurid. Levinuimad neist on firma Sharp poolt toodetavad infrapuna (inglise keeles infra-red, lühend IR) lainepikkusel töötavad analoogpinge väljundiga kaugusandurid. Sharp-i anduritel on läätsega IR LED, mis kiirgab kitsast valguskiirt. Objektilt peegeldunud kiir suunatakse läbi teise läätse positsioonitundlikule fotoelemendile (inglise keeles position-sensitive detector, lühend PSD). PSD-le langeva kiire asukohast sõltub selle juhtivus. Juhtivus muundatakse pingeks ja seda näiteks mikrokontrolleri analoog-digitaalmuunduriga digitaliseerides saab välja arvutada kauguse. Erinevatelt kaugustelt peegelduvate kiirte teekonda näitab kõrvalolev joonis. Sharp-i kaugusandurite väljund on pöördvõrdeline - kauguse kasvades see väheneb ja järjest aeglasemalt. Täpne kauguse ja väljundi vaheline graafik on toodud andurite andmelehel. Anduritel on vastavalt tüübile ka mõõtepiirkond, milles nende väljund on usaldusväärne. Maksimaalsele reaalselt mõõdetavale kaugusele seab piiri kaks aspekti: peegelduva valguse intensiivsuse vähenemine ja PSD-e võimetus registreerida väikest peegeldunud kiire asukoha muutust. Liiga kaugete objektide mõõtmisel jääb anduri väljund ligikaudu samaks, mis maksimaalselt mõõdetava kauguse puhulgi. Minimaalne mõõdetav kaugus on piiratud Sharp-i andurite omapära tõttu - nimelt hakkab väljundpinge kauguse vähenedes teatud kaugusel (olenevalt andurist 4-20 cm) järsult jälle vähenema. Sisuliselt tähendab see, et ühele väljundpinge väärtusele vastab kaks kaugust. Probleemide ärahoidmiseks tuleb vältida objektide andurile liiga lähedale sattumist. Ultraheli kaugusandur![]() ![]() Ultraheli kaugusandur määrab objekti kaugust, mõõtes helilaine objektilt tagasipeegeldumise aega. Helilaine sagedus asub ultraheli sageduse piirkonnas, mis tagab kontsentreerituma helilaine suuna, sest kõrgema sagedusega heli hajub keskkonnas vähem. Tüüpiline ultraheli kaugusandur koosneb kahest membraanist, millest üks genereerib heli ja teine registreerib tagasipeegelduva kaja. Piltlikult öeldes on tegu kõlari ja mikrofoniga. Heligeneraator tekitab lühikese, mõne perioodi pikkuse ultraheli impulsi ja käivitab taimeri. Teine membraan registreerib peegeldunud impulsi saabumise ja peatab taimeri. Taimeri ajast on heli kiiruse järgi võimalik välja arvutada helilaine läbitud teepikkus. Objekti kaugus on ligikaudu pool helilaine teepikkusest. Ultraheli kaugusanduritel on igapäevaelus mitmeid rakendusi. Neid kasutatakse mõõdulintide asendajatena kauguse mõõtmise seadmetes, näiteks ehitusel. Tänapäeva autod on varustatud tagurdamisel takistusest hoiatavate ultraheliandurite ja hoiatussignaaliga. Peale kauguse mõõtmise võivad nad lihtsalt registreerida objekti olemasolu mõõtepiirkonnas, näiteks tööstusmasinate ohualades. Kui ultraheli kiirgur ja vastuvõtja eraldada, saab mõõta nende vahel voolava aine voolukiirust, sest vastuvoolu levib helilaine aeglasemalt ja pärivoolu kiiremini. Kodulabori Andurite mooduli komplektis on Devantech SRF05 ultraheli kaugusmõõdik. SRF05 on ainult andur, mis otseselt kauguse infot ei väljasta. Anduril on peale toiteviikude veel päästiku/kaja viik. Päästiku viiku kõrgeks seades genereerib andur 8-perioodilise 40 kHz ultraheli laine. ![]() Peale seda läheb viik kõrgeks ja jääb kõrgeks niikauaks, kuni peegeldunud helilaine on andurini jõudnud. Seega põhimõtteliselt näitab kaja signaal aega, mille jooksul heli levib objektini ja tagasi. Mõõtes seda aega, korrutades seda heli levimise kiirusega ja jagades kahega, saab leida objekti kauguse. Päästiku, helilaine kiirguri ja kaja signaale ajas iseloomustab kõrvalolev graafik. TEOREETILINE OSAPotentsiomeeter![]() Koodi tekstiversioon Termistor![]() Koodi tekstiversioon Fototakisti![]() Koodi tekstiversioon Infrapuna kaugusandur![]() Koodi tekstiversioon Ultraheli kaugusmõõdik![]() Koodi tekstiversioon LISAMATERJAL
Teoreetilise osa algtekstide autor: Raivo Sell ja Mikk Leini |