Съдържание:

TinyLiDAR за IoT: 3 стъпки
TinyLiDAR за IoT: 3 стъпки

Видео: TinyLiDAR за IoT: 3 стъпки

Видео: TinyLiDAR за IoT: 3 стъпки
Видео: От рака толстой кишки 3 стадии до отсутствия рака за 4 месяца😲 2024, Юли
Anonim
TinyLiDAR за IoT
TinyLiDAR за IoT

Ако се огледате наоколо, ще забележите, че много умни малки устройства се използват в ежедневието. Обикновено те се захранват от батерии и обикновено са свързани по някакъв начин с интернет (известен още като „облака“). Това са всичко, което наричаме „IoT“устройства и те бързо се превръщат в често срещано място в света днес.

За системните инженери на IoT много усилия за проектиране се изразходват за оптимизиране на консумацията на енергия. Причината за това, разбира се, се дължи на ограничения капацитет, наличен в батериите. Смяната на батерии в големи количества в отдалечени райони може да бъде много скъпо предложение.

Така че тази инструкция е свързана с оптимизиране на мощността в tinyLiDAR.

TL; DR обобщение

Имаме нов режим на измерване "В реално време" (от фърмуера 1.4.0), който помага да се увеличи максимално времето на работа на батерията в IoT устройства.

Изцеждане на повече сок от батериите

Интуитивно можем да увеличим времето за изпълнение, като просто намалим консумацията на енергия на IoT устройствата. Добре, това е очевидно! Но как можете да направите това ефективно и правилно да изчислите очакваното време на изпълнение? Нека разберем…

Стъпка 1: Чиста енергия

Има много начини да направите това, но ние предпочитаме да го разбием до основите и да преобразуваме всичко в енергия. Електрическата енергия се измерва в джаули (символ J) и по дефиниция:

Джоул е енергията, разсейвана като топлина, когато електрически ток от един усилвател преминава през съпротивление от един ом за период от една секунда.

Тъй като енергията (E) също е напрежение (V) x заряд (Q), имаме:

E = V x Q

Q е ток (I) x време (T):

Q = I x T

Така че енергията в джаули може да се изрази като:

E = V x I x T

където V е напрежението, I е токът в ампери и T е времето в секунди.

Да приемем, че имаме батерия, съставена от четири алкални батерии тип AA (LR6), свързани последователно. Това ще ни даде общо начално напрежение 4*1.5v = 6v. Срокът на експлоатация на алкална AA батерия е приблизително 1.0v, така че средното напрежение ще бъде около 1.25v. Според информационния лист на mfr „Доставеният капацитет зависи от приложеното натоварване, работната температура и прекъсващото напрежение“. Така че можем да приемем около 2000 mAhr или по -добре за приложение с нисък разход, като например IoT устройство.

Следователно можем да изчислим, че имаме 4 клетки x 1.25V на клетка x 2000mAhr * 3600sec = 36000 J енергия, налична от тази батерия, преди да трябва да бъде заменена.

За по -прости изчисления можем също да приемем, че ефективността на преобразуване е 100% за нашия системен регулатор и да пренебрегнем консумацията на енергия от хост контролера.

Няколко думи за колоезденето

Не, не от типа, на който карате! Има няколко технически концепции, известни като „Power Cycling“и „Sleep Cycling“. И двете могат да се използват за намаляване на консумацията на енергия, но има разлика между двете. Първият включва изключване на устройството, докато е необходимо, и след това включването му само за кратко, за да се извърши измерване и т.н. Въпреки че този метод е изкушаващ за използване поради нулевия си ток на изключване, има недостатък, при който ще отнеме известно време нетривиално време за зареждане и изгаряне на енергия, докато го правите.

Втората концепция включва просто поддържане на устройството в режим на заспиване с надеждата, че то ще се събуди по -бързо, но ще изгорите известно количество ток, докато спи. И така, кое е най -добре да се използва?

Зависи колко често трябва да се събуждате.

Стъпка 2: Пуснете числата

Искаме да намерим общата енергия (E), нормализирана до 1 секунда за всеки изброен по -долу сценарий.

Случай А: Tc = 1сек; правите измерване на разстояние всяка секунда Случай B: Tc = 60sec; правите измерване на разстояние всяка минута. Случай C: Tc = 3600sec; правите измерване на разстояние на всеки час.

За да направим това, можем да кажем, че Tc е времето на цикъла за нашите измервания, тона на активното време и изключване на неактивното време и пренареждане на нашите енергийни формули, както е показано тук:

Образ
Образ

За tinyLiDAR времето за стартиране е около 300ms или по -малко и през това време ще отнеме средно 12.25mA, докато работи от регулирано захранване 2.8v. Следователно той ще консумира приблизително 10,3 mJ енергия за всяко стартиране.

Токът на сън/покой за tinyLiDAR е свръхниско 3uA. Това е далеч по-ниско от 0,3% месечно ниво на саморазреждане на алкална батерия, така че тук ще изследваме, като използваме само метода „цикличен сън“.

Защо не се откажете от микро и отидете директно към сензора VL53?

Отговорът на това не е толкова очевиден. В първите дни на разработване на смартфони научихме, че поддържането на енергийно гладния високоскоростен процесор жив за възпроизвеждане на mp3 е сигурен метод за намаляване на живота на батерията. Още тогава направихме всички възможни усилия да използваме „процесори за приложения“с по -ниска мощност за периферни задължения като възпроизвеждане на музика. Днес не е много по -различно и всъщност може да се каже, че е още по -важно, тъй като ние миниатюризираме всички тези IoT устройства с всяко намаляване на капацитета на батерията. Така че използването на процесор за приложения с ултра ниска мощност за единствената задача да контролира сензора VL53 и предоставянето на данни, готови за по-нататъшна обработка, е определено предимство за всяко приложение, захранвано от батерии.

tinyLiDAR измервателни режими

Понастоящем може да не е ясно в ръководството за потребителя [но ще бъде в един момент, тъй като винаги актуализираме нашето ръководство за потребителя:)] - всъщност има 3 различни режима на измерване в tinyLiDAR.

MC режим

От създаването на tinyLiDAR бяхме обсебени от опитите да получим по -бързи измервания от VL53 ToF сензора. Затова оптимизирахме нашия фърмуер, за да получим най -бързите и последователни поточни данни от него. Това включва въвеждане на буфериране. Малкото буфериране е добро нещо, тъй като позволява на хост контролера (т.е. Arduino) да получи своите измервателни данни за миг и да премине към по -важни неща. Следователно буферирането е абсолютно необходимо и поради това можем да постигнем скорости на поточно предаване над 900Hz дори при сравнително бавното Arduino UNO. Следователно, най -бързото време за реакция ще бъде при използване на MC или "непрекъснат" режим на tinyLiDAR.

BTW, ако някога имате възможност, трябва да свържете сериен кабел към изходния щифт TTY на tinyLiDAR и ще видите какво прави този режим MC. Той буквално измерва възможно най -бързо и по този начин запълва своя I2C буфер с най -новите данни. За съжаление, тъй като работи с пълна скорост, той също изгаря максималното количество енергия. Вижте по -долу графиката за текущото спрямо времето на този MC режим.

Образ
Образ

SS режим

Следващият режим е това, което наричаме "SS" за режим "една стъпка". Това по същество е същият режим с висока производителност по -горе, но вместо това в единичен стъпков цикъл. Така че можете да получите бързи отговори от tinyLiDAR, но данните ще бъдат от предишната извадка, така че ще трябва да направите две измервания, за да получите най -новите данни. Вижте по -долу графиката за текущото спрямо времето на този SS режим.

Образ
Образ

И двата горни режима са подходящи за повечето потребители, тъй като са били бързи и лесни за използване - просто издайте команда "D" и прочетете резултатите. Въпреки това …

Преминавайки напред към света на IoT, където всеки мили-джаул е от значение, имаме нова парадигма.

И е точно обратното на това, което кодирахме в tinyLiDAR! За света на IoT се нуждаем от единични измервания на редки интервали, за да се спести енергия и да се удължи времето за изпълнение.

RT режим

За щастие вече можем да кажем, че имаме решение за този сценарий от фърмуера 1.4.0. Нарича се режим „RT“за измервания „в реално време“. По същество той реализира метод за задействане, изчакване и четене. За да го използвате, все още можете просто да издадете командата "D", за да започнете измерването, но за този режим RT трябва да изчакате подходящо време за завършване на измерването и след това да прочетете резултатите. tinyLiDAR автоматично преминава към най-ниското си състояние на покой под 3uA между пробите. Всъщност все още е лесен за използване и още по -енергийно ефективен, тъй като трябва да направите само едно измерване вместо две, за да получите най -новите данни, т.е. нулева буферизация.

Вижте по -долу графиката за текущото спрямо времето на този нов RT режим.

Образ
Образ

Стъпка 3: Действителни измервания

Използването на непрекъснат режим MC за редки измервания на IoT няма особен смисъл, тъй като се нуждаем само от единични измервания. Следователно вместо това можем да насочим вниманието си към режимите SS и RT. Работата на tinyLiDAR от регулирано захранване от +2.8v ни осигурява най -ниското разсейване на мощността. Така че, използвайки предварително зададени настройки за висока точност (200 ms), ние измерихме следната консумация на енергия на tinyLiDAR:

SS/едноетапен режим: 31,2 mJ осреднено за 2 измервания

RT/режим в реално време: 15,5 mJ осреднено за 1 измерване

Включвайки тези горни стойности в нашата енергийна формула и нормализирайки за една секунда, можем да намерим очакванията за време на работа, ако приемем, че енергията от нашата батерия е 36000 J.

Случай А: четене всяка секунда (вземете 2 показания, за да получите най -новите данни) Tc = 1secTon = 210ms на четене x 2 показания Toff = Tc - Ton = 580msIon (avg) = 26,5mA на четене Ioff (avg) = 3uA ток на покой Vcc = 2.8V захранващо напрежение Активната енергия, консумирана от товара в джаули, е Eon = Vcc x Ion x Ton = 2.8V x 26.5mA * 420ms = 31.164mJ Неактивната енергия, консумирана от товара в джаули, е Eoff = Vcc x Ioff x Toff = 2.8V x 3uA x 580ms = 4.872uJ Нормализиране към TcE = (Eon + Eoff)/Tc = (31.164mJ + 4.872uJ)/1 = 31.169mJ или 31.2mJ в секунда Времето за изпълнение в секунди е общата енергия на консумирания източник/енергия, която е 36000J / 31.2mJ = 1155000 секунди = 320 часа = 13.3 дни

Повтаряйки тези изчисления, можем да намерим времената на изпълнение за другите сценарии:

SS режим

Случай А: 2 показания в секунда. Нормализираната енергия е 31.2mJ. Следователно времето за изпълнение е 13,3 дни.

Случай Б: 2 показания в минута. Нормализираната енергия е 528uJ. Следователно времетраенето е 2,1 години.

Случай В: 2 показания на час. Нормализираната енергия е 17uJ. Времето за изпълнение се изчислява на >> 10 години, следователно натоварването поради tinyLiDAR е незначително. Следователно батерията ще бъде ограничена само от срока на годност (т.е. около 5 години)

RT режим

Случай А: 1 отчитане в секунда. Нормализираната енергия е 15,5 mJ. Следователно времето за изпълнение е 26,8 дни.

Случай Б: 1 Четене на минута. Нормализираната енергия е 267uJ. Следователно продължителността е 4,3 години.

Случай В: 1 Четене на час. Нормализираната енергия е 12.7uJ. Времето за изпълнение се изчислява на >> 10 години, следователно натоварването поради tinyLiDAR е незначително. Следователно батерията ще бъде ограничена само от срока на годност (т.е. около 5 години)

Следователно, новият режим в реално време, използващ цикъл на заспиване, е от полза за удължаване на времето за изпълнение през последните 4 години, ако се прави едно измерване всяка минута, както е показано в случай Б.

Имайте предвид, че консумацията на енергия от хост контролера не е взета предвид при този анализ и спецификациите на батерията са от консервативна страна. По желание можете да намерите много по -мощни батерии, които да отговарят на вашите нужди.

Благодарим ви за четенето и следете, тъй като ние ще предоставим работещ пример за IoT, използвайки tinyLiDAR за следващата ни инструкция. Наздраве!

Препоръчано: