AI Magic Wand dengan TensorFlow Lite untuk Mikrokontroler dan Arduino

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.

9208eb1207211349.gif

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.

1914a419dfacf0b5.jpeg

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)

864114d0c2b4c919.pngS

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)

bcd452d4d660efa9.jpeg

Arduino adalah platform open source populer yang digunakan untuk membuat project elektronik. Ini terdiri dari:

  1. Papan sirkuit fisik yang dapat diprogram (sering kali berupa mikrokontroler) seperti Arduino Nano 33 BLE yang digunakan dalam codelab ini.
  2. 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

2. Menyiapkan Mikrokontroler Arduino

Mengekstrak Arduino Anda

Keluarkan dari kotak dan keluarkan dari busa kemasan. Konduktif, jika tidak, dapat menyebabkan masalah.

6ed84a651c871a58.jpeg

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.

c6936696f9659104.jpeg

Membiasakan diri Anda dengan alur kerja

99852afbed7e78b0.pngS

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: 75717f13527f36b9.pngS

Halaman landing awal akan terbuka sebagai berikut:

933c91e6e1997c61.pngS

2. Menyiapkan Board Manager

  1. Dari menu Arduino, pilih Tools -> Board: "Arduino .." —> Boards Manager
  2. Telusuri "Arduino Nano 33 BLE", lalu instal Arduino nRF528x Boards (Mbed OS). Ini akan memastikan bahwa Mikrokontroler Arduino Nano 33 BLE kami didukung oleh Arduino IDE. 817c63346152eda9.pngS
  1. Dari menu Arduino, pilih Tools -> Board: "Arduino .." -> "Arduino Nano 33 BLE"

9357691e1a1348eb.pngS

  1. Terakhir, verifikasi bahwa papan yang Anda pilih adalah "Arduino Nano 33 BLE" di kanan bawah IDE.

aa08706bb84fa9b2.png

3. Menyiapkan Port

Dari menu Arduino, pilih Tools -> Port: "/.../" -> /dev/... (Arduino Nano 33 BLE). Anda akan melihat sesuatu yang mirip dengan ini:

8c25990d0c6fb6f8.pngS

4. Memeriksa Koneksi Board

Dari menu Arduino, pilih Tools -> Get Board Info. Anda akan melihat sesuatu yang mirip dengan ini:

ccd8f5305be6cf59.png

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.

  1. Dari menu Arduino, pilih Sketch -> Include Library -> Add .ZIP Library...
  2. 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.

  1. Dari menu Arduino, pilih Sketch -> Include -> Manage Libraries...
  2. Telusuri dan Instal "Arduino_LSM9DS1". ac2f78a737c5f233.png

5. Memuat dan Membangun contoh

1. Muat contoh

Dari menu Arduino, pilih File -> Examples -> Arduino_TensorFlowLite -> magic_wand untuk memuat kode contoh.

de349f2d3cb49b98.png

Langkah ini akan memuat kode sumber tongkat ajaib.

cda8c35a597b0798.png

2. Membuat contoh

Klik tombol Upload di jendela sketsa.

71cb1474d5e14669.pngS

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.

3df1d0858c6e40a4.pngS

6. Demo

Saat ini tongkat sihir dapat mendeteksi 3 gestur seperti ditunjukkan di bawah ini: 99a607da66af9fc8.pngS

  1. Wing: Mulai dari sudut kiri atas dan lacak huruf "W" dengan cermat selama dua detik.
  2. Deringkan: Mulai dengan posisi tegak, gerakkan tongkat dalam lingkaran searah jarum jam selama satu detik.
  3. 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).

9208eb1207211349.gif

Untuk menjalankan demo, ikuti petunjuk di bawah ini:

  1. Setelah USB dicolokkan, pilih Tools -> Serial Monitor dari menu Arduino. Langkah ini awalnya akan membuka layar kosong tanpa output.

38e8d53652eb28f2.pngS

  1. Gerakkan mikrokontroler Arduino untuk melacak setiap bentuk di atas dengan cermat dan lihat apakah monitor serial mendeteksi gestur.

60b8a0017bcae419.pngS

  1. 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

647c3ef0dc103804.pngS

Terima kasih, dan selamat membangun!