OLEDディスプレイ搭載ArduinoのMicroView (Uno互換) と、FM Tuner Si4703 評価ボードを組み合わせてFMラジオを試作しました。
電源はリチウムイオン電池+LiPro Charger。
動いてるところ。表示は1行目から周波数、ボリューム、感度 ([S]はステレオ受信)、放送局名*1、Radio Text(曲名等)。
タクトスイッチ(写真だとつけてませんが)か、Serialで選曲、ボリューム操作ができます。
ラジオ聞くだけなら付属のライブラリを使えば何の問題もなし。
U.S.やヨーロッパではRDS (Radio Data System)といって、放送局名や放送中の曲名、代替周波数などの情報がFM放送に重畳されており、Si4703はそのデコードもできます。が、SparkFunの配布しているArduinoライブラリだと、RDS機能の実装が手抜きでよく分からん文字列を拾ってくる。そこでデコーダーを書き直し、放送局名(PS, 最大8文字)とRadio Text(最大64文字、曲名、アーティスト名など)をきちんと抽出できるようにしました。
修正版のライブラリ、MicroView用のスケッチ(examples/uView_Radio4703)は以下に。
https://github.com/NeoCat/Si4703_FM_Tuner_Evaluation_Board/tree/master/Libraries/Arduino/Si4703_Breakout/examples
*1:U.S.だと曲名等も8文字ずつを時分割で送ってたりする曲もあります。