はじめに
- DSPラジオのモジュールやCHIPをいくつかArduinoで動かしてきたが、まとめとして、乾電池駆動の箱型ラジオを作成してみた。
- 合わせて、割込み処理や、LCDへの出力なども勉強してみた。
- いろいろ試行錯誤したのですが、最終的には以下のような形になりました。
全体的なつくり
- あまり複雑なものは作れないので、機能を絞って比較的シンプルな形にしました。
- 乾電池駆動。全体を3.3Vで統一。
- スピーカー一つでの出力。ボリューム付き。
- FMのみ。
- LCD付き。
- SEEK機能での選局
- 手動で0.1MHzずつの調整。
主として使用したパーツ
- FMラジオCHIP: RDA5807FP
- RDA5807シリーズの中から、FPを選択。割込み機能用のGPIOピンがあり、DIP化の際のはんだ付けが容易なため。
- Aliexpressで調達。10個で200円(送料込み)。安すぎ。
- マイコン:ATTINY85-20PU
- ATMEGA328を使っても良かったが、勉強もかねてATTINY85を選択。
- プログラムメモリは足りたが、割込み用のピンが少なく苦労した。
- LCD:AQM0802A-RN-GBW
- 秋月電子で調達。I2C接続の小型LCD。ピッチ変換基板は自作。
- 一般的なLCD1602Aは、大きさ、電圧の関係で使いにくかった。
- オーディオアンプ: PAM8403利用のモジュール。
- AMAZONで安価で売っているもの。
おおまかな制御方法
- SEEK機能での選局:選局が完了すると、5807FPのGPIOピンからトリガがでる。
- このトリガでATTINY85に割込みをかけて、周波数、RSSIをLCDに出力。
- SEEK機能の再開:タクトスイッチでSEEKを再開させる。
- タクトスイッチの状態をLOOPで読んで、SEEK機能を呼び出す。
- 手動で+0.1MHZ:タクトスイッチで0.1MHZずつ周波数を増やす。
- タクトスイッチの状態をLOOPで読んで、周波数セット機能を呼び出す。
おまけ
- 本記事はここまで。各パーツ、各機能にわけて投稿予定です。