วัตถุประสงค์การเรียนรู้
✓ อธิบาย ลอจิกการทำงานของคำสั่งควบคุมมอเตอร์และอุปกรณ์เอาต์พุตแบบต่างๆ ได้
✓ เขียนโปรแกรม ควบคุมการเคลื่อนที่ของกลไกหุ่นยนต์อย่างเป็นลำดับขั้นตอน (Algorithm)
✓ จำแนก ประเภทของข้อผิดพลาดในการเขียนโปรแกรม (Syntax, Logic, Runtime Error)
✓ ประยุกต์ใช้ เครื่องมือ Serial Monitor ในการวิเคราะห์และแก้ไขจุดบกพร่อง (Debugging) ของโปรแกรมได้
การควบคุมหุ่นยนต์ไม่ใช่แค่การสั่งให้ "ไป" แต่คือการสั่งให้ "ไปเมื่อไหร่" และ "ไปอย่างไร"
ชุดคำสั่งเงื่อนไข (If-Else): "ถ้า" เจอสิ่งกีดขวาง ให้หยุด "ถ้าไม่" ให้เดินต่อ
การควบคุมความเร็ว (PWM): การใช้คำสั่ง analogWrite เพื่อควบคุมแรงดันไฟฟ้าที่จ่ายให้มอเตอร์ ทำให้หุ่นยนต์เคลื่อนที่นิ่มนวลขึ้น
การใช้ Library: แนะนำการใช้ <Servo.h> เพื่อลดความซับซ้อนในการเขียนโค้ดควบคุมแขนกล
ก่อนจะแก้ปัญหา ต้องรู้ก่อนว่าปัญหาคืออะไร:
Syntax Error: เขียนไวยากรณ์ผิด (เช่น ลืมปิดวงเล็บ, พิมพ์ตัวเล็กตัวใหญ่ผิด) -> คอมพิวเตอร์จะฟ้องทันที
Logic Error: เขียนถูกแต่คิดผิด (เช่น สั่งให้เลี้ยวขวาแต่หุ่นยนต์เลี้ยวซ้าย) -> หุ่นยนต์ทำงานได้ แต่ทำงานเพี้ยน
Runtime Error/Hardware Error: ปัญหาขณะทำงานจริง (เช่น ไฟไม่พอ, สายไฟหลวม, เซนเซอร์พัง)
The Serial Monitor Trick: การใส่คำสั่ง Serial.println("Step 1: Motor Start"); เพื่อเช็คว่าโปรแกรมทำงานถึงบรรทัดที่ต้องการหรือไม่
Isolation Test: การแยกทดสอบทีละส่วน (เช่น ทดสอบแค่มอเตอร์อย่างเดียว เมื่อผ่านแล้วค่อยทดสอบเซนเซอร์)
The Rubber Duck Debugging: ลองอธิบายโค้ดให้เพื่อน (หรือเป็ดน้อย) ฟังทีละบรรทัด มักจะทำให้เราค้นพบจุดที่เขียนผิดได้เอง