แผงวงจรตรวจจับการสะท้อน เพื่อเคลื่อนที่ตามเส้น
จากรูปจะเห็นแผงวงจรตรวจจับการสะท้อนของ micro Maqueen Lite ติดตั้งอยู่ด้านใต้ของหุ่นยนต์ ระยะห่างระหว่างเซนเซอร์อยู่ที่ 15 มม.
เซนเซอร์ด้านซ้ายต่อกับขาพอร์ต P13 ด้านขวาต่อกับขาพอร์ต P14 ให้ผลลัพธ์เป็นลอจิก โดย
ให้ลอจิก “1” เมื่อสะท้อนพื้นสีขาว หรือสีอ่อน
ให้ลอจิก “0” เมื่อตรวจไม่พบการสะท้อนหรือสะท้อนพื้นสีเข้มหรือสีดำ
ด้านบนของ micro Maqueen Lite จะมี LED สีน้ำเงินไว้แสดงสถานะของเซนเซอร์ทั้งด้านซ้ายและขวา โดยจะติดเมื่อสะท้อนพื้นสีขาวหรือสีอ่อน
การทดสอบเบื้องต้น
ให้ทดลองเปิดสวิตช์ที่ตัว micro Maqueen จากนั้นวางหุ่นยนต์ไว้ที่พื้นสีอ่อน จะเห็นแสงสีน้ำเงินสะท้อนขึ้นมาบริเวณด้านหน้าของตัวหุ่นยนต์ เมื่อยกตัวหุ่นยนต์ขึ้น แสงสีน้ำเงินจะดับไป
ตัวอย่างที่ 1 ทดสอบอ่านค่าเมื่อเซนเซอร์อยู่บนพื้นผิวต่างๆ
เนื่องจากเซนเซอร์ เป็นแบบดิจิตอล ต้องอ่านด้วยคำสั่ง digital read pin อ่านแล้วนำมาแสดงผลเป็นจุด LED บน LED 5×5
การทำงาน
สำหรับขา P13 ตำแหน่งเซนเซอร์จะตรงกับ LED ด้านขวา จึงเลือกใช้พิกัด x = 4 y = 0
ขา P14 ตำแหน่งเซนเซอร์จะตรงกับ LED ด้านซ้าย จึงเลือกพิกัด x = 0 y = 0
ถ้าค่าของ P13 และ P14 เป็น 1 แสดงว่าตรวจพบสีขาวหรือสีอ่อนจะสั่งให้ LED ติดสว่าง
จากรูป เซนเซอร์ที่ขา P13 เจอสีขาว LED ที่ตำแหน่ง 4,0 จึงติดสว่างส่วนเซนเซอร์ที่ขา P14 เจอสีดำ LED ที่ตำแหน่ง 0,0 จึงไม่ติด
นอกจากคำสั่ง digital read pin แล้ว ในชุดคำสั่งของ Maqueen จะมีคำสั่ง read … line tracking sensor โดยมีตัวเลือก left (P13) และ right (P14) ไว้ให้ใช้แล้วด้วย
ตัวอย่างที่ 2 หุ่นยนต์เคลื่อนที่ไปหยุดที่เส้นสีดำ
มาดูซิว่า ถ้าเจอเส้นสีดำหุ่นยนต์จะหยุดที่เส้นหรือไม่จากโค้ดเหล่านี้ โดยโค้ดจะแบ่งเป็นการกดปุ่ม A กรณีตรวจสอบด้านซ้าย กดปุ่ม B สำหรับตรวจสอบเซนเซอร์ด้านขวา
https://makecode.microbit.org/_DMmU7V17s5up
การทำงาน
เมื่อกดปุ่ม Button A จะตรวจสอบเซนเซอร์ด้านซ้าย โดยถ้ายังเป็นสีขาว (พื้น) จะวนลูปและสั่งให้มอเตอร์เคลื่อนที่ไปด้านหน้า ถ้าพบเส้นสีดำเป็นการหลุดจากลูป จะสั่งให้มอเตอร์หยุดและสร้างเสียงออกลำโพง สำหรับ Button B ก็ทำเช่นเดียวกัน
รูปแบบการเคลื่อนที่ตามเส้น
เนื่องจากเซนเซอร์ทั้งสองตัวมีระยะห่างเท่ากับ 15 มิลลิเมตร การเคลื่อนที่แบบคร่อมเส้นเส้นที่ใช้จะต้องมีขนาดน้อยกว่า 15 มิลลิเมตร โดยรูปแบบการเคลื่อนที่อย่างง่ายเป็นดังนี้
-
เซนเซอร์ทั้งด้านซ้ายและขวา เจอสีขาว (อ่านค่าได้เป็น “1”) ต้องสั่งให้หุ่นยนต์เคลื่อนที่ตรงไป
-
เซนเซอร์ด้านขวาเจอเส้นสีดำ ให้หุ่นยนต์หมุนตัวทางขวาเพื่อกลับมาคร่อมเส้น
-
เซนเซอร์ด้านซ้ายเจอเส้นสีดำ ให้หุ่นยนต์หมุนตัวทางซ้ายเพื่อกลับมาคร่อมเส้น
ตัวอย่างที่ 3 เคลื่อนที่ตามเส้นจากสนามวงกลมที่แถมมาในชุด
ในชุดหุ่นยนต์ micro Maqueen Lite จะมีแถมแผ่นกระดาษเป็นเส้นสำหรับให้หุ่นยนต์เคลื่อนที่ตามเส้นอย่างง่ายดังรูป แผ่นกระดาษจะมี 2 หน้าให้เลือกใช้รูปแบบวงกลมก่อน
https://makecode.microbit.org/_dAgJoTT3dHRf
การทำงาน
โค้ดทำตามตัวอย่าง 3 รูปแบบอย่างง่ายของการเคลื่อนที่ตามเส้น โดยก่อนอื่นให้สร้างตัวแปร L และ R เพื่อใช้เก็บสถานะของเซนเซอร์ทั้งด้านซ้ายและขวาก่อน จากนั้นนำมาเปรียบเทียบ
ถ้าค่าที่ได้เป็น 1 ทั้งซ้ายและขวาให้หุ่นยนต์เคลื่อนที่ตรง
ถ้าด้านซ้ายเจอเส้นสีดำ (อ่านค่าได้ 0) สั่งให้หุ่นยนต์เลี้ยวซ้าย
ถ้าด้านขวาเจอเส้นสีดำ (อ่านค่าได้ 0) สั่งให้หุ่นยนต์เลี้ยวขวา
สังเกตคำสั่งในการเลี้ยวจะปรับความเร็วมอเตอร์ 2 ด้านไม่เท่ากันเพื่อให้การเลี้ยวมีความนิ่มนวลมากยิ่งขึ้น
@kritsadajx2micro Maqueen Lite Simple Line Tracking
สร้างเส้นทางด้วยเทปพันสายไฟสีดำ
เทปพันสายไฟสีดำ มีขนาดความกว้างประมาณ 15 มิลลิเมตร (ขนาดพอดีกับระยะห่างของเซนเซอร์ ) นำมาใช้ทำเป็นเส้นทางเดินบนพื้นสีขาวได้
ถ้าเลือกชนิดที่มีความบางหน่อย จะสามารถดัดโค้งได้ง่าย จากรูปสามารถนำโค้ดจากตัวอย่างก่อนหน้านี้มาทดสอบได้เลย
รูปแบบการเคลื่อนที่เมื่อเจอเส้นตัด
เมื่อเซนเซอร์ด้านซ้ายและขวาเจอสีดำ หรืออ่านค่าได้ 0 ทั้งคู่ สามารถเขียนโค้ดให้หุ่นยนต์เคลื่อนที่ไปในทิศทางต่างๆ ได้ เช่น เดินตรงต่อไป เลี้ยวไปยังเส้นด้านซ้าย หรือเลี้ยวไปยังเส้นด้านขวา
ตัวอย่างที่ 4 ส่งเสียงร้องเมื่อเจอเส้นตัด
เพิ่มเงื่อนไขการตรวจสอบเมื่อตรวจพบสีดำทั้งคู่ โดยให้เคลื่อนที่ข้ามไปพร้อมส่งเสียงร้อง
https://makecode.microbit.org/_eEYJFKW5zW7w
การทำงาน
ส่วนที่เพิ่มขึ้นมาเมื่อเจอเส้นสีดำคือให้หุ่นยนต์เคลื่อนที่ตรง สร้างเสียงและหน่วงเวลา 0.1 วินาทีเพื่อเลยเส้นทางแยกไป พร้อมสำหรับการเคลื่อนที่ในลูปต่อไป
@kritsadajx2micro Maqueen Line Tracking 02♬ เสียงต้นฉบับ – KRITSADA JAIYEN
ตัวอย่างที่ 5 หุ่นยนต์เลี้ยวซ้ายเมื่อพบทางแยก
ขั้นตอนเมื่อต้องเลี้ยวซ้ายเมื่อเจอทางแยกคือ ต้องตรงไปด้านหน้าให้กึ่งกลางของตัวหุ่นยนต์ซึ่งเป็นจุดหมุนอยู่ตรงทางแยกพอดีจากนั้นหมุนตัวทางซ้าย 90องศา เพื่อกลับมาคร่อมเส้นทางด้านซ้ายมือ และเดินตรงต่อไป
https://makecode.microbit.org/_1ooeuDPhF09A
การทำงาน
ให้มองไปที่ส่วนการเจอเส้นตัดทางแยก เท่านั้นที่มีการเปลี่ยนแปลงจากตัวอย่างก่อนหน้านี้ โดยสั่งให้หุ่นยนต์เคลื่อนที่ตรงไปประมาณ 0.4 วินาที ( มาจากเวลาสร้างเสียง 0.3 วินาที + คำสั่ง Pause 0.1 วินาที ) เป็นช่วงเวลาที่หุ่นยนต์เคลื่อนที่ตรงกลางทางแยก จากนั้นสั่งให้หุ่นยนต์หมุนตัวทางซ้าย 90 องศาจะไปคร่อมเส้นทางซ้ายพอดี
ตัวอย่างที่ 6 หุ่นยนต์เลี้ยวขวาเมื่อพบทางแยก
ปรับโค้ดเล็กน้อยเพื่อ เลี้ยวขวาเมื่อเจอทางแยก
https://makecode.microbit.org/_VHu69gF0DMqU
สำหรับการเคลื่อนที่ตามเส้นที่ซับซ้อนกว่านี้ สำหรับ micro maqueen จะเริ่มมีข้อผิดพลาดได้มากขึ้น จึงขอตัดจบไว้เพียงเท่านี้ครับ