マイコン工作実験日記

Microcontroller を用いての工作、実験記録

LED追加実装

2024-02-17 10:59:02 | DoomPlayer

ボードの右端に長らくと未実装だったLEDを追加実装。音楽プレーヤで再生時に、曲に合わせて点滅します。元々のlvgl音楽プレーヤーが 4つの帯域に分割したスペクトル表示をする仕組みになっているので、その強さに応じて4色のLEDの明るさをPWMで変化させています。PWM制御にはちょうど4チャンネルのPWM出力ができるTIM2を使用。PWM出力に割り当てた端子に抵抗を介してLEDを直結しているだけの簡単な仕組みです。

それなりに明滅してくれますが、緑が暗めで青が明るめに表示されている印象。電流制限抵抗を調節するとか、PWMのデューティ比を各チャンネル毎に調節するとかした方がいいのでしょうが、試行錯誤するのも大変そうなのでこれで我慢。

LEDには秋月で購入した1608サイズのロームのチップLEDを使用しました。このサイズなら手半田作業できるのですが、ピンセットで掴み損ねて弾いてしまって赤色をひとつ紛失。カーペットの上に落としてしまうと、もう発見不可能です。

袋の張られた品番シールに色付けされているのが、とっても助かる。こういう気配りが嬉しいですね。


LVGL v9.0.0

2024-02-04 11:49:10 | Weblog

2週間前近くにLVGL v.9.0.0がリリースされました。メジャーバージョンが上がったことに伴い、機能追加だけでなくAPIの変更も生じているので、Nucleo-U575ZI版のDoomPlayerの対応作業を進めています。主要な変更はCHANGELOGに書かれていますが、わたしなりに気になった点を列挙しておきます。

  • リリース直後は、ドキュメントの更新が追いついていない箇所が多い印象を受けましたが、日々改善されているようです。
  • APIの変更では用語統一のために名前だけが変更されたものも数多くあります。旧バージョンとの互換性のためにlv_api_map.hというヘッダが用意されていますが、このファイルはlvgl.hからincludeされているので、気をつけないと新しい名前への変更を忘れてしまいます。
  • 座標を表現する型lv_coord_tが廃止され、int32_tを使うようになりました。以前は、int16_tとint32_tのどちらを使うかlv_conf.hで選択することができました。chart widgetで点数の多いグラフを描画する場合には、使用するメモリが倍になるかもしれません。
  • サポートするカラーフォーマットの名前と種類が変更されています。また、ビットマップイメージを表現する型lv_image_dsc_t (旧 lv_img_dsc_t)も変更されています。そのため、ビットマップ画像を埋め込んでいるアプリは、画像データの再変換作業が必要となります。
  • 1ヶ月ほどのベータ期間がありましたが、まだバグは残っています。
  • GPUサポートは、公式パートナーになってくれたベンダーのチップしかサポートしないという基本姿勢になりました。そのため、以前はSTM32のDMA2Dを使用するコードが含まれていましたが、v9.0.0ではDMA2Dは全くサポートされていません。DoomPlayerでは、ほとんど気になりませんが。。