60歳からの電子工作ノート

生涯学習として取り組んでいます。

I2C通信とSPI通信(フォントデータ作成ツールと数字の表示)

マイコンで使用するフォントデータ作成用のアプリを作成しました。またLCDへ数字を1文字表示しました。

 

フォントデータ作成ツール

概要と使い方

WindowsのTrueTypeのフォントデータから、マイコンで使用するビットマップデータをつくるアプリです。

図1. 画面

フォント(TestFont0123-Regular.ttf)をパソコンにインストールします。

アプリ起動後、ピクセルサイズを指定します。(8x16または48x96)

作成画面が表示されます。(48x96選択時には、画面表示まで時間がかかります。)

Inputの欄に、文字を入力します。(1文字、使用しているフォントにある数字)

「Set」ボタンで、文字がビットデータに変換されます。

ピクセル毎のON/OFF編集がマウスのクリックで行えます。

編集後のデータは、「Save Bit」ボタンで保存します。また読み込みは「Load Bit」ボタンで行います。マイコンで使用するデータは、「Save Pack Bit」ボタンで保存します。

注:「Set」ボタンの直後に限り、「Up]、「Down」、「Left」、「Right」ボタンで画像を移動できます。一度、ピクセルのON/OFF編集すると、「Up]、「Down」、「Left」、「Right」ボタンは無効となります。

フォント

TrueTypeフォントは、BitFontMaker2で作成しました。

図2. BitFontMaker2によるフォント作成(数字の0~9)

フォント名は、ファイル(MainWindow.xaml.cs)の変数 ft_font_name で設定しています。 

(他のフォントに変更も可能ですがフォントのライセンスに注意が必要です。)

フロー

図3. 作成ツールのフロー

マイコン側の処理

フォントデータの展開

フォントデータ(パソコンで作成したPack Bit情報)を、ILI9488へ送信するためには、2ピクセル毎のOn/Off情報から色の情報を含めたデータを作成します。

文字色=緑、背景色=黒 とした場合の送信データの例です。

col=0,row=0から、col方向に2ビットの情報を得て、

2つのピクセルがOFF,OFFの場合、「黒」「黒」
OFF,ONの場合、「黒」「緑」
ON,OFFの場合、「緑」「黒」
ON,ONの場合、「緑」「緑」となるデータを作成します。

row(page) 0~15の範囲でくりかえします。

図4. フォントデータと送信データ(RGB111)

フローと表示例

  インターフェイスDBI Type-C  Option3(8 bit転送 )を使用しています。

図5. 1文字の表示フローと表示例

ファイル一覧

パソコン側

下記のファイルがGitHubにあります。

MainWindow.xaml,
MainWindow.xaml.cs
SetPixelSize.xaml
SetPixelSize.xaml.cs
TestFont0123-Regular.ttf

プロジェクトを作成するためには、Visusal Studio 2022を起動後、「新しいプロジェクトの作成」で、「C# WPFアプリ(.NET Framework) (Windows Presentation Foundation クライアント アプリケーション)(C#, XAML, Windows, デスクトップ) 」を指定します。プロジェクト名に「MakeBitMap」を入力します。空のMainWIndow.xamlとMainWIndow.xaml.csが作成されます。

SetPixelSize.xaml は別 Windowになっています。追加する方法は、(https://vabc.hatenadiary.jp/entry/2021/11/21/085446)と同様です。ウィンドウ(WPF)名を、「SetPixelSize」として「空」のファイルを作成します。

開発環境: Windows 11 Pro , 22H2      .NET Framework 4.8 

Microsoft Visual Studio Community 2022 (64 ビット) – Current Version 17.3.5

GitHub登録場所: https://github.com/vABCWork/MakeBitMap

マイコン

図6. マイコン側ファイル一覧

(ルネサス提供ファイルとは、CS+の新規プロジェクトで作成されるファイルです。)

使用する割り込み処理:

図7. 使用する割り込み

ルネサス提供ファイルの修正(割り込み処理のコメント化)

本プログラムで使用する割り込み処理は、spi.cで記述するようにしました。

ルネサス提供ファイルの intprg.cとvect.hで記載されている、同名の割り込みルーチンをコメント化します。

図8. 割り込み処理のコメント化

GitHub登録場所: https://github.com/vABCWork/test_font