フォト
2024年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
無料ブログはココログ

フォント

2024年3月21日 (木)

Arduino用 美咲フォントライブラリを更新しました

「Arduino用 美咲フォントライブラリ 教育漢字・内部フラッシュメモリ乗せ版」を更新しました。
ここ最近の調査をライブラリに反映しました。
 
・Arduino-misakiUTF16 Arduino用 美咲フォントライブラリ 教育漢字・内部フラッシュメモリ乗せ版
 https://github.com/Tamakichi/Arduino-misakiUTF16

おもな変更点
・ライブラリ形式(library format)をrev. 2.2に変更(以前はrev 1.x)
・美咲フォントの最新版 2021-05-05(美咲ゴシック第2)利用に変更

 (以前は2012-06-03 正式公開初版を利用)
・isZenkaku()の追加
 ⇒ 半角(4ドット)・全角(8ドット)幅判定により半角文字を詰めて表示可能となりました
・いくつかの不具合対応(半角・全角変換ミスなど)


せっかくの機会なので、新Arduino Uno(Arduino Uno R4 WiFi)に搭載されているLEDマトリックスで、デモってみました。

Arduino Uno R4 WiFi搭載 LEDマトリックスで美咲フォント表示
Arduino_uno_r4_led_matrix

動いている様子(Youtube ※BGMあり)


表示器がボート搭載だと、お手軽に利用できて良いですね~

プログラムソース


このサンプルプログラムは、ライブラリのサンプルプログラムとして添付しました。

参考にした文献
・Using the Arduino UNO R4 WiFi LED Matrix
 https://docs.arduino.cc/tutorials/uno-r4-wifi/led-matrix/

 公式サイトのLEDドットマトリックスを利用するための解説です。
 利用するライブラリ及び、LEDドットマトリックスのフレームバッファの構造について説明されています。

今回作成したサンプルプログラムでは、フレームバッファにデータをセットして表示しています(setAt()関数)。
フレームバッファの構造は、横12ドットx縦8ドットの計96ドット分の96ビットをlong整数 32ビットx3個 に単純に詰めている感じです。
フレームバッファを直接いじれば、なんでも表示できそうですね

フレームバッファの左スクロールを実装しているscroll()関数、
汎用性のない、12x8ドット限定の力業実装で少々分かりにくいコードですが、
32ビットx3の配列をビットシフトでビットを左にずらしているのですが、その際に
 ①ビットシフト時の最上位ビットの欠落対策
 ②0~7行の右端ビットクリア、
 ③ワードをまたぐ行の左端ビットの処理
を行って補正してます。
ちょっとエレガントでないのでもう少し良い方法があるかもしれません

新Arduino Uno R4ボード、搭載マイコンがRenesas RA4M1(Arm Cortex-M4)に変更となりました。
このボードも発売直後に購入したものの、放置していました。やっと使い始めた感じです。
まだまだ、使いこなせてないので、ドキュメントをあさりつつ遊んで行きたいと思います。

こんな感じで、ライブラリ更新と少々の動作確認の上、公開いたしました。

2024年3月14日 (木)

Raspberry Pi Pico(MicroPython)でLEDドットマトリックスを使ってみる

先日修正版を公開した「Raspberry Pi Pico MicroPython用の美咲フォントライブラリ」を使って、
MAX7219を使ったLEDドットマトリックスモジュールで日本語表示を試してみました。


MAX7219ベースのLEDドットマトリックスの利用については、文献1が大変参考になりました.. 感謝(*´ω`*)
MAX7219の制御についてては文献2のMike Causerさんが公開しているライブラリを利用しました.. 公開に感謝(*´ω`*)

この実装にあたり、参考にした文献
・文献1.証券所のティッカーみたいな細長い電光掲示板を作る話—MAX7219モジュールとRaspberry Pi Pico (rp2040)とMicrPython
・文献2.micropython-max7219
・文献3.MicroPython libraries framebuf — frame buffer manipulation

Raspberry Pi Pico MicroPython用の美咲フォントライブラリ の最新版では、半角と全角文字を混ぜて表示できます。
半角文字は横4ドットで処理しています。とりあえずは、使えそうかな.. (*´ω`*)

文献3のmicropython-max7219 ライブラリでも半角英数字テキストのスクロール表示メッセージは可能なのですが、
フォントの切り替え不可で、美咲フォントを利用した日本語フォントの表示には対応していません。
そこで、micropython-max7219の Matrix8x8の派生クラスを作成して美咲フォントで日本語表示できるようにしてみました。
MessageBoardクラスを作成しました。
以下は、そのクラス実装のmessageboard.pyとサンプルプログラムのsample_scroll_text.pyです。

ライブラリmax7219.py、messageboard.pyは、pico内にdeviceフォルダを作ってその中に保存します。
ラズパイpicoのmicroPython環境、実現レベルでいい感じと再認識しました(*´ω`*)

ハードウェア構成、結線については文献1、2を参照願います。
pico用に作成しましたが、他の環境でも比較的簡単に移植できると思います。

教育漢字だけだとやはり、ちょっとした文書を表示しようと思うと豆腐(□=教育漢字以外)が表示されてしまいます。
picoでは、フラッシュメモリに余裕があるので全フォント搭載でも問題ないと思うので、対応しようかな..

2024年3月13日 (水)

Raspberry Pi Pico MicroPython用美咲フォントライブラリの更新

前回投稿「美咲フォントの調査(メモ その1)」を元に、
Raspberry Pi Pico MicroPython用の美咲フォントライブラリを修正しました。

更新
・Raspberry Pi Pico MicroPython用美咲フォントライブラリ
   https://github.com/Tamakichi/pico_MicroPython_misakifont

このライブラリに作成にあたり、美咲フォントのBDF形式からPython用のフォントデータ(タプル形式)への変換は、
Pythonでプログラムを組んで生成しました。
BDF Parserという、BDFファイルをお手軽に操作できるライブラリを利用したのですが、
かなり高機能で、今後もBDFファイルを使う場合には利用しようかと思います。

BDF Parser の利用方法の解説は少ないので、個人のメモとして、今後いくつか記述したいと思います。

「Raspberry Pi Pico MicroPython用美咲フォントライブラリ」は、もともとは2012年の美咲フォント 初版をベースにしていたのですが、
初版のBDFはJISコードベースで、それを強引に ユニコードに変換したのでいくつか不具合やバグが混入していました。
今回の修正で、解消できたかと思います(*´ω`*)

本ライブラリは、「教育漢字」に絞っているのですが、フォントデータの生成はPythonでツールを作成したので、
比較的簡単にフォントの追加や別のフォント(BDF形式)の利用にも対応可能です。
ツールについては、別途公開したいと思います。

先行してPython用ライブラリを更新したのですが、Arduino版についても近日中に公開いたします。