[NODEMCU] - ทดสอบควบคุมหุ่นยนต์ผ่าน UDP แบบง่าย ๆ โดยใช้ C# และ NODEMCU

Standard

หลังจากมี #Arduino IDE ที่ใช้เขียนโค้ดสำหรับ #ESP8266 ได้ ก็ไม่รู้จะเขียนอะไรเล่นดี เมื่อคืนเลยลองเขียนโค้ดง่าย ๆ ทดลองส่ง UDP ไปควบคุม GPIO บน #NodeMCU ครับ (ส่งข้อมูลขนาด 1 byte)
Posted by AppStack on 27 เมษายน 2015


   ช่วงนี้กระแส IoT กำลังบูมมาก ๆ  ทำให้หลายคนที่ทำงานด้าน Embedded หันมาเล่นด้านนี้กันมากขึ้น   ในช่วงที่ผ่านมามี Chip ที่ชื่อว่า ESP8266 ผลิตโดย Espressif  ซึ่งรองรับการใช้งาน Wifi ในโหมด AP และ Station    สามารถส่งข้อมูลได้ทั้งแบบ UDP และ TCP  ที่สำคัญราคาถูกมาก ๆ (ตัวละร้อยกว่าบาท) ทำให้ Chip ตัวนี้มีตัวอย่างการประยุกต์ใช้งานให้ศึกษาหลายที่เลย

     ในโพสนี้เราจะลองเขียนโค้ดควบคุมหุ่นยนต์แบบง่าย ๆ ผ่าน UDP  ซึ่ง Command ที่เราจะส่งนั้นมีแค่

  • เดินหน้า
  • ถอยหลัง
  • เลี้ยวซ้าย
  • เลี้ยวขวา
ทำให้การส่งข้อมูลเราจะใช้แค่ 1 Byte สำหรับการส่ง Command  ส่วนการเขียนโค้ดเราจะใช้ Arduino IDE for ESP8266  เพราะมี toolchain ของ ESP8266 มาให้เลย  ซึ่งเราจะเขียนแบบ C++ หรือ C ก็ได้เหมือนกันครับ   ข้อดีอีกอย่างคือเราสามารถ port library ของ Arduino มาใช้งานได้ไม่ยาก

 
ในส่วนวงจรขับมอเตอร์  เราจะใช้โมดูล L298   และการเขียนโปรแกรมก็ทำการรับ UDP มา 1 Byte แล้วส่งให้ Class AppStackRobot จัดการต่อ   ภายใน Class ก็จะมีหน้าที่เช็คว่าค่าที่รับเข้ามาคืออะไร  ตรงกับ Protocol ที่ตั้งไว้หรือไม่  ถ้าตรงก็ไปสั่ง GPIO ให้ Module L298 ทำงานแค่นี้เองครับ

ในส่วนโปรแกรมที่พัฒนาด้วย C# ก็จะมีปุ่มสำหรับส่ง Command เมื่อมีการกดปุ่มโปรแกรมก็สร้าง UDP packet ส่ง command ไปควบคุมหุ่นยนต์

Source code ตัวอย่างดูจากคอมเม้นใน Clip ได้เลยครับ