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

ใช้งานอุปกรณ์เสริม โมดูล OLED ขนาด 128×64 พิกเซล ด้วย ZX-OLED

ก่อนหน้านี้เมื่อต้องการแสดงข้อมูล จะใช้การส่งค่าไปแสดงที่ LED 5×5 ซึ่งช้ามาก
หรือใช้ผ่านสาย USB ด้วยคำสั่ง serial ไปแสดงที่ Console Device
ต้องต่อสายกับคอมพิวเตอร์และเปิดหน้าต่างค้างไว้
ตัวอย่างนี้จะนำเอาจอกราฟิกขนาดเล็กที่แสดงได้ทั้งตัวเลขและตัวอักษรมาลองใช้งานกันดู

ZX-OLED

บอร์ด ZX-OLED นำเอาจอ OLED ขนาด 128×64 พิกเซล ในขนาด 0.96 นิ้ว เชื่อมต่อด้วยระบบบัส I2C มายึดเข้ากับแผ่นวงจรพิมพ์และทำขั้วต่อแบบ JST 4 ขั้วที่สามารถใช้สาย JST4AA-8 เพียงเส้นเดียวก็ต่อเข้ากับบอร์ด AX-microBIT ได้เลย โดยสาย 4 เส้นประกอบได้ด้วย SCL (สัญญาณนาฬิกา) SDA (ขารับส่งข้อมูล) +V (ไฟเลี้ยง 3V)และ GND (กราวด์)

ติดตั้ง Extensions เพื่อใช้งาน ZX-OLED

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

1.ที่แถบชุดคำสั่งเลือก Extensions

2.ในช่องค้นหา พิมพ์ https://github.com/KittenBot/pxt-oled จะพบ extension ชื่อ oled ให้คลิกเลือก

3. ชุดคำสั่งต่างๆ ก็จะปรากฏพร้อมใช้งาน
หมายเหตุ

NeoMatrix Editor จะใช้ไม่ได้กับ Microsoft Makecode เวอร์ชั่นปัจจุบัน

ชุดคำสั่งของ OledKitten

คำสั่งเริ่มต้นเชื่อมต่อ OLED

แนะนำให้้กำหนดไว้้ที่่ on start สำหรับ ZX-OLED ใช้ขนาด0.96 นิ้ว 128×64 พิกเซล

คำสั่งเคลียร์การแสดงผลที่หน้าจอ

คำสั่งแสดงข้อความขนาดปกติที่ OLED

คำสั่งแสดงข้อความขนาด 2 เท่าที่ OLED

คำสั่งแสดงข้อความที่ OLED ตำแหน่งตัวชี้ที่กำหนด

หนึ่งแถวแสดงข้อความได้ 16 ตัวอักษร แสดงตัวอักษรได้ 4 แถว ดังนั้นตัวชี้จะชี้ได้ 64 ตำแหน่ง 0-63

คำสั่งถมสีที่หน้าจอ (more)

มี 2 ค่าคือ 0 เท่ากับเคลียร์หน้าจอ 255 หมายถึงหน้าจอเป็นสีขาวทั้งหมด

เชื่อมต่อบอร์ด ZX-OLED เข้ากับ AX-microBIT

ตัวอย่างที่ 36 แสดงข้อความผ่าน OLED เบื้องต้น

https://makecode.microbit.org/_2bsUmHeuCMe2

คำสั่ง Oled display จะแสดงข้อความสูงสุดได้ 4 บรรทัด โดยระบุ line เป็น 0-3

ตัวอย่างที่ 37 แสดงข้อความด้วยขนาดใหญ่เป็น 2 เท่า

https://makecode.microbit.org/_RthPWpe8Wb06

เมื่อขนาดเพิ่มเป็น 2 เท่าจำนวนบรรทัดที่แสดงข้อมูลก็จะลดลง แสดงได้แค่ 2 บรรทัดเท่านั้น

ตัวอย่างที่ 38 สุ่มแสดงตัวอักษร “x” ด้วยคำสั่ง Oled position

คำสั่ง Oled position จะใช้แอดเดรสเพื่อชี้ตำแหน่งการวางตัวอักษร ซึ่งมี 64 ตำแหน่ง 4 แถว แถวละ 16 ตัว เพื่อให้เห็นภาพจะใช้การสุ่มตัวเลขด้วยคำสั่ง Random กำหนดช่วงตัวเลขไว้ที่ 0-63 เมื่อได้ค่าตัวเลขเท่าใดก็กำหนดเป็นค่าแอดเดรสในการแสดงตัวอักษร “x” โดยจะแสดงไว้แค่ 0.1 วินาที ก่อนจะเคลียร์ค่าแล้วแสดงตำแหน่งใหม่

ตัวอย่างที่ 39 การนับค่าตัวเลขทีละ 1 ค่าแสดงผลที่ OLED

สำหรับ Extensions OledKitten จะแสดงค่าที่เป็นตัวอักษรเท่านั้น ถ้าต้องการแสดงตัวเลขที่ใช้บวกลบคูณหารได้จะต้องแปลงชนิดข้อมูลตัวเลขให้เป็นตัวอักษรก่อนที่จะนำมาแสดง คำสั่งที่ใช้คือ convert to text (เก็บอยู่ในหัวข้อ text)

การทำงาน

ตัวอย่างนี้จะนำค่าที่ได้จากตัวแปร X ซึ่งเป็นค่าตัวเลข มาแสดงที่ OLED ด้วยขนาด 2 เท่า โดยจะวนเพิ่มค่าขึ้นเรื่อยๆ ทุก 0.2 วินาที

ตัวอย่างที่ 40 แสดงตัวเลขพร้อมตัวอักษรที่หน้าจอ

ในกรณีต้องการแสดงข้อมูลตัวเลขและตัวอักษรพร้อมกันที่ OLED สามารถใช้คำสั่ง Join (ในหัวข้อ Text) มาเชื่อมข้อมูลกันก่อนนำไปแสดงผลด้วยคำสั่ง Oled display

การทำงาน

    ตัวอย่างนี้จะอ่านค่าจากแอนะล็อกช่อง 2 ซึ่งต่อตัวต้านทานปรับค่าได้ไว้มาแสดงต่อท้ายข้อความ P2=

โดยการเขียนโค้ดจะพบปัญหากรณีหลักของตัวเลขไม่เท่าเดิม เช่นครั้งแรกแสดง 1020 ครั้งต่อไปต้องแสดง 520 ค่าตัวเลขที่หน้าจอจะกลายเป็น 5200 เนื่องจากเลข 0 หลักสุดท้ายไม่ถูกลบออกไป ทางแก้ทำได้ 2 ทางคือ

  1. เรียกคำสั่ง Oled Clear เพื่อล้างหน้าจอทุกครั้ง แต่วิธีการนี้หน้าจอจะกะพริบ จึงไม่แนะนำ
  2. สร้างอักษรค่าว่าง (เหมือนเคาะ Spacebar) ต่อท้ายตัวเลขที่จะแสดง เพื่อลบข้อมูลที่ไม่ต้องการออกไป

https://makecode.microbit.org/_Ktd8T13mXXwT

การทำงาน

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

ยังไม่จบครับ OLED สามารถนำมาวาดรูปกราฟิกได้ด้วย ขอติดไว้เป็นตอนหน้านะครับ

Facebook Comments Box