Isi kandungan:

TinyLiDAR untuk IoT: 3 Langkah
TinyLiDAR untuk IoT: 3 Langkah

Video: TinyLiDAR untuk IoT: 3 Langkah

Video: TinyLiDAR untuk IoT: 3 Langkah
Video: tinyLiDAR First Steps 2024, Julai
Anonim
TinyLiDAR untuk IoT
TinyLiDAR untuk IoT

Sekiranya anda melihat-lihat, anda akan melihat banyak peranti kecil pintar digunakan dalam kehidupan seharian. Mereka biasanya berkuasa bateri dan biasanya disambungkan ke Internet (aka 'awan') entah bagaimana. Ini semua yang kita panggil peranti 'IoT' dan cepat menjadi tempat biasa di dunia hari ini.

Bagi Jurutera Sistem IoT, banyak usaha reka bentuk dihabiskan untuk mengoptimumkan penggunaan tenaga. Sebabnya ini tentunya disebabkan oleh kapasiti bateri yang terhad. Menukar bateri dalam kuantiti yang banyak di kawasan terpencil boleh menjadi cadangan yang sangat mahal.

Oleh itu, arahan ini adalah mengenai mengoptimumkan kuasa dalam tinyLiDAR.

Ringkasan TL; DR

Kami mempunyai mod pengukuran "Real Time" baru (seperti firmware 1.4.0) untuk membantu memaksimumkan masa operasi bateri dalam peranti IoT.

Meminum Lebih Banyak Jus dari Bateri

Secara intuitif, kita dapat meningkatkan waktu proses dengan hanya mengurangkan penggunaan kuasa peranti IoT. Baiklah, itu jelas! Tetapi bagaimana anda dapat melakukan ini dengan berkesan dan tepat mengira jangka masa yang diharapkan? Mari cari…

Langkah 1: Tenaga Tulen

Terdapat banyak cara untuk melakukan ini tetapi kami lebih suka membahagikannya kepada asas dan menukar semuanya menjadi tenaga. Tenaga elektrik diukur dalam Joules (simbol J) dan mengikut definisi:

Joule adalah tenaga yang hilang sebagai haba apabila arus elektrik satu amp melewati rintangan satu ohm untuk jangka masa satu saat.

Oleh kerana tenaga (E) juga voltan (V) x cas (Q), kita mempunyai:

E = V x Q

Q adalah Semasa (I) x masa (T):

Q = I x T

Jadi tenaga dalam Joules dapat dinyatakan sebagai:

E = V x I x T

di mana V adalah voltan, saya adalah arus di Amps dan T adalah masa dalam beberapa saat.

Anggaplah kita mempunyai pek bateri yang terdiri daripada empat bateri AA alkali (LR6) yang dihubungkan secara bersiri. Ini akan memberi kita voltan permulaan keseluruhan 4 * 1.5v = 6v. Tamat jangka hayat untuk bateri AA alkali adalah kira-kira 1.0v sehingga voltan purata adalah sekitar 1.25v. Menurut datasheet mfr "Kapasiti yang dihantar bergantung pada beban yang dikenakan, suhu operasi dan voltan pemotongan." Oleh itu, kita boleh menganggap kira-kira 2000mAhr atau lebih baik untuk aplikasi longkang rendah seperti peranti IoT.

Oleh itu, kita dapat mengira bahawa kita mempunyai 4 sel x 1.25V setiap sel x 2000mAhr * 3600sec = 36000 J tenaga yang tersedia dari pek bateri ini sebelum ia mesti diganti.

Demi pengiraan yang lebih mudah, kami juga dapat menganggap kecekapan penukaran adalah 100% untuk pengatur sistem kami dan mengabaikan penggunaan kuasa pengawal host.

Perkataan Berbasikal

Tidak, bukan jenis yang anda naiki! Terdapat beberapa konsep teknikal yang dikenali sebagai "Power Cycling" dan "Sleep Cycling". Kedua-duanya dapat digunakan untuk menurunkan penggunaan tenaga tetapi ada perbezaan antara keduanya. Yang pertama melibatkan mematikan peranti anda sehingga diperlukan dan kemudian menghidupkannya hanya untuk waktu yang singkat untuk melakukan pengukuran dll. Walaupun kaedah ini menggoda untuk digunakan kerana arus sifarnya, ada kekurangan di mana ia akan memerlukan beberapa jumlah masa yang tidak remeh untuk membakar semula dan membakar tenaga semasa melakukannya.

Konsep kedua melibatkan hanya membiarkan peranti dalam modus tidur dengan harapan ia akan bangun lebih cepat tetapi anda akan membakar sejumlah arus semasa tidur. Jadi mana yang terbaik untuk digunakan?

Itu bergantung pada seberapa kerap anda perlu bangun.

Langkah 2: Jalankan Nombor

Kami mahu jumlah tenaga (E) dinormalisasi menjadi 1 saat untuk setiap pemandangan yang disenaraikan di bawah.

Kes A: Tc = 1sec; mengambil ukuran jarak setiap saat Kes B: Tc = 60sec; lakukan pengukuran jarak setiap minit. Kes C: Tc = 3600sec; lakukan pengukuran jarak setiap jam.

Untuk melakukan ini, kita boleh mengatakan Tc adalah masa kitaran untuk pengukuran kita, ton masa aktif dan mengeringkan masa yang tidak aktif dan menyusun semula formula tenaga kita seperti yang ditunjukkan di sini:

Imej
Imej

Untuk tinyLiDAR, masa permulaan kira-kira 300ms atau kurang dan selama ini memerlukan purata 12.25mA semasa beroperasi dari bekalan 2.8v yang diatur. Oleh itu, ia akan menggunakan sekitar 10.3mJ tenaga untuk setiap permulaan.

Arus tidur / tenang untuk tinyLiDAR adalah 3uA yang sangat rendah. Ini jauh lebih rendah daripada kadar pelepasan diri bulanan 0.3% dari pek bateri alkali jadi kami akan menyiasat hanya menggunakan kaedah "kitaran tidur" di sini.

Mengapa tidak membuang mikro dan terus ke sensor VL53?

Jawapan untuk ini tidak begitu jelas. Pada masa awal pengembangan telefon pintar, kami mengetahui bahawa memastikan pemproses berkelajuan tinggi yang hidup dengan kelajuan kuasa untuk memainkan mp3 adalah kaedah yang pasti untuk mengurangkan jangka hayat bateri. Walaupun pada masa itu kami berusaha sedaya upaya untuk menggunakan "pemproses aplikasi" yang lebih rendah untuk tugas-tugas pinggiran seperti bermain muzik. Ia tidak jauh berbeza hari ini dan sebenarnya, anda boleh mengatakannya lebih penting lagi kerana kami mengecilkan semua peranti IoT ini dengan setiap kapasiti bateri yang semakin berkurangan. Oleh itu, menggunakan pemproses aplikasi kuasa ultra rendah untuk satu-satunya tugas mengawal sensor VL53 dan menyediakan data yang siap untuk pemprosesan selanjutnya adalah aset yang pasti untuk mana-mana aplikasi berkuasa bateri.

Mod Pengukuran tinyLiDAR

Mungkin tidak jelas dalam manual pengguna pada masa ini [tetapi akan ada ketika kita sentiasa mengemas kini manual pengguna kita:)] - sebenarnya terdapat 3 mod pengukuran yang berbeza dalam tinyLiDAR.

Mod MC

Dari awal tinyLiDAR, kami terobsesi dengan percubaan untuk mendapatkan pengukuran yang lebih pantas dari sensor ToF VL53. Oleh itu, kami mengoptimumkan firmware kami untuk mendapatkan data streaming terpantas dan paling konsisten darinya. Ini melibatkan memperkenalkan buffering. Penyangga sedikit adalah perkara yang baik kerana ia membolehkan pengawal hos (iaitu Arduino) mendapatkan data pengukurannya dalam sekejap dan beralih ke perkara yang lebih penting. Oleh itu, penyanggaan sangat diperlukan dan kerana ini kita dapat mencapai kadar streaming melebihi 900Hz walaupun pada Arduino UNO yang agak perlahan. Oleh itu, masa tindak balas terpantas adalah menggunakan mod MC kecilLiDAR atau mod "berterusan".

BTW, sekiranya anda berpeluang, anda harus menyambungkan kabel bersiri ke pin output TTY pada tinyLiDAR dan anda akan melihat apa yang dilakukan oleh mod MC ini. Ini benar-benar mengambil ukuran secepat mungkin dan dengan melakukannya, ia mengisi penyangga I2C dengan data mutlak terkini. Malangnya, kerana ia berjalan dengan kelajuan penuh, ia juga membakar kuasa maksimum. Lihat di bawah untuk graf masa vs masa mod MC ini.

Imej
Imej

Mod SS

Mod seterusnya adalah apa yang kita panggil "SS" untuk mod "satu langkah". Ini pada dasarnya adalah mod prestasi tinggi yang sama di atas tetapi dalam satu gelung melangkah. Oleh itu, anda boleh mendapatkan respons pantas dari tinyLiDAR tetapi data akan diambil dari sampel sebelumnya sehingga anda perlu mengambil dua ukuran untuk mendapatkan data terbaru. Lihat di bawah untuk grafik masa vs masa mod SS ini.

Imej
Imej

Kedua-dua mod di atas sesuai dengan kebanyakan pengguna kerana mereka cepat dan mudah digunakan - hanya mengeluarkan perintah "D" dan baca hasilnya. Walau bagaimanapun …

Melangkah ke dunia IoT di mana setiap milli-Joule dihitung, kita mempunyai paradigma baru.

Dan ini bertentangan dengan apa yang telah kita kodkan dalam tinyLiDAR! Untuk dunia IoT, kita memerlukan pengukuran tunggal pada selang waktu yang jarang berlaku untuk menjimatkan kuasa dan memperpanjang waktu operasi.

Mod RT

Dengan senang hati, kita sekarang dapat mengatakan bahawa kita mempunyai penyelesaian untuk senario ini seperti firmware 1.4.0. Ia dipanggil mod "RT" untuk pengukuran "masa nyata". Dan pada dasarnya menerapkan kaedah pencetus, tunggu dan baca. Untuk menggunakannya, anda masih boleh mengeluarkan perintah "D" untuk memulakan pengukuran, tetapi untuk mod RT ini, anda mesti menunggu masa yang sesuai untuk pengukuran selesai dan kemudian membaca hasilnya. tinyLiDAR secara automatik menuju ke keadaan senyap bawah sub 3uA di antara sampel. Ini sebenarnya masih mudah digunakan dan lebih hemat tenaga sekarang kerana anda hanya perlu mengambil satu pengukuran dan bukannya dua untuk mendapatkan data terbaru, iaitu zero buffering.

Lihat di bawah untuk grafik masa vs masa mod RT baru ini.

Imej
Imej

Langkah 3: Pengukuran Sebenar

Menggunakan mod berterusan MC untuk pengukuran IoT yang jarang berlaku tidak masuk akal kerana kita hanya memerlukan pengukuran tunggal. Oleh itu, kita boleh memusatkan perhatian kita kepada mod SS dan RT. Mengendalikan smallLiDAR dari bekalan terkawal + 2.8v memberi kita daya pengeluaran paling rendah. Oleh itu, dengan menggunakan preset Ketepatan Tinggi (200ms), kami mengukur penggunaan tenaga berikut pada tinyLiDAR:

Mod SS / satu langkah: 31.2 mJ rata-rata melebihi 2 ukuran

Mod RT / masa nyata: rata-rata 15.5mJ melebihi 1 pengukuran

Memasukkan nilai di atas ke dalam formula tenaga kita dan menormalkannya menjadi satu saat, kita dapat menjangka jangkaan jangka masa dengan andaian bahawa tenaga dari pek bateri kita adalah 36000 J.

Kes A: membaca setiap saat (mengambil 2 bacaan untuk mendapatkan data terkini) Tc = 1secTon = 210ms per bacaan x 2 bacaan Toff = Tc - Ton = 580msIon (avg) = 26.5mA per bacaan Ioff (avg) = 3uA Vcc current sunyi = Voltan bekalan 2.8V Tenaga aktif yang dimakan oleh beban dalam Joules ialah Eon = Vcc x Ion x Ton = 2.8V x 26.5mA * 420ms = 31.164mJ Tenaga tidak aktif yang digunakan oleh beban dalam Joules ialah Eoff = Vcc x Ioff x Toff = 2.8V x 3uA x 580ms = 4.872uJ Menormalkan kepada TcE = (Eon + Eoff) / Tc = (31.164mJ + 4.872uJ) / 1 = 31.169mJ atau 31.2mJ sesaat Jangka masa dalam beberapa saat adalah jumlah tenaga sumber / tenaga yang digunakan iaitu 36000J / 31.2mJ = 1155000 saat = 320 jam = 13.3 hari

Mengulangi pengiraan ini, kita dapat mencari jangka masa untuk senario lain:

Mod SS

Kes A: 2 Bacaan sesaat. Tenaga normal ialah 31.2mJ. Oleh itu masa berjalan adalah 13.3 hari.

Kes B: 2 Bacaan seminit. Tenaga normal ialah 528uJ. Oleh itu jangka masa berjalan adalah 2.1 tahun.

Kes C: 2 Bacaan sejam. Tenaga normal ialah 17uJ. Runtime dikira pada >> 10 tahun, oleh itu memuat kerana tinyLiDAR diabaikan. Oleh itu, pek bateri akan dibatasi hanya dengan jangka hayatnya (iaitu lebih kurang 5 tahun)

Mod RT

Kes A: 1 Bacaan sesaat. Tenaga normal ialah 15.5mJ. Oleh itu jangka masa berjalan adalah 26.8 hari.

Kes B: 1 Bacaan seminit. Tenaga normal ialah 267uJ. Oleh itu masa berjalan adalah 4.3 tahun.

Kes C: 1 Bacaan sejam. Tenaga normal ialah 12.7uJ. Runtime dikira pada >> 10 tahun, oleh itu memuat kerana tinyLiDAR diabaikan. Oleh itu, pek bateri akan dibatasi hanya dengan jangka hayatnya (iaitu lebih kurang 5 tahun)

Oleh itu, mod Real Time yang baru menggunakan kitaran tidur adalah faedah di sini untuk memperpanjang jangka masa berjalan selama 4 tahun jika satu pengukuran diambil setiap minit seperti yang ditunjukkan dalam Kes B.

Perhatikan bahawa penggunaan tenaga pengawal host tidak diambil kira untuk analisis ini dan spesifikasi pek bateri berada di sisi konservatif. Anda boleh mendapatkan bateri yang lebih berkuasa seperti yang dikehendaki untuk memenuhi keperluan anda.

Terima kasih kerana membaca dan nantikan kerana kami akan memberikan contoh IoT yang berfungsi menggunakan tinyLiDAR untuk arahan selanjutnya. Ceria!

Disyorkan: