บอร์ด Mbits ถือว่าเป็นบอร์ดที่สมบูรณ์พร้อมในเรื่องอุปกรณ์อินพุตเอาต์พุตที่ติดตั้งอยู่ในตัว
LED สวิตช์ ไมโครโฟน ลำโพง เซนเซอร์วัดอุณหภูมิ เซนเซอร์วัดความเร่ง
ในตอนนี้จะมาเขียนโค้ดเพื่อใช้งานอุปกรณ์เหล่านี้กัน
Mbits กับ Button A และ Button B
ตัวอย่างที่ 5 อ่านค่าสวิตช์ Button A , Button B
เขียนโค้ดสั้นๆ ก่อนเพื่อให้เห็นความต่างของ บล็อกคำสั่ง on press กับ on pressed
โปรแกรมที่ 5.1 รูปแบบ on press
เขียนโค้ดให้แสดงอักษร A หรือ B ตามการกดสวิตช์ จากการทดสอบพบว่า on press จะทำงานทันทีเมื่อกด ดังนั้นสวิตช์ตัวใดถูกกดก่อนก็จะทำงานทันที
โปรแกรมที่ 5.2 รูปแบบ on pressed
ผลลัพธ์ของ on pressed จะเกิดขึ้นหลังจากที่เราปล่อยสวิตช์แล้ว ดังนั้นถ้าเรากดสวิตช์ค้างอยู่จะยังไม่เห็นผลลัพธ์ปรากฎ
หมวดหมู่การคืนค่าจากสวิตช์
คำสั่ง 3 บล็อกนี้จะต้องใช้กับคำสั่งตรวจสอบเงื่อนไข เช่นคำสั่ง if ,wait ultil หรือ while ดูได้จากตัวอย่าง
ตัวอย่างที่ 6 นับถอยหลัง 60 วินาที
https://ide.microblock.app/?open=1646741576395-vmgreR.mby
ตัวอย่างนี้จะใช้บล็อก wait until รอจนกระทั่งกดสวิตช์ Button A จึงไปทำคำสั่งถัดไป โดยจะนับค่าตัวเลขถอยหลังจาก 59 ไปจนถึง 0 ทุกๆ 1 วินาทีจะให้แสดง : ตรงกลางระหว่างตัวเลขด้วย
เมื่อนับครบให้แสดงรูปหัวใจพร้อมกับส่งเสียงออกลำโพง
คำสั่ง display show number จะแสดงตัวเลขแบบย่อ ทำให้การแสดงเลข 2 หลักทำได้บน LED ขนาด 5×5
ตัวอย่างที่ 7 แสดงสถานะการกดสวิตช์ที่ LED RGB 5×5
https://ide.microblock.app/?open=1646748746310-SKie4a.mby
วนลูปตรวจสอบเงื่อนไขการกดสวิตช์ ถ้าสวิตช์ทั้ง Button A และ Button B ถูกกดทั้งคู่ให้แสดง LED RGB 5×5 เป็นสีแดง กด Button A ตัวเดียวแสดงเป็นสีเขียว กด Button B ตัวเดียวแสดงเป็นสีน้ำเงิน ไม่กดก็เคลียร์หน้าจอ
ผลลัพธ์
Mbits ขับเสียงออกลำโพง
บนบอร์ด Mbit มีลำโพงขนาดเล็กติดตั้งอยู่ สามารถขับเสียงออกมาได้จากคำสั่งในหัวข้อ Output
บล็อก buzzer tone frequency
จะสร้างเสียงโดยระบุความถี่เสียงหน่วยเป็นเฮิร์ต (Hz) และระยะเวลาให้เสียงดังหน่วยเป็นวินาที เสียงที่ลำโพงตอบสนองได้ดีจะอยู่ในช่วง 300-5000 Hz ถ้าน้อยหรือมากกว่านี้เสียงจะเบาลงมาก
ตัวอย่างที่ 8 สุ่มสร้างเสียงออกลำโพง
https://ide.microblock.app/?open=1646744967255-E5llvD.mby
ตัวอย่างนี้จะคอยตรวจสอบสวิตช์ Button A ถ้ามีการกดอยู่จะให้สร้างเสียงต่อเนื่องไปเรื่อยๆ จนกว่าจะมีการปล่อยสวิตช์ โดยเสียงให้สุ่มความถี่ตั้งแต่ 300-3000 Hz
ตัวอย่างที่ 9 สร้างไล่จากทุ้มไปแหลม
https://ide.microblock.app/?open=1646746435204-TPo0R3.mby
เมื่อกด Button A จะเป็นการสร้างเสียงไล่ลำดับจากทุ้มไปแหลม เมื่อถึงค่า 3000 แล้วก็กลับไปรอการกดสวิตช์ใหม่
ตัวอย่างที่ 10 สร้างเสียงไซเรน
https://ide.microblock.app/?open=1646746759746-8L8rUr.mby
เมื่อกด Button A จะวนลูป 10 ครั้งเพื่อสร้างเสียงออกลำโพงด้วยความถี่ 2 ความถี่สลับกัน ดังคล้ายกับเสียงไซเรนนั่นเอง
บล็อก buzzer note
เป็นบล็อกคำสั่งที่ใช้สร้างเสียงแบบเดียวกับ tone แต่ระบุค่าเป็นคีย์โน๊ตดนตรีและจังหวะของเสียง ต้องระบุค่า 2 ค่าคือ
• notes
คือชื่อตัวโน้ตดนตรีสามารถกำหนดได้หลายๆ ตััวโน๊ตในคำสั่งเดียวและมี Collection เพื่อเรียกเพลงตัวอย่างมาเล่นและแก้ไขได้ พร้อมทังฟังเสียงโน๊ตจากคอมพิวเตอร์ ก่อนการโหลดลงไปยังบอร์ด Mbits
• duration
คือ ระยะเวลาที่ต้องการให้ขับเสียงดนตรีมีด้วยกัน 5 ค่า
ตัวอย่างที่ 11 เสียงเพลง Twinkle,Twinkle Little Star และ Jingle Bells
https://ide.microblock.app/?open=1646747206769-5Vc3ed.mby
เป็นการเอาเมโลดี้ตัวอย่างจาก 9 ตัวอย่างมาลองเล่นเสียงจากการกดปุ่ม Button A และ Button B
การส่งค่าไปแสดงผลที่ Terminal
การแสดงผลที่ LED RGB 5×5 จำนวนตัวอักษรหรือตัวเลขที่แสดงได้มีจำนวนจำกัด ต้องใช้การเลื่อนเพื่อแสดง ดังนั้น MicroBlock IDE จึงมีบล็อกคำสั่งสำหรับส่งข้อมูลไปแสดงที่หน้าต่าง Terminal ได้ด้วย โดยเป็นคำสั่ง Print ในหัวข้อ Advanced
หน้าต่าง Terminal
เมื่อคลิกที่ปุ่ม >_ จะเป็นการเปิดหน้าต่าง Terminal ที่ขวามือของจอภาพ โดยหน้าต่างนี้ถ้าเขียนโปรแกรมภาษา Python จะคุ้นเคยกันดี เพราะจะเป็นหน้าต่างที่แสดงสถานะการทำงาน
แสดงข้อผิดพลาดต่างๆ ที่เกิดขึ้น และใช้แสดงผลลัพธ์ที่มาจากโปรแกรม (คำสั่ง print) ได้ด้วย
การอ่านค่าอุณหภูมิ
ในหัวข้อ Input มีคำสั่ง temperature ที่จะคืนค่าอุณหภูมิจากเซนเซอร์วัดอุณหภูมิที่ติดตั้งบนบอร์ด Mbits โดยมีความละเอียดที่ 0.25 องศาเซนเซียส
ตัวอย่างที่ 12 แสดงค่าอุณหภูมิที่ Terminal
https://ide.microblock.app/?open=1646836450829-cPBtOJ.mby
ตัวอย่างจะนำค่าแสดงทั้งที่ LED RGB 5×5 และหน้าต่าง Terminal เว้นระยะทุกๆ 1 วินาที โดยค่าที่ Terminal จะแสดงในรูปทศนิยมด้วย
ตัวอย่างที่ 13 แสดงค่าอุณหภูมิพร้อมข้อความ (ภาษาไทย)
https://ide.microblock.app/?open=1646837361460-LAG26X.mby
ในหัวข้อ Operators จะมีชุดบล็อกเกี่ยวกับการจัดการข้อความชื่อ create text with ใช้เพื่อเชื่อมข้อความเข้าด้วยกัน โดยตัวอย่างนี้จะเชื่อมข้อความ “อุณหภูมิ=” + temperature + “องศา”
นำไปแสดงที่ Terminal
คำสั่ง create text with ค่าเริ่มต้นจะรวมข้อความได้ 2 Item ถ้าต้องการเพิ่มต้องกดที่รูปเฟืองแล้วลาก item มาใส่เพิ่ม ในที่นี้ใช้ 3 ชุดข้อมูล
ผลลัพธ์
สำหรับเรื่องอุปกรณ์อินพุตเอาต์พุตยังเหลือเรื่องไมโครโฟน กับเซนเซอร์วัดความเร่ง (ความเอียง)
ถ้ารวบไว้ในตอนนี้จะยาวเกินไป ขอติดไว้เป็นตอนที่ 4 นะครับ คอยติดตาม
INEX English documentation and manual – Download here !!