齢寿天任せ

写真付きで日記や趣味を書くならgooブログ

XIAO_ESP32S3によるインターネットラジオの製作

2024-10-02 10:14:44 | 電子工作
Seeed StudioのXIAO ESP32S3が「技適」対応(スイッチサイエンスと秋月電子で入手可能)になっていたので、入手した。3年前の記事では、ESP32 DEVKITでインターネットラジオを製作したが、XIAO_ESP32S3はコンパクトなので魅力的である。スケッチ(プログラム)は開発環境やライブラリが新しくなっているので、そのまま流用とは行かず、作り直しになってしまった。作成したスケッチと構成部品との接続情報はGitHubに登録してある。
前回からの変更点であるが、まず(WiFi機能は必須なので)NTPサーバーを参照する時計機能を内蔵することにした。これにより、スリープ機能で使っているタイマー割り込み機能(制限が多く、最新のESP32開発環境(3.0)ではAPIの互換性がない)を利用しなくてすむ。また、スリープまでの残り時間を表示できるようになった。
OLED(表示装置SSD1306)のライブラリはAdafruitのものに変更し、EEPROMのライブラリはPreferencesに変更した。I2S_Audioのライブラリは現在もメンテナンスされているので、現時点で入手したものを利用させてもらう。
I2S DACは、UDA1334とPCM5102の基板が、変わらず安価に入手可能なので引き続き利用する(どちらも動作可能。ただPCM5102はスピーカー接続時はパワー不足)。
Arduino IDEは、2.1.0、espressifのESP32開発環境は「XIAO_ESP32S3」が利用可能な2.0.17とした(Arduino IDEのボードマネージャからインストール。古いとXIAO_ESP32S3が選択できない)。
Webブラウザからの操作をメインにするため、タクトスイッチは接続しないことにした(コード上ではサポートしている)。ブラウザの操作画面も1画面で済むようにアップデートしている。
XIAO_ESP32S3がコンパクトなので、5cmx8cmのブレッドボードに実装可能である。今回は、XIAO_ESP32C3&RDA5807用のプリント基板が手元にあったのでパターンカットと配線追加を行い流用した。XIAO_ESP32S3とXIAO_ESP32C3では、ピンとGPIOの割り当てが異なるので、コード側で対応が必要である。
※注 XIAO_ESP32C3では、このインターネットラジオの実現は不可。
なお、XIAO_ESP32S3にはPSRAMが搭載されているので、バッファのサイズが約800KBに拡張されるため、回線の遅延に対する安定度の向上が期待できる。
セットの写真、埃よけのアクリルケースに収めた。XIAO_ESP32S3に「技適」マークが見える。I2S DACはUDA1334を利用している。電源はスマホのUSBアダプタ(5V)から接続。

Webブラウザからの操作画面(操作方法はGithubを参照)を以下に示す。
このインターネットラジオはMP3またはAACストリームのラジオ局に対応しているので、SHOUTCASTにおいて、「TYPE」がMP3あるいはAACと表示されているラジオ局を選び、Winamp(.pls)ファイルをダウンロードして、その中のURLをブラウザの操作画面の「Preference Settings 」に設定し、試聴(TEST SET)してみて、安定に受信でき、かつ気に入ったラジオ局があれば保存(SAVE)して、引き続き楽しむことができる。
※注 利用する場合は自己責任でお願いします。



最新の画像もっと見る

コメントを投稿