Innehållsförteckning:
Video: TinyLiDAR för IoT: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Om du ser dig omkring märker du att många smarta små enheter används i vardagen. De är vanligtvis batteridrivna och är vanligtvis anslutna till Internet (aka "molnet") på något sätt. Det här är allt vi kallar "IoT" -enheter och de blir snabbt vanliga i världen idag.
För IoT -systemingenjörer läggs mycket konstruktionsansträngning på att optimera strömförbrukningen. Anledningen till detta beror naturligtvis på den begränsade kapaciteten som finns i batterier. Att byta batterier i stora mängder i avlägsna områden kan vara ett mycket dyrt förslag.
Så det här instruerbara handlar om att optimera kraften i tinyLiDAR.
TL; DR sammanfattning
Vi har ett nytt "Real Time" -mätningsläge (från firmware 1.4.0) för att maximera batteritiden i IoT -enheter.
Kramar mer juice från batterier
Intuitivt kan vi öka drifttiden genom att helt enkelt minska IoT -enheternas strömförbrukning. Okej så det är uppenbart! Men hur kan du göra detta effektivt och korrekt beräkna den förväntade körtiden? Låt oss ta reda på…
Steg 1: Ren energi
Det finns många sätt att göra detta men vi föredrar att bryta ner det till grunderna och omvandla allt till energi. Elektrisk energi mäts i Joule (symbol J) och per definition:
En Joule är den energi som avges som värme när en elektrisk ström på en ampere passerar genom ett motstånd på en ohm under en period av en sekund.
Eftersom energi (E) också är spänning (V) x laddning (Q) har vi:
E = V x Q
Q är aktuell (I) x tid (T):
Q = I x T
Så energi i Joules kan uttryckas som:
E = V x I x T
där V är spänningen, I är strömmen i ampere och T är tiden i sekunder.
Låt oss anta att vi har ett batteri som består av fyra AA alkaliska (LR6) batterier som är seriekopplade. Detta ger oss en total startspänning på 4*1,5v = 6v. Livslängden för ett alkaliskt AA -batteri är cirka 1,0 volt så medelspänningen skulle vara cirka 1,25 volt. Enligt produktdatabladet "Levererad kapacitet beror på applicerad belastning, driftstemperatur och spänning." Så vi kan anta cirka 2000mAhr eller bättre för applikationer med låg dränering, till exempel en IoT -enhet.
Därför kan vi beräkna att vi har 4 celler x 1,25V per cell x 2000mAhr * 3600s = 36000 J energi tillgänglig från detta batteri innan det måste bytas ut.
För enklare beräkningar kan vi också anta att konverteringseffektiviteten är 100% för vår systemregulator och ignorera värdkontrollens strömförbrukning.
Ett ord om cykling
Nej, inte den typen du rider på! Det finns ett par tekniska koncept som kallas "Power Cycling" och "Sleep Cycling". Båda kan användas för att sänka strömförbrukningen men det är skillnad mellan de två. Den första handlar om att stänga av enheten tills den behövs och sedan slå på den bara för en kort tid för att utföra en mätning etc. Även om den här metoden är frestande att använda på grund av dess nollström, finns det en nackdel där det kommer att ta lite icke-trivial tid att starta upp och förbränna energi medan du gör det.
Det andra konceptet innebär att bara hålla enheten i viloläge med förhoppningen att den vaknar snabbare men du kommer att bränna en viss mängd ström medan den sover. Så vilken är bäst att använda?
Det beror på hur ofta du behöver vakna.
Steg 2: Kör siffrorna
Vi vill hitta den totala energin (E) normaliserad till 1 sekund för varje scenerio som anges nedan.
Fall A: Tc = 1sek; ta en avståndsmätning varannan Fall B: Tc = 60sek; ta en avståndsmätning varje minut. Fall C: Tc = 3600sek; ta en distansmätning varje timme.
För att göra detta kan vi säga att Tc är cykeltiden för våra mätningar, tonera den aktiva tiden och toffa den inaktiva tiden och omorganisera våra energiformler som visas här:
För tinyLiDAR är starttiden cirka 300 ms eller mindre och under denna tid kommer det att ta i genomsnitt 12,25 mA medan den fungerar från en reglerad 2,8 V -strömförsörjning. Därför kommer den att förbruka cirka 10,3 mJ energi för varje start.
Sömn/vilande ström för tinyLiDAR är en ultralåg 3uA. Detta är mycket lägre än den månatliga självurladdningshastigheten på 0,3% för ett alkaliskt batteripaket så vi kommer att undersöka med endast "sömncykling" -metoden här.
Varför inte avstå från micro och gå direkt till VL53 -sensorn?
Svaret på detta är inte riktigt så självklart. I de första dagarna av smartphone -utveckling lärde vi oss att att hålla den krafthungriga höghastighetsprocessorn vid liv för att spela mp3 -filer var en säker metod för att minska batteriets livslängd. Redan då gjorde vi alla ansträngningar för att använda "applikationsprocessorer" med lägre effekt för periferiuppgifter som att spela musik. Det är inte mycket annorlunda idag och faktiskt kan man säga att det är ännu viktigare eftersom vi miniatyriserar alla dessa IoT -enheter med varje minskande batterikapacitet. Så att använda en ultralåg applikationsprocessor för den enda uppgiften att styra VL53-sensorn och tillhandahålla data redo för vidare behandling är en bestämd tillgång för alla batteridrivna applikationer.
tinyLiDAR -mätmetoder
Det kanske inte är tydligt i användarmanualen för närvarande [men kommer att vara någon gång då vi alltid uppdaterar vår användarmanual:)] - det finns faktiskt 3 olika mätlägen i tinyLiDAR.
MC -läge
Från starten av tinyLiDAR var vi besatta av att försöka få snabbare mätningar från VL53 ToF -sensorn. Så vi optimerade vår firmware för att få den snabbaste och mest konsekventa strömningsdata från den. Detta innebar att buffert infördes. Lite buffring är bra eftersom det tillåter värdkontrollen (dvs Arduino) att få sina mätdata snabbt och gå vidare till viktigare saker. Därför är buffring absolut nödvändig och på grund av detta kan vi uppnå strömningshastigheter över 900Hz även på den relativt långsamma Arduino UNO. Därför är den snabbaste svarstiden att använda tinyLiDAR: s MC eller "kontinuerligt" läge.
BTW, om du någonsin får en chans, bör du ansluta en seriell kabel till TTY -utgångsstiften på tinyLiDAR så ser du vad det här MC -läget gör. Det tar bokstavligen en mätning så snabbt som möjligt och fyller därmed I2C -bufferten med de absolut senaste uppgifterna. Tyvärr, eftersom det körs på full hastighet, bränner det också maxeffekten. Se nedan för aktuell vs tidsdiagram för detta MC -läge.
SS -läge
Nästa läge är det vi kallar "SS" för "enda steg" -läge. Detta är i princip samma högpresterande läge ovan men i en enda stegslinga istället. Så du kan få snabba svar från tinyLiDAR men data kommer från det föregående urvalet så du måste ta två mätningar för att få de allra senaste uppgifterna. Se nedan för aktuell vs tidsdiagram för detta SS -läge.
Båda ovanstående lägen har passat räkningen bra för de flesta användare eftersom de var snabba och enkla att använda - bara utfärda ett "D" -kommando och läs resultaten. Dock …
Framåt till IoT-världen där varje milli-Joule räknas har vi ett nytt paradigm.
Och det är raka motsatsen till vad vi har kodat i tinyLiDAR! För IoT -världen behöver vi enstaka mätningar med sällsynta intervall för att spara energi och förlänga drifttiden.
RT -läge
Lyckligtvis kan vi nu säga att vi har en lösning för detta scenario från firmware 1.4.0. Det kallas "RT" -läget för "realtidsmätningar". Och det implementerar i princip en trigger, vänta och läsa metod. För att använda den kan du fortfarande bara utfärda "D" -kommandot för att starta mätningen, men för detta RT -läge måste du vänta en passande tid innan mätningen är klar och sedan läsa resultaten. tinyLiDAR går automatiskt till sitt lägsta viloläge för sub 3uA mellan prover. Det är faktiskt fortfarande enkelt att använda och ännu mer energieffektivt nu eftersom du bara behöver ta en mätning istället för två för att få de allra senaste uppgifterna, dvs nollbuffert.
Se nedan för aktuellt vs tidsdiagram för detta nya RT -läge.
Steg 3: Faktiska mätningar
Att använda MC -kontinuerligt läge för sällsynta IoT -mätningar är lite meningsfullt eftersom vi bara behöver enstaka mätningar. Därför kan vi fokusera vår uppmärksamhet på SS- och RT -lägen istället. Att använda tinyLiDAR från en reglerad strömförsörjning på +2,8v ger oss den lägsta effektförlusten. Så med hjälp av förinställningarna för hög noggrannhet (200 ms) mätte vi följande energiförbrukning på tinyLiDAR:
SS/enkelstegsläge: 31,2 mJ i genomsnitt över 2 mätningar
RT/realtidsläge: 15,5 mJ i genomsnitt över 1 mätning
Genom att ansluta ovanstående värden till vår energiformel och normalisera till en sekund kan vi hitta körtidsförväntningarna förutsatt att energin från vårt batteri är 36000 J.
Fall A: avläsning varannan (ta 2 avläsningar för att få senaste data) Tc = 1sekTon = 210ms per avläsning x 2 avläsningar Toff = Tc - Ton = 580msIon (avg) = 26,5mA per avläsning Ioff (avg) = 3uA vilande ström Vcc = 2,8V matningsspänning Aktiv energi som förbrukas av belastning i Joule är Eon = Vcc x Ion x Ton = 2,8V x 26,5mA * 420ms = 31,164mJ Inaktiv energi som förbrukas av belastning i Joule är Eoff = Vcc x Ioff x Toff = 2,8V x 3uA x 580ms = 4.872uJ Normalisering till TcE = (Eon + Eoff)/Tc = (31.164mJ + 4.872uJ)/1 = 31.169mJ eller 31.2mJ per sekund Drifttid i sekunder är därför den totala energin för källan/förbrukad energi som är 36000J / 31.2mJ = 1155000 sekunder = 320 timmar = 13.3 dagar
Genom att upprepa dessa beräkningar kan vi hitta körtiden för de andra scenarierna:
SS -läge
Fall A: 2 avläsningar per sekund. Normaliserad energi är 31,2 mJ. Därför är körtiden 13,3 dagar.
Fall B: 2 avläsningar per minut. Normaliserad energi är 528uJ. Därför är körtiden 2,1 år.
Fall C: 2 avläsningar per timme. Normaliserad energi är 17uJ. Körtid beräknas till >> 10 år, varför laddning på grund av tinyLiDAR är försumbar. Batteripaketet kommer därför endast att begränsas av dess hållbarhet (dvs. cirka 5 år)
RT -läge
Fall A: 1 avläsning per sekund. Normaliserad energi är 15,5 mJ. Därför är körtiden 26,8 dagar.
Fall B: 1 avläsning per minut. Normaliserad energi är 267uJ. Därför är körtiden 4,3 år.
Fall C: 1 läsning per timme. Normaliserad energi är 12,7uJ. Körtid beräknas till >> 10 år, varför laddning på grund av tinyLiDAR är försumbar. Batteripaketet kommer därför endast att begränsas av dess hållbarhet (dvs. cirka 5 år)
Därför är det nya realtidsläget med sömncykling en fördel här för att förlänga körtiden senaste 4 åren om en mätning görs varje minut som visas i fall B.
Observera att värdkontrollantens energiförbrukning inte beaktades för denna analys och att batteripaketets specifikationer var på den konservativa sidan. Du kan hitta mycket kraftfullare batterier efter önskemål för att passa dina behov.
Tack för att du läste och håll utkik eftersom vi kommer att tillhandahålla ett fungerande IoT -exempel med tinyLiDAR för vår nästa instruerbara. Skål!
Rekommenderad:
Inställning för extern Bluetooth GPS -leverantör för Android -enheter: 8 steg
Inställning för extern Bluetooth GPS-leverantör för Android-enheter: Den här instruktionsboken kommer att förklara hur du skapar din egen externa Bluetooth-aktiverade GPS för din telefon, tänd vad som helst för ungefär $ 10. Materialräkning: NEO 6M U-blox GPSHC-05 bluetooth-modul Kunskap om gränssnitt Blutooth LavenergimodulerArdui
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
Väggfäste för iPad som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: 4 steg (med bilder)
Väggfäste för iPad Som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: På senare tid har jag ägnat ganska mycket tid åt att automatisera saker i och runt mitt hus. Jag använder Domoticz som min hemautomationsapplikation, se www.domoticz.com för mer information. I min sökning efter en instrumentpanelapplikation som visar all Domoticz -information tillsammans
Övertyga dig själv om att bara använda en 12V-till-AC-omriktare för LED-ljussträngar istället för att koppla om dem för 12V: 3 steg
Övertyga dig själv om att bara använda en 12V-till-AC-linjeomvandlare för LED-ljussträngar istället för att koppla om dem för 12V: Min plan var enkel. Jag ville klippa upp en väggdriven LED-ljussträng i bitar och sedan dra om den för att gå av 12 volt. Alternativet var att använda en kraftomvandlare, men vi vet alla att de är fruktansvärt ineffektiva, eller hur? Höger? Eller är de det?
1.5A linjär regulator för konstant ström för lysdioder för: 6 steg
1.5A linjär regulator för konstant ström för lysdioder för: Så det finns massor av instruktioner som täcker användning av LED -lampor med hög ljusstyrka. Många av dem använder den kommersiellt tillgängliga Buckpuck från Luxdrive. Många av dem använder också linjära regleringskretsar som toppar vid 350 mA eftersom de är mycket ineffektiva