前回、Seeed ESP32S3のWebラジオでアルバムアートを表示出来るようになった。
しかし、ストリームタイトルが長いと、文字が小さくして全体を表示しようとするのだが、おじさんの目では見えなくなってしまう。
LCDを大きな物にしようかとも考えてはいるが、それでも小さい文字は読みにくいのである。
そこで、文字数多い場合はTicker表示(ニュース等が右から左へ流れる表示方式)にしてみることにした。
そこで早速、Google Geminiにお願いしてサンプルプログラムを書いてもらった。
にゃるほど。
スプライトを用意して、そこに表示テキストを毎回1dotづつ ずらして表示させると、ちらつきなく流れるように表示できる。
これを、ちょっとアレンジして前回のプログラムに組み込んで動かしてみた。
写真では分かりにくいが、20ms毎に1dotづつスムーズに横スクロールしてくれる。
なかなかに良い感じで、何とも「それっぽい」雰囲気を醸し出してくれるのである。
このように表示領域に収まる場合は、スクロールしない。
横スクロールすると見た目は良いが、全体を読みたいと思った時には少し煩わしく感じてしまうことも。
ということで、全体表示モードと、Tickerモードを切り替え出来るようにした。
そのかわり、ほとんど使うことの無かった詳細表示モードは廃止した。
全体表示モード
まぁ、こんなもんぢぁろう。
あと、たまにアルバムアートに関係の無い画像が表示されることが有ったのだが、Google Geminiにお願いして、精度を上げるコードを書いてもらって組み込んだ。
どの程度改善したかは分からないが、しばらく様子を見てみようと思う。
ああ、出来たら良いなと思った事は だいたい実現したような気がする。これで2.4インチ版では最終バージョンになると思う。たぶん。知らんけど・・
今回のコードは以下に入れておきますので、興味のある方はご自由にどうぞ。
-----------------------------
なお、Arduino IDEでコンパイル時の注意点は以前の記事と同様に、ツールメニューから
・USB CDC On BootをEnabledに設定
(これをしないとシリアルモニタが動かない)
・Flash ROMサイズを8MBに
・パーテーションを8Mで、3M APP/1.5MB SPIFFSに
・PSRAM:OPI PSRAM に設定
PSRAM無しではこのプログラムは動作しない。
・ボードライブラリは3.0.7を使用
他バージョンでも動作するかもしれないが、3.0.7を推奨
(最新版の3.3.7でも動作した。)
・ESP32-audioI2S-master ライブラリは3.0.13を使用
このプログラムでは3.0.13が安定動作
----------------------------------
「ふ〜ん、まだいじり倒すんぢゃろ?
それよりおいらをかまってくれていいにゃよ」
もちろん、かまってあげますとも。
------------------------------------------------------------
補足
注1)エンコーダー センターSWを押すと、Ch、Vol切り替え。
センターSW長押しで、Tickerモード ↔ 全体表示モード切替え
注2)WiFi設定はセンターSWを押しながら電源オンでWiFi設定モードが立ち上がるので、
スマホ等からアクセスして設定してください。こちらを参考に。
回路図はこちら
アンプ付きスピーカーに繋ぐことにしたので、モノラルのアンプは取り外した。
画像更新の際に「ジッ」とノイズが載る場合、以下のようにLCDのSCLとSDAに330Ω程度の抵抗を挿入すると低減します。(抵抗値の最適値は配線等で変わるので、現物に合わせて調整してください)SCL、SDAラインをGNDとツイストペアで配線するのもあり。
ブレッドボードでこんな感じ
主な部品
・PCM5102Aモジュール
・2.4インチLCD (240x320)(ST7789)(Ali-Expressあたりで売っている)
・Push SW付きロータリエンコーダー (Ali-Expressで安く売ってるのでOK)
その他
ここにアクセスすると、世界中のWebラジオステーション情報が手に入る。
お好みのステーションを探して組み込んで欲しい。








