ชื่อโปรเจกต์: โชว์ตำแหน่ง Servo บนจอ LCD แบบหล่อๆ
ปกติเวลาเราสั่งให้ [Servo](https://s.shopee.co.th/7fUgFAWSki) มันขยับเนี่ย มองด้วยตาเปล่ามันกะยากนะว่าตอนนี้มันอยู่ที่กี่องศาแล้ว พี่เลยจัดให้! เราจะเอาตำแหน่งของมันมาโชว์บนจอ [LCD](https://s.shopee.co.th/6AfsSPcAnb) ซะเลย จะได้เล่นสนุกขึ้น แถมดูมีความเป็นมืออาชีพขึ้นมาอีกเป็นกอง
ตอนนั่งเล่น Servo อยู่ บางทีสายตามันแยกแยะองศาไม่ออกหรอกว่าอันไหน 45 หรือ 50 องศา พี่เลยจับจอ LCD มาเสียบพ่วงซะ จะได้เห็นค่ากันจะๆ ไม่ต้องเดาให้เสียเวลา
ตัว Servo จะถูกเขียน Code ให้ขยับไปทีละ Step และทุกจังหวะที่มันขยับ ค่าองศาก็จะไปโผล่หราอยู่บนหน้าจอ LCD ตลอดเวลา เจ๋งป่ะล่ะ?
รายละเอียดทางเทคนิคแบบจัดเต็ม (ฉบับพี่สอนน้อง)
Real-Time Hardware Telemetry
โปรเจกต์นี้คือการสร้างระบบ Visual Feedback แบบ Closed-loop เพื่อเฝ้าดูตำแหน่งองศาที่เป๊ะๆ ของตัว Servo Motor
- Variable Mapping Interface: Arduino จะคอยอ่านค่า Analog จาก Potentiometer (ค่า 0-1023) แล้วเอามา Map ให้กลายเป็นองศาของ Servo (0-180 องศา) ในขณะเดียวกัน เจ้าค่าตัวเลขชุดนี้ก็จะถูกส่งไป Print บนจอ 16x2 I2C LCD ให้เห็นกันชัดๆ ไปเลยน้อง
- Display Refresh Logic: เพื่อไม่ให้จอ LCD ของเรามันสั่นหรือกระพริบ (Flickering) เวลาขยับ พี่เลยวาง Logic ให้ Firmware อัปเดตหน้าจอทุกๆ 100ms ก็พอ ผลที่ได้คือจอนิ่ง อ่านง่ายสบายตา แต่ Servo ยังตอบสนองไวทันใจเหมือนเดิม ไม่ต้องกลัวหน่วง
Accuracy
- Calibration Routine: พี่ใส่ตัวปรับ Software Offset ไว้ด้วย เพื่อชดเชยค่าความคลาดเคลื่อนทางกายภาพของพวก Servo ราคาประหยัด เพื่อให้มั่นใจว่าองศาบนจอ กับตำแหน่งแกนหมุนจริงๆ มันตรงกันเป๊ะ ไม่มั่วนิ่มแน่นอน หายห่วงได้เลยวัยรุ่น!