Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense

Komponen dan Perlengkapan

Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense
Arduino Nano 33 BLE Sense
×1
Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense
Pengontrol Klep Proporsional 8 Saluran 8W 12V PCA9685 National Control Devices dengan Antarmuka I2C
×1
Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense
Micro-servo Motor SG90
×3
Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense
Klip Baterai 9V
×1

Alat dan Mesin yang Diperlukan

Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense
Printer 3D (generik)
Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense
Pakuin (generik)

Aplikasi dan Layanan Online

Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense
Edge Impulse Studio
Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense
Arduino IDE
Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense
Autodesk Fusion 360

Tentang Proyek Ini

Ringkasan

Proyek ini menunjukkan cara membangun detektor bahasa TinyML pada Arduino Nano 33 BLE Sense menggunakan Edge Impulse Studio. Alat ini secara terus-menerus mendengarkan tiga kata yang diucapkan – “si” (Italia), “oui” (Perancis), dan “yes” (Inggris) – dan mengaktifkan bendera yang sesuai ketika kata terdeteksi.

Alur kerja meliputi:

Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense

Sampling dan Pembuatan Dataset

Dataset berisi 30 menit rekaman: 10 menit per kata target ditambah 3 menit latar belakang ambient. Setiap klip 1 detik menangkap satu ucapan, dan semua file diberi label sesuai di Edge Impulse.

Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense

Sampel latar belakang membantu model membedakan ucapan dari non-ucapan.

Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense

Desain Model

Edge Impulse mengotomatisasi sebagian besar langkah praprosesan. Audio dikonversi menjadi time-series, diwindow, dan ditransformasi menggunakan fitur MFCC. CNN ringan kemudian mengklasifikasikan setiap window ke dalam satu dari empat kelas: “si,” “oui,” “yes,” atau latar belakang.

Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense

Sampel MFCC dan arsitektur jaringan divisualisasikan di dasbor pelatihan.

Pelatihan dan Optimasi Arduino

EON Tuner secara otomatis menjelajahi puluhan konfigurasi model, memberikan skor berdasarkan akurasi, waktu inferensi, RAM, dan penggunaan flash. Untuk proyek ini, model tercepat di antara 5 akurasi terbaik dipilih.

Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense

Pengujian

Setelah pelatihan, serangkaian tes baru mengonfirmasi kinerja yang kuat. Kepercayaan klasifikasi secara konsisten melebihi 80% untuk kata target.

Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense

Penerapan

Penerapan dilakukan melalui library Arduino Edge Impulse. File header yang dihasilkan dimasukkan ke Arduino IDE, kemudian disesuaikan untuk mengontrol tiga servo SG90 yang menampilkan bendera.

Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense
Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense

Ringkasan Kode

Kode sumber (tersedia di GitHub) memperluas template Edge Impulse dengan logika kontrol servo. Penambahan utama meliputi:

  1. Integrasi Adafruit_PWMServoDriver.h untuk kontrol PWM PCA9685.
  2. Fungsi servos_selector yang mengaktifkan bendera yang benar berdasarkan kepercayaan model.
  3. Logika bersyarat yang memicu servos_selector ketika klasifikasi melebihi 80% kepercayaan.
void servos_selector(int iter){ unsigned long time_now = millis(); if (time_now - time_was > 2000){ time_was = time_now; switch (iter){ case 0: // Italia pwm.setPWM(0, 0, 350); delay(500); pwm.setPWM(0, 0, 200); pwm.setPWM(1, 0, 200); pwm.setPWM(2, 0, 200); break; case 1: // Perancis pwm.setPWM(1, 0, 350); Serial.println("2222"); delay(500); pwm.setPWM(0, 0, 200); pwm.setPWM(1, 0, 200); pwm.setPWM(2, 0, 200); break; case 2: // Inggris pwm.setPWM(2, 0, 350); Serial.println("333"); delay(500); pwm.setPWM(0, 0, 200); pwm.setPWM(1, 0, 200); pwm.setPWM(2, 0, 200); break; } } } 

Desain Rangkaian

Mikrokontroler diberdayakan oleh baterai 9V dan menggunakan papan PCA9685 untuk mengemudikan tiga servo SG90. Pin 12V papan terhubung ke baterai, sementara output PWM mengemudikan servo melalui antarmuka I2C PCA9685.

Detektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense

Dengan hardware, perangkat lunak, dan alur data yang siap, detektor bahasa TinyML siap untuk diterapkan.

Kode

kode
https://github.com/EnzoCalogero/Tensorflow_Lite_embeded/tree/main/nano_sense_EdgeImpulse/language_detection/nano_ble33_sense_microphone_continuous

Bagian dan Enclosure Khusus

Skematik

languagedetection_9RxXhRX5sj.fzzDetektor Bahasa TinyML dengan Edge Impulse pada Arduino Nano 33 BLE Sense

Proses manufaktur

  1. Buat Game Gyroskop Real-Time dengan Arduino Nano & Sensor MPU-6050
  2. Proyek Dadu Digital Arduino: Buat Generator Angka Acak berbasis LCD
  3. Bangun Iron Man Arduino: Komponen, Sensor, dan Panduan Langkah demi Langkah
  4. Find Me: Pelacak Item Cerdas dengan Arduino dan Bluetooth
  5. Pengontrol Kelembapan Arduino DIY dengan Relay – Pengaturan Tegangan Tinggi yang Aman
  6. Pengukuran Jarak Real-Time dengan Sonar Arduino & Visualisasi Processing
  7. MobBob: Buat Robot Arduino Sendiri, Dikontrol dengan Mulus melalui Smartphone Android
  8. Membuat Lampu Meja Reaktif Audio dengan Arduino Nano
  9. Pong Matriks NeoPixel pada Arduino Nano: Buat Game Pong Neon
  10. Volant Joystick Arduino Kustom untuk Gaming