ชื่อโปรเจกต์: Smartwatch Controller for Arduino Car
เคยคิดมั้ยว่าเราจะสั่งงาน [Arduino](https://s.shopee.co.th/7fUgFAWSki) ผ่าน Smartwatch ได้? บอกเลยว่าทำได้ว่ะน้อง! แค่มี Smartwatch ที่รองรับ Bluetooth เอามาเชื่อมกับ Module Bluetooth HC-05 ก็เฟี้ยวแล้ว
ซอฟต์แวร์บน Smartwatch
อันนี้บอกเลยว่าเป็นส่วนที่ท้าทายที่สุดสำหรับพี่ เพราะนาฬิกาพี่มันรันบน Wear OS พี่เลยต้องเขียน App ขึ้นมาเพื่อส่งข้อมูลไปที่ Arduino
เชื่อป่ะว่าพี่ไม่มีประสบการณ์ด้าน Java หรือ Android SDK เลยนะเว้ย สำหรับโปรเจกต์นี้พี่ต้องไปงมเรียน Java กับ Android SDK ใหม่หมด ใช้เวลาอยู่ประมาณเดือนนึงถึงจะทำ App นี้เสร็จ ตอนนี้พี่อัปโหลด App ขึ้น Playstore ไว้ให้แล้วล่ะ
น้องๆ ไปโหลดมาลองเล่นกันได้นะ แต่ต้องจำไว้ว่า Smartwatch ในตลาดมันมีหลายแบบจัดๆ อาจจะไม่ได้ใช้ได้ทุกรุ่นนะน้อง App พี่มันทำมาเพื่อ Wear OS โดยเฉพาะ
การวางแผน
พี่ลิสต์อุปกรณ์ที่จำเป็นต้องใช้ไว้ให้หมดแล้ว น้องจะทำโครงรถแบบ DIY เองก็ได้นะ แต่ในโปรเจกต์นี้พี่เอารถของเล่นมาดัดแปลงเอา เพราะมันราคาถูกแถมได้ Battery แบบชาร์จได้มาในตัวด้วย งานนี้เราใช้ L293D เป็น Motor Driver ตัวนี้แหละเหมาะสุดสำหรับงานเรา พี่ใช้ Pin สำหรับ PWM ในการควบคุมความเร็วรถด้วยนะเว้ย ต่อตาม Schematic ได้เลย ใน App บน Smartwatch ยิ่งน้องลากจอยไปข้างหน้ามากเท่าไหร่ รถก็จะยิ่งซิ่งขึ้นเท่านั้น จัดไปวัยรุ่น!
นี่คือวิดีโอขั้นตอนการทำแบบเต็มๆ
แค่ต่อวงจรตาม Schematic แล้วอัปโหลด Code ลง Arduino เลย อย่าลืมจับคู่ (Pair) HC-05 กับ Smartwatch ของน้องก่อนล่ะ พอเปิด App มา น้องจะเห็นชื่อ HC-05 ขึ้นมาให้เลือก พอเลือกเสร็จก็จะได้หน้า Joystick มาคุมรถแล้ว ทีนี้ลองลากดู ยิ่งลากเยอะรถยิ่งวิ่งเร็ว เพราะเราคุมความเร็วผ่าน L293D ด้วยนั่นเอง ห้ามทำช็อตนะตัวนี้!
รายละเอียดทางเทคนิคเพิ่มเติม (เจาะลึกแบบรุ่นพี่)
การรับส่งข้อมูลระหว่าง Wearable และ Hardware
โปรเจกต์ระดับ Advance นี้จะทำให้น้องสามารถ "บังคับ" ทิศทางรถผ่าน Sensor ตรวจจับการเอียงของ Smartwatch รุ่นใหม่ๆ ได้
- IMU Orientation Bridge: ตัว Smartwatch จะดึงข้อมูลจาก Accelerometer ภายใน แล้วส่งค่ามุมเอียงแกน X และ Y ผ่าน Bluetooth ไปยัง Arduino ที่อยู่บนรถ
- Gesture Control Logic: ตัว Arduino จะเอาค่า "การเอียงข้อมือ" ของนาฬิกามาแปลงเป็นทิศทางสั่งงาน Motor เช่น ถ้าเอียงข้อมือไปข้างหน้า รถก็จะวิ่งไปข้างหน้า หรือถ้าบิดข้อมือซ้าย รถก็จะเลี้ยวซ้ายแบบหล่อเท่เลยงานนี้
การเชื่อมต่อ (Connectivity)
- Real-Time Latency Optimization: พี่เลือกใช้ Serial Link ความเร็วสูง (115200 Baud) และจัดการพวก Packet Header ให้เหลือน้อยที่สุด เพื่อให้รถตอบสนองตามการขยับข้อมือได้ไวปรี๊ดแบบ Real-time โดยมีค่าความหน่วง (Lag) น้อยกว่า 20ms สู้งานนะน้อง!