ในตัวอย่างง่ายๆ นี้ พวกเราจะกดปุ่มใน Unity ซ้ำๆ แล้ว Arduino ก็จะสั่งให้ LED บนบอร์ดติด-ดับ พร้อมทั้งเปลี่ยนข้อความและสีของปุ่มไปด้วย

หน้าต่าง Unity จะเป็นแบบนี้เลย ถ้าน้อง Import แพ็คเกจ MiniLab เข้าไป ในโฟลเดอร์ Assets จะมี Controls (หรือชิ้นส่วน UI) เป็น Prefab อยู่ 8 ตัว งานนี้เราแค่ลาก Push button Control จากนั้นมาใส่ใน Scene งานนี้โค้ด Arduino ที่ต้องใช้ก็จะแสดงขึ้นมาให้เห็นเลย
โค้ดทั้งหมดเนี่ย มันถูกสร้างอัตโนมัติจากเมนูใน Inspector ตอนที่น้องเลือก Bench ใน Hierarchy window เองแหละ ใน Inspector ของ MiniLab พี่ให้ตั้งค่า Baud Rate กับหมายเลขพอร์ต (COM) ให้เรียบร้อย
ทีนี้ก็จัดไป! กดปุ่ม Play ใน Unity แล้วลองคลิกที่ปุ่ม Push ซ้ำๆ ดู น้องจะเห็นข้อความบนปุ่มสลับระหว่าง "Hello" กับ "World" สีปุ่มก็เปลี่ยนไปด้วย แถมได้ยินเสียงระบบด้วยนะ หล่อเท่เลยงานนี้
ลงลึกเรื่องเทคนิค
Mixed-Reality Graphical Control Interface
โปรเจกต์นี้ใช้ Unity ในการสร้างอินเทอร์เฟซผู้ใช้ 3D ที่ดูดีและล้ำมาก เพื่อควบคุมฮาร์ดแวร์ที่ต่อกับ Arduino
- C# Serial Bridge: มันสร้างชั้นการสื่อสารแบบ Serial ที่เสถียรใน Unity โดย PC จะส่งคำสั่งแบบ Byte ไปหา Arduino แบบเรียลไทม์ ตามที่ผู้ใช้โต้ตอบกับ Slider, ปุ่ม หรือวัตถุ 3D ใน Scene
- MiniLab Visualization Dashboard: ทำงานร่วมกับชุด MiniLab เพื่อแสดงกราฟข้อมูลจากเซนเซอร์ (เช่น อุณหภูมิหรือแสง) แบบเรียลไทม์ ซ้อนทับลงบน UI 3D ใน Unity เลย
ประสิทธิภาพ
- Windows 10 Latency Optimization: ออปติไมซ์สำหรับพอร์ต Serial ความเร็วสูงบน Windows 10 ได้เวลาตอบสนองต่ำกว่า 30ms ทำให้ควบคุมหุ่นยนต์หรือ LED Array จาก PC ได้ลื่นไหลแบบเรียลไทม์สุดๆ