2025年2月24日月曜日

Raspberrypi picoでのHIDキーアサイン画面表示案

キーアサインと画面表示の案。
一番左の黒のボタンはモードや画面の切り替えに使うとして、8個のキーとロータリーエンコーダのキーアサイン案
from misakifont import MisakiFont
import busio
import adafruit_ssd1306
from board import *
i2c = busio.I2C(GP15, GP14)
display = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3C)
display.fill(0) # 表示内容消去

"""
 フォントのビットマップ表示
"""
def show_bitmap(x,y,fd):
    for row in range(0,7):
        for col in range(0,7):
            display.pixel(x+col,y+row,1 if (0x80>>col) & fd[row] else 0)

strs=(
    ("――モード1 スタンダード――",
     "1.コピー 2.カット",         #Ctrl+C,Ctrl+X
     "3.はりつけ4.すべてせんたく",   #Ctrl+V,Ctrl+A
     "5.やり直し6.再実行",       #Ctrl+Z,Ctrl+Y
     "7.デスク 8.ウィンドウ閉じる", #Win+D,Ctrl+W
     "上ボリューム下Ctrl+ホイール",),
    ("――モード2 YouTube――",
     "1.停止再生 2.ミュート",      #k,m
     "3.10秒進む4.10秒もどる",  #l,j
     "5.前フレーム 6.次フレーム",    #.,,
     "7.全画面8.小ウィンドウ",      #f,i
     "上ボリューム下Ctrl+ホイール",),
    ("――モード3 Winキー ――",
     "1.ゲームバー 2.文字起こし", #G,H
     "3.設定画面 4.Winロック",   #I,L
     "5.画面設定6.クリップりれき",       #P,V
     "7.拡大表示 8.縮小表示",   #+,-
     "上マウス左右 下マウス上下",),
    )
mf = MisakiFont()
y=1
for str in strs[2]:
    i=0
    for c in str:
        d = mf.font(ord(c))
        show_bitmap(i,y,d)
        i+=8
    y+=10
display.show()


表示はこんな感じ。

KeyboardLayout.writeを使って文字列を送出することもできるけど、使う場面がないかな。

0 件のコメント: