Bistven element avtomatizacije doma je sposobnost osebnega računalnika, da krmili zunanje naprave. Novejše naprave z vgrajenimi povezavami USB, Wi-Fi ali Bluetooth je pogosto mogoče priključiti brez posebnih vmesnikov, za večino ostalih moramo izdelati vmesnik z digitalnimi in analognimi vhodi in izhodi, prek katerih lahko PC krmili aktivatorje zunanjih naprav in hkrati sprejema povratne informacije.

Analogne vhode večinoma uporabljamo za merjenje raznih nivojev napetosti, ki jih dobimo iz analognih tipal. Poleg analognih tipal lahko priključujemo tudi digitalna, ki večinoma komunicirajo prek industrijskega vodila I2C (vodilo med integriranimi vezji, angl.: Inter Integrated Circuit bus).

Aktivatorji so elektronski in elektromehanski vmesniki, ki krmilne signale pretvorijo v električno ali mehansko obliko, s katero lahko krmilimo zunanje naprave ali njihove dele. Ločimo analogne in digitalne aktivatorje. Analogni aktivatorji se odzivajo glede na višino in/ali obliko vhodne napetosti, digitalni pa na logične vrednosti (na primer 0 in 1) z natančno opredeljenimi razponi nivojev vhodne napetosti, ki mikrokrmilnik sprejema prek digitalnih vhodov.

Poleg tega znajo mikrokrmilniki meriti tudi druge veličine signalov, kot sta frekvenca in fazni zamik. Ne nazadnje, zaporedje meritev je vedno mogoče pretvoriti v krivuljo, kot to počne digitalni osciloskop, ali pa rezultat prikazati kot številčno vrednost, kar počne električni multimeter.

Veliko omenjenih funkcionalnosti je navadno podprtih že v funkcionalnih enotah mikrokrmilnikov. Za to potrebujejo vgrajeno programsko opremo predvsem zato, da logično poveže funkcionalne enote in s tem omogoči izvajanje kompleksnejših krmilnih funkcij, na primer pretvorbo izmerjene vrednosti širine impulza v številčno vrednost temperature prostora.

Samodejno prižiganje luči in gospodinjskih aparatov

Morda se komu zdi grobi opis delovanja mikrokrmilnika nekoliko zapleten in preveč akademski, zato raje poglejmo praktičen primer.

Pogosto čez dan pozabite v stanovanju prižgano kako luč, ki ves dan po nepotrebnem troši energijo? Želite, da bi se luči same prižgale, ko bi v prostoru postalo pretemno? Vse to je mogoče s preprostim aktivatorjem in tipalom za merjenje osvetlitve. Za aktivator lahko uporabimo preprosto tranzistorsko vezje ali pa kar namenski vmesniški čip in rele. Oboje odlično deluje. Upoštevati moramo le, da rele zaradi shranjene električne energije v navitju ob izklopu povzroči negativni napetostni impulz, ki lahko poškoduje računalnik. Zato moramo vsakemu releju dodati obratno polarizirano zaščitno diodo.

Za optično tipalo potrebujemo nekoliko več dela in ustrezen ojačevalnik signalov (na primer na osnovi operacijskega ojačevalnika: tinyurl.com/ongaco7), saj je treba šibak signal iz foto tranzistorja ali foto diode pretvoriti v analogno obliko v napetostnem območju, ki ga zajema analogno-digitalni pretvornik mikrokontrolerja na enem od svojih analognih vhodov.

Mikrokrmilnik lahko deluje samostojno ali pa ga upravljamo prek priključka USB s pomočjo osebnega računalnika. Sodobni mikrokrmilniki podpirajo protokol USB 2.0, nekateri pa celo 10-megabitni Ethernet. Vendar je za domačo rabo veliko enostavneje in ceneje izvesti povezavo prek USB. Pri tem velja opozoriti, da je že funkcionalnost povezovanja prek USB dokaj zapletena in da moramo izbrati tak mikrokrmilnik, ki jo omogoča oziroma ima vgrajeno namensko funkcijsko enoto, ter da proizvajalec zagotavlja ustrezne razvojne programske knjižnice.

Zdaj je treba le še napisati funkcijo za krmiljenje luči glede na osvetlitev. Drži, da bi lahko povezali kar tipalo in aktivator, vendar potem ne bi mogli spremljati osvetlitve in prilagajati nastavitev, kot so: najmanjša osvetlitev za izklop luči, največja osvetlitev za vklop luči, časovna zakasnitev ob izpolnitvi pogojev … Mikrokrmilnik omogoča tudi časovni vklop luči, ne glede na osvetlitev (več na: tinyurl.com/onh6zk8). Vendar je to premalo za celovito avtomatizacijo doma. Na spletni strani tinyurl.com/qf923r2 najdemo tudi bolj celovito aplikacijo za varovanje doma s pomenljivim pasjim imenom Runo, ki deluje s pomočjo mini PC-ja z vmesnikom za krmiljenje relejev ter tipalom za merjenje osvetlitve in mikrofonom. Ugašanje in prižiganje luči lahko izvajamo tudi neposredno z računalniško miško, kar utegne nemalo presenetiti goste in popestriti zabavni večer. Potrebujemo le ustrezno spletno aplikacijo, ki je na spletni strani tinyurl.com/nnp985n. Mogoče je tudi krmiljenje prek lastne spletne strani, kar pomeni kjer koli iz interneta, ne da bi morali prej namestiti namensko programsko opremo (debelega klienta). Primer najdemo na spletni strani tinyurl.com/ojrkzlj.

Omeniti velja še možnost časovnega vklopa gospodinjskih naprav, denimo vsakodnevni časovni vklop pralnega stroja v času poceni elektrike. Pri vklopu se lahko zanesemo na uro, če pa ta ni točna ali pa je ne želimo vsakih nekaj mesecev nastavljati oziroma spreminjati nastavitev, ko operater električnega omrežja spremeni svojo cenovno politiko, imamo tudi možnost vklopa ob signalu, ki ga da operater električnega omrežja. Signal najlažje zajamemo, če vzporedno s tlivko, ki sporoča nizko tarifo, priključimo še rele, ki ga lahko krmilimo na izmenično napetost 230 V~. Tako rele preklopi digitalni kontakt, s čimer da računalniku znak, da je vključena cenejša tarifa. Več lahko preberete na spletni strani tinyurl.com/penronc.

Izdelava lastnih merilnikov

Cene gotovih merilnikov električnih in drugih fizikalnih veličin so pogosto kar zasoljene, če jih primerjamo s tem, koliko stane doma izdelan merilnik. Res so nekateri merilniki, denimo električni multimetri, prepoceni, da bi se jih izplačalo izdelati doma, če ne potrebujemo posebnih funkcionalnosti. Kljub temu lahko za res malo denarja izdelamo tudi preproste različice kompleksnih merilnih naprav, ki bi sicer kar pošteno osušile našo denarnico.

Ena od njih je digitalni osciloskop, ki ga lahko izdelamo na več načinov, opisanih na spletni strani tinyurl.com/psbtefq. Bistven del digitalnega osciloskopa je izjemno zmogljiv analogno-digitalni (A/D) pretvornik, ki lahko vzorči vrednost vhodne električne napetosti pri zelo visoki frekvenci. Za naš projekt smo izkoristili kar vgrajeni A/D pretvornik v Microchipovem mikrokrmilniku PIC32MX250F128B, ki s stališča hitrosti vzorčenja, 1 MHz, ni ravno najhitrejši, je pa zato zelo poceni. Današnji profesionalni digitalni osciloskopi zmorejo od 20 MHz naprej, vendar stanejo veliko več kot le okoli 4,5 evra, kolikor bomo v spletni trgovini Farnell (www.farnell.com), tudi v slovenski različici, odšteli za prej omenjeni mikrokrmilnik v 28-nožični izvedbi SDIP. Potrebujemo še nekaj uporov, kondenzatorjev, žensko vtičnico USB tipa B, kristalni oscilator in ustrezno vgrajeno programsko opremo in mikrokrmilnik bo že deloval kot naprava USB. Vse to najdemo na prej omenjeni spletni strani, kjer je na voljo tudi primer aplikacije za operacijski sistem Windows XP, Windows 7 ali novejši Microsoftov 32-bitni ali 64-bitni operacijski sistem.

Omenjeni vmesnik lahko z dodatkom nekaj malega elektronike za pretvorbo napetostnih ravni in jakosti električnega toka predelamo tudi v multimeter.

Kaj pa merjenje frekvence? Tudi to se da. Mikrokrmilniki PIC imajo vgrajeno posebno funkcijsko enoto, ki meri dolžine nizke in visoke periode digitalnih signalov na podlagi štetja impulzov kristalnega oscilatorja, ki poganja CPE (centralno procesno enoto) mikrokrmilnika. Meritve so celo bolj natančne od meritev, ki jih omogočajo nekateri ročni multimetri, ki jih lahko kupimo v specializiranih trgovinah z elektronskimi komponentami. Primer aplikacije za merjenje frekvence in impulzne širine z 8-bitnim mikrokrmilnikom PIC18F26J50 najdemo na spletni strani tinyurl.com/lo7po4b.

Moj mikro, januar – februar 2014 | dr. Simon Vavpotič |