ตัวอย่างใช้งาน Micro:bit Education Kit V1.3 ตอนที่ 8

แสดงภาพกราฟิกบน ZX-OLED

จากตอนที่ 7 จะใช้ Extensions OLEDKitten แล้วพบว่ายังมี Extensions ของ OLED อีกหลายตัวที่น่าสนใจ ตอนนี้จะแนะนำ Extensions ของ OLED ที่ชื่อ OD01

ติดตั้ง Extensions OD01

Extensions ตัวนี้สามารถพิมพ์ OD01 ที่ช่องค้นหาได้เลย จะพบ Extensions หน้าตาดังรูป ให้คลิกเลือกเพื่อเพิ่ม Extensions OD01 ไปยังโปรแกรม makecode ของเราได้เลย

ชุดคำสั่งจัดเรียงเป็นหมวดหมู่ ทดสอบใช้งานได้ไม่ยากเลย

Scrolling Display

ชุดคำสั่งในกลุ่มนี้แสดงข้อมูลแบบเดียวกับการพิมพ์ในโปรแกรมพวก terminal คือพิมพ์จากบนลงล่าง โดยจบคำสั่งเลือกได้ว่าจะให้ขึ้นบรรทัดใหม่รอไว้หรือไม่ (new line)

ตัวอย่างที่ 41 แสดงค่าการนับ ดูการเลื่อนของข้อมูล

https://makecode.microbit.org/_9Wai63YWx8x3

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

การทำงาน

โปรแกรมนี้จะต้องสร้างตัวแปร X ขึ้นมาใช้งานด้วย ในส่วนของ forever จะแสดงข้อความ “Count=” ขึ้นที่หน้าจอ OLED โดยให้ค่า newline เป็น false เพื่อให้ข้อความต่อไปอยู่บรรทัดเดียวกัน จากนั้นนำค่า X มาแสดงในบรรทัดเดียวกัน โดยค่า newline เป็น true เพื่อให้จบบรรทัดแล้วขึ้นบรรทัดใหม่ขอไว้ หน่วงเวลาแล้วเพิ่มค่า X ขึ้น 1 ค่า

สำหรับการกดปุ่ม A และ B จะเป็นการเปลี่ยนโหมดหน้าจอให้กลับขาวเป็นดำ หรือดำเป็นขาว สำหรับการกดพร้อมกันจะเคลียร์หน้าจอและเคลียร์การนับเป็น 0

Positional Display

เป็นการแสดงตัวเลขหรือตัวอักษร โดยระบุพิกัดชัดเจน โดยตำแหน่งคอลัมน์จะเป็นค่าพิกเซล 0-120 (ค่ามากกว่านี้หลุดหน้าจอ) ส่วนตำแหน่งแถวจะเป็นเลขบรรทัด (0-7)

Optional

คำสั่งปรับเปลี่ยนขนาดการแสดงผล zoom in และ zoom out จะมีผลกับข้อความเดิมด้วย ส่วน set1X กับ set2X ไม่มีผลกับข้อความเดิม

ตัวอย่างที่ 42 แสดงข้อความทีละ 1 ตัวอักษร

https://makecode.microbit.org/_ecb99WfX28r3

แสดงข้อความปกติก็ดูธรรมดาไป ตัวอย่างนี้จะดึงข้อความออกมาทีละตัวอักษรแล้วนำมาแสดง

การทำงาน

เริ่มต้นด้วยการกำหนดขนาดตัวอักษรใหญ่เป็น 2 เท่า จากนั้นวนลูป เท่ากับจำนวนของตัวอักษรในข้อความ (length of) จากนั้นนำข้อความไปแสดง โดยดึงออกมาทีละตัวอักษร จากคำสั่ง substring of ใช้ตำแหน่งของตัวอักษรคือค่า Index ที่เพิ่มขึ้นจากการวนลูป ส่วนตำแหน่งการวางตัวอักษร เมื่อขยายขนาดเป็น 2 เท่าระยะห่างระหว่างตัวอักษรจะอยู่ประมาณ 12 พิกเซล ทำแบบเดียวกันในแถวที่ 2

    ส่วนแถวที่ 3 จะปรับขนาดตัวอักษรเป็น 1 เท่าดังนั้นค่าระยะห่างระหว่างตัวอักษรจะอยู่ประมาณ 6 และถ้าต้องการนำข้อความไว้ตรงกลางจะต้องเลื่อนข้อความมาทางขวาด้วย ในที่นี้ใช้บวกด้วยค่า 20

Drawing

เป็นชุดคำสั่งวาดงานแบบกราฟิก แต่เหมือนว่าคำสั่ง set pixel จะมี bug อยู่บ้าง สามารถใช้คำสั่ง draw a horizontal หรือ vertical แล้วกำหนดความยาวเป็น 1 แทนได้ สำหรับค่าสี color ถ้าเป็น 1 จะเป็นการวาดสีขาว ส่วนถ้าเป็น 0 ก็เหมือนการลบนั่นเอง

ตัวอย่างที่ 43 วาดรูป 4 เหลี่ยมและกากบาท

https://makecode.microbit.org/_fhYE224AifD9

การวาดสี่เหลี่ยม จะระบุจุดมุมบนด้านซ้าย และระบุจุดมุมล่างด้านขวา เมื่อดูขนาดจอภาพ 128 x 64 พิกเซล ถ้านับค่าจะอยู่ที่ 0-127 ในแนวแกน X และ 0-63 ในแนวแกน Y ถ้าต้องการวาดสี่เหลี่ยมจัตุรัส ขนาดใหญ่สุดที่ทำได้คือ 64 พิกเซล

สำหรับการวาดเส้นทแยงมุมจะไม่มีชุดคำสั่งมาให้ ทำได้โดยการพล็อตจุดทีละจุด ซึ่งถ้าจุดที่พล็อต เปลี่ยนแปลงทั้งแกน X และ Y ก็จะได้เป็นเส้นทแยงมุมนั่นเอง

Facebook Comments Box