Spisu treści:

TinyLiDAR dla IoT: 3 kroki
TinyLiDAR dla IoT: 3 kroki

Wideo: TinyLiDAR dla IoT: 3 kroki

Wideo: TinyLiDAR dla IoT: 3 kroki
Wideo: PIKIMONI FOR CLUMSY 2 2024, Listopad
Anonim
TinyLiDAR dla IoT
TinyLiDAR dla IoT

Jeśli się rozejrzysz, zauważysz, że w codziennym życiu używa się wielu inteligentnych małych urządzeń. Zazwyczaj są zasilane bateryjnie i zazwyczaj są w jakiś sposób połączone z Internetem (czyli z „chmurą”). To wszystko, co nazywamy urządzeniami „IoT”, które szybko stają się powszechne w dzisiejszym świecie.

Inżynierowie systemów IoT poświęcają wiele wysiłku projektowego na optymalizację zużycia energii. Powodem tego jest oczywiście ograniczona pojemność akumulatorów. Wymiana baterii w dużych ilościach na odległych obszarach może być bardzo kosztowną propozycją.

Tak więc ta instrukcja dotyczy optymalizacji mocy w tinyLiDAR.

TL;DR podsumowanie

Mamy nowy tryb pomiaru „w czasie rzeczywistym” (od oprogramowania 1.4.0), aby zmaksymalizować czas pracy baterii w urządzeniach IoT.

Wyciskanie większej ilości soku z baterii

Intuicyjnie możemy wydłużyć czas pracy, po prostu zmniejszając zużycie energii przez urządzenia IoT. Ok, więc to oczywiste! Ale jak zrobić to skutecznie i właściwie obliczyć oczekiwany czas pracy? Dowiedzmy Się…

Krok 1: Czysta energia

Jest na to wiele sposobów, ale wolimy rozbić to na podstawy i zamienić wszystko na energię. Energia elektryczna jest mierzona w dżulach (symbol J) i zgodnie z definicją:

Dżul to energia rozpraszana w postaci ciepła, gdy prąd o natężeniu jednego ampera przechodzi przez opór jednego oma przez okres jednej sekundy.

Ponieważ energia (E) to także napięcie (V) x ładunek (Q), mamy:

E = V x Q

Q to Prąd (I) x czas (T):

Q = I x T

Tak więc energię w dżulach można wyrazić jako:

E = V x I x T

gdzie V to napięcie, I to prąd w amperach, a T to czas w sekundach.

Załóżmy, że mamy pakiet składający się z czterech baterii alkalicznych AA (LR6) połączonych szeregowo. To da nam łączne napięcie początkowe 4 * 1,5 V = 6 V. Koniec żywotności baterii alkalicznej AA wynosi około 1,0V, więc średnie napięcie wyniesie około 1,25V. Zgodnie z arkuszem danych producenta „Dostarczana wydajność zależy od zastosowanego obciążenia, temperatury roboczej i napięcia odcięcia”. Możemy więc założyć około 2000 mAh lub więcej dla aplikacji o niskim poborze mocy, takich jak urządzenie IoT.

Dlatego możemy obliczyć, że mamy 4 ogniwa x 1.25V na ogniwo x 2000mAhr * 3600s = 36000 J energii dostępnej z tego akumulatora zanim będzie musiał zostać wymieniony.

Dla prostszych obliczeń możemy również założyć, że wydajność konwersji dla naszego regulatora systemowego wynosi 100% i zignorować pobór mocy kontrolera głównego.

Słowo o rowerze

Nie, nie taki, na którym jeździsz! Istnieje kilka koncepcji technicznych znanych jako „Power Cycling” i „Sleep Cycling”. Oba mogą być używane do obniżenia zużycia energii, ale jest między nimi różnica. Pierwsza polega na wyłączeniu urządzenia do czasu, gdy będzie potrzebne, a następnie włączeniu go tylko na krótki czas w celu wykonania pomiaru itp. Chociaż ta metoda jest kusząca do użycia ze względu na jej zerowy prąd, ma wadę polegającą na tym, że zajmie trochę nietrywialna ilość czasu na ponowne uruchomienie i spalanie energii podczas robienia tego.

Druga koncepcja polega na utrzymywaniu urządzenia w trybie uśpienia z nadzieją, że obudzi się szybciej, ale podczas snu spalisz pewną skończoną ilość prądu. Więc który jest najlepszy w użyciu?

To zależy od tego, jak często musisz się budzić.

Krok 2: Uruchom liczby

Chcemy znaleźć całkowitą energię (E) znormalizowaną do 1 sekundy dla każdego scenariusza wymienionego poniżej.

Przypadek A: Tc = 1s; pomiar odległości co sekundę Przypadek B: Tc = 60s; mierz odległość co minutę. Przypadek C: Tc = 3600s; pomiar odległości co godzinę.

Aby to zrobić, możemy powiedzieć, że Tc to czas cyklu dla naszych pomiarów, ton czas aktywności i tooff czas nieaktywny oraz zmienić nasze formuły energetyczne, jak pokazano tutaj:

Obraz
Obraz

W przypadku tinyLiDAR czas rozruchu wynosi około 300 ms lub mniej iw tym czasie zajmie średnio 12,25 mA przy zasilaniu regulowanym napięciem 2,8 V. W związku z tym będzie zużywać około 10,3mJ energii na każdy rozruch.

Prąd uśpienia/spoczynku dla tinyLiDAR jest bardzo niski 3uA. Jest to znacznie mniej niż 0,3% miesięcznego współczynnika samorozładowania zestawu baterii alkalicznych, dlatego zbadamy tutaj wyłącznie metodę „cyklu uśpienia”.

Dlaczego nie zrezygnować z mikro i przejść bezpośrednio do czujnika VL53?

Odpowiedź na to nie jest tak oczywista. We wczesnych dniach rozwoju smartfonów dowiedzieliśmy się, że utrzymywanie przy życiu energochłonnego, szybkiego procesora do odtwarzania plików mp3 było niezawodną metodą na skrócenie czasu pracy na baterii. Już wtedy dokładaliśmy wszelkich starań, aby używać „procesorów aplikacyjnych” o mniejszej mocy do zadań peryferyjnych, takich jak odtwarzanie muzyki. Dziś niewiele się różni i można powiedzieć, że jest to jeszcze ważniejsze, ponieważ miniaturyzujemy wszystkie te urządzenia IoT z każdą zmniejszającą się pojemnością baterii. Tak więc użycie procesora aplikacyjnego o bardzo niskim poborze mocy do wyłącznego zadania kontrolowania czujnika VL53 i dostarczania danych gotowych do dalszego przetwarzania jest niewątpliwym atutem każdej aplikacji zasilanej bateryjnie.

Tryby pomiaru tinyLiDAR

W tej chwili może to nie być jasne w instrukcji obsługi [ale będzie w pewnym momencie, ponieważ zawsze aktualizujemy naszą instrukcję obsługi:)] - w tinyLiDAR istnieją 3 różne tryby pomiaru.

Tryb MC

Od początku istnienia tinyLiDAR mieliśmy obsesję na punkcie uzyskiwania szybszych pomiarów z czujnika VL53 ToF. Dlatego zoptymalizowaliśmy nasze oprogramowanie, aby uzyskać z niego najszybsze i najbardziej spójne dane strumieniowe. Wiązało się to z wprowadzeniem buforowania. Niewielkie buforowanie jest dobrą rzeczą, ponieważ pozwala kontrolerowi hosta (tj. Arduino) uzyskać dane pomiarowe w mgnieniu oka i przejść do ważniejszych rzeczy. Dlatego buforowanie jest absolutnie konieczne i dzięki temu jesteśmy w stanie osiągnąć szybkości przesyłania strumieniowego przekraczające 900 Hz nawet na stosunkowo wolnym Arduino UNO. W związku z tym najszybszy czas reakcji będzie przy użyciu trybu MC lub „ciągłego” tinyLiDAR.

BTW, jeśli kiedykolwiek będziesz miał okazję, powinieneś podłączyć kabel szeregowy do pinu wyjściowego TTY na tinyLiDAR i zobaczysz, co robi ten tryb MC. Dosłownie wykonuje pomiar tak szybko, jak to możliwe, a robiąc to, wypełnia bufor I2C najnowszymi danymi. Niestety, ponieważ działa na pełnych obrotach, zużywa również maksymalną ilość mocy. Zobacz poniżej wykres prądu w funkcji czasu dla tego trybu MC.

Obraz
Obraz

Tryb SS

Następnym trybem jest to, co nazywamy „SS” dla trybu „pojedynczego kroku”. Jest to w zasadzie ten sam tryb wysokiej wydajności, ale zamiast tego w pojedynczej pętli krokowej. Możesz więc uzyskać szybkie odpowiedzi z tinyLiDAR, ale dane będą pochodzić z poprzedniej próbki, więc będziesz musiał wykonać dwa pomiary, aby uzyskać najnowsze dane. Zobacz poniżej wykres prądu w funkcji czasu dla tego trybu SS.

Obraz
Obraz

Oba powyższe tryby pasują do większości użytkowników, ponieważ są szybkie i łatwe w użyciu - wystarczy wydać polecenie "D" i odczytać wyniki. Jednakże …

Przechodząc do świata IoT, w którym liczy się każdy milidżul, mamy nowy paradygmat.

I jest to dokładne przeciwieństwo tego, co zakodowaliśmy w tinyLiDAR! W świecie IoT potrzebujemy pojedynczych pomiarów w rzadkich odstępach czasu, aby oszczędzać energię i wydłużać czas pracy.

Tryb RT

Na szczęście możemy teraz powiedzieć, że mamy rozwiązanie dla tego scenariusza od wersji oprogramowania 1.4.0. Nazywa się to trybem „RT” dla pomiarów „w czasie rzeczywistym”. I zasadniczo implementuje metodę wyzwalacza, czekania i odczytu. Aby z niego skorzystać, nadal można po prostu wydać polecenie „D”, aby rozpocząć pomiar, ale dla tego trybu RT należy odczekać odpowiednią ilość czasu na zakończenie pomiaru, a następnie odczytać wyniki. tinyLiDAR automatycznie przechodzi do najniższego stanu spoczynkowego poniżej 3uA pomiędzy próbkami. W rzeczywistości nadal jest prosty w użyciu i jeszcze bardziej energooszczędny, ponieważ wystarczy wykonać tylko jeden pomiar zamiast dwóch, aby uzyskać najnowsze dane, tj. Zerowe buforowanie.

Zobacz poniżej wykres aktualny w funkcji czasu dla tego nowego trybu RT.

Obraz
Obraz

Krok 3: Rzeczywiste pomiary

Używanie trybu ciągłego MC do rzadkich pomiarów IoT nie ma sensu, ponieważ potrzebujemy tylko pojedynczych pomiarów. Dlatego możemy zamiast tego skupić naszą uwagę na trybach SS i RT. Praca tinyLiDAR z regulowanego zasilania +2.8v zapewnia nam najniższe rozpraszanie mocy. Korzystając z ustawień wstępnych wysokiej dokładności (200 ms), zmierzyliśmy następujące zużycie energii na tinyLiDAR:

SS/tryb jednoetapowy: 31,2 mJ uśrednione z 2 pomiarów

Tryb RT/w czasie rzeczywistym: 15,5mJ uśrednione z 1 pomiaru

Wstawiając powyższe wartości do naszego wzoru na energię i normalizując do jednej sekundy, możemy znaleźć oczekiwany czas pracy przy założeniu, że energia z naszego akumulatora wynosi 36000 J.

Przypadek A: odczyt co sekundę (wykonaj 2 odczyty, aby uzyskać najnowsze dane) Tc = 1secTon = 210ms na odczyt x 2 odczyty Toff = Tc - Ton = 580msIon(avg) = 26,5mA na odczyt Ioff(avg) = 3uA prąd spoczynkowy Vcc = Napięcie zasilania 2,8V Energia czynna pobierana przez obciążenie w dżulach to Eon = Vcc x Ion x Ton = 2,8V x 26,5mA * 420ms = 31,164mJ Energia nieaktywna zużywana przez obciążenie w dżulach to Eoff = Vcc x Ioff x Toff = 2,8V x 3uA x 580ms = 4,872uJ Normalizacja do TcE = (Eon + Eoff)/Tc = (31,164mJ + 4,872uJ)/1 = 31,169mJ lub 31,2mJ na sekundę Czas pracy w sekundach jest zatem całkowitą energią zużytego źródła/energii, która wynosi 36000J / 31,2mJ = 1155000 sekund = 320 godzin = 13,3 dni

Powtarzając te obliczenia, możemy znaleźć środowiska wykonawcze dla innych scenariuszy:

Tryb SS

Przypadek A: 2 odczyty na sekundę. Energia znormalizowana to 31,2mJ. Dlatego czas działania wynosi 13,3 dnia.

Przypadek B: 2 odczyty na minutę. Energia znormalizowana to 528uJ. Dlatego czas pracy wynosi 2,1 roku.

Przypadek C: 2 odczyty na godzinę. Energia znormalizowana to 17uJ. Czas pracy jest obliczany na >>10 lat, dlatego ładowanie z powodu tinyLiDAR jest znikome. Pakiet baterii będzie zatem ograniczony jedynie okresem trwałości (tj. ok. 5 lat)

Tryb RT

Przypadek A: 1 odczyt na sekundę. Energia znormalizowana to 15,5mJ. Dlatego czas działania wynosi 26,8 dni.

Przypadek B: 1 odczyt na minutę. Energia znormalizowana to 267uJ. Dlatego czas pracy wynosi 4,3 roku.

Przypadek C: 1 odczyt na godzinę. Energia znormalizowana to 12,7uJ. Czas pracy jest obliczany na >>10 lat, dlatego ładowanie z powodu tinyLiDAR jest znikome. Pakiet baterii będzie zatem ograniczony jedynie okresem trwałości (tj. ok. 5 lat)

W związku z tym nowy tryb czasu rzeczywistego wykorzystujący cykliczne uśpienia jest tutaj zaletą, aby wydłużyć czas pracy o ponad 4 lata, jeśli jeden pomiar jest wykonywany co minutę, jak pokazano w przypadku B.

Należy zauważyć, że w tej analizie nie uwzględniono zużycia energii przez kontroler hosta, a specyfikacje zestawu akumulatorów były konserwatywne. W zależności od potrzeb możesz znaleźć znacznie mocniejsze akumulatory.

Dziękujemy za przeczytanie i bądźcie na bieżąco, ponieważ dostarczymy działający przykład IoT przy użyciu tinyLiDAR dla naszej następnej instrukcji. Pozdrawiam!

Zalecana: