Gamepad:BIT
บอร์ดปุ่มควบคุมอเนกประสงค์สำหรับ micro:bit เป็นบอร์ดขยายสำหรับ micro:bit ที่มี LED แบบ RGB โปรแกรมได้ 4 ดวง สวิตช์แบบโยก 4 ทิศทาง สวิตช์กดติดปล่อยดับ 4 ตัว ลำโพงเปียโซ และจุดเชื่อมต่อสำหรับต่ออุปกรณ์เสริมภายนอก โดยนอกจากหน้าที่หลัก ที่จะทำหน้าที่เป็นปุ่มกดรีโมตคอนโทรล สำหรับการควบคุมไร้สายให้กับ micro:bit Gamepad:BIT ยังเขียนโปรแกรมให้เป็นเครื่องเล่นเกมส์ขนาดเล็กได้ด้วย
มีคุณสมบัติดังนี้
-
มีซ็อกเก็ตสำหรับติดตั้ง micro:bit
ใช้ได้ทั้ง V1.x และ V2.x
-
ใช้งานได้พร้อมกันมากกว่า 1 ตัวผ่านบล็อกคำสั่งในกลุ่ม Radio ของโปรแกรม MakeCode
-
ติดตั้ง LED 3 สี RGB แบบโปรแกรมได้เบอร์ W6812 (เข้ากันได้กับ WS2812) 4 ดวง
-
ติดตั้งลำโพงเปียโซสำหรับขับเสียงและโน้ตดนตรี
-
มีตัวต้านทานแปรค่าตามแสงหรือ LDR สำหรับตรวจจับแสงจากภายนอก
-
มีสวิตช์หรือปุ่มกด 4 ตัว
-
มีสวิตช์จอยสติ๊ก 2 แกนพร้อมปุ่มกด
-
มีวงจรขับเซอร์โวมอเตอร์ 4 ช่องผ่านระบบบัส I2C
-
มีวงจรขับสเต็ปเปอร์มอเตอร์แบบยูนิโพลาร์ 1 ช่องผ่านระบบบัส I2C
-
มีวงจรขับมอเตอร์ไฟตรงหรือพัดลมขนาดเล็ก 1 ช่องผ่านระบบบัส I2C
-
ติดตั้งมอเตอร์แบบสั่นพร้อมวงจรขับ 1 ชุดผ่านระบบบัส I2C
-
มีวงจรประจุแบตเตอรี่ LiPo ผ่านพอร์ต USB
-
ติดตั้งวงจรเพิ่มแรงดันไฟเลี้ยงสำหรับวงจรขับมอเตอร์
-
มีวงจรควบคุมไฟเลี้ยงคงที่ ที่ +3.3V สำหรับ micro:bit และวงจรโดยรวม
-
มีจุดต่อโมดูลวัดระยะทางด้วยคลื่นอัลตร้าโซนิกเบอร์ HC-SR04
-
มีจุดต่อ LED 3 สี RGB ภายนอก (LIGHTER) ผ่านระบบบัส I2C
-
มีจุดต่อวงจรตัวต้านทานปรับค่าได้ภายนอก (KNOB)
-
ใช้งานเป็นรีโมตคอนโทรลแบบไร้สายได้โดยใช้บล็อกคำสั่งในกลุ่ม Radio ของโปรแกรม MakeCode
-
ใช้งานเป็นบอร์ดทดลองการเชื่อมต่ออุปกรณ์ภายนอกสำหรับ micro:bit ได้
ตำแหน่งขาของ micro:bit เพื่อเชื่อมต่ออุปกรณ์ต่างๆ
ตำแหน่งการเชื่อมต่อขาส่วนขยายจาก PCA9685
วงจรสมบูรณ์ของบอร์ด Gamepad:BIT
การทดสอบ
นำ micro:bit เสียบเข้าที่ซ็อกเก็ตบนบอร์ด Gamepad:BIT ดังรูป
เสียบสาย USB เชื่อมเข้ากับคอมพิวเตอร์และ micro:bit
ตัวอย่างที่ 1 สร้างเสียงออกลำโพงบน Gamepad:BIT
ที่โปรแกรม MakeCode https://makecode.microbit.org/ ทดสอบเขียนโค้ดแสดงไอคอนรูปโน้ตดนตรีและสร้างเสียงออกลำโพงจากนั้น ดาวน์โหลดโปรแกรมไปยัง micro:bit เมื่อดาวน์โหลดเสร็จเรียบร้อยจะมีเสียงออกที่ลำโพงของ Gamepad:BIT ทันที
ติดตั้ง Extension เสริมสำหรับ Gamepad:BIT
-
ที่แถบชุดคำสั่ง เลือกหัวข้อ Extension
2.ที่หน้าต่าง Extension พิมพ์ https://github.com/kritsadaj/pxt-gamepadbit ในช่องค้นหา
การทำงานของชุดคำสั่ง GamepadBIT
ตัวอย่างที่ 2 กดปุ่มเพื่อให้มอเตอร์สั่นทำงาน
https://makecode.microbit.org/_3v0Uv1YEgaVw
การทำงาน
เมื่อกดปุ่ม B1 ปุ่มสีแดงบน Gamepad:BIT จะให้มอเตอร์สั่นทำงานเป็นเวลา 0.5 วินาที
ตัวอย่างที่ 3 เลื่อนจุดที่ LED 5×5 ด้วยจอยสติ๊ก
https://makecode.microbit.org/_EPKM0VXzx5v1
การทำงาน
จากการควบคุมขึ้นลงซ้ายขวา ของจอยสติ๊ก นำไปควบคุมตำแหน่งของตัวละครในเกมส์ (Sprite) โดยให้เลื่อนไปในทิศทางแกน X และแกน Y ตามการโยกจอยสติ๊ก ส่วนเมื่อกดปุ่มตรงกลางให้กลับมาที่ตำแหน่งกึ่งกลาง
การแก้ปัญหา เลื่อนจอยสติ๊กแล้วไม่ทำงานตามตัวอย่าง
ปัญหาที่พบคือ เมื่อจ่ายไฟจาก USB แล้วการเลื่อนตามตัวอย่าง ทำได้เป็นปกติ แต่เมื่อใช้ไฟจากแบตเตอรี่บนตัว GamepadBIT เอง โยกจอยสติ๊กแล้วไม่เลื่อนตามในบางทิศทาง เป็นไปได้ว่า แรงดันอ้างอิงของแหล่งจ่ายไฟทั้ง 2 แบบมีความคลาดเคลื่อนกัน Extension GamepadBIT จะมีบล็อกคำสั่ง Set JoyStick Center เพื่อปรับค่าอ้างอิงตำแหน่งกึ่งกลางของจอยสติ๊ก เพื่อปรับค่าใหม่ให้ได้ค่าที่ถูกต้อง
ถ้าไม่กำหนดค่า ค่าอ้างอิงตำแหน่งกึ่งกลางจะอยู่ที่ 730 ถ้าการเลื่อนลงหรือเลื่อนไปทางขวา ทำงานได้ไม่สมบูรณ์ให้ปรับเพิ่มค่า โดยค่าที่แนะนำจะอยู่ประมาณ 850-900
โค้ดตัวอย่างที่ 3 เมื่อเพิ่มคำสั่ง SetJoyStick Center เข้ามาแล้ว
https://makecode.microbit.org/_5qPCE4EkH5vK
ตัวอย่างที่ 4 ไฟวิ่ง LED RGB (Neopixel บน Gamepad:BIT)
https://makecode.microbit.org/_b7fEHqY7A1a0
การทำงาน
จากโค้ดตัวอย่าง ใช้ตัวแปรแบบอาร์เรย์เพื่อเก็บค่าสีที่ต้องการให้แสดงในชื่อ List ในลูป จะทำการวน 4 รอบด้วยคำสั่ง for สำหรับ LED RGB 4 ดวง โดยค่า index จะเปลี่ยนตามตำแหน่งของ LED ให้ LED ติดแล้วดับก่อนจะติดในตำแหน่งถัดไป สำหรับสีที่ติดนั้นจะสุ่มเอาจากตัวแปรอาร์เรย์ที่กำหนดไว้ก่อนหน้านี้นั่นเอง
สำหรับการใช้งานพื้นฐานของ Gamepad:BIT คงพอเป็นไอเดียสำหรับการใช้งานแล้วนะครับ
ตอนต่อไปจะนำเอา Gamepad:BIT ใช้เป็นรีโมตคอนโทรล ควบคุมการเคลื่อนที่ของหุ่นยนต์กันบ้างคอยติดตามครับ