Maqueen LITE ตอนที่ 4

แผงวงจรตรวจจับการสะท้อน เพื่อเคลื่อนที่ตามเส้น

จากรูปจะเห็นแผงวงจรตรวจจับการสะท้อนของ 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. เซนเซอร์ทั้งด้านซ้ายและขวา เจอสีขาว (อ่านค่าได้เป็น “1”) ต้องสั่งให้หุ่นยนต์เคลื่อนที่ตรงไป
  2. เซนเซอร์ด้านขวาเจอเส้นสีดำ ให้หุ่นยนต์หมุนตัวทางขวาเพื่อกลับมาคร่อมเส้น
  3. เซนเซอร์ด้านซ้ายเจอเส้นสีดำ ให้หุ่นยนต์หมุนตัวทางซ้ายเพื่อกลับมาคร่อมเส้น

ตัวอย่างที่ 3 เคลื่อนที่ตามเส้นจากสนามวงกลมที่แถมมาในชุด

ในชุดหุ่นยนต์ micro Maqueen Lite จะมีแถมแผ่นกระดาษเป็นเส้นสำหรับให้หุ่นยนต์เคลื่อนที่ตามเส้นอย่างง่ายดังรูป แผ่นกระดาษจะมี 2 หน้าให้เลือกใช้รูปแบบวงกลมก่อน

https://makecode.microbit.org/_dAgJoTT3dHRf

การทำงาน

โค้ดทำตามตัวอย่าง 3 รูปแบบอย่างง่ายของการเคลื่อนที่ตามเส้น โดยก่อนอื่นให้สร้างตัวแปร L และ R เพื่อใช้เก็บสถานะของเซนเซอร์ทั้งด้านซ้ายและขวาก่อน จากนั้นนำมาเปรียบเทียบ

ถ้าค่าที่ได้เป็น 1 ทั้งซ้ายและขวาให้หุ่นยนต์เคลื่อนที่ตรง

ถ้าด้านซ้ายเจอเส้นสีดำ (อ่านค่าได้ 0) สั่งให้หุ่นยนต์เลี้ยวซ้าย

ถ้าด้านขวาเจอเส้นสีดำ (อ่านค่าได้ 0) สั่งให้หุ่นยนต์เลี้ยวขวา

สังเกตคำสั่งในการเลี้ยวจะปรับความเร็วมอเตอร์ 2 ด้านไม่เท่ากันเพื่อให้การเลี้ยวมีความนิ่มนวลมากยิ่งขึ้น

 

@kritsadajx2micro Maqueen Lite Simple Line Tracking

♬ เสียงต้นฉบับ – KRITSADA JAIYEN

สร้างเส้นทางด้วยเทปพันสายไฟสีดำ

เทปพันสายไฟสีดำ มีขนาดความกว้างประมาณ 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 จะเริ่มมีข้อผิดพลาดได้มากขึ้น จึงขอตัดจบไว้เพียงเท่านี้ครับ

Facebook Comments Box