Cuprins:

TinyLiDAR pentru IoT: 3 pași
TinyLiDAR pentru IoT: 3 pași

Video: TinyLiDAR pentru IoT: 3 pași

Video: TinyLiDAR pentru IoT: 3 pași
Video: tinyLiDAR First Steps 2024, Iulie
Anonim
TinyLiDAR pentru IoT
TinyLiDAR pentru IoT

Dacă te uiți în jur, vei observa că multe dispozitive inteligente sunt folosite în viața de zi cu zi. În mod obișnuit, acestea sunt alimentate cu baterii și, de obicei, sunt conectate la Internet (cunoscut și sub numele de „nor”). Acestea sunt toate ceea ce numim dispozitive „IoT” și devin rapid un loc obișnuit în lume astăzi.

Pentru inginerii de sistem IoT, se depune mult efort de proiectare pentru optimizarea consumului de energie. Motivul pentru aceasta se datorează, desigur, capacității limitate disponibile în baterii. Schimbarea bateriilor în cantități mari în zone îndepărtate poate fi o propunere foarte costisitoare.

Deci, acest lucru instructiv se referă la optimizarea puterii în tinyLiDAR.

TL; rezumat DR

Avem un nou mod de măsurare „în timp real” (începând cu firmware-ul 1.4.0) pentru a ajuta la maximizarea duratei de funcționare a bateriei în dispozitivele IoT.

Strângerea mai multor sucuri din baterii

Intuitiv, putem crește timpul de rulare prin simpla reducere a consumului de energie al dispozitivelor IoT. Bine, așa că este evident! Dar cum puteți face acest lucru în mod eficient și calculați corect timpul de rulare așteptat? Să aflăm…

Pasul 1: Energie pură

Există multe modalități de a face acest lucru, dar preferăm să îl descompunem la elementele de bază și să transformăm totul în energie. Energia electrică este măsurată în Jouli (simbolul J) și prin definiție:

Un Joule este energia disipată ca căldură atunci când un curent electric de un amplificator trece printr-o rezistență de un ohm pentru o perioadă de o secundă.

Deoarece energia (E) este, de asemenea, tensiune (V) x sarcină (Q), avem:

E = V x Q

Q este curent (I) x timp (T):

Q = I x T

Deci, energia în Jouli poate fi exprimată ca:

E = V x I x T

unde V este tensiunea, I este curentul în amperi și T este timpul în secunde.

Să presupunem că avem un acumulator format din patru baterii alcaline AA (LR6) conectate în serie. Acest lucru ne va oferi o tensiune totală de pornire de 4 * 1,5v = 6v. Sfârșitul de viață al unei baterii alcaline AA este de aproximativ 1,0v, astfel încât tensiunea medie ar fi de aproximativ 1,25v. Conform fișei tehnice a producătorului „Capacitatea livrată depinde de sarcina aplicată, temperatura de funcționare și tensiunea de întrerupere”. Deci, putem presupune aproximativ 2000mAhr sau mai bine pentru o aplicație cu scurgere redusă, cum ar fi un dispozitiv IoT.

Prin urmare, putem calcula că avem 4 celule x 1,25V per celulă x 2000mAhr * 3600sec = 36000 J de energie disponibilă din acest acumulator înainte de a fi înlocuită.

Din motive de calcule mai simple, putem presupune, de asemenea, că eficiența conversiei este de 100% pentru regulatorul nostru de sistem și ignorăm consumul de energie al controlerului gazdă.

Un cuvânt despre ciclism

Nu, nu genul pe care călătorești! Există câteva concepte tehnice cunoscute sub numele de „Power Cycling” și „Sleep Cycling”. Ambele pot fi utilizate pentru a reduce consumul de energie, dar există o diferență între cele două. Primul implică închiderea dispozitivului până când este necesar și apoi pornirea acestuia doar pentru o scurtă perioadă de timp pentru a efectua o măsurare etc. timp non-banal pentru a porni înapoi și a arde energie în timp ce faceți acest lucru.

Al doilea concept presupune doar menținerea dispozitivului în modul de repaus, cu speranța că se va trezi mai repede, dar veți arde o cantitate finită de curent în timp ce dormi. Deci, care este cel mai bun de utilizat?

Depinde cât de des trebuie să te trezești.

Pasul 2: Rulați numerele

Vrem să găsim energia totală (E) normalizată la 1 secundă pentru fiecare scenariu enumerat mai jos.

Cazul A: Tc = 1sec; faceți o măsurare a distanței în fiecare secundă Cazul B: Tc = 60sec; faceți o măsurare a distanței în fiecare minut. Cazul C: Tc = 3600sec; faceți o măsurare a distanței în fiecare oră.

Pentru a face acest lucru, putem spune că Tc este timpul ciclului pentru măsurătorile noastre, tonul timpului activ și eliminarea timpului inactiv și rearanjarea formulelor noastre de energie așa cum se arată aici:

Imagine
Imagine

Pentru tinyLiDAR, timpul de pornire este de aproximativ 300 ms sau mai puțin și în acest timp va dura o medie de 12,25 mA în timp ce funcționează dintr-o sursă reglementată de 2,8 v. Prin urmare, va consuma aproximativ 10,3mJ de energie pentru fiecare pornire.

Curentul de repaus / repaus pentru tinyLiDAR este un ultra-low 3uA. Aceasta este cu mult mai mică decât rata lunară de auto-descărcare de 0,3% a unui acumulator alcalin, așa că vom investiga folosind aici doar metoda „ciclului de somn”.

De ce să nu renunțați la micro și să mergeți direct la senzorul VL53?

Răspunsul la acest lucru nu este chiar atât de evident. În primele zile ale dezvoltării smartphone-ului, am aflat că menținerea în viață a procesorului de mare viteză înfometat de putere pentru a reda mp3-uri a fost o metodă sigură pentru a reduce durata de viață a bateriei. Chiar și atunci am făcut toate eforturile posibile pentru a utiliza „procesoare de aplicații” de putere mai mică pentru sarcini de periferie, cum ar fi redarea de muzică. Astăzi nu este mult diferit și, de fapt, ați putea spune că este și mai important pe măsură ce miniaturizăm toate aceste dispozitive IoT cu fiecare capacitate a bateriei în scădere. Așadar, utilizarea unui procesor de aplicații cu putere foarte mică pentru singura sarcină de a controla senzorul VL53 și de a furniza date pregătite pentru procesare ulterioară este un atu clar pentru orice aplicație alimentată cu baterie.

Moduri de măsurare tinyLiDAR

Este posibil să nu fie clar în manualul de utilizare în acest moment [dar va fi la un moment dat, deoarece ne actualizăm întotdeauna manualul de utilizare:)] - există de fapt 3 moduri diferite de măsurare în tinyLiDAR.

Mod MC

De la începutul tinyLiDAR, am fost obsedați de încercarea de a obține măsurători mai rapide de la senzorul VL53 ToF. Așa că ne-am optimizat firmware-ul pentru a obține cele mai rapide și mai consistente date de streaming din acesta. Aceasta a implicat introducerea bufferului. Un pic de tamponare este un lucru bun, deoarece permite controlerului gazdă (adică Arduino) să obțină datele de măsurare într-o clipită și să treacă la lucruri mai importante. Prin urmare, tamponarea este absolut necesară și din această cauză suntem capabili să obținem rate de streaming mai mari de 900Hz chiar și pe unitatea relativ lentă Arduino UNO. Prin urmare, cel mai rapid timp de răspuns va fi în modul MC al tinyLiDAR sau modul „continuu”.

BTW, dacă aveți vreodată șanse, ar trebui să conectați un cablu serial la pinul de ieșire TTY de pe tinyLiDAR și veți vedea ce face acest mod MC. Este literalmente nevoie de o măsurare cât de repede poate și, făcând acest lucru, umple tamponul I2C cu cele mai recente date absolute. Din păcate, deoarece funcționează la viteză maximă, arde și puterea maximă. Vedeți mai jos graficul curent vs timp al acestui mod MC.

Imagine
Imagine

Mod SS

Următorul mod este ceea ce numim „SS” pentru modul „cu un singur pas”. Acesta este practic același mod de înaltă performanță de mai sus, dar într-o singură buclă de pas. Deci, puteți obține răspunsuri rapide de la tinyLiDAR, dar datele vor proveni din eșantionul anterior, astfel încât va trebui să luați două măsurători pentru a obține cele mai recente date. Vedeți mai jos graficul curent vs timp al acestui mod SS.

Imagine
Imagine

Ambele moduri de mai sus se potrivesc perfect facturii pentru majoritatea utilizatorilor, deoarece au fost rapide și ușor de utilizat - trebuie doar să emiteți o comandă „D” și să citiți rezultatele. In orice caz …

Mergând mai departe către lumea IoT în care contează fiecare mili-Joule, avem o nouă paradigmă.

Și este exact opusul a ceea ce am codat în tinyLiDAR! Pentru lumea IoT avem nevoie de măsurători individuale la intervale rare pentru a economisi energie și a prelungi durata de funcționare.

Mod RT

Din fericire, putem spune acum că avem o soluție pentru acest scenariu începând cu firmware-ul 1.4.0. Se numește modul „RT” pentru măsurători „în timp real”. Și practic implementează o metodă de declanșare, așteptare și citire. Pentru a-l utiliza, puteți emite totuși comanda „D” pentru a începe măsurarea, dar pentru acest mod RT trebuie să așteptați o perioadă de timp adecvată pentru ca măsurarea să se termine și apoi să citiți rezultatele. tinyLiDAR merge automat la cea mai scăzută stare de repaus de sub 3uA între probe. De fapt, este încă simplu de utilizat și chiar mai eficient din punct de vedere energetic acum, deoarece trebuie să luați doar o măsurătoare în loc de două pentru a obține cele mai recente date, adică tamponarea zero.

Vedeți mai jos graficul curent vs timp al acestui nou mod RT.

Imagine
Imagine

Pasul 3: măsurători efective

Utilizarea modului continuu MC pentru măsurători IoT rare nu are prea mult sens, deoarece avem nevoie doar de măsurători simple. Prin urmare, ne putem concentra atenția asupra modurilor SS și RT. Funcționarea tinyLiDAR dintr-o sursă reglementată de + 2.8v ne oferă cea mai mică disipare de energie. Deci, folosind presetările High Accuracy (200ms), am măsurat următorul consum de energie pe tinyLiDAR:

Mod SS / singur pas: 31,2 mJ în medie peste 2 măsurători

Mod RT / în timp real: 15,5mJ media peste 1 măsurare

Conectând aceste valori de mai sus în formula noastră energetică și normalizându-ne la o secundă, putem găsi așteptările de rulare presupunând că energia din bateria noastră este de 36000 J.

Caz A: citire în fiecare secundă (luați 2 citiri pentru a obține cele mai recente date) Tc = 1secTon = 210ms pe lectură x 2 citiri Toff = Tc - Ton = 580msIon (medie) = 26,5mA pe lectură Ioff (medie) = 3uA curent de repaus Vcc = Tensiunea de alimentare de 2.8V Energia activă consumată de sarcină în Jouli este Eon = Vcc x Ion x Ton = 2.8V x 26.5mA * 420ms = 31.164mJ Energia inactivă consumată de sarcină în Jouli este Eoff = Vcc x Ioff x Toff = 2.8V x 3uA x 580ms = 4.872uJ Normalizarea la TcE = (Eon + Eoff) / Tc = (31.164mJ + 4.872uJ) / 1 = 31.169mJ sau 31.2mJ pe secundă Durata în secunde este, prin urmare, energia totală a sursei / energiei consumate, care este 36000J / 31,2mJ = 1155000 secunde = 320 ore = 13,3 zile

Repetând aceste calcule, putem găsi timpul de rulare pentru celelalte scenarii:

Mod SS

Cazul A: 2 citiri pe secundă. Energia normalizată este de 31,2mJ. Prin urmare, timpul de rulare este de 13,3 zile.

Cazul B: 2 citiri pe minut. Energia normalizată este 528uJ. Prin urmare, durata de execuție este de 2,1 ani.

Cazul C: 2 lecturi pe oră. Energia normalizată este de 17 uJ. Durata de rulare este calculată la >> 10 ani, prin urmare încărcarea datorită tinyLiDAR este neglijabilă. Acumulatorul va fi, prin urmare, limitat doar de durata de valabilitate (adică aproximativ 5 ani)

Modul RT

Cazul A: 1 citire pe secundă. Energia normalizată este de 15,5mJ. Prin urmare, timpul de rulare este de 26,8 zile.

Cazul B: 1 citire pe minut. Energia normalizată este 267uJ. Prin urmare, durata de rulare este de 4,3 ani.

Cazul C: 1 lectură pe oră. Energia normalizată este de 12,7 uJ. Durata de rulare este calculată la >> 10 ani, prin urmare încărcarea datorită tinyLiDAR este neglijabilă. Acumulatorul va fi, prin urmare, limitat doar de durata de valabilitate (adică aproximativ 5 ani)

Prin urmare, noul mod în timp real care utilizează ciclul de somn este un avantaj aici pentru a prelungi durata de funcționare din ultimii 4 ani dacă se ia o măsurătoare în fiecare minut, așa cum se arată în cazul B.

Rețineți că consumul de energie al controlerului gazdă nu a fost luat în considerare pentru această analiză și specificațiile pachetului de baterii au fost pe partea conservatoare. Puteți găsi baterii mult mai puternice, după cum doriți, pentru a se potrivi nevoilor dumneavoastră.

Vă mulțumim pentru citire și rămâneți la curent, deoarece vom oferi un exemplu de lucru IoT folosind tinyLiDAR pentru următorul nostru instructable. Noroc!

Recomandat: