การใช้งาน Gamepad:BIT

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

  1. ที่แถบชุดคำสั่ง เลือกหัวข้อ Extension

    2.ที่หน้าต่าง Extension พิมพ์ https://github.com/kritsadaj/pxt-gamepadbit ในช่องค้นหา

3. จะปรากฏ Extension ชื่อ GamepadBIT ขึ้นมา ให้คลิกเลือก เพื่อติดตั้ง
4. จะมีชุดคำสั่งสำหรับการใช้งานบอร์ด Gamepad:BIT และ Neopixel (LED แบบ RGB) ปรากฎขึ้นมา

 

การทำงานของชุดคำสั่ง 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 ใช้เป็นรีโมตคอนโทรล ควบคุมการเคลื่อนที่ของหุ่นยนต์กันบ้างคอยติดตามครับ

Facebook Comments Box