เรียน-เล่น-โค้ด KidBright32iP กับ microBlock IDE EP3:คำสั่ง Display บน LED 16×8

ส่วนแสดงผลมีหน้าที่ติดต่อกับผู้ใช้งาน เพื่อดูสถานะของอุปกรณ์ต่างๆ ต้องให้ความสำคัญเป็นอันดับแรก

ลองดูว่า display มีอะไรให้เราสนุกกับมันได้บ้าง

หน้าที่ของบล็อกต่างๆ ในหัวข้อ Display

ตัวอย่างที่ 7 นับเลขขึ้นจาก 0-59

นับตัวเลขขึ้นจาก 0 ถึง 59 ทุกๆ 0.5 วินาที เมื่อครบกำหนดให้ส่งเสียงออกลำโพง

บล็อกคำสั่ง count with (ในหัวข้อ Control)

ทำหน้าที่ วนลูปและเปลี่ยนแปลงค่าตัวแปรไปจนถึงค่าที่กำหนด (เทียบเท่าคำสั่ง for)

การทำงาน

ค่าตัวเลขจะถูกนำมาแสดงที่ LED 16×8
ด้วยขนาดใหญ่ปกติ เริ่มจาก 0 และเพิ่มค่าขึ้นเรื่อยๆ ทีละ 1 จนถึง 59 และออกจากลูปทำคำสั่ง buzzer notes เพื่อสร้างเสียงออกลำโพง

ตัวอย่างที่ 8 นับถอยหลัง 59 ถึง 0

การทำงาน

ปรับเปลี่ยนค่าเฉพาะบล็อกคำสั่ง count with โดยให้ลดค่าทีละ 1 และเริ่มนับจาก 59

ตัวอย่างที่ 9 ไฟวิ่งไปกลับ บน LED 16×8

คำสั่ง count with เมื่อใช้ควบคู่กับคำสั่ง display dot at ซึ่งจะแสดงจุดในพิกัดที่ต้องการ

การทำงาน

คำสั่ง count with ชุดแรกจะใช้นับค่า 0-15 (16 ตำแหน่ง) เป็นพิกัดแกน x ของ LED 16×8 ส่วนแกน y จะใช้ค่าคงที่ เท่ากับ 3 หลังจากทำคำสั่ง LED จะติดไล่จากซ้ายมาขวา ในแถวที่ 4 นับจากด้านบน โดยแสดงจุดละ0.1 วินาทีแล้วสั่งให้ดับ เมื่อทำครบชุดที่ 1 ชุดที่ 2 จะเป็นการนับค่ากลับ

ตัวอย่างที่ 10 พล็อต LED ไล่ติดจนครบทั้ง 128 ดวง

การทำตามแนวคิดนี้ LED จะต้องใช้คำสั่ง count with ซ้อนกัน 2 ชุด ดังนั้นจะต้องเปลี่ยนชื่อตัวแปรจากเดิมเป็น i ให้กลายเป็น x แล้วลากบล็อก count with อีกตัวมาวางเปลี่ยนชื่อจาก i ให้กลายเป็น y

การเปลี่ยนชื่อทำได้โดยการคลิกเมาส์ขวาที่ตัวแปร แล้วเลือกคำสั่ง Rename variable

การทำงาน

เมื่อนำคำสั่ง count with มาซ้อนกัน จะพบว่า count with ของตัวแปร y จะต้องวนลูปทำจนเสร็จก่อน ผล LED จะไล่ติดจากบนลงล่าง แล้วไล่ลำดับจากซ้ายไปขวา เมื่อทำงานครบ จะใช้คำสั่ง display clear เพื่อเคลียร์หน้าจอให้ว่าง ก่อนจะเริ่มต้นพล็อต LED ใหม่

ตัวอย่างที่ 11 LED 16×8 สุ่มติด

การสุ่มตัวเลข

คำสั่งนี้จะถูกเรียกขึ้นมาก่อนเพื่อให้เลขที่สุ่มออกมานั้นเป็นเลขสุ่มจริงๆ

ในการสุ่มตัวเลข คำสั่ง random integer from ในหัวข้อ Operators จะคืนค่าตัวเลขสุ่มในช่วงที่กำหนดออกมาให้

การกำหนดค่าตัวแปร

ในหัวข้อ Variable จะมีบล็อกคำสั่ง Create Variable เพื่อสร้างตัวแปรไว้จองพื้นที่หน่วยความจำเพื่อเก็บข้อมูล แบบเดียวกับที่คำสั่ง count with สร้างขึ้นมา แต่ชุดนี้เราจะสร้างขึ้นด้วยตนเอง

เมื่อกดสร้าง จะมีหน้าต่าง ให้ระบุชื่อตัวแปร ในที่นี้ตั้งชื่อว่า X

เมื่อกำหนดค่าตัวแปรเรียบร้อย จะมีบล็อกเพิ่ม 3 บล็อกคือ

สำหรับกำหนดค่าตัวแปรด้วยค่าที่ต้องการ

สำหรับเพิ่มหรือลดค่าตัวแปร

ผลลัพธ์ของค่าตัวแปร

จากคำสั่งใหม่ๆ ที่ได้นำมาสร้างเป็นโค้ดเพื่อสร้างดาวระยิบระยับ บนหน้าจอได้เลย

การทำงาน

การสุ่มค่าตัวเลขจะทำ 2 ครั้งเพื่อเก็บพิกัดแกน x และ y จากนั้นนำค่าไปแสดง ช่วงเวลาสั้นมากๆ คือ 0.01 วินาทีก่อนจะสั่งดับ LED ตำแหน่งนั้นไป (ถ้าเอาคำสั่ง turn off ออกจะเห็น LED สุ่มติดไปเรื่อยๆ จนเต็มจอ)

เมื่อตัดคำสั่ง turn off ออกไป

ผลลัพธ์ที่ได้

ตัวอย่างที่ 12 อ่านค่าแสง แสดงผลด้วยค่า 4 หลัก

บนบอร์ด KidBright32iP มีเซนเซอร์วัดอุณหภูมิติดตั้งอยู่ ใช้การสื่อสารผ่านระบบบัส I2C สามารถอ่านค่าได้จากบล็อก temperature ในหัวข้อ Input

การอ่านค่าอุณหภูมิ

ในหัวข้อ Input มีคำสั่ง temperature ที่จะคืนค่าอุณหภูมิจากเซนเซอร์วัดอุณหภูมิที่ติดตั้งบนบอร์ด KidBright32iP โดยมีความละเอียดที่ 0.25 องศาเซนเซียส

การทำงาน

คำสั่ง display show number สามารถแสดงตัวเลขได้สูงสุด 4 หลัก ทำให้เมื่อนำมาแสดงอุณหภูมิ สามารถแสดงทศนิยม 2 ตำแหน่งได้ด้วย แต่ความละเอียดของเซนเซอร์วัดอุณหภูมิอยู่ที่ 0.25 ดังนั้นจะเห็นค่าทศนิยทที่เปลี่ยนแปลง เป็น .0,.25,.5 และ .75 เท่านั้น

ตัวอย่างที่ 13 อ่านค่าแสงแล้วนำมาพล็อตกราฟ

คำสั่ง display plot จะใช้เพื่อแสดงกราฟที่หน้าจอ แต่มีความละเอียดของค่าที่แสดงอยู่ที่ 8 ระดับเท่านั้น (0-7) ดังนั้นถ้าค่าที่นำมาพล็อตมีค่านอกเหนือจากช่วงนี้จะต้องปรับเทียบก่อน ตัวอย่างนี้ใช้ค่าแสงซึ่งมีค่าอยู่ในช่วง 0-100 เพื่อให้เหลือค่า 0-7 จะต้องหารด้วย 14 ก่อน

คำสั่งหารอยู่ในหัวข้อ Operators

การอ่านค่าแสง

ในหัวข้อ Input มีคำสั่ง light level (%) ที่จะคืนค่าแสงจากเซนเซอร์วัดค่าแสงที่ติดตั้งบนบอร์ด KidBright32iP โดยให้ค่าเป็นเปอร์เซ็นต์ความสว่าง 0-100

ผลการทำงาน

แนวความคิดในบทนี้อยากจะกล่าวถึงเฉพาะหัวข้อ display เพียงอย่างเดียวเท่านั้น
แต่เพื่อให้เห็นภาพจะต้องใช้ชุดคำสั่งอื่นๆ ควบคู่ไปด้วย แต่ก็จะสอดแทรกการอธิบายชุดคำสั่งเป็นระยะ
หวังว่าจะไม่ทำให้สับสนนะครับ

Facebook Comments Box