aitendo 16x16LEDマトリックスの制御 (4)
前回からの続きです。
取りあえず、SDカードにWindows ビットマップファイル(モノクロ)を入れてその画像を
表示出来るようにしました。
前回からビットマップファイルを操作するクラスを作成・追加しました。
次のような画像をペイントツールで作成して表示してみました。
動作の様子
この方法だと、画像ファイルを差し換えるだけで任意のメッセージを表示出来ますね。
スケッチ ダウンロード sample4.zip (7.9K)
※ライブラリは含まれていません。別途ダウンロードして下さい。
・MsTimer2
http://playground.arduino.cc/Main/MsTimer2
・漢字フォントライブラリSDカード版
https://github.com/Tamakichi/Arduino-KanjiFont-Library-SD
ビットマップファイルの表示部は次のような感じです。
void test_bitmap() { uint8_t tmpbuf[32]; // 表示パターンバッファデータ uint8_t rc; uint8_t w,h; memset(tmpbuf,0,32); sdbitmap bitmap; bitmap.setFilename("IMG2.BMP"); // ビットマップデータオープン rc = bitmap.open(); w = bitmap.getWidth(); h = bitmap.getHeight(); Serial.print(F("bitmap open rc=")); Serial.println(rc); for (uint8_t i=0; i<w; i+=16) { // データの取得 bitmap.getBitmap(buf, i, 0, 16, 16, 1); // 1文字分スクロール表示 for (int8_t t = 0; t < 16; t++) { scrollBitmap(tmpbuf, 16, 16, B0001); clearBitmapAt(tmpbuf, 16, 16, 15-t, 0, 16, h); setBitmapAt(tmpbuf, 16 ,16, 15-t ,0, buf, 16, h); memcpy(fbuf,tmpbuf,32); delay(30); } } delay(2000); bitmap.close(); }
巨大なビットマップファイルも扱えるよう、ビットマップファイルから任意の位置の
画像データを取り出して表示出来るよう作成しました(まだまだ作成中)。
bitmap.getBitmap(buf, i, 0, 16, 16, 1)が16x16のサイズの画像を取り出しています。
現状、取り出す座標指定が横座標が8の倍数である必要がありますが、これも
完全に任意の座標を指定できるようにしたいと考えています。
アナログジョイスティック操作で巨大画像を上下左右スクロール表示するってな
感じのものを実装し、ビットマップファイル操作ライブラリを完成させたいと思います。
その5に続きます。
« Alliexpressで注文した商品が来ないので全額払い戻し | トップページ | aitendo 16x16LEDマトリックスの制御 (5) »
「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)
「表示器制御関連」カテゴリの記事
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
- Arduino用 美咲フォントライブラリを更新しました(2024.03.21)
- Raspberry Pi Pico(MicroPython)でLEDドットマトリックスを使ってみる(2024.03.14)
- Raspberry Pi Pico MicroPython用のマルチフォントライブラリ(2023.02.09)
- MicroPython(Raspberry Pi pico)で8x8ドットNeoPixcel文字表示(2023.02.08)
« Alliexpressで注文した商品が来ないので全額払い戻し | トップページ | aitendo 16x16LEDマトリックスの制御 (5) »
コメント