Gamepad:BIT ควบคุม Pretty Car ในชุด Building:bit Super kit

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 ได้

Super:bit Expansion Board
บอร์ด Super:bit เป็นบอร์ดขยายที่ช่วยเพิ่มขีดความสามารถให้ micro:bit สามารถควบคุมมอเตอร์และเซนเซอร์ได้หลากหลายพร้อมกัน โดยมีจุดเด่นที่การออกแบบรูเจาะให้พอดีกับตัวต่อมาตรฐาน

มีคุณสมบัติดังนี้
  • มีซ็อกเก็ตสำหรับติดตั้ง micro:bit ใช้ได้ทั้ง V1.x และ V2.x
  • แรงดันไฟเลี้ยง รองรับแบตเตอรี่ลิเธียม 18650 (3.7V – 4.2V) พร้อมวงจรชาร์จในตัวผ่านพอร์ต micro USB
  • สวิตช์เปิด-ปิด มีสวิตช์ควบคุมการจ่ายไฟบนบอร์ด พร้อมไฟแสดงสถานะ
  • จุดต่อมอเตอร์ไฟตรง (DC Motor) รองรับสูงสุด 4 ตัว (พอร์ต M1, M2, M3, M4)
  • จุดต่อเซอร์โวมอเตอร์ (Servo)รองรับสูงสุด 8 ตัว (พอร์ต S1-S8) โดยควบคุมผ่านไอซีขยายพอร์ตระบบบัส I2C
  • มอเตอร์สเต็ปเปอร์ สามารถขับ Stepper Motor (28BYJ-48) ได้ 2 ตัว
  • LED RGB (Neopixel) ติดตั้ง LED 3 สีแบบโปรแกรมได้ 4 ดวง สำหรับสร้างแสงสี
  • ไมโครโฟน (Sound Sensor) สำหรับตรวจจับความเข้มเสียง
  • ออดไฟฟ้า (Buzzer) สำหรับสร้างเสียงดนตรีหรือเสียงเตือน
  • ตัวรับสัญญาณอินฟราเรด (IR Receiver) สำหรับใช้งานร่วมกับรีโมทคอนโทรลอินฟราเรด
  • I2C Interface มีจุดต่อ I2C แยกต่างหากสำหรับต่อจอ OLED หรือเซนเซอร์อื่นๆ
  • พอร์ตขยายขา I/O มีจุดเชื่อมต่อขา Pin ของ micro:bit ออกมาในรูปแบบที่เสียบสายพ่วงได้ง่าย (เช่น P0, P1, P2)
  • รองรับ Ultrasonic มีพอร์ตเฉพาะสำหรับเสียบโมดูลวัดระยะทาง (HC-SR04)

การสื่อสารไร้สายด้วย Radio

ภายในตัวชิปประมวลผลหลักของ micro:bit จะมีโมดูลสื่อสารคลื่นวิทยุความถี่ 2.4 GHz อยู่ซึ่งยอมให้เรารับส่งข้อมูลได้ ที่ระยะทางสูงสุดประมาณ 70 เมตร ซึ่งเมื่อเขียนโปรแกรมด้วย MakeCode ก็สามารถใช้ชุดคำสั่งในหัวข้อ Radio เพื่อสื่อสารข้อมูลได้อย่างง่ายดาย

ชุดคำสั่งในหัวข้อ Radio

ตัวอย่างที่ 1 Gamepad:BIT ควบคุมการเคลื่อนที่ Pretty Car ในชุด Building:bit Super kit

ภาคส่ง Gamepad:BIT

ขั้นตอนการใช้งาน
  • เปิดเบราว์เซอร์และไปที่ https://makecode.microbit.org/  เพื่อเริ่มเขียนโค้ด
  • ติดตั้ง Extension สำหรับใช้งาน Gamepad:BIT ( โดยสามารถดูรายละเอียดได้ที่ การใช้งานGamepad:BIT )
  • เชื่อมต่อ micro:bit สำหรับใช้งานกับ Gamepad:BIT เข้ากับคอมพิวเตอร์เพื่ออัปโหลดโค้ด

https://makecode.microbit.org/S90810-43562-30507-74479

อธิบายการทำงาน

เพื่อให้ภาครับและส่ง มี ID ของกลุ่มที่ตรงกัน จึงต้องกำหนด Group ไว้ก่อน ในที่นี้กำหนดไว้เท่ากับ 1 จากนั้นใน forever จะตรวจสอบการกดสวิตช์จอยสติ๊ก 4 ทิศทาง ซึ่งจะให้ผลลัพธ์เป็น ขึ้น ลง ซ้าย และ ขวา โดยเมื่อกดแล้วให้ส่งค่าตัวเลขออกไป ถ้าไม่กดจะไปตรงกับเงื่อนไข else ให้ส่งค่าเลข 0 ออกไป

ภาครับ Pretty Car 

ขั้นตอนการใช้งาน
  • ติดตั้ง Extention เพิ่มเติมสำหรับใช้งาน Pretty Car ในชุด Building:bit Superkit โดยกดไปที่ Extention
  • จากนั้นพิมพ์ https://github.com/YahboomTechnology/SuperBitLibV2 ในช่อง Search
  • เชื่อมต่อ micro:bit สำหรับใช้งานกับ Pretty Car เข้ากับคอมพิวเตอร์เพื่ออัปโหลดโค้ด

https://makecode.microbit.org/S93143-52705-51850-83439

อธิบายการทำงาน

เมื่อเกิดเหตุการณ์ข้อมูลถูกส่งมาเป็นตัวเลข จะกระตุ้นให้ on radio received receivedNumber ทำงาน ซึ่งค่า receivedNumber เป็นค่าข้อมูลที่ถูกส่งมา โดยถ้าเลขตรงกับค่า 1-4 แสดงว่าเป็นการขับเคลื่อนหุ่นยนต์ ดินหน้า ถอยหลัง เลี้ยวซ้าย เลี้ยวขวา แต่ถ้าค่าที่ส่งมาเป็นตรงกับเลข 0 จะสั่งให้หุ่นยนต์หยุด 

ผลการทำงานของทั้งภาครับและภาคส่ง

ตัวอย่างที่ 2 ใช้สวิตช์ B1-B4 บน Gamepad:BIT ควบคุม LED RGB บน Pretty Car

การกดสวิตช์เปลี่ยนสีของ LED RGB จะไม่ได้เกิดขึ้นบ่อยนัก ในที่นี้จะใช้บล็อก every 200 ms ซึ่งจะเรียกใช้งานทุกๆ 0.2 วินาที มาตรวจสอบการกดสวิตช์ B1-B4 และ กดปุ่ม JoyStick โดยการส่งข้อมูลจะเปลี่ยนเป็นการส่งตัวอักษรดูบ้าง

ภาคส่ง Gamepad:BIT

https://makecode.microbit.org/S69279-53146-41106-52857

อธิบายการทำงาน

ที่ on start เพื่อให้ LED RGB บนตัว Gamepad:BIT ติดสว่างเช่นเดียวกับภาครับ Pretty Car จึงต้องปิดการทำงานของ LED 5×5 บนบอร์ด micro:bit ด้วยคำสั่ง led enable false จากนั้นกำหนดความสว่างของ LED RGB ให้มีค่าเท่ากับ 50 เพื่อความสบายตา ในส่วน every 200 ms ซึ่งจะถูกเรียกให้ทำงานทุกๆ 0.2 วินาที จะตรวจสอบการกดสวิตช์ ถ้าสวิตช์ B1-B4 ถูกกด จะให้ LED RGB บนตัว Gamepad:BIT ติดด้วยสีเดียวกับปุ่ม B1-B4 และหาก กดปุ่ม JoyStick จะสั่งให้ LED RGB เป็นสีดำ หรือให้ดับไปนั้นเอง พร้อมทั้งส่งข้อมูลออกอากาศในรูปแบบของข้อความออกไปด้วย

ภาครับ Pretty Car 

https://makecode.microbit.org/S77670-88535-21220-29391

อธิบายการทำงาน

สำหรับภาครับเป็นการเพิ่มเติมจากตัวอย่างที่ 1 เช่นเดียวกับภาคส่ง ซึ่งจะต้องเพิ่ม Extension Neopixel เข้ามาใช้งานในโปรแกรมด้วย เมื่อเกิดเหตุการณ์ on received receivedString ข้อความที่ถูกส่งมา จะเก็บไว้ในตัวแปรชื่อ receivedString จะต้องนำมาเปรียบเทียบว่าตรงกับค่าที่กำหนดไว้หรือไม่ จากนั้นให้ LED RGB บนหุ่นยนต์ Pretty Car ติดตามสีที่ระบุ

ข้อสังเกต

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

ผลการทำงานของทั้งภาครับและภาคส่ง

วิดีโอตัวอย่างการทำงาน

Facebook Comments Box