จุดประสงค์การเรียนรู้
1. สามารถเขียนCodeภาษาCในArduino IDE วัดค่าความเข้มแสงจากพื้นและเส้นสี จากสัญญาณAnalogได้
2. สามารถเขียนCodeภาษาCในArduino IDEควบคุมการทำงานของหุ่นยนต์อัตโนมัติในการแทร็กเส้นแบบสนามตารางภารกิจได้
วัสดุอุปกรณ์
1. บอร์ดLotus Devkit V.1.0 จำนวน 1 ตัว
2. สายMicro USB จำนวน 1 เส้น
3.Servo Motor จำนวน 1 ตัว
4.DC Motor จำนวน 2 ตัว
5.Battery Lipo 7.4Vdc จำนวน 1 ก้อน
6. เซนเซอร์แทร็กเส้นAnalog Lotus T3 จำนวน 4 ตัว
วิธีทดลอง
เป้าหมายในการทำงานของLabนี้ เพื่อเขียนโปรแกรมให้หุ่นยนต์อ่านค่าแสงจากพื้นสนามได้ และเขียนโค้ดให้หุ่นยนต์สามารถแทร็กเส้นแบบสนามตารางภารกิจได้
1. ทำการเซนเซอร์ Lotus T3 ดังรูปข้างล่าง
2. ทำการCopy Codeด้านล่างก่อนUpload code Arduino IDE ลงไปใบนบอร์ด ESP32 Devkit v1 ควรเลือกที่Tool -> Board -> ESP32 Arduino ->ESP32 Dev Module (ดังภาพประกอบด้านล่าง)
3.หลังจากนั้นให้เข้ามาที่ Tool ->Port แล้วเลือกพอร์ตCom portที่เชื่อมกับUSB ดังรูปข้างล่าง แล้วกดที่ปุ่มUpload Code
4. นำหุ่นยนต์มาวัดค่าแสง ที่สนาม โดยเลือกที่ Menu 0 จากการหมุด Knob และกดปุ่มStart (GPIO27) แล้วนำหุ่นยนต์ไปวัดแสงสีพื้น(ขาว) และสีเส้น (ดำ)
5. หลังจากคำนวณหาค่าเฉลี่ย ระหว่างสีพื้น และสีเส้น ของเซนเซอร์แต่ละตัวเสร็จเรียบร้อย ให้ทำการนำตัวเลขที่อยู่ในช่องสีเหลืองที่เป็นจำนวนเต็มไปกรอกค่าแสง ในบรรทัดที่ 10-13 ในCode ข้างต้น เพื่อนำมาใช้ในการตัดสินใจ ซึ่งอัลกอรึทึ่มในการตัดสินใจว่า อันไหนเป็นสีพื้นอันไหนเป็นสีเส้นของเซนเซอร์แต่ละตัวในการตัดสิน ในที่นี้คือ
หากค่าเซนเซอร์วัดได้น้อยกว่าค่ากลาง แสดงว่าเป็นสีเส้น (ดำ)
หากค่าเซนเซอร์วัดได้มากกว่าค่ากลาง แสดงว่าเป็นสีพื้น(ขาว)
สำหรับการกรอกค่ากลางเซนเซอร์ในบรรทัดที่ 10-13ของArduino IDE ดังรูปข้างล่าง
6. ตัวอย่างอัลกอริทึม ในการแทร็กเส้นแบบวนรอบ และสามารถปรับอัตราแทร็กได้ ในภาษาซี ในArduino IDE ตั้งแต่บรรทัดที่ 104-108 ฟังชันก์ void track() ดังรูปข้างล่าง
4. ตัวอย่างอัลกอริทึม ในการออกจากloopแทร็กเส้นแบบวนรอบ สามารถปรับเงื่อนไขดังบบรทัดที่ ตั้งแต่บรรทัดที่ 112 ฟังชันก์ void p () ดังรูปข้างล่าง
5. สำหรับคำสั่งหรือฟังก์ชัน ที่แนะนำให้ใช้งานในMenu ต่างๆ มีดังต่อไปนี้