V prvem delu članka smo obravnavali novo periferno povezavo, imenovano Multi-Voltage I/O (MVIO), ki je na voljo v družini AVR® DB mikrokontrolerjev.
Microchip Technology Inc.
Avtor teksta in fotografij: Robert Perkel, Microchip
Na kratko, MVIO je notranji pretvornik napetostnih nivojev na ploščici mikrokontrolerja, ki omogoča, da en vhodno-izhodni priključek deluje v drugačnem napetostnem območju kot preostali deli naprave. S tem se zmanjšata popis materiala (BOM) in površina tiskanega vezja, hkrati pa je zagotovljena večja prilagodljivost kot pri zunanjih rešitvah. V drugem delu te serije si bomo ogledali uporabo MVIO v konkretni aplikaciji.
Eden najpreprostejših načinov za ugotavljanje, ali je okno odprto, je uporaba magnetnega stikala. Reed stikalo je preprosta naprava z električnimi kontakti, ki se odprejo ali zaprejo zaradi prisotnosti magnetnega polja. Če na okno pritrdimo magnet, stikalo pa namestimo v fiksni položaj, lahko stanje okna določimo s preverjanjem kontaktov reed stikala. Vendar pa ima reed stikalo dve omejitvi.
Prvič, ne more razlikovati med malo odprtim (okno odprto na »V«, op. ur.) in polno odprtim oknom. Če je alarm vklopljen, okna ni mogoče samo malo odpreti, ne da bi se alarm sprožil. Drugič, na reed stikalo je mogoče zlahka vplivati, če se v njegovo bližino postavi drugi magnet. Drugi magnet drži kontakte stikala nepremične, medtem ko je okno odprto.
Da bi izboljšali odpornost proti ponarejanju in uporabi, je bila razvita alternativna rešitev z magnetometrom. Za razliko od reed stikala, ki je bodisi odprto bodisi zaprto, magnetometer meri in digitalizira komponente magnetnega polja. S spremljanjem komponent polja lahko senzor razlikuje med malo odprtim in široko odprtim oknom in je veliko bolj odporen proti nedovoljenemu spreminjanju magnetov, nameščenih v bližini senzorja.
Da bi dokazali prednosti rešitve, ki temelji na magnetometru, smo skupaj z družbo Melexis, svetovnim dobaviteljem mikroelektronskih polprevodniških rešitev, razvili pametni varnostni senzor za okna. Mikrokontroler je iz AVR DB družine, prve družine mikrokontrolerjev, ki ima MVIO periferno funkcijo.
Za spremljanje jakosti magnetnega polja je bil uporabljen 3D magnetometer MLX90392 [1]. Magnetometer se napaja iz 1,8 V in komunicira prek I2C. V tej demonstraciji je uporabljen tudi MLX90632 Far Infra-Red (FIR) senzor [2] za spremljanje temperature v prostoru. Izbrani FIR senzor je boljša izbira kot lokalni temperaturni senzor, saj bodo na mestu meritve prisotni zračni prepihi in neposredna sončna svetloba, ki bodo povzročili napake pri meritvah. Medtem ko se MLX90632 napaja s 3,3 V, obstaja različica naprave, zasnovana za 1,8 V I2C komunikacijo.
Za brezžično povezljivost je bil zaradi preprostosti uporabljen RN4870 Bluetooth® modul [3]. To uporabniku omogoča interakcijo s predstavitvenim modelom s pametnega telefona, namesto da bi uporabljal po meri razvit komunikacijski most. V produkcijski aplikaciji pa bi za vsako senzorsko vozlišče priporočali prehod na alternativno preprostejšo in manj zmogljivo radijsko rešitev, kot je Sub-GHz radio [4]. Izvorna koda in dokumentacija sta navedeni na koncu članka.
Sestava prototipa in razvoj naprave
Za razvoj smo uporabili Curiosity Nano Base for Click boards™ (AC164162) [5] z AVR DB Curiosity Nano (EV35L43A) razvojno ploščo [6]. RN4870 in temperaturni senzor MLX90632 sta na voljo na ploščah Click podjetja MikroElektronika (RN4870 Click [7] in IrThermo 3 Click [8]). Magnetometer MLX90392 je dobavila družba Melexis na predhodno sestavljeni razvojni plošči (EVB90392) [9].
Po začetnem testiranju komunikacije s senzorjem smo hitro ugotovili, da bo potrebna fiksna preizkusna naprava za nadzor položaja magneta in senzorja. S pomočjo naših latentnih umetniško-obrtniških sposobnosti smo iz kartona in vročega lepila sestavili preprosto preskusno napravo, ki je prikazana na sliki 1.
Majhni beli škatlici, ki sta pritrjeni na napravo sta standardno reed stikalo, ki je na voljo v trgovinah. Priloženi magnet je bil uporabljen kot primer standardnega varnostnega magneta za namene testiranja.
Magnetometer
Konceptualno bi se zdelo, da bi bilo najenostavneje izvesti okenski alarm tega sistema, vendar je bilo to veliko bolj zapleteno, kot smo sprva mislili. Razlogov za dodatno zapletenost je več.
Prvič, magnetometer je izredno občutljiv. Majhne razlike v položaju magneta ali magnetometra bi močno spremenile številke. Grafi na sliki 2 so bili dobljeni iz surovih vrednosti magnetometra brez kalibracije ali normalizacije. Med zbiranjem podatkov je drsni mehanizem drsel naprej in nazaj.
Namesto neposrednega spremljanja največje in najmanjše vrednosti vsake komponente, ki se spreminjata glede na položaj namestitve senzorja, smo namesto tega uporabili skupno jakost magnetnega polja (). Zaradi optimizacije programske opreme aplikacija uporablja kvadrat magnetne poljske jakosti. Spodnji graf prikazuje velikost magnetnega polja med istim preskusom. V aplikaciji je magnituda izračunana iz normaliziranih 16-bitnih vrednosti.
Da bi bil sistem na splošno bolj občutljiv, so bile vrednosti magnetnega polja v vsaki osi normalizirane. Iz prikazanih vzorčnih podatkov je razvidno, da je vrednost Y osi največja, sledi ji os Z in nato os X. Vsaka os se povečuje z drugačno hitrostjo kot druge. To je intuitivno smiselno, saj bo magnetni tok največji v pravokotni smeri in najšibkejši v vzporedni. Za normalizacijo vsake osi mikrokontroler vsako od njih premeri tako, da rezultate premakne v desno, da ustrezajo podpisani 8-bitni vrednosti. Faktorji skaliranja se izračunajo med uporabniškim zaporedjem kalibracije, da je sistem na splošno bolj občutljiv.
Prvotno je aplikacija nameravala izračunati tudi kotna razmerja X/Y, X/Z in Y/Z za dodatno odpornost proti nepooblaščenim posegom. Vendar se je med testiranjem izkazalo, da je ta izračun zelo nezanesljiv zaradi velikih razlik v intenzivnosti polja. Ti koti so povečali porabo pomnilnika in aktivni čas demo različice. Ugotovili smo, da aplikacija dobro deluje tudi brez njih, zato smo jih onemogočili z makrom. Izračunana kotna razmerja iz prejšnjih podatkov so prikazana na sliki 4. Za zanesljivo uporabo magnetometra smo razvili postopek kalibracije v štirih korakih. Ta postopek je treba izvesti med začetno nastavitvijo, vendar ga lahko uporabnik po potrebi pozneje ponovno sproži. Štirje koraki za umerjanje aplikacije so naslednji:
Ničenje
Normalizacija
Nastavitev praga
Verifikacija
Pri ničenju je okno popolnoma odprto, zato je magnet najbolj oddaljen od senzorja. Povprečna vrednost, zabeležena za vsako os, je opredeljena kot vrednost odmika. Nato se okno zapre, s čimer se magnet približa senzorju. V tem položaju se izračuna povprečje intenzivnosti polja v vsaki osi. Po določenem številu vzorcev mikrokontroler izračuna normalizacijski faktor za vsako os.
Nato uporabnik odpre okno do želenega odprtega/zaprtega praga. Medtem ko uporabnik odpira okno, aplikacija spremlja največjo zabeleženo jakost polja (R2). Glede na postavitev mora biti največja poljska jakost v položaju zaprtega okna ali blizu tega položaja.
Po tem koraku uporabnik zapre okno. Na tej točki sistem preveri, ali se bo med zapiranjem okna sprožil alarm. Če se alarm sproži, umerjanje ni bilo uspešno in ga je treba ponoviti. Ko je umerjanje uspešno, se vrednosti zapišejo v notranji EEPROM za poznejšo uporabo.
Uporaba temperaturnega senzorja
Za vmesnik s senzorjem MLX90632 smo razvili nov lahek API vmesnik, ki je bil zasnovan tako, da za izboljšanje zmogljivosti izkorišča funkcije, značilne za mikrokontroler. V primeru MLX90632 temperaturnega senzorja smo izvedli sistem predpomnjenja kalibracijskih konstant za shranjevanje tovarniških konstant senzorja v EEPROM mikrokontrolerja. To samodejno izvede mikrokontroler. Ob zagonu mikrokontroler preveri svoj EEPROM, da ugotovi, ali so bile konstante iz senzorja programirane v pomnilnik. Za preverjanje konstant mikrokontroler:
uskladi shranjeno serijsko številko s serijsko številko senzorja.
preveri XOR serijske številke na koncu pomnilniškega segmenta.
Če katero od preverjanj ni uspešno, mikrokontroler ponovno pridobi konstante senzorja, izračuna ekvivalente s plavajočo vejico in jih nato ponovno zapiše v EEPROM. Če je pomnilnik veljaven, mikrokontroler preprosto prebere shranjene konstante, namesto da bi jih ponovno pridobil in izračunal.
To funkcijo lahko v programski opremi onemogočite tako, da razveljavite definicijo makra. Če ob vklopu aplikacije držite tipko za umerjanje, se aplikacija zažene v varnem načinu, v katerem so vse nastavitve in vrednosti v EEPROM-u neveljavne in se jih ponovno pridobi/preprogramira (če je to omogočeno).
Delovanje pri 1,8V
Pri napetosti 1,8 V je treba serijsko komunikacijo obravnavati bolj previdno kot pri običajnejših vrstah komunikacij, ki potekajo pri 3,3 V ali 5 V. Notranji pull-up upori v mikrokontrolerju so bili na primer prešibki, da bi vodilo izpolnjevalo časovne zahteve. Da bi rešili to težavo, smo na vodilo dodali zunanje pull-up upore.
Med zgodnjim testiranjem smo skušali neposredno izmeriti porabo toka zunanjega 1,8V napajalnika z natančnim digitalnim multimetrom. Vendar je bila obremenitvena napetost multimetra ravno dovolj velika, da je vodilo med serijsko komunikacijo izklopilo zaradi Brown-out zaščite. To težavo smo v prototipu rešili tako, da smo napajalniku dodali velik kondenzator, ki je zagotovil, da je vodilo ostalo nad pragom za izklop, medtem ko je merilnik meril porabo toka. Pri polni uporabi to ni težava, saj je tok mogoče meriti na vhodu za napajanje, napajalniki pa so regulirani na plošči in ne zunaj nje.
Končni rezultati
Ko je sistem pravilno deloval, smo začeli razvijati posebno ploščico tiskanega vezja (TIV). Na sliki 5 je razvita plošča (fotografirana brez plastičnega ohišja). Prototip sistema je bil predstavljen na sejmu Sensors Expo na stojnici podjetja Microchip.
Zaključne ugotovitve
Povezovanje različnih napetosti je ključni element številnih zasnov. V večini primerov je treba za pretvorbo med napetostnimi domenami uporabiti zunanji pretvornik ravni. MVIO to komponento odpravi in jo integrira v mikrokontroler, zaradi česar je za razvijalca skoraj nevidna. Obstaja veliko možnih zasnov in aplikacij, ki jim bo dodana periferna enota MVIO v sistemu koristila. Posebna zahvala za pomoč pri razvoju te aplikacije gre družbi Melexis.
Opomba: Ime in logotip Microchip sta registrirani blagovni znamki podjetja Microchip Technology Incorporated v ZDA in drugih državah. Vse druge blagovne znamke, ki so morda tu omenjene, so last njihovih podjetij.
Opomba: Ime in logotip Microchip sta registrirani blagovni znamki podjetja Microchip Technology Incorporated v ZDA in drugih državah. Vse druge blagovne znamke, ki so morda tu omenjene, so last njihovih podjetij.
Spoštujemo vašo zasebnost in se zavezujemo, da bomo osebne podatke, pridobljene prek spletnega informacijskega sistema, skrbno varovali in jih brez vaše privolitve ne bomo posredoval tretji osebi oziroma jih uporabili v druge namene. Ker obstajajo v spletnem informacijskem sistemu določene povezave na druge, zunanje spletne strani, ki niso vezane na nas, ne prevzemamo nobene odgovornosti za zaščito podatkov na teh spletnih straneh.
Hkrati se zavezujemo, da bomo po svojih najboljših možnih močeh varovali podatke in zasebnost obiskovalcev spletne strani .
Da bi preprečili nepooblaščen dostop do pridobljenih podatkov ali njihovo razkritje, ohranili natančnost osebnih podatkov in zagotovili njihovo ustrezno uporabo, uporabljamo ustrezne tehnične in organizacijske postopke za zavarovanje podatkov, ki jih zbiramo.
Piškotki, ki so nujno potrebni za delovanje spletne strani
Nujno potrebne piškotke bomo na vašo napravo vedno nameščali, saj brez njih naša spletna stran ne deluje pravilno. Med nujno potrebne piškotke uvrščamo piškotke, ki vam omogočajo dostop do spletne strani, delovanje posameznih funkcionalnosti spletne strani in hkrati ne zbirajo analitičnih ali drugih podatkov o vašem obisku.
Ime piškotka
Trajanje
Opis
PHPSESSID
dokler ne zaprete brskalnika
Piškotek omogoča shranjevanje sej med posameznimi zahtevami znotraj sistema za upravljanje z vsebinami.
moove_gdpr_popup
1 leto
Shrani uporabnikove preference politike piškotkov
Če onemogočite ta piškotek, ne bomo mogli shraniti vaših nastavitev. To pomeni, da boste morali vsakič, ko obiščete to spletno mesto, ponovno omogočiti ali onemogočiti piškotke.
Piškotki tretjih oseb
Med piškotke tretjih oseb spadajo analitični in funkcijski piškotki, ki jih na vašo napravo nameščajo druga podjetja, kot so Facebook Inc. in Google Inc.. Ti piškotki vam omogočajo uporabo vtičnikov in funkcij na naši strani, ki so povezane z njihovimi družbenimi omrežji in drugimi platformami ter za sledenje vaši uporabi njihovih storitev.
Ime piškotka
Trajanje
Opis
_ga
2 leti
Google Analytics Zabeleži razlikovanje med uporabniki in sejami.
_gid
1 leto
Google Analytics Zabeleži novo sejo ali novega uporabnika.
_gat
10 min
Google Analytics piškotek se uporablja za omejevanje pogostosti zadetkov..
IDE
2 leti
Oglaševalski piškotek podjetja Google Inc. Ki nam omogoča prikazovanje oglasov.
Najprej omogočite strogo potrebne piškotke, da lahko shranimo vaše nastavitve!
Uporaba piškotkov na spletišču
Spletišče v brskalnik računalnika obiskovalca oziroma uporabnika odloži tako imenovani “piškotek”. Piškotki so tekstovne datoteke, ki se shranijo na uporabnikovem računalniku in omogočajo analize o uporabnikovem obisku, številu obiskov in kaj ga zanima v teh obiskih. V piškotku so osnovni podatki o uporabnikovem obisku določene spletne strani, npr. ime obiskovane spletne strani, ki jih opravi v spletišču. Vsebina piškotka se shrani v računalniku uporabnika v posebni mapi. Z dvakratnim klikom na datoteko dobimo podrobnejše informacije o obiskani spletni strani, datumu in uri obiska. Vsi ti podatki so shranjeni tudi pri upravljavcu spletne strani, ki jo uporabnik obiskuje.
Uporabnik lahko piškotke z določenimi nastavitvami briše, izključuje oziroma jih pogojno uporablja, a posledično uporabnik ne bo mogel uporabljati vseh funkcij spletišča v polni meri. V osnovi so brskalniki nastavljeni tako, da piškotke sprejemajo, zavračajo pa nastavljanje piškotkov, ki ne izvirajo iz področja, zapisanega v naslovni vrstici.