Рет қаралды 10,021
電子工作で非常に良く利用される、小型のディスプレイOLED SSD1306の使い方についてお話します。
このディスプレイを使うにあたっては、らびやんさんの作られたグラフィックライブラリLovyanGFXを使用します。
マイコンは、ESP8266とESP32を使用します。
■リンク集
・LovyanGFX
github.com/lov...
・制作にあたり参考にしたページ
Lang-shipさんの記事。LovyanGFXの使い方について非常に詳細に書かれています。
lang-ship.com/...
・画像データを配列コードに変換するツール
lang-ship.com/...
・NewsAPI
newsapi.org/
■LovyanGFXの簡易リファレンス
【文字描画】
fillScreen(TFT_BLACK);
画面をその色で描画する。画面クリアに使う。
setFont(&fonts::Font0);
フォントを指定する。フォントの読み込みは一番最初にすること。
setTextColor(TFT_WHITE, TFT_BLACK);
文字色と背景色を指定する。
setTextSize(倍率);
倍率には小数の使用も可能。
textWidth(”abc”);
文字列の横幅を求める。
fontHeight();
フォントの文字の高さを求める。
setCursor(x, y);
カーソルの位置を移動させる
setTextWrap(false);
falseにすると、自動改行しなくなる。
print(”文字”);
文字列の単純出力。改行には
が必要。
println(”文字”);
改行付き文字出力。
printf(”文字、フォーマット, 引数);
フォーマット付き文字出力。
【画像表示】
pushImage(x, y, imgWidth, imgHeight, img);
描画先の座標(x, y)に横幅と縦幅を指定してimgのデータを描画する。
static LGFX_Sprite sprite(&lcd);
spriteのインスタンス作成。
sprite.setBuffer((void*)img, imgWidth, imgHeight, 16);
スプライトにimgを設定する。
sprite.createSprite(imgWidth, imgHeight);
スプライトを作成する。
sprite.pushSprite(&lcd, x, y, TFT_WHITE);
スプライトをlcdに表示する。
sprite.pushRotateZoom(&lcd, x, y, rad, zoom, zoom);
回転とズーム付きの描画関数。&lcdは基本必要なし。座標x, y, 角度, 横倍率, 縦倍率。
drawPng((std::uint8_t*)imgPng, imgSize, x, y);
PNGファイルの描画。
#電子工作 #ssd1306 #LovyanGFX