超小型ディスプレイSSD1306の使い方【電子工作入門】
Вставка
- Опубліковано 6 січ 2025
- 電子工作で非常に良く利用される、小型のディスプレイ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
なかなか参考になる動画が沢山あって
久々に発見した素晴らしい
チャンネルだと思います。
原理説明が大変素晴らしい!
日本のヤマちゃんさん。
お褒め頂きありがとうございます^^
LovyanGFXがとても素晴らしいライブラリなので、この動画が使用者の一助になればと思っております。
インターネットから文字情報を取り込むプログラム解説された
動画をぜひ見たいです♪
あ、そうですよね(^_^;)
付録の応用例だし、WEB-APIをESPから叩くプログラムはかなり複雑なので、バッサリ解説を割愛してしまいましたw
ご要望いただきましたので、別途動画を作成したいと思います!
あ、ありがとうございます‼️
是非とも知りたい事です。
いつでも結構ですから無理のない様にして
新しい動画を楽しみに気長に待ちます♪
@@yamachandesu さん
ありがとうございます。頑張ります!
OLED SSD1306ですが、モノクロですよね!?
6:23でRGBを選択したのは何故ですか?
コメント遅くなり申し訳ございません。
ご指摘ありがとうございます。
なぜそうしたのか、もう忘れてしまって申し訳ないのですが、色々実験して、それじゃないと画像バケしちゃうとか、そういった理由だったと思います。