ชื่อโปรเจกต์: NSME Assistant กับ Blue Universe
Arduino x Kway project
โปรเจกต์นี้เป็นส่วนหนึ่งของ Arduino x Kway challenge นะน้องๆ บอร์ด Nicla Sense ME ที่พี่ใช้เนี่ยมันมี Sensor มาให้เพียบ ไม่ว่าจะเป็น pressure, temperature, humidity หรือแม้แต่ก๊าซต่างๆ แต่ที่พี่ว่ามันว้าวสุดๆ คือ Self-learning AI smart sensor ตัวนี้แหละ พี่เลยกะว่าจะทำ App มาเป็นผู้ช่วยคอยโชว์ข้อมูลพวกนี้ และช่วยตรวจจับก๊าซพิษให้ใช้งานได้จริงแบบหล่อเท่เลยงานนี้
Blue Universe
Blue Universe คืออะไร? มันก็คือชื่อ App ที่พี่เขียนขึ้นมาเพื่อเชื่อมต่อเจ้า Board เข้ากับมือถือนั่นแหละ โดยพี่ใช้ MIT App Inventor ในการปั้นมันขึ้นมา
เริ่มแรก พี่ทำหน้า Splash screen ก่อนเลย:

หน้านี้พี่แค่ใส่ปุ่มให้พอกดแล้วมันเด้งไปหน้าถัดไป โค้ดปุ่มก็ตามนี้เลยวัยรุ่น:

คราวนี้มาดูหน้าหลัก (Main screen) กันบ้าง:

หน้านี้พี่ลง BLE extension สำหรับ MIT App Inventor ไว้ด้วยนะ ไม่งั้นมันคุยกับ Bluetooth ไม่รู้เรื่อง และพี่ก็ใส่ Notifier เข้าไปด้วย:

ใครอยากจัดหน้าตา App ใหม่ก็ตามสบายนะน้อง แต่ของพี่จัดไว้ประมาณนี้:


และนี่คือหน้าตาตอนกดปุ่ม IAQ chart:

The Code (ส่วนของโค้ด)
พี่มีไฟล์ให้โหลดทั้งนามสกุล .apk และ .aia เลยนะเอาไปลองเล่นกันได้ แต่เดี๋ยวพี่จะอธิบายการทำงานให้ฟังคร่าวๆ
เริ่มแรก App จะสั่งค้นหาการเชื่อมต่อ Bluetooth ก่อน:


จากนั้นก็กำหนดค่า Global characteristics ให้ตรงกับโค้ดใน Arduino IDE ของเรา:


พอ Bluetooth เชื่อมต่อกันแล้ว App ก็จะคอยรับค่าอัปเดตจาก Board ตลอดเวลา:

แล้วก็เอาค่าจากแต่ละ Characteristic มาโชว์ใน Text boxes:

ส่วนตรงนี้คือการตั้งค่าว่าปุ่มแต่ละปุ่มจะให้มันทำอะไรบ้าง:

Edge Impulse
งานเข้าเลยน้องเอ๊ย! บอร์ดพี่ดันมาช็อตลาโลก (burned out) เอาตอนช่วงท้ายที่กำลังเทสพอดี พี่เลยยังเทสการเชื่อมต่อระหว่าง App กับ Edge Impulse ได้ไม่ครบทุกฟีเจอร์ ตอนนั้นเทสไปได้แค่ก๊าซ 2 ชนิดเอง (Butane กับ Chlorine) ทั้งที่จริงๆ กะจะเทสให้ได้มากกว่านี้แท้ๆ เพราะงั้นในส่วนของ Code ตอนนี้เลยมีแค่ฟังก์ชันดูสภาพอากาศอย่าง pressure, temperature, altitude, CO2, Air quality, steps (นับก้าว) และ humidity ไปก่อนนะ แต่ถึงอย่างนั้นพี่ก็ยังแปะโปรเจกต์ Edge Impulse ของพี่ไว้ให้ และมีไฟล์ .zip ของ Library ไว้ให้เอาไปใช้งานต่อกันได้นะ
รายละเอียดทางเทคนิคเพิ่มเติม (Expanded Technical Details)
Neuro-Specialized Machine Learning Assistant
โปรเจกต์นี้ใช้ Edge Impulse และระบบของ Blue Universe เพื่อสร้างผู้ช่วยอัจฉริยะสำหรับผู้ที่มีความต้องการพิเศษทางระบบประสาท
- Edge Impulse Motion Classification: ตัว Arduino จะเก็บข้อมูลจาก IMU แบบ 6 แกน โดยมี Firmware ที่รัน on-device neural network ทำให้มันจำท่าทางมือหรือรูปแบบการสั่นสะเทือนได้แม่นยำมาก
- Blue Universe App Handshake: เชื่อมต่อไปยัง Dashboard ใน MIT App Inventor เมื่อ AI ตรวจพบท่าทางที่ตั้งไว้ (เช่น สัญญาณ SOS) มันจะสั่งให้มือถือโทรออกหรือส่งพิกัดแจ้งเตือนได้ทันที
Optimization (การปรับแต่งให้แรง)
- Quantized AI Inference: พี่ใช้โมเดล ML แบบ Quantized เพื่อให้ Neural Network ทั้งหมดรันบน SRAM อันน้อยนิดของ Arduino ได้สบายๆ แถมยังตอบสนองไวโคตร (Reaction time ต่ำกว่า 100ms) ไม่ต้องกลัวหน่วงเลยน้อง!