2019年11月15日金曜日

ラズベリーパイでradikoラジオをつくる: その1 基板をとりあえず作ってみる


私の自宅アパートは鉄筋コンクリート造で、室内でのAMラジオ受信はノイズが混じり聴きづらくなっています。ベランダに出れば何の問題も無く受信できるので、いかんせんAMラジオ波の波長が長すぎて、建物の鉄筋に阻まれて室内に入って来られないのでしょう。その対策としてFM補完放送が登場してきたわけですが、我が家のラジオが旧すぎて受信上限90MHzなのでFM補完放送に対応できません。
そこで、iPadでradiko受信してみたんですが、スイッチをひねれば音が出る、といった操作性とはほど遠いことが面倒で、結局はノイズ混じりのラジオ受信に戻ってしまいました。
そんな時、書店でラジオ受信バイブル2018:radiko専用ホームラジオの製作作者のWebページ)という記事を見かけ、求めていたのはこれだと思い、更に自分なりに欲しい機能を盛り込んでみようと目論んだのが今回の製作です。

自分が欲しいRadiko専用ラジオの要件

  • Wi-Fiでインターネットに接続
  • 操作が簡便(スイッチを入れて選局ボタンを押せば聴ける)で、メニューボタンにより細かな操作にも対応できる
  • 音量調整はつまみを廻してできること、UP/DOWNボタンは面倒!
  • ラジコプレミアムに対応
  • パワーアンプを内蔵し音のよい外付けスピーカが使えること
  • 液晶画面に選局情報を大きく表示したい
  • リビングでの据置使用を想定して外部電源(5V 1A程度のUSB電源アダプタ)を使用するが必要ならモバイルバッテリーを使えること
  • いきなり電源ケーブルを抜いてもラズパイが壊れないよう簡易なバックアップ電源を備える

ラズベリーパイ周り

心臓部分はもちろんラズベリーパイ、Wi-Fi対応のRaspberry Pi Zero Wを使います。GPIOに操作用タクトスイッチ、中華グラフィックTFT LCD、ロータリーエンコーダを接続します。ちゃんと使えるかは、後から考えましょう。


電源周辺

  • 外部電源は、USB電源アダプタを選びました。入手性が良いので最近の工作では多用しています。でもUSB電源アダプタやUSBケーブルの品質は玉石混交ですね。特にスマホの急速充電の相性を目にして以来、安物には手を出さずANKER信者になっています。
  • 電源回路には、結構悩みました。ラズパイはLinuxなので、とくに電源オフ時はシャットダウン動作の時間稼ぎのため、しばらく電源供給を継続する必要があります、さらに、シャットダウン後に再起動させるには電源リセットの必要があるので、電源供給を遮断しなくてはいけません。
  • 電源スイッチには、プッシュスイッチを選んだのですが、電流容量がわずかしかないので負荷の入り切りには使えません。また、電源オン時は即動、電源オフ時は遅延させる動作シーケンスのため、VISHAYの負荷スイッチSiP32510を使うことにしました。
  • ラズパイのシャットダウン動作は、電源回路からPOWER_FAIL信号をラズパイ側で監視し、ソフトウエアでシャットダウン動作をします。電源オフの遅延時間はジャンパスイッチで切り替えできるようにしていますが、図の定数はテキトーです。実際に試してみたら倍ぐらいの時間になっていました。
  • 不意の停電や万一電源コードを抜かれても、シャットダウン動作の支障にならないよう、バックアップ電源も考慮しています。スーパーキャパシタを使う例を参考にしました。スーパーキャパシタは秋月で購入できる7.5F 5.4Vを選びました。スーパーキャパシタの充電にはLED用定電流ドライバ NSI45090JDを使って140mA程度でチビチビと充電しつつ、外部電源とスーパーキャパシタをダイオードで突き合わせてバックアップ電源としています。
  • Raspberry Pi Zeroは、正規の電源電圧は5Vですが、基板内のレギュレータPAM2306 で3.3V/1.8Vに降圧しています。トラ技の記事によると3.5V以上あればラズパイが動作できたとのこと。スーパーキャパシタの放電時は、時間とともに電圧が低下しますが、5Vへの昇圧回路を省略する代わりに、やや大きい容量のスーパーキャパシタを選びました。
  • スーパーキャパシタの再充電時間を減らすためスーパーキャパシタが放電しきる前に負荷を切り離すことを考えました。TOREXのパワースイッチ XC8107のUVLO(Under Voltage Lock Out)機能を使います。TOREXは、入手性が良くないですが消費電流が少ないことに魅力を感じてあえて選びましたが効果のほどはどうでしょう。無くても良かったかな...??


オーディオ周辺

  • Raspberry Pi Zeroにはアナログオーディオ出力が無いので、I2S出力を外部DACで受けてアナログに変換します。そのためには、どの端子にI2S信号が出てくるのか知りたいところ、公式ページを見てもよくわからない。Webを彷徨ってAdafruit I2S Audio Bonnet for Raspberry Piにすごーくわかりやすく公開されていました。
  • ラズパイは、オーディオDACが必要とする128fsとか256fsとかのシステムクロック信号を出力してくれません。そこで、システムクロック入力が無くても動き、外付け部品が少ないPCM5102Aを選びました。
  • オーディオアンプには、秋月でも購入できるD級パワーアンプPAM8304ASRを選びました。外付け部品が少なくてうまく動けば素晴らしい。


0 件のコメント:

コメントを投稿