Arduino – ESP32 ( SPIFFS 又は micro SD ) 自作Fontライブラリインストール方法

ここでは、私が Arduino core for the ESP32 用に自作したフォントライブラリのインストール方法と、M5Stack や ESP-WROOM-32 に搭載されている、SPIFFS フラッシュへのフォントファイルアップロード方法 ( micro SD の場合不要 )、および、文字コード UTF-8 → Shift_JIS 変換テーブルファイルのアップロード方法を説明します。
micro SD カードを使う場合も掲載しています。
ダウンロード先リンクや、How to 記事が散在していますが、ご容赦ください。

以下、フリーの東雲フォントの場合で説明します。
Windows 10 の場合です。

スポンサーリンク

東雲フォントのダウンロード

東雲フォントは当ブログでは何度も使わせていただいております。
電子工作家にとって、こんな素晴らしく有難いフォントはありません。

これの説明やダウンロード方法は、以下のページにまとめて、新たに作成しましたのでご参照ください。
開発者に敬意を表するためにも、できるだけ開発者元ページからダウンロードした方が良いと思います。

日本語漢字ビットマップフォント、東雲フォントについて

以下の2つのファイルを使いますので、予めダウンロードしておいてください。
【全角】

shnmk16.bdf

【半角】

shnm8x16r.bdf

半角のファイル名は、トラブルを避けるため、拡張子を除くファイル名を8文字以内にします。
以下のように名前変更しておいてください。

shnm8x16r.bdf → shnm8x16.bdf

Arduino core for the ESP32 をインストールしておく

Arduino IDE は 1.8.5 で動作確認しています。
Arduino core for the ESP32 は最新版をインストールしておいてください。
インストール方法は以下の記事を参照してください。

Arduino core for the ESP32 のインストール方法

SPIFFS ファイルシステムアップローダープラグインをインストールしておく(SDカードを使う場合は不要)

M5Stack には、4MB のSPI Flash メモリがあります。
そこのフォントファイルをアップロードするためのプラグインを Arduino IDE にインストールする必要があります。
以下の記事を参照して、予めインストールしておいてください。

ESP-WROOM-32 ( ESP32 ) SPIFFS アップローダープラグインの使い方

SPIFFS フラッシュメモリのパーティションテーブルを変更して、保存領域を拡大しておく(SDカードを使う場合は不要)

M5Stack の SPIFFS フラッシュメモリは 4MB あっても、Arduino core for the ESP32 でコンパイル書き込みを行う場合、デフォルト設定では東雲フォントを保存できません。
パーティションテーブルファイルを修正して、ユーザー保存領域を拡大しておく必要があります。
以下の記事を参照して変更しておいてください。

ESP-WROOM-32 ( ESP32 ) SPIFFS メモリサイズを大きくする方法

このパーティションテーブルファイルは、Arduino core for the ESP32 を更新すると消去されてしまうので、バックアップしておく必要があります。

SPIFFS 用自作ライブラリ、変換テーブルファイルのダウンロード及びインストール(SDカードの場合は不要)

ここでは、SPIFFS用について説明します。
SDカードやmicro SD を使う場合は不要です。
私が自作した、Arduino – ESP32 用ライブラリを Arduino IDE にインストールしておいてください。
GitHub から ZIPファイルをダウンロードしてそれを使ってインストールします。
ZIPファイルから Arduino IDE へのインストール方法は以下の記事を参照してください。

なお、古いライブラリが残っている場合は、必ずそのライブラリをフォルダごと削除してから再インストールしてください

GitHubにある ZIP形式ライブラリ のインストール方法 ( Arduino IDE )

SPIFFS用 UTF-8 → Shift_JIS 文字コード変換ライブラリ

昨今のPC環境の文字コードは UTF-8 が主流です。
ただ、東雲フォントはShift_JIS 並びになっているので、文字コード変換が必要です。
このライブラリも自作しましたので、GitHub の以下のページから ZIP ファイルをダウンロードしてください。

https://github.com/mgo-tec/ESP32_SPIFFS_UTF8toSJIS

ただ、このライブラリだけでは変換できませんので、別途変換テーブルファイルが必要です。

UTF-8 → Shift_JIS 変換テーブルファイル

上記のライブラリだけでは文字コード変換できませんので、変換テーブルファイルも自作しました。
GitHub の以下のページからダウンロードしていただき、

https://github.com/mgo-tec/UTF8_to_Shift_JIS

Utf8Sjis.tbl

というファイルを使用します。

東雲フォント SPIFFS 用ライブラリ

Shift_JISコードから東雲フォントを読み込むライブラリです。
GitHub の以下のページから ZIP ファイルをダウンロードしてください。

https://github.com/mgo-tec/ESP32_SPIFFS_ShinonomeFNT

SDカード用自作ライブラリ、変換テーブルファイルのダウンロード及びインストール(SPIFFSの場合は不要)

ここでは、SDカードおよび micro SD カード使用の場合について説明します。
SPIFFSを使う場合は不要です。

私の自作ライブラリは以下のリンクにありますので、ZIPファイルをダウンロードしていただき、Arduino IDE にインストールしてください。
インストール方法は以下の記事を参照。
GitHubにある ZIP形式ライブラリ のインストール方法 ( Arduino IDE )

SDカード用UTF-8 → Shift_JIS 文字コード変換ライブラリ

これは、現在主流の文字コード UTF-8 を Shift_JIS に変換する自作ライブラリです。

https://github.com/mgo-tec/ESP32_SD_UTF8toSJIS

UTF-8 → Shift_JIS 変換テーブルファイル

上記のライブラリだけでは文字コード変換できませんので、変換テーブルファイルも自作しました。
これは、SPIFFS と SDカード両対応です。
GitHub の以下のページからダウンロードしていただき、

https://github.com/mgo-tec/UTF8_to_Shift_JIS

Utf8Sjis.tbl

というファイルを使用します。

東雲フォント SDカード用ライブラリ

Shift_JISコードから東雲フォントを読み込むライブラリです。
GitHub の以下のページから ZIP ファイルをダウンロードしてください。

https://github.com/mgo-tec/ESP32_SD_ShinonomeFNT

SDカードにフォントファイルをコピーしておく(SPIFFSの場合は不要)

SDカード、および micro SD、micro SDHC を使う場合は、事前に FAT32 でフォーマットしておいてください。
SDXCカードは使わない方が無難です。
大抵、購入時点でフォーマットされていることが殆どだと思いますが、されていない場合、以下の記事を参照してフォーマットしておいてください。

micro SD 、micro SDHC カードの初期化(フォーマット)方法

その後、/font/フォルダを新規に作成して、その/font/フォルダに以下の東雲フォントファイルと変換テーブルファイルをコピーしておいてください。

shnmk16.bdf
shnm8x16.bdf (※shnm8x16r.bdfのファイル名を変更しておく)
Utf8Sjis.tbl

以上で、SDカード、または micro SD カードを使う場合のセットアップは終了です。

UTF8→Shift_JIS 変換テーブルファイルと東雲フォントファイルを SPIFFS フラッシュへアップロード(SDカードの場合は不要)

M5Stack や ESP-WROOM-32 のSPIFFS フラッシュへフォントファイルをアップロードするには、まず下準備が必要です。

スケッチの data フォルダにフォントファイルをコピーする

まず、Arduino IDE で適当なスケッチを「名前を付けて保存」しておいてください。
そのスケッチフォルダを開き、
data
というフォルダを新規に作成し、更にそのフォルダ中に
font
というフォルダを作成しておきます。
Windows 10 で、Arduino IDE デフォルト設定の場合、スケッチファイルを test_01 とすると、以下のパスになると思います。
User-Nameはご自分の PC のユーザー名です。

C:\Users\User-Name\Documents\Arduino\test_01\data\font

Arduino_Font_Lib_Inst01

そこに、Utf8Sjis.tbl ファイルと、全角東雲フォントファイル、半角東雲フォントファイル等の必要なフォントファイルをコピーしておきます。

shnmk16.bdf
shnm8x16.bdf (※shnm8x16r.bdfのファイル名を変更しておく)
Utf8Sjis.tbl

Arduino_Font_Lib_Inst02

SPIFFS アップローダープラグインでフラッシュへアップロード

次に、M5Stack や ESP-WROOM-32 をパソコンと USB 接続し、Arduino IDE を起動します。
下図の様に、「ツール」メニューから、
「ESP32 Sketch Data Upload」
をクリックすると、SPIFFS フラッシュへフォントファイルがアップロードされます。
この時、シリアルモニタを閉じておくことを忘れないでください

Arduino_Font_Lib_Inst03

以上、自作ライブラリのインストールと、フォントファイルの SPIFFS フラッシュアップロード方法でした。

上手くいかない場合、以下のトラブルシューティングを参照してください。

ESP32 ( ESP-WROOM-32 ) 自分的 トラブルシューティング まとめ

mgo-tec電子工作 関連コンテンツ ( 広告含む )

スポンサーリンク

Amazon.co.jp 当ブログのおすすめ

コメントを残す

メールアドレスが公開されることはありません。

*画像の文字を入力してください。(スパム防止の為)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください