1. Pengantar
Yang akan Anda bangun
Dalam codelab ini, kita akan mempelajari cara menggunakan TensorFlow Lite For Microcontrollers untuk menjalankan model deep learning di Arduino Nano 33 BLE. Mikrokontroler diubah menjadi "tongkat sihir" digital oleh pengguna untuk melambaikan tangan dan mengucapkan berbagai mantra. Saat pengguna menggerakkan tongkat, data sensor multidimensi dan kompleks yang tidak dapat dilihat manusia ini diteruskan sebagai input ke model, yang menghasilkan klasifikasi sederhana yang memberi tahu kita jika salah satu dari beberapa gerakan telah terjadi.
Machine Learning di Microcontroller
Machine learning dapat digunakan untuk membuat alat cerdas yang membuat hidup menjadi lebih mudah, seperti Asisten Google. Namun, sering kali pengalaman ini memerlukan banyak komputasi atau resource yang dapat mencakup server cloud yang andal atau desktop. Namun, sekarang inferensi machine learning dapat dilakukan pada hardware kecil berdaya rendah, seperti mikrokontroler.
{i>Microcontroller<i} sangat umum, murah, membutuhkan energi sangat sedikit, dan sangat dapat diandalkan. Mereka adalah bagian dari segala macam perangkat rumah tangga: misalnya peralatan, mobil, dan mainan. Faktanya, ada sekitar 30 miliar perangkat bertenaga mikrokontroler yang diproduksi setiap tahun.
Dengan menghadirkan machine learning ke mikrokontroler kecil, kita dapat meningkatkan kecerdasan miliaran perangkat yang kita gunakan dalam hidup, tanpa bergantung pada hardware yang mahal atau koneksi internet yang andal. Bayangkan peralatan cerdas yang dapat beradaptasi dengan rutinitas sehari-hari, sensor industri cerdas yang memahami perbedaan antara masalah dan pengoperasian normal, serta mainan ajaib yang dapat membantu anak belajar dengan cara yang menyenangkan dan menyenangkan.
TensorFlow Lite Untuk Microcontroller (Software)
TensorFlow adalah framework machine learning open source Google untuk melatih dan menjalankan model. TensorFlow Lite adalah framework software, versi TensorFlow yang dioptimalkan, yang ditargetkan untuk menjalankan model tensorflow pada perangkat kecil yang memiliki daya relatif rendah seperti ponsel.
TensorFlow Lite For Microcontrollers adalah framework software, versi TensorFlow yang dioptimalkan, yang ditargetkan untuk menjalankan model tensorflow pada hardware kecil berdaya rendah seperti pengontrol mikro. Class ini mematuhi batasan yang diperlukan dalam lingkungan tersemat ini, yaitu memiliki ukuran biner yang kecil, tidak memerlukan dukungan sistem operasi, library C atau C++ standar, atau alokasi memori dinamis, dll.
Arduino Nano 33 BLE (Hardware)
Arduino adalah platform open source populer yang digunakan untuk membuat project elektronik. Ini terdiri dari:
- Papan sirkuit fisik yang dapat diprogram (sering kali berupa mikrokontroler) seperti Arduino Nano 33 BLE yang digunakan dalam codelab ini.
- Arduino IDE (Integrated Development Environment), perangkat lunak yang digunakan untuk menulis dan mengunggah kode komputer ke papan fisik.
Arduino Nano 33 BLE adalah platform berbasis mikrokontroler: komputer kecil di atas papan sirkuit tunggal. Komputer ini memiliki prosesor, memori, dan hardware I/O yang memungkinkannya mengirim dan menerima sinyal digital ke perangkat lain. Tidak seperti komputer, mikrokontroler tidak bertenaga dan biasanya tidak menjalankan sistem operasi. Sebagai gantinya, mereka memiliki prosesor kecil, tidak banyak memori dan program yang Anda tulis berjalan langsung di perangkat keras. Namun, karena dirancang sesederhana mungkin, mikrokontroler dapat menggunakan energi yang sangat sedikit.
Yang akan Anda lakukan
- Siapkan mikrokontroler Arduino Nano 33 BLE dan ubah menjadi "tongkat sihir" digital
- Siapkan Arduino IDE dan instal library yang diperlukan
- Men-deploy program ke perangkat
- Ucapkan berbagai mantra dengan melambaikan tongkat sihir dan lihat prediksinya
Yang Anda butuhkan
- Laptop Linux, MacOS, atau Windows
- Arduino Nano BLE Sense 33 (tanpa header)
- Kabel USB mikro (Jika Anda menggunakan laptop USB-C, gunakan kabel USB-C ke USB Mikro)
- (opsional) Tongkat, sekitar 12 inci (panjang 30 cm)
- (opsional) Selotip
2. Menyiapkan Mikrokontroler Arduino
Mengekstrak Arduino Anda
Keluarkan dari kotak dan keluarkan dari busa kemasan. Konduktif, jika tidak, dapat menyebabkan masalah.
Colokkan ke laptop Anda
- Colokkan kabel MicroUSB ke soket di chip.
- Colokkan ujung kabel lainnya ke soket USB di laptop Anda.
- LED kiri bawah pada Arduino (kiri atas pada gambar di bawah) akan menyala.
Membiasakan diri Anda dengan alur kerja
Seperti yang ditunjukkan pada diagram di atas, penafsir TFLite pada Arduino secara berkala menjalankan inferensi pada model. Model ini menggunakan data akselerometer yang diproses sebagai input dan menghasilkan prediksi yang menyarankan gestur yang kemungkinan besar terjadi. Selanjutnya, output yang diinginkan akan dicetak dan LED yang tepat akan menyala.
3. Menyiapkan Arduino IDE
1. Mendownload Arduino IDE
Untuk men-deploy program ke Mikrokontroler Arduino, kami menggunakan IDE Arduino.
Setelah mendownloadnya, instal dan buka Arduino IDE dengan mengklik aplikasi yang ikonnya terlihat seperti ini:
Halaman landing awal akan terbuka sebagai berikut:
2. Menyiapkan Board Manager
- Dari menu Arduino, pilih
Tools -> Board: "Arduino .." —> Boards Manager
- Telusuri
"Arduino Nano 33 BLE"
, lalu instalArduino nRF528x Boards (Mbed OS)
. Ini akan memastikan bahwa Mikrokontroler Arduino Nano 33 BLE kami didukung oleh Arduino IDE.
- Dari menu Arduino, pilih
Tools -> Board: "Arduino .." -> "Arduino Nano 33 BLE"
- Terakhir, verifikasi bahwa papan yang Anda pilih adalah "Arduino Nano 33 BLE" di kanan bawah IDE.
3. Menyiapkan Port
Dari menu Arduino, pilih Tools -> Port: "/.../" -> /dev/... (Arduino Nano 33 BLE)
. Anda akan melihat sesuatu yang mirip dengan ini:
4. Memeriksa Koneksi Board
Dari menu Arduino, pilih Tools -> Get Board Info
. Anda akan melihat sesuatu yang mirip dengan ini:
4. Menginstal Library
1. Library Arduino TensorFlow
Library ini berisi semua contoh TensorFlow Lite untuk Mikrokontroler, yang mencakup kode sumber tongkat ajaib yang diperlukan untuk codelab ini.
- Dari menu Arduino, pilih
Sketch -> Include Library -> Add .ZIP Library...
- Tambahkan Library TensorFlow Arduino
.zip
yang Anda download.
2. Library Arduino LSM9DS1
Perpustakaan ini memungkinkan Anda untuk membaca nilai akselerometer, magnetometer, dan giroskop dari IMU LSM9DS1 pada Arduino Nano 33 BLE Sense Anda.
- Dari menu Arduino, pilih
Sketch -> Include -> Manage Libraries...
- Telusuri dan Instal
"Arduino_LSM9DS1"
.
5. Memuat dan Membangun contoh
1. Muat contoh
Dari menu Arduino, pilih File -> Examples -> Arduino_TensorFlowLite -> magic_wand
untuk memuat kode contoh.
Langkah ini akan memuat kode sumber tongkat ajaib.
2. Membuat contoh
Klik tombol Upload
di jendela sketsa.
Setelah beberapa menit, Anda akan melihat teks merah yang menunjukkan flashing telah selesai. Selama proses upload, LED bagian kanan akan berkedip-kedip, lalu menjadi gelap di ujungnya.
6. Demo
Saat ini tongkat sihir dapat mendeteksi 3 gestur seperti ditunjukkan di bawah ini:
- Wing: Mulai dari sudut kiri atas dan lacak huruf "W" dengan cermat selama dua detik.
- Deringkan: Mulai dengan posisi tegak, gerakkan tongkat dalam lingkaran searah jarum jam selama satu detik.
- Kemiringan: Mulai dengan memegang tongkat menghadap ke atas, dengan LED menghadap Anda. Gerakkan tongkat ke bawah dengan miring ke kiri, lalu secara horizontal ke kanan selama satu detik.
Gambar berikut menunjukkan dua gestur. Pertama, Slope lalu Wing (gunakan ini sebagai referensi untuk demo Anda).
Untuk menjalankan demo, ikuti petunjuk di bawah ini:
- Setelah USB dicolokkan, pilih
Tools -> Serial Monitor
dari menu Arduino. Langkah ini awalnya akan membuka layar kosong tanpa output.
- Gerakkan mikrokontroler Arduino untuk melacak setiap bentuk di atas dengan cermat dan lihat apakah monitor serial mendeteksi gestur.
- Dari output di monitor serial, kita lihat tongkat sihir itu memang mendeteksi semua bentuk! Anda juga akan melihat bahwa LED bagian kanan menyala.
7. Langkah Berikutnya
Selamat, Anda telah berhasil membuat "tongkat ajaib" yang mengenali gestur pertama Anda di mikrokontroler Arduino!
Kami harap Anda menikmati pengantar singkat tentang pengembangan TensorFlow Lite untuk Microcontrollers ini. Gagasan deep learning tentang mikrokontroler adalah hal baru dan menarik, dan kami mendorong Anda untuk keluar dan bereksperimen.
Dokumen referensi
- Latih model Anda sendiri, setelah Anda memiliki pengalaman bekerja dengan program dasar.
- Pelajari TensorFlow Lite untuk Microcontrollers lebih lanjut ( Situs, GitHub).
- Coba contoh lain dan coba jalankan di Arduino, jika didukung.
- Coba codelab lainnya: AI pada mikrokontroler dengan TensorFlow Lite dan SparkFun Edge
- Lihat buku O'Reilly TinyML: Machine Learning with TensorFlow on Arduino and Ultra-Low Power Micro-Controllers, yang memperkenalkan machine learning pada perangkat kecil dan menjelaskan beberapa project seru. Codelab ini didasarkan pada Bab 11 dalam buku ini.
Terima kasih, dan selamat membangun!