Arduino用SJIS漢字フォントライブラリ SDカード版を作成しました
以前作成した Arduino用のUTF-8版の漢字フォントライブラリ SDカード版をベースにして
シフトJIS版の漢字フォントライブラリ SDカード版を作成しました。
指定したシフトJISコードに対応する漢字フォントデータを取得するAPIを提供します。
漢字フォントは8、10、12、14、16、20、24ドットのサイズの利用が可能です。
フォントデータはSDカード上に配置して利用します。
公開ページ
・Arduino用SJIS漢字フォントライブラリ SDカード版
https://github.com/Tamakichi/Arduino-SJISKanjiFont-Library-SD
ライブラリの利用にはSDカードが必要となります。
ライブラリに添付しているサンプルプログラム
// SJIS版フォントライブラリ利用サンプル // 作成 2018/10/27 by Tamakichi // #include "SDSfonts.h" // ビットパターン表示 // d: 8ビットパターンデータ // void bitdisp(uint8_t d) { for (uint8_t i=0; i<8;i++) { if (d & 0x80>>i) Serial.print("#"); else Serial.print("."); } } // // フォントデータの表示 // buf(in) : フォント格納アドレス // void fontdisp2(uint8_t* buf) { uint8_t bn= SDSfonts.getRowLength(); // 1行当たりのバイト数取得 Serial.print(SDSfonts.getWidth(),DEC); // フォントの幅の取得 Serial.print("x"); Serial.print(SDSfonts.getHeight(),DEC); // フォントの高さの取得 Serial.print(" "); Serial.println((uint16_t)SDSfonts.getCode(), HEX); // 直前し処理したフォントのコード表示 for (uint8_t i = 0; i < SDSfonts.getLength(); i += bn ) { for (uint8_t j = 0; j < bn; j++) { bitdisp(buf[i+j]); } Serial.println(""); } Serial.println(""); } // // 指定した文字列を指定したサイズで表示する // pSJIS(in) SJIS文字列 // sz(in) フォントサイズ(8,10,12,14,16,20,24) // void fontDump(char* pSJIS, uint8_t sz) { uint8_t buf[MAXFONTLEN]; // フォントデータ格納アドレス(最大24x24/8 = 72バイト) SDSfonts.open(); // フォントのオープン SDSfonts.setFontSize(sz); // フォントサイズの設定 while ( pSJIS = SDSfonts.getFontData(buf, pSJIS) ) // フォントの取得 fontdisp2(buf); // フォントパターンの表示 SDSfonts.close(); // フォントのクローズ } void setup() { Serial.begin(115200); // シリアル通信の初期化 SDSfonts.init(10); // フォント管理の初期化 Serial.println(F("sdfonts liblary")); char str[] = {0x7a,0x7b,0x7c,0x7d,0x7e,0xa2,0xb1,0xb2,0xb3,0};// z{|}~「アイウ fontDump(str,14); fontDump("\x82\xa0\x82\xa2\x82\xa4\x82\xa6\x82\xa8",16);//あいうえお fontDump("\x82\xa0\x82\xa2\x82\xa4\x82\xa6\x82\xa8",20);//あいうえお fontDump("\x8d\xe9\x8B\xCA\x81\x99\x82\xB3\x82\xA2\x82\xBD\x82\xDC", 24); // 埼玉☆さいたま } void loop() { }
実行結果
このライブラリは豊四季Tiny BASIC for Arduino STM32に組み込むために作成しました。
TFT、NTSC、OLED画面に日本語文字列を表示したいと思っています。
BASICにてアドベンチャーゲーム的なものが作れないかなぁっと。
Arduino IDEでは、文字列にUTF-8を利用しているため、
このシフトJIS版でのフォントデータの扱いはちょっと面倒です。
通常は、UTF-8版を使った方が良いでしょう。
« Windows 10上にWSLを使ってUbuntuをインストールする | トップページ | 「Z80-CP/M 2.2 emulator running on ESP8266」を試してみました »
「日記・コラム・つぶやき」カテゴリの記事
- gitでサブモジュールを作成する(2025.02.01)
- 焼き芋ちゃんカレンダー、ポチリました(*´ω`*)(2025.01.31)
- Windows環境不要かも..(2025.01.20)
- 不明なアクセス集中ページを非公開にしました(2025.01.15)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
「arduino」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Zorin OSでArduino Uno互換機(CH340)が認識しない(2025.01.19)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- Arduino用 SKK日本語変換ライブラリの開発 その1(2024.12.28)
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
「AVR」カテゴリの記事
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
- Arduino用SJIS漢字フォントライブラリ SDカード版を作成しました(2018.10.30)
- ATtiny13AでI2C接続キャラクタLCDを利用する(4)(2018.04.16)
- ATtiny13Aで赤外線リモコン受信センサーを使う(2)(2018.04.15)
- ATtiny13AでHC-SR04を使った距離計測(2018.04.14)
「STM32」カテゴリの記事
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- 「Arduino STM32 リファレンス 日本語版」が2万アクセス突破!(2021.03.26)
- SPI接続フラッシュメモリモジュールを入手しました(2020.05.13)
- Arduino STM32でキャラクタ液晶ディスプレイを使う(2019.06.01)
« Windows 10上にWSLを使ってUbuntuをインストールする | トップページ | 「Z80-CP/M 2.2 emulator running on ESP8266」を試してみました »
コメント