M5radio RDA5807M (M5DialによるDSPラジオチップRDA5807Mの制御)

© CC BY 4+ visibility485
© CC BY 4+
visibility485

M5DialでDSPラジオチップを制御した。簡易GUIコンポーネントを自作し、画面制御を行った。また、テーマデータを書き換えることで配色を変更できる。現在使える機能は、選局と音量調整のみ

link https://github.com/triring/M5radio_RDA5807M
動画
開発素材

ツール

デバイス

システム構成
system image

ラジオチップの制御

ラジオモジュールの制御は、Ricardo Lima Caratti 氏が公開しているRDA5807用ライブラリを使用した。
非常に優秀なライブラリで、簡単な初期設定だけで、すぐに使うことができた。

円形液晶への描画

制御に使用したM5Dialの表示部の液晶は円形で、プログラムからみると240x240dotsの正方形の描画領域があり、その中の直径240dotsのエリアが円形として表示される。
円形液晶への表示は、限られた表示エリアに収まるように表示パーツを配置する必要があり、そのレイアウトに苦労した。 そこで、簡易のGUIコンポーネントを自作して、表示画面を実装した。

GUIについて

前述のように、M5Dialは特殊な画面構成なので、文字の色・大きさとその配置場所を試行錯誤しながら調整を繰り返していた。その中で、無駄な機能の重複などが複数あり、コードの共通部分を整理をしてクラスとしてまとめていたら、簡易的なGUIコンポーネントが出来上がった。

  • TitleBar
  • Button
  • ProgressBar
  • TextField
  • TextLabel
  • Theme

文字を表示する座標位置、フォントの種類とサイズなどを最初に定義しておけば、再描画時に、同じ位置に同じ内容を表示するだけのものである。
単純なものであるが、少し開発が楽になった。

テーマについて

前述の簡易GUIコンポーネントは、オブジェクトの配色を個別に設定できる。しかし、配色がバラバラでは統一感に欠ける。
そこで、Java Swing の設計思想を見習い、カラーテーマとして、白、黒、プライマリー 3色、セカンダリー 3色の合計8色の色配列を定義し、それを読み込んでコンポーネントに反映させる機能を追加した。

Java Look and Feel Design Guidelines

具体的なテーマの使い方は、githubの解説を読んでいただきたい。

メンバー
  • user
    triring @triring

関連イベント
  • event M5Stack Japan Creativity Contest 20242024-06-01 開催
関連リンク

同じニオイがする作品
  • event M5Stack ATOM Matrixを使ったクワッドコプター(ドローン)
  • event causal SW:電子工作応用教具作成用素材の情報共有コミュニティー
  • event はんだ付けなし 足で譜めくりするデバイス M5Atom Lite
  • event AZ-COREで自作キーボードを自由で簡単に

Proto lovers ♥
user

イベントまとめ

コンテストまとめ

作品を登録しよう

モノづくりしている人に、つくった作品を見てもらえ、リアクションがもらえるかも?

close

目次


Proto lovers ♥
user