Indholdsfortegnelse:

TinyLiDAR til IoT: 3 trin
TinyLiDAR til IoT: 3 trin

Video: TinyLiDAR til IoT: 3 trin

Video: TinyLiDAR til IoT: 3 trin
Video: TF- Mini kit pvp 2024, November
Anonim
TinyLiDAR til IoT
TinyLiDAR til IoT

Hvis du ser dig omkring, vil du bemærke, at mange smarte små enheder bruges i hverdagen. De er typisk batteridrevne og er normalt forbundet til internettet (også kaldet 'skyen') på en eller anden måde. Det er alt hvad vi kalder 'IoT' -enheder, og de er hurtigt ved at blive almindeligt sted i verden i dag.

For IoT -systemingeniører bruges en masse designindsats på at optimere strømforbruget. Årsagen til dette skyldes naturligvis den begrænsede kapacitet, der er tilgængelig i batterier. Udskiftning af batterier i store mængder i fjerntliggende områder kan være et meget dyrt forslag.

Så dette instruerbare handler om at optimere strømmen i tinyLiDAR.

TL; DR opsummering

Vi har en ny "Real Time" -målingstilstand (fra firmware 1.4.0) for at hjælpe med at maksimere batterilevetid i IoT -enheder.

Klem mere juice fra batterier

Intuitivt kan vi øge driftstiden ved blot at reducere IoT -enhedernes strømforbrug. Okay, så det er indlysende! Men hvordan kan du gøre dette effektivt og korrekt beregne den forventede driftstid? Lad os finde ud af det…

Trin 1: Ren energi

Der er mange måder at gøre dette på, men vi foretrækker at bryde det ned til det grundlæggende og konvertere alt til energi. Elektrisk energi måles i Joule (symbol J) og per definition:

En Joule er den energi, der spredes som varme, når en elektrisk strøm på en ampere passerer gennem en modstand på en ohm i en periode på et sekund.

Da energi (E) også er spænding (V) x ladning (Q), har vi:

E = V x Q

Q er Aktuel (I) x tid (T):

Q = I x T

Så energi i Joules kan udtrykkes som:

E = V x I x T

hvor V er spændingen, I er strømmen i ampere og T er tiden i sekunder.

Lad os antage, at vi har en batteripakke, der består af fire AA alkaline (LR6) batterier, der er forbundet i serie. Dette vil give os en samlet startspænding på 4*1,5v = 6v. Udløbet af et alkalisk AA -batteri er ca. 1,0v, så den gennemsnitlige spænding vil være omkring 1,25v. Ifølge databladet "Fragtet kapacitet afhænger af den påførte belastning, driftstemperatur og afbrydelsesspænding." Så vi kan antage cirka 2000mAhr eller bedre for en applikation med lavt afløb, f.eks. En IoT -enhed.

Derfor kan vi beregne, at vi har 4 celler x 1,25V pr. Celle x 2000mAhr * 3600s = 36000 J energi tilgængelig fra denne batteripakke, før den skal udskiftes.

Af hensyn til enklere beregninger kan vi også antage, at konverteringseffektiviteten er 100% for vores systemregulator og ignorere værtskontrollens strømforbrug.

Et ord om cykling

Nej, ikke typen du kører på! Der er et par tekniske begreber kendt som "Power Cycling" og "Sleep Cycling". Begge kan bruges til at sænke strømforbruget, men der er en forskel mellem de to. Den første indebærer at lukke din enhed, indtil den er nødvendig, og derefter tænde den kun i kort tid for at udføre en måling osv. Selvom denne metode er fristende at bruge på grund af dens nul -strøm, er der en ulempe, hvor det vil tage nogle ikke-triviel tid til at starte op igen og forbrænde energi, mens du gør det.

Det andet koncept indebærer bare at holde enheden i dvaletilstand med håb om, at den vil vågne hurtigere, men du vil brænde en begrænset mængde strøm, mens den sover. Så hvad er bedst at bruge?

Det afhænger af, hvor ofte du skal vågne.

Trin 2: Kør numrene

Vi ønsker at finde den samlede energi (E) normaliseret til 1 sekund for hvert scenerio, der er anført nedenfor.

Sag A: Tc = 1sek; foretag en afstandsmåling hvert andet tilfælde B: Tc = 60sek; foretag en afstandsmåling hvert minut. Sag C: Tc = 3600sek; foretag en afstandsmåling hver time.

For at gøre dette kan vi sige, at Tc er cyklustiden for vores målinger, tonere den aktive tid og afbryde den inaktive tid og omarrangere vores energiformler som vist her:

Billede
Billede

For tinyLiDAR er opstartstiden cirka 300 ms eller mindre, og i løbet af denne tid vil det i gennemsnit tage 12,25 mA, mens den fungerer fra en reguleret 2,8 volt forsyning. Derfor vil den forbruge cirka 10,3 mJ energi for hver opstart.

Søvn/hvilestrøm for tinyLiDAR er et ultralavt 3uA. Dette er langt lavere end den månedlige selvafladningshastighed på 0,3% for en alkalisk batteripakke, så vi vil undersøge ved hjælp af kun "søvncyklus" -metoden her.

Hvorfor ikke undvære mikro og gå direkte til VL53 -sensoren?

Svaret på dette er ikke helt så indlysende. I de tidlige dage med smartphoneudvikling lærte vi, at det var en sikker metode til at reducere batteriets levetid at holde den energisultede højhastighedsprocessor i live for at afspille mp3'er. Allerede dengang gjorde vi alt for at bruge "applikationsprocessorer" med lavere strøm til periferiopgaver som at spille musik. Det er ikke meget anderledes i dag og faktisk kan man sige, at det er endnu vigtigere, da vi miniaturiserer alle disse IoT -enheder med hver faldende batterikapacitet. Så det er et klart aktiv for enhver batteridrevet applikation at bruge en applikationsprocessor med meget lav effekt til den eneste opgave at styre VL53-sensoren og levere data klar til videre behandling.

tinyLiDAR målemetoder

Det er muligvis ikke tydeligt i brugermanualen på dette tidspunkt [men vil være på et tidspunkt, da vi altid opdaterer vores brugermanual:)] - der er faktisk 3 forskellige målemetoder i tinyLiDAR.

MC -tilstand

Fra starten af tinyLiDAR var vi besat af at forsøge at få hurtigere målinger fra VL53 ToF -sensoren. Så vi optimerede vores firmware til at få de hurtigste og mest konsekvente streamingdata fra den. Dette indebar indførelse af buffering. Lidt buffering er en god ting, da det giver værtscontrolleren (dvs. Arduino) mulighed for hurtigt at få sine måledata og gå videre til vigtigere ting. Derfor er buffering absolut nødvendigt, og på grund af dette er vi i stand til at opnå streaminghastigheder på over 900Hz, selv på den relativt langsomme Arduino UNO. Derfor vil den hurtigste responstid være ved brug af tinyLiDAR's MC eller "kontinuerlig" tilstand.

BTW, hvis du nogensinde får en chance, skal du slutte et serielt kabel til TTY -udgangsstiften på tinyLiDAR, og du vil se, hvad denne MC -tilstand gør. Det måler bogstaveligt talt en måling så hurtigt som muligt og fylder dermed I2C -bufferen med de absolut nyeste data. Desværre, da det kører med fuld hastighed, brænder det også den maksimale mængde strøm. Se nedenfor for den aktuelle vs tid -graf for denne MC -tilstand.

Billede
Billede

SS -tilstand

Den næste tilstand er, hvad vi kalder "SS" for "enkelt trin" -tilstand. Dette er dybest set den samme højtydende tilstand ovenfor, men i stedet for i en enkelt trinløkke. Så du kan få hurtige svar fra tinyLiDAR, men data kommer fra den forrige prøve, så du bliver nødt til at tage to målinger for at få de allernyeste data. Se nedenfor for den aktuelle vs tid -graf for denne SS -tilstand.

Billede
Billede

Begge ovenstående tilstande har passet godt til regningen for de fleste brugere, da de var hurtige og nemme at bruge - bare udsted en "D" -kommando og læs resultaterne. Dog…

Fremad til IoT-verdenen, hvor hver milli-Joule tæller, har vi et nyt paradigme.

Og det er det stik modsatte af, hvad vi har kodet i tinyLiDAR! For IoT -verdenen har vi brug for enkeltmålinger med sjældne mellemrum for at spare strøm og forlænge driftstiden.

RT -tilstand

Heldigvis kan vi nu sige, at vi har en løsning til dette scenario fra firmware 1.4.0. Det kaldes "RT" -tilstand for "real -time" målinger. Og det implementerer dybest set en trigger, vent og læs metode. For at bruge det kan du stadig bare udstede "D" -kommandoen for at starte målingen, men for denne RT -tilstand skal du vente et passende stykke tid, før målingen er færdig og derefter læse resultaterne. tinyLiDAR går automatisk til sin laveste hviletilstand for sub 3uA imellem prøver. Det er faktisk stadig enkelt at bruge og endnu mere energieffektivt nu, da du kun skal tage en måling i stedet for to for at få de allernyeste data, dvs. nulbuffering.

Se nedenfor for den aktuelle vs tid -graf for denne nye RT -tilstand.

Billede
Billede

Trin 3: Faktiske målinger

Brug af MC -kontinuerlig tilstand til sjældne IoT -målinger giver lidt mening, da vi kun har brug for enkelte målinger. Derfor kan vi i stedet fokusere vores opmærksomhed på SS- og RT -tilstande. Betjening af tinyLiDAR fra en reguleret forsyning på +2,8v giver os den laveste effekttab. Så ved at bruge forudindstillingerne med høj nøjagtighed (200 ms) målte vi følgende energiforbrug på tinyLiDAR:

SS/enkelt-trin mode: 31,2 mJ i gennemsnit over 2 målinger

RT/realtidstilstand: 15,5 mJ i gennemsnit over 1 måling

Ved at tilslutte disse ovenstående værdier til vores energiformel og normalisere til et sekund kan vi finde driftstidsforventningerne under forudsætning af at energien fra vores batteripakke er 36000 J.

Case A: aflæsning hvert sekund (tag 2 aflæsninger for at få de nyeste data) Tc = 1sekTon = 210ms pr. Læsning x 2 aflæsninger Toff = Tc - Ton = 580msIon (avg) = 26,5mA pr. Aflæsning Ioff (avg) = 3uA hvilestrøm Vcc = 2,8V forsyningsspænding Aktiv energi forbrugt ved belastning i Joule er Eon = Vcc x Ion x Ton = 2,8V x 26,5mA * 420ms = 31,164mJ Inaktiv energi, der forbruges ved belastning i Joule, er Eoff = Vcc x Ioff x Toff = 2,8V x 3uA x 580ms = 4.872uJ Normalisering til TcE = (Eon + Eoff)/Tc = (31.164mJ + 4.872uJ)/1 = 31.169mJ eller 31.2mJ pr. sekund Runtime i sekunder er derfor den samlede energiforbrug af kilde/energiforbrug, som er 36000J / 31,2mJ = 1155000 sekunder = 320 timer = 13,3 dage

Når vi gentager disse beregninger, kan vi finde runtimes for de andre scenarier:

SS -tilstand

Sag A: 2 aflæsninger pr. Sekund. Normaliseret energi er 31,2 mJ. Derfor er runtime 13,3 dage.

Sag B: 2 aflæsninger pr. Minut. Normaliseret energi er 528uJ. Derfor er driftstiden 2,1 år.

Sag C: 2 aflæsninger pr. Time. Normaliseret energi er 17uJ. Kørselstid beregnes til >> 10 år, hvorfor indlæsning på grund af tinyLiDAR er ubetydelig. Batteripakken vil derfor kun blive begrænset af dets holdbarhed (dvs. ca. 5 år)

RT -tilstand

Sag A: 1 læsning pr. Sekund. Normaliseret energi er 15,5 mJ. Derfor er driftstiden 26,8 dage.

Sag B: 1 læsning pr. Minut. Normaliseret energi er 267uJ. Derfor er driftstiden 4,3 år.

Sag C: 1 Aflæsning pr. Time. Normaliseret energi er 12,7uJ. Kørselstid beregnes til >> 10 år, derfor er belastning på grund af tinyLiDAR ubetydelig. Batteripakken vil derfor kun blive begrænset af dets holdbarhed (dvs. ca. 5 år)

Derfor er den nye realtidstilstand ved hjælp af søvncykling en fordel her for at forlænge driftstiden over 4 år, hvis der foretages en måling hvert minut som vist i sag B.

Bemærk, at værtscontrollerens energiforbrug ikke blev taget i betragtning ved denne analyse, og at batteripakkens specifikationer var på den konservative side. Du kan finde meget mere kraftfulde batterier efter ønske, der passer til dine behov.

Tak fordi du læste og følg med, da vi vil levere et fungerende IoT -eksempel ved hjælp af tinyLiDAR til vores næste instruerbare. Skål!

Anbefalede: