Mbits with microBLOCK บทที่ 3 ใช้งานอุปกรณ์อินพุต/เอาต์พุต

บอร์ด 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 ค่่คืือ

• Scale
คืือชื่่ตััวโน้นตรีีสามาำหดได้้หตััวโน๊นคำสั่งเดีียวแมีี 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 นะครับ คอยติดตาม

Facebook Comments Box