Talaan ng mga Nilalaman:

TinyLiDAR para sa IoT: 3 Mga Hakbang
TinyLiDAR para sa IoT: 3 Mga Hakbang

Video: TinyLiDAR para sa IoT: 3 Mga Hakbang

Video: TinyLiDAR para sa IoT: 3 Mga Hakbang
Video: Technical Presentation of tinyLiDAR's Command Terminal Sketch 2024, Hulyo
Anonim
TinyLiDAR para sa IoT
TinyLiDAR para sa IoT

Kung titingnan mo ang paligid, mapapansin mo ang maraming matalinong maliliit na aparato na ginagamit sa pang-araw-araw na buhay. Karaniwan ang mga ito ay pinalakas ng baterya at karaniwang konektado sa Internet (aka ang 'ulap') kahit papaano. Ito ang lahat ng tinatawag nating mga aparato na 'IoT' at mabilis silang nagiging karaniwang lugar sa mundo ngayon.

Para sa Mga Engineer ng IoT System, maraming pagsisikap sa disenyo ang ginugol sa pag-optimize ng pagkonsumo ng kuryente. Ang dahilan para dito ay syempre dahil sa limitadong kapasidad na magagamit sa mga baterya. Ang pagpapalit ng mga baterya sa maraming dami sa mga liblib na lugar ay maaaring maging isang napakamahal na panukala.

Kaya't ang itinuturo na ito ay tungkol sa pag-optimize ng lakas sa tinyLiDAR.

Buod ng TL; DR

Mayroon kaming isang bagong "Real Time" na mode ng pagsukat (tulad ng firmware 1.4.0) upang matulungan ang pag-maximize ng runtime ng baterya sa mga IoT device.

Pinipiga ang Higit na Juice mula sa Mga Baterya

Intuitively, maaari nating taasan ang runtime sa pamamagitan lamang ng pagbawas sa pagkonsumo ng kuryente ng mga aparato ng IoT. Okay so halata naman yan! Ngunit paano mo ito magagawa nang mabisa at maayos na kalkulahin ang inaasahang runtime? Alamin Natin…

Hakbang 1: Purong Enerhiya

Maraming mga paraan upang magawa ito ngunit mas gusto namin itong ibahin sa mga pangunahing kaalaman at i-convert ang lahat sa enerhiya. Ang lakas ng kuryente ay sinusukat sa Joules (simbolo J) at sa pamamagitan ng kahulugan:

Ang isang Joule ay ang enerhiya na napawi bilang init kapag ang isang kasalukuyang kuryente ng isang amp ay dumaan sa isang pagtutol ng isang ohm sa loob ng isang segundo.

Dahil ang enerhiya (E) ay boltahe din (V) x singil (Q), mayroon kaming:

E = V x Q

Ang Q ay Kasalukuyang (I) x oras (T):

Q = I x T

Kaya't ang enerhiya sa Joules ay maaaring ipahayag bilang:

E = V x I x T

kung saan ang V ay ang boltahe, ako ang kasalukuyang sa Amps at T ang oras sa segundo.

Ipagpalagay natin na mayroon kaming isang pack ng baterya na binubuo ng apat na baterya ng AA alkaline (LR6) na konektado sa serye. Bibigyan kami nito ng isang kabuuang panimulang boltahe na 4 * 1.5v = 6v. Ang pagtatapos ng buhay para sa isang alkalina na baterya ng AA ay tinatayang 1.0v kaya ang average na boltahe ay tungkol sa 1.25v. Ayon sa mfr datasheet "Ang naihatid na kakayahan ay nakasalalay sa inilapat na pagkarga, temperatura ng operating at cut-off voltage." Kaya maaari nating ipalagay ang tungkol sa 2000mAhr o mas mahusay para sa isang mababang application ng alisan ng tubig tulad ng isang aparato ng IoT.

Samakatuwid maaari nating kalkulahin na mayroon kaming 4 na mga cell x 1.25V bawat cell x 2000mAhr * 3600sec = 36000 J ng enerhiya na magagamit mula sa baterya pack na ito bago ito mapalitan.

Para sa kapakanan ng mas simpleng mga kalkulasyon, maaari rin nating ipalagay na ang kahusayan ng conversion ay 100% para sa aming system regulator at huwag pansinin ang pagkonsumo ng kuryente ng host controller.

Isang Salita Tungkol sa Pagbibisikleta

Hindi, hindi ang uri na iyong sinasakyan! Mayroong isang pares ng mga teknikal na konsepto na kilala bilang "Power Cycling" at "Sleep Cycling". Ang parehong ay maaaring magamit upang babaan ang pagkonsumo ng kuryente ngunit may pagkakaiba sa dalawa. Ang una ay nagsasangkot ng pag-shutting ng iyong aparato hanggang sa kinakailangan nito at pagkatapos ay i-on lamang ito sa maikling panahon upang magsagawa ng pagsukat atbp. Bagaman ang pamamaraang ito ay nakakaakit na gamitin dahil sa zero off na kasalukuyan, mayroong isang sagabal kung saan magtatagal di-walang halaga na oras upang mag-boot back up at magsunog ng enerhiya habang ginagawa ito.

Ang pangalawang konsepto ay nagsasangkot lamang ng pagpapanatili ng aparato sa mode ng pagtulog na may pag-asang mas mabilis itong magigising ngunit susunugin mo ang ilang may hangganan na kasalukuyang habang natutulog ito. Kaya alin ang pinakamahusay na magagamit?

Ito ay depende sa kung gaano mo kadalas kailangan upang gumising.

Hakbang 2: Patakbuhin ang Mga Numero

Nais naming hanapin ang kabuuang enerhiya (E) na na-normalize sa 1 segundo para sa bawat scenerio na nakalista sa ibaba.

Kaso A: Tc = 1sec; kumuha ng sukat sa distansya bawat segundo Kaso B: Tc = 60sec; kumuha ng sukat sa distansya bawat minuto. Kaso C: Tc = 3600sec; kumuha ng sukat sa distansya bawat oras.

Upang magawa ito, masasabi nating ang Tc ay ang oras ng pag-ikot para sa aming mga sukat, tonelahin ang aktibong oras at i-toff ang hindi aktibong oras at muling ayusin ang aming mga formula sa enerhiya tulad ng ipinakita dito:

Larawan
Larawan

Para sa tinyLiDAR, ang oras ng pagsisimula ay tungkol sa 300ms o mas mababa at sa oras na ito ay aabutin ng isang average ng 12.25mA habang nagpapatakbo mula sa isang kinokontrol na 2.8v supply. Samakatuwid ito ay ubusin ng humigit-kumulang na 10.3mJ ng enerhiya para sa bawat pagsisimula.

Ang kasalukuyang pagtulog / pananahimik para sa tinyLiDAR ay isang ultra-mababang 3uA. Malayo itong mas mababa kaysa sa 0.3% buwanang rate ng paglabas ng sarili ng isang alkaline na baterya para mag-imbestiga kami gamit lamang ang pamamaraang "sleep cycling" dito.

Bakit hindi magtapon sa micro at direktang pumunta sa VL53 sensor?

Ang sagot dito ay hindi masyadong halata. Sa mga unang araw ng pag-unlad ng smartphone natutunan namin na ang pagpapanatiling buhay na gutom ng mataas na bilis ng processor na buhay upang i-play ang mp3 ay isang tiyak na pamamaraan upang mabawasan ang buhay ng baterya. Kahit na noon ginawa namin ang bawat pagsisikap na posible na gumamit ng mas mababang kapangyarihan na "mga processor ng aplikasyon" para sa mga tungkulin sa paligid tulad ng pag-play ng musika. Hindi ito gaanong kaiba sa ngayon at sa katunayan, masasabi mong mas mahalaga pa ito habang pinapaliit namin ang lahat ng mga aparatong IoT na ito sa bawat bumababang mga kapasidad ng baterya. Kaya ang paggamit ng isang ultra-mababang power application processor para sa nag-iisang gawain ng pagkontrol sa sensor ng VL53 at pagbibigay ng data na handa na para sa karagdagang pagproseso ay isang tiyak na pag-aari para sa anumang application na pinalakas ng baterya.

tinyLiDAR Mga Mode ng Pagsukat

Maaaring hindi malinaw sa manwal ng gumagamit sa oras na ito [ngunit magkakaroon ng ilang mga punto habang palagi naming ina-update ang aming manwal ng gumagamit:)] - talagang may 3 magkakaibang mga mode ng pagsukat sa tinyLiDAR.

MC Mode

Mula sa pagsisimula ng tinyLiDAR, nahumaling kami sa pagsubok na makakuha ng mas mabilis na mga sukat mula sa sensor ng VL53 ToF. Kaya na-optimize namin ang aming firmware upang makuha ang pinakamabilis at pinaka-pare-parehong streaming data mula rito. Kasama dito ang pagpapakilala sa buffering. Ang isang maliit na buffering ay isang magandang bagay dahil pinapayagan nito ang host controller (ibig sabihin, Arduino) na makuha ang data ng pagsukat nito sa isang flash at magpatuloy sa mas mahahalagang bagay. Samakatuwid ang buffering ay ganap na kinakailangan at dahil dito nagagawa naming makamit ang mga rate ng streaming na higit sa 900Hz kahit na sa medyo mabagal na Arduino UNO. Samakatuwid, ang pinakamabilis na oras ng pagtugon ay sa paggamit ng MC ng tinyLiDAR o "tuluy-tuloy" na mode.

BTW, kung nakakuha ka ng isang pagkakataon, dapat mong ikonekta ang isang serial cable sa TTY output pin sa tinyLiDAR at makikita mo kung ano ang ginagawa ng MC mode na ito. Ito ay literal na tumatagal ng isang pagsukat nang mas mabilis hangga't maaari at sa paggawa nito, pinupunan nito ang I2C buffer ng ganap na pinakabagong data. Sa kasamaang palad, dahil tumatakbo ito sa buong bilis, nasusunog din ang maximum na dami ng lakas. Tingnan sa ibaba para sa kasalukuyang kumpara sa oras ng graph ng MC mode na ito.

Larawan
Larawan

SS Mode

Ang susunod na mode ay ang tinatawag naming "SS" para sa "solong hakbang" mode. Karaniwan ito ang parehong mode ng mataas na pagganap sa itaas ngunit sa isang solong stepping loop sa halip. Kaya maaari kang makakuha ng mabilis na mga tugon mula sa tinyLiDAR ngunit ang data ay magmumula sa nakaraang sample upang magsagawa ka ng dalawang mga sukat upang makuha ang pinakabagong data. Tingnan sa ibaba para sa kasalukuyang kumpara sa oras ng graph ng SS mode na ito.

Larawan
Larawan

Pareho sa mga mode sa itaas na nababagay nang maayos ang bayarin para sa karamihan ng mga gumagamit dahil mabilis at madaling gamitin - maglabas lamang ng isang "D" na utos at basahin ang mga resulta. Gayunpaman …

Sumusulong sa mundo ng IoT kung saan binibilang ang bawat milli-Joule, mayroon kaming bagong tularan.

At ito ang eksaktong kabaligtaran sa kung ano ang na-code namin sa tinyLiDAR! Para sa mundo ng IoT kailangan namin ng solong pagsukat sa hindi madalang na agwat upang makatipid ng lakas at mapalawak ang runtime.

RT Mode

Sa kabutihang palad, masasabi na natin ngayon na mayroon kaming isang solusyon para sa senaryong ito bilang firmware 1.4.0. Tinawag itong mode na "RT" para sa mga pagsukat na "real time". At karaniwang ipinapatupad nito ang isang paraan ng pag-trigger, paghintay at pagbabasa. Upang magamit ito, maaari mo pa ring mag-isyu ng utos na "D" upang simulan ang pagsukat, ngunit para sa mode na RT na ito kailangan mong maghintay ng isang naaangkop na dami ng oras para matapos ang pagsukat at pagkatapos ay basahin ang mga resulta. Ang tinyLiDAR ay awtomatikong pumupunta sa pinakamababang estado nito ng sub 3uA na nasa pagitan ng mga sample. Ito ay talagang simple pa ring gamitin at mas mahusay sa enerhiya ngayon dahil kailangan mo lamang gumawa ng isang pagsukat sa halip na dalawa upang makuha ang pinakabagong data, ibig sabihin, zero buffering.

Tingnan sa ibaba para sa kasalukuyang kumpara sa oras ng graph ng bagong mode na RT.

Larawan
Larawan

Hakbang 3: Tunay na Pagsukat

Ang paggamit ng tuloy-tuloy na mode ng MC para sa hindi madalang na mga sukat ng IoT ay walang katuturan dahil kailangan lang namin ng solong mga sukat. Kaya maaari naming ituon ang aming pansin sa mga mode ng SS at RT sa halip. Ang pagpapatakbo ng tinyLiDAR mula sa isang kinokontrol na supply ng + 2.8v ay nagbibigay sa amin ng pinakamababang pagwawaldas ng kuryente. Kaya sa paggamit ng mga preset na Mataas na Katumpakan (200ms), sinukat namin ang sumusunod na pagkonsumo ng enerhiya sa tinyLiDAR:

SS / single-step mode: Ang 31.2 mJ ay nag-average ng higit sa 2 mga sukat

RT / real-time mode: Nag-average ang 15.5mJ ng higit sa 1 pagsukat

Ang paglalagay ng mga halagang ito sa itaas sa aming formula ng enerhiya at pag-normalize sa isang segundo maaari naming makita ang mga inaasahan sa runtime na ipagpapalagay na ang enerhiya mula sa aming baterya pack ay 36000 J.

Kaso A: pagbabasa bawat segundo (kumuha ng 2 pagbasa upang makakuha ng pinakabagong data) Tc = 1secTon = 210ms bawat pagbabasa x 2 na pagbasa Toff = Tc - Ton = 580msIon (avg) = 26.5mA bawat pagbabasa Ioff (avg) = 3uA quiescent kasalukuyang Vcc = 2.8V supply boltahe Aktibong enerhiya na natupok ng pag-load sa Joules ay Eon = Vcc x Ion x Ton = 2.8V x 26.5mA * 420ms = 31.164mJ Hindi aktibong enerhiya na natupok ng pagkarga sa Joules ay Eoff = Vcc x Ioff x Toff = 2.8V x 3uA x 580ms = 4.872uJ Normalizing to TcE = (Eon + Eoff) / Tc = (31.164mJ + 4.872uJ) / 1 = 31.169mJ o 31.2mJ bawat segundo Runtime sa segundo ay samakatuwid ang kabuuang enerhiya ng mapagkukunan / enerhiya na natupok na 36000J / 31.2mJ = 1155000 segundo = 320 oras = 13.3day

Ang pag-uulit ng mga kalkulasyong ito, mahahanap natin ang mga runtime para sa iba pang mga sitwasyon:

SS mode

Kaso A: 2 Mga Pagbasa bawat segundo. Ang normalized na enerhiya ay 31.2mJ. Samakatuwid ang runtime ay 13.3 araw.

Kaso B: 2 Mga Pagbasa bawat minuto. Ang na-normalize na enerhiya ay 528uJ. Samakatuwid ang runtime ay 2.1 taon.

Kaso C: 2 Mga Pagbasa bawat oras. Ang na-normalize na enerhiya ay 17uJ. Ang Runtime ay kinakalkula sa >> 10 taon, samakatuwid ang paglo-load dahil sa tinyLiDAR ay bale-wala. Samakatuwid, ang baterya pack ay limitado lamang sa buhay ng istante (hal. Humigit-kumulang na 5 taon)

RT mode

Kaso A: 1 Pagbasa bawat segundo. Ang normalized na enerhiya ay 15.5mJ. Samakatuwid ang runtime ay 26.8 araw.

Kaso B: 1 Pagbasa bawat minuto. Ang na-normalize na enerhiya ay 267uJ. Samakatuwid ang runtime ay 4.3 taon.

Kaso C: 1 Pagbabasa bawat oras. Ang normalized na enerhiya ay 12.7uJ. Ang Runtime ay kinakalkula sa >> 10 taon, samakatuwid ang paglo-load dahil sa tinyLiDAR ay bale-wala. Samakatuwid, ang baterya pack ay limitado lamang sa buhay ng istante (hal. Humigit-kumulang na 5 taon)

Samakatuwid, ang bagong mode na Real Time na gumagamit ng cycling sa pagtulog ay isang benepisyo dito upang mapalawak ang runtime nakaraang 4 na taon kung ang isang pagsukat ay kinukuha bawat minuto tulad ng ipinakita sa Kaso B.

Tandaan na ang pagkonsumo ng enerhiya ng tagapamahala ng host ay hindi isinasaalang-alang para sa pagtatasa na ito at ang mga spec ng pack ng baterya ay nasa panig na konserbatibo. Maaari kang makahanap ng mas malakas na mga baterya tulad ng ninanais na umangkop sa iyong mga pangangailangan.

Salamat sa pagbabasa at manatiling nakatutok dahil magbibigay kami ng isang gumaganang halimbawa ng IoT gamit ang tinyLiDAR para sa aming susunod na maituturo. Cheers!

Inirerekumendang: