今回はESP32 と ESP8266に同じスクリプトで対応できるようにしました。
私がこの2台以外にMicroPythonを駆動することができるマイコンボードを所有していないのでこれだけです。
それとまだまだ改良の余地がありますが、カタカナを表示できるようにしました。
使い方としてはスクリプト名をacm.pyとした場合
import acm acm.send_kana(0b10110001)
でカーソルのある場所に「ア」を表示するはずです。
カタカナ表示に関しては今後どのようなスクリプトにしたら良いのか検討中です。
今回公開のスクリプトは以下のものです
#This python program is a fork of Choco-Tips.com #Fixed by MacaroniPeinguin #Version 2022.04.15 Choco-Tips.comバージョンをESP32に対応 ブログバージョン #Version 2022.04.20 様々なプラットフォームに対応 import sys from time import sleep from machine import Pin LCD_ADDR = 0x50 platform_name = sys.platform if 'esp8266' == platform_name: from machine import I2C i2c = I2C(scl = Pin(5),sda = Pin(4),freq = 100000) elif 'esp32' == platform_name: from machine import SoftI2C i2c = SoftI2C(scl = Pin(22),sda = Pin(21),freq = 100000) else: from machine import I2C i2c = I2C(scl = Pin(5),sda = Pin(4),freq = 100000) def cmd(a, b, msec = 0): buff = bytearray(2) buff[0] = a buff[1] = b i2c.writeto(LCD_ADDR, buff) if msec > 0: sleep(msec / 1000) def send_text(text): bin = text.encode("utf-8") for ch in bin: cmd(0x80, ch) # print(bin) def send_kana(text_bin): cmd(0x80,text_bin) def clear(): cmd(0x00, 0x01, 20) cmd(0x00, 0x38, 10) cmd(0x00, 0x0c, 10) cmd(0x00, 0x06, 10) def move_cur(col, row = 0): if row > 0: col = col + 0x40 col = 0x80 | col cmd(0x00, col, 20) def print_test(): clear() move_cur(0, 0) send_text("Keep on asking, ") move_cur(0, 1) send_text("Keep on seeking.") if __name__ == '__main__': print_test()
※コメント投稿者のブログIDはブログ作成者のみに通知されます