INHOUDSOPGAWE:

TinyLiDAR vir IoT: 3 stappe
TinyLiDAR vir IoT: 3 stappe

Video: TinyLiDAR vir IoT: 3 stappe

Video: TinyLiDAR vir IoT: 3 stappe
Video: И ЭТО ТОЖЕ ДАГЕСТАН? Приключения в долине реки Баараор. БОЛЬШОЙ ВЫПУСК (Путешествие по Дагестану #3) 2024, November
Anonim
TinyLiDAR vir IoT
TinyLiDAR vir IoT

As u rondkyk, sien u dat baie slim toestelle in die daaglikse lewe gebruik word. Hulle word gewoonlik op 'n battery aangedryf en is gewoonlik op 'n manier aan die internet gekoppel (ook bekend as die 'wolk'). Dit is alles wat ons 'IoT' -toestelle noem, en dit word vandag vinnig 'n algemene plek in die wêreld.

Vir IoT -stelselingenieurs word baie ontwerp -moeite bestee aan die optimalisering van kragverbruik. Die rede hiervoor is natuurlik die beperkte kapasiteit wat in batterye beskikbaar is. Om groot hoeveelhede batterye in afgeleë gebiede te vervang, kan 'n baie duur voorstel wees.

Hierdie instruksies gaan dus oor die optimalisering van krag in tinyLiDAR.

TL; DR opsomming

Ons het 'n nuwe "Real Time" -metingsmodus (vanaf firmware 1.4.0) om die batteryleeftyd in IoT -toestelle te maksimeer.

Druk meer sap uit die batterye

Intuïtief kan ons die werktyd verhoog deur eenvoudig die kragverbruik van die IoT -toestelle te verminder. Goed, so dit is duidelik! Maar hoe kan u dit effektief doen en die verwagte tydsduur korrek bereken? Kom ons vind uit…

Stap 1: Suiwer energie

Daar is baie maniere om dit te doen, maar ons verkies om dit na die basiese beginsels af te breek en alles in energie om te skakel. Elektriese energie word gemeet in Joules (simbool J) en per definisie:

'N Joule is die energie wat as hitte versprei word wanneer 'n elektriese stroom van een amp vir 'n tydperk van een sekonde deur 'n weerstand van een ohm gaan.

Aangesien energie (E) ook spanning (V) x lading (Q) is, het ons:

E = V x Q

Q is Huidig (I) x tyd (T):

Q = I x T

Energie in Joules kan dus uitgedruk word as:

E = V x I x T

waar V die spanning is, is I die stroom in Amps en T is die tyd in sekondes.

Gestel ons het 'n battery wat bestaan uit vier AA alkaliese (LR6) batterye wat in serie gekoppel is. Dit gee ons 'n totale aanvangsspanning van 4*1.5v = 6v. Die einde van die lewe vir 'n alkaliese AA -battery is ongeveer 1.0v, so die gemiddelde spanning sal ongeveer 1.25v wees. Volgens die MFR-datablad "Afgeleide kapasiteit is afhanklik van die toegepaste las, bedryfstemperatuur en afsny spanning." Ons kan dus ongeveer 2000mAhr of beter aanvaar vir 'n toepassing met 'n lae drein, soos 'n IoT -toestel.

Daarom kan ons bereken dat ons 4 selle x 1,25V per sel x 2000mAhr * 3600sek = 36000 J energie beskikbaar het uit hierdie battery, voordat dit vervang moet word.

Ter wille van eenvoudiger berekeninge kan ons ook aanvaar dat die omskakelingsdoeltreffendheid 100% vir ons stelselreguleerder is, en die kragverbruik van die gasheerbeheerder ignoreer.

'N Woord oor fietsry

Nee, nie die tipe waarop u ry nie! Daar is 'n paar tegniese konsepte wat bekend staan as 'Power Cycling' en 'Sleep Cycling'. Beide kan gebruik word om die kragverbruik te verlaag, maar daar is 'n verskil tussen die twee. Die eerste een behels dat u u toestel afskakel totdat dit nodig is en dit dan slegs vir 'n kort tydjie aanskakel om 'n meting uit te voer, ens. Alhoewel hierdie metode aanloklik is om te gebruik as gevolg van die nul -af -stroom, is daar 'n nadeel dat dit 'n bietjie sal neem. nie-triviale hoeveelheid tyd om weer op te laai en energie te verbrand.

Die tweede konsep behels dat u die toestel in die slaapmodus hou, met die hoop dat dit vinniger wakker word, maar u sal 'n beperkte hoeveelheid stroom verbrand terwyl dit slaap. So, wat is die beste om te gebruik?

Dit hang af van hoe gereeld u wakker moet word.

Stap 2: voer die getalle uit

Ons wil die totale energie (E) genormaliseer tot 1 sekonde vir elke scenario hieronder.

Geval A: Tc = 1sek; neem 'n afstandmeting elke tweede geval B: Tc = 60sek; neem elke minuut 'n afstandmeting. Geval C: Tc = 3600sek; neem elke uur 'n afstandmeting.

Om dit te kan doen, kan ons sê Tc is die siklustyd vir ons metings, die aktiewe tyd en die onaktiewe tyd afskakel en ons energieformules herrangskik soos hier getoon:

Beeld
Beeld

Vir tinyLiDAR is die aanvangstyd ongeveer 300 ms of minder, en gedurende hierdie tyd sal dit gemiddeld 12,25 mA neem terwyl dit werk vanaf 'n gereguleerde 2,8v -toevoer. Daarom verbruik dit ongeveer 10,3 mJ energie vir elke aanvang.

Die slaap/stilstaande stroom vir tinyLiDAR is 'n ultra-lae 3uA. Dit is baie laer as die maandelikse selfontladingsnelheid van 'n alkaliese batterypakket van 0,3%, dus sal ons slegs die 'slaapfietsmetode' hier ondersoek.

Waarom nie van die mikro ontslae raak en direk na die VL53 -sensor gaan nie?

Die antwoord hierop is nie heeltemal so duidelik nie. In die vroeë dae van die ontwikkeling van slimfone het ons geleer dat 'n betroubare metode om die batterylewe te verminder die kraghonger hoëspoedverwerker lewendig is om mp3's te speel. Selfs destyds het ons alles moontlik gedoen om 'toepassingsverwerkers' met 'n laer krag te gebruik vir periferie -take soos musiek speel. Dit is vandag nie veel anders nie, en in werklikheid kan u sê dat dit nog belangriker is, aangesien ons al hierdie IoT -toestelle met elke verminderde batterykapasiteit verklein. Die gebruik van 'n toepassingsverwerker met 'n baie lae krag vir die uitsluitlike taak om die VL53-sensor te beheer en data te verskaf wat gereed is vir verdere verwerking, is 'n besliste aanwins vir enige battery-aangedrewe toepassing.

tinyLiDAR Meetmetodes

Dit is tans nie duidelik in die gebruikershandleiding nie [maar dit sal op 'n stadium gebeur, aangesien ons ons gebruikershandleiding altyd opdateer:)] - daar is eintlik drie verskillende meetmetodes in tinyLiDAR.

MC -modus

Sedert die oprigting van tinyLiDAR was ons versot daarop om vinniger metings van die VL53 ToF -sensor te kry. Daarom het ons ons firmware geoptimaliseer om die vinnigste en konsekwentste stromingsdata daaruit te haal. Dit het behels dat buffering ingestel word. 'N Bietjie buffer is 'n goeie ding, aangesien dit die gasheerbeheerder (dws Arduino) in staat stel om sy meetdata vinnig te kry en verder te gaan na belangriker dinge. Daarom is buffering absoluut noodsaaklik, en as gevolg hiervan kan ons stromingsnelhede van meer as 900 Hz bereik, selfs op die relatief stadige Arduino UNO. Die vinnigste reaksietyd is dus die gebruik van tinyLiDAR se MC- of 'deurlopende' modus.

BTW, as u ooit 'n kans kry, moet u 'n seriële kabel aansluit op die TTY -uitvoerpen op tinyLiDAR, en u sal sien wat hierdie MC -modus doen. Dit neem letterlik 'n meting so vinnig as wat dit moontlik is, en sodoende vul dit die I2C -buffer vol met die nuutste data. Aangesien dit op volle snelheid loop, verbrand dit ook die maksimum hoeveelheid krag. Sien hieronder die huidige vs tydgrafiek van hierdie MC -modus.

Beeld
Beeld

SS -modus

Die volgende modus is wat ons 'SS' noem vir 'enkelstap' -modus. Dit is basies dieselfde hoëprestasie -modus hierbo, maar eerder in 'n enkele staplus. U kan dus vinnig reageer op tinyLiDAR, maar die data sal uit die vorige steekproef kom, sodat u twee metings moet neem om die nuutste data te kry. Sien hieronder die huidige vs tydgrafiek van hierdie SS -modus.

Beeld
Beeld

Beide die bogenoemde modusse pas by die meeste gebruikers goed, aangesien dit vinnig en maklik was om te gebruik - gee slegs 'n "D" -opdrag en lees die resultate. Maar…

As ons vorentoe beweeg na die IoT-wêreld waar elke milli-Joule tel, het ons 'n nuwe paradigma.

En dit is presies die teenoorgestelde van wat ons in tinyLiDAR gekodeer het! Vir die IoT -wêreld benodig ons enkele metings met ongereelde tussenposes om krag te bespaar en die werktyd te verleng.

RT -modus

Gelukkig kan ons nou sê dat ons 'n oplossing vir hierdie scenario het as vir firmware 1.4.0. Dit word die 'RT' -modus genoem vir' real -time 'metings. En dit implementeer basies 'n sneller, wag en lees metode. Om dit te gebruik, kan u nog steeds die "D" -opdrag gee om die meting te begin, maar vir hierdie RT -modus moet u 'n gepaste tyd wag totdat die meting klaar is en dan die resultate lees. tinyLiDAR gaan outomaties na die laagste rustende toestand van sub 3uA tussen monsters. Dit is eintlik nog steeds eenvoudig om te gebruik en selfs meer energie -doeltreffend, aangesien u slegs een meting in plaas van twee moet neem om die nuutste data, naamlik nulbuffering, te kry.

Sien hieronder vir die huidige vs tydgrafiek van hierdie nuwe RT -modus.

Beeld
Beeld

Stap 3: Werklike metings

Die gebruik van die MC -deurlopende modus vir seldsame IoT -metings is weinig sin, aangesien ons slegs enkele metings nodig het. Daarom kan ons eerder ons aandag vestig op die SS- en RT -modusse. Die werking van tinyLiDAR vanaf 'n gereguleerde toevoer van +2.8v bied ons die laagste kragverlies. Deur die voorafbepaalde hoë akkuraatheid (200 ms) te gebruik, het ons dus die volgende energieverbruik op tinyLiDAR gemeet:

SS/enkelstapmodus: 31,2 mJ gemiddeld oor 2 metings

RT/intydse modus: 15,5 mJ gemiddeld oor 1 meting

As ons hierdie bogenoemde waardes in ons energieformule aansluit en na 'n sekonde normaliseer, kan ons die tydsverwagtinge vind as die energie uit ons battery 36000 J. is.

Geval A: elke sekonde lees (neem 2 lesings om die nuutste data te kry) Tc = 1secTon = 210ms per lesing x 2 lesings Toff = Tc - Ton = 580msIon (avg) = 26.5mA per lesing Ioff (avg) = 3uA ruststroom Vcc = 2.8V voedingsspanning Aktiewe energie verbruik deur las in Joules is Eon = Vcc x Ion x Ton = 2.8V x 26.5mA * 420ms = 31.164mJ Onaktiewe energie wat deur las in Joule verbruik word, is Eoff = Vcc x Ioff x Toff = 2.8V x 3uA x 580ms = 4.872uJ Normalisering na TcE = (Eon + Eoff)/Tc = (31.164mJ + 4.872uJ)/1 = 31.169mJ of 31.2mJ per sekonde Tydsduur in sekondes is dus die totale energiebron/-verbruik wat 36000J is / 31.2mJ = 1155000 sekondes = 320 uur = 13.3 dae

As ons hierdie berekeninge herhaal, kan ons die tydsduur vir die ander scenario's vind:

SS -modus

Geval A: 2 lesings per sekonde. Genormaliseerde energie is 31,2 mJ. Daarom is runtime 13,3 dae.

Geval B: 2 lesings per minuut. Genormaliseerde energie is 528uJ. Die tydsduur is dus 2,1 jaar.

Geval C: 2 lesings per uur. Genormaliseerde energie is 17uJ. Looptyd word bereken op >> 10 jaar, en laai as gevolg van tinyLiDAR is dus onbeduidend. Die battery kan dus slegs beperk word deur die rakleeftyd (dit wil sê ongeveer 5 jaar)

RT -modus

Geval A: 1 lesing per sekonde. Genormaliseerde energie is 15,5 mJ. Daarom is runtime 26,8 dae.

Geval B: 1 lesing per minuut. Genormaliseerde energie is 267uJ. Die tydsduur is dus 4,3 jaar.

Geval C: 1 lesing per uur. Genormaliseerde energie is 12.7uJ. Looptyd word bereken op >> 10 jaar, en laai as gevolg van tinyLiDAR is dus onbeduidend. Die battery kan dus slegs beperk word deur die rakleeftyd (dit wil sê ongeveer 5 jaar)

Die nuwe Real Time -modus met slaapfietsry is dus 'n voordeel hier om die tydsduur van die afgelope 4 jaar te verleng as elke minuut een meting gedoen word, soos in geval B getoon.

Let daarop dat die energieverbruik van die gasheerbeheerder nie in ag geneem is vir hierdie analise nie en dat die spesifikasies van die batterye aan die konserwatiewe kant was. U kan baie meer kragtige batterye vind wat by u behoeftes pas.

Dankie dat u gelees het en bly op die hoogte, want ons bied 'n werkende IoT -voorbeeld met behulp van tinyLiDAR vir ons volgende instruksies. Cheers!

Aanbeveel: