齢寿天任せ

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

16KEY PADを使用した RDA5807 FM DSPラジオ

2023-07-06 16:13:26 | 電子工作

4x4 keypad(前掲記事)、RDA5807(前掲記事1前掲記事2)、Seeeduino XIAOを組み合わせたFMラジオを製作し、既に半年程利用しているが、とても安定していて、常用しているので紹介する。RDA5807はFM DSPラジオ用のICであり、SOP16ピンサイズであることや、使用部品が少なく済み(特にXtal発信回路にコンデンサが不要なのが良い)、自作派には使い易い。また、安価なのでお勧めである。さらに、ここで組み合わせたXIAOのI2C制御との相性も良い。

これまで複数のラジオを製作してきたが、使う立場で言うと、(特に選局が)ワンタッチで操作できるのが良い。自作であり、汎用にする必要はないので、4x4 keypadを利用して、地域に合わせて1放送局1ボタンにプログラミングしておくのが使い易い。

4x4 keypadと今回のMCP23107を組み合わせる場合、唯一の難点は両者を、8本のリード線で結ぶ(ハンダ付け)必要があり、細かい作業が必要なことである。以前の製作で利用した別の4x4 keypad(制御ICとKeypadが同じ基板に載っている)を利用してみるのも一案かもしれない(この場合、配線は4本で済む)。

今回のスケッチは、こちら(Github)に置いてある。

写真。100均のアクリルケースに格納している。ブレッドボードから、汎用基板に実装し直した。手前がXIAO、奥がRDA5807、その奥は表示用のOLED。アクリルケースの上面にKeypadを配置した。XIAOは、長さが短いので、全体をコンパクトにできるが良い。


MCP23017を使用した4x4Keypad

2023-04-01 13:41:09 | 電子工作

DSPラジオを製作して実際に使ってみると、放送局をプリセットボタンに定義しておいて選局するのが使い勝手が良い。実際に4x4のKeypadを使用した物を製作したが、I2Cインターフェースの調子が悪く、電源を入れてから時間が立つと応答が無くなる現象に悩まされて、いまいちであった。

今回は、別のパーツを組み合わせて4x4のKeypadを実現した。使用したのは、MCP23017(基板付)4x4のKeypad基板(前回よりコンパクト)である。

MCP23017はMCU(マイクロ・コントローラ)のポートの数が足りない時に、ポート数を拡張するためのICである。Arduinoでは、デフォルトでKeypad.hライブラリが用意されていて、4X4のKeypadが使える。ただし、この場合、接続する線が8本、つまりMCU側のポートが8個必要になる。MCUにはXIAOを使う予定なので、そのままでは、ポートが不足する。このMCP23017は、MCUとI2Cインターフェース経由で接続するため、線は2本(電源、グランド線を含めると4本)で済む。MCP23017をサポートするKeypad_MC17.hライブラリは、Keypad.hライブラリを拡張している。

評価のためのコードを以下に示す。コードの冒頭でincludeしたライブラリは、Keypad_MC17.h、Wire.h、Keypad.hである。Arduino IDEのシリアルモニタに、押したキー(customKey)が表示される。


#include 
#include  
#include 
#define I2CADDR 0x20    // keypad IC
#define MIN_ELAPSED_TIME 100
const byte ROWS = 4;
const byte COLS = 4; 
char hexaKeys[ROWS][COLS] = { {'1', '2', '3', 'A'},  {'4', '5', '6', 'B'},  {'7', '8', '9', 'C'},  {'*', '0', '#', 'D'}};
byte rowPins[ROWS] = {3, 2, 1, 0}; //connect to the row pinouts of the keypad 
byte colPins[COLS] = {7, 6, 5, 4}; //connect to the column pinouts of the keypad 
//Keypad 
customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 
Keypad_MC17 keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS, I2CADDR );
long elapsedButton = millis();
long elapsedPull = millis();
void setup() {
   Serial.begin(9600);
   Wire.begin(); 
   keypad.begin( );
   delay(500);
}
void loop() {
  char customKey = keypad.getKey();  // Check button commands
  if ((millis() - elapsedButton) > MIN_ELAPSED_TIME)  {
    // check if some button is pressed
    if (customKey){
      Serial.println(customKey); 
     if (customKey == 'D') {
        // todo 
     }  else if (customKey == '#') {
        //todo
     }  else if  (customKey == '0') {
       //todo
    }  else;  // and so on 
       elapsedButton = millis();
    } 
   delay(10);
}

MCP23017(基板)とKeypadの間は、適当なコネクタがなかったのでメスのピンヘッダ(4x2)を挿した上、8本のリード線で接続している。Keypadのピン番号{1,2,3,4}(COL)をMCP23017のポート{A7、A6、A5、A4}に接続、Keypadのピン番号{5,6,7,8}(ROW)をMCP23017のポート{A0、A1、A2、A3}に接続する。

I2Cのアドレスは、MCP23017の半田ジャンパーをすべてGND側に接続して、X”20”とした。MCP23017側のI2Cの接続はSDA,SCLの表示がある。なお、場合によっては数KΩのプルアップ抵抗が必要なケースがあるかもしれない。


Seeed Studio XIAO ESP32C3でWifiによる時刻設定が可能な時計の製作

2023-03-04 16:23:32 | 電子工作

Seeed Studio XIAO ESP32C3はESP32互換でWifiが利用できるMCU(マイクロコントローラ)である。外形はSeeed Studio XIAOと同じ大きさ、超小型である。スイッチサイエンスから購入(送料200円)した。Wifiのアンテナが付属していて、I-PEXコネクタで本体に接続するタイプである。余談だが、I-PEXコネクタが極小で、接続に苦労した。

試しに何かWifiを利用したものを作ってみようと考え、NTP(タイムサーバー)から時刻と日付を参照し、XIAOのRTC(リアルタイムクロック)に設定する時計を製作した。

いままで、RTCを内蔵したMCUをいくつか利用してきたが、時刻設定の機能をHW、SWで実現するのが手間な上に、電源OFFの度に設定が必要になるので、時計として利用しようとは思わなかった。それが、インターネットに接続してNTPから時刻と日付を参照できればことは簡単である。時刻を利用した作り物にも展開できる。

NTPから時刻を設定する方法はこちらのサイトを参考にさせて頂いた(感謝)。時刻関係のライブラリ(Timelib.h)はこちら。表示は定番のSSD1306のOLED、ライブラリはライブラリ管理から検索可能(Adafruit版)。

Wifiは、2つのWifiステーションのうち、電波の強い方を自動で選択できるように、WiFiMulti.hライブリを利用した(一つしかない場合は一方を適当に指定すればよい)。

I2Cの接続はデフォールト(SDA:4、SCK:5)でよい。

XIAO ESP32C3にはSleep機能があるので、時刻の更新時以外はスリープさせると、使用電力(十数mA)を節約できる。ただし、スリープさせるとArudionoIDEからスケッチの書き込みができなくなるので要注意である。スリープを有効にするのは、最後の書き込み時のみにする必要がある。なお、スリープを有効にしてしまった後は以下の手順で復旧できる。これは、スケッチの誤りで、XIAO ESP32C3がリセットを繰り返すような場合にも利用できるので覚えておく価値があると思う。

  1. USBを抜く
  2. BOOTボタンを押したままUSBを挿す、押したまま
  3. IDEからスケッチを書き込む
  4. 書き込みが完了したら、BOOTボタンを離す
  5. RESETボタンを押す

本記事のスケッチはこちらを参照のこと。

帆のように見えるのはWifiのアンテナである。シールになっていて貼付けることができる。右側の基板はアンテナの台として利用、XIAOには未接続である。


RDA5807(FM DSPラジオ)のI2S機能を使ってみた

2022-12-05 14:15:19 | 電子工作

RDA5807FP(FM DSPラジオ IC)が使い易く、地域のFM局の受信も安定しているので色々と試している。

RDA5807FPは、I2S経由でディジタル音声信号(ラジオ音声)を出力する機能を持っているのが面白いと思ったので、動作を確認してみた。ここではDAC(ディジタルーアナログ変換)にUDA1334を使用する(現在、スイッチ・サイエンスでは販売終了とのこと)。

RDA5807とUDA1334の基板側の接続は以下の通り。電源はUSBからの5VをVINに、基板のGND同士を接続する(写真を参照のこと)。

ピン1(GPIO1) ー WSEL 
ピン15(GPIO3)ー BCLK 
ピン16(GPIO2)ー DIN

写真では、マイクロ・コントローラ(MCU)として、RP2040‐ZERO (Raspberry Pi Pico相当)を使用している。

RDA5807のI2Sを有効にするには以下の初期化コードを追加する。

Wire.beginTransmission(0x11);
Wire.write(0x04); // REG4
Wire.write(0b10001000); // RDSIEN, De-emphasis 50μs
Wire.write(0b01000000); // I2S Enabled
Wire.endTransmission(); // stop transmitting
Wire.beginTransmission(0x011);
Wire.write(0x06); // REG6
Wire.write(0b00000010); // DATA_SIGNED
Wire.write(0b10000000); // 48KBPS
Wire.endTransmission(); // stop transmitting

上のコードでは、Wireライブラリを利用して、RDA5807のREG4、REG6を直接設定している。RDA5807側のサンプリングレートは最大の48KBPSに設定している。UDA1334はWSEL入力の周波数に自動で対応するようである。

結果として、UDA1334側からもラジオ音声は出力されたが、RDA5807からの出力と比較してみて、音質の違いは明確には認識できなかった。あと、I2S側は音量が調節できないので、後段にアンプを接続する必要がある。

ということで、I2Sを利用しても仕掛けが大掛かりになる割にはメリットがないので、実験にとどめておくことにする。


RDA5807(FM DSPラジオ)をRDA7088の回路で動作させてみた

2022-11-10 13:55:14 | 電子工作

RDA5807FPは、マイクロコントローラ(MCU)で制御するFM DSPラジオICであるが、接続によって、マイクロコントローラなしで動作(RDA7088相当)させることができることを知ったので確認してみた。

きっかけは、AliExpressなどで売られている(とても安価な)FMラジオのDIYキットにおいて、HEX3653の替わりにRDA5807FPが添付されているのを発見したことにある。HEX3653の互換品はRDA7088(データシート)である(どちらがオリジナルであるかは不明)。RDA5807FPのデータシートには、RDA7088モードで動作するとは書かれていない。しかしながら、RDA5807FPは、ピン6をVCC(つまりHIGH)に接続するとRDA7088として動作するのである。

まず、AliExpressから件のDIYキットを購入してみた。確かにRDA5807FPが添付されていた。ただ、このまま組み立てると壊しそうなので、ブレッドボード上にRDA7088相当の回路を構成し、組み込んでみた。なお、事前にピン6と他のGNDに接続するピン間に十分な抵抗値があることは確認済みである(でないと発火するので)。

ちゃんと動作したというが結果である。放送局のSEEK(探索)、ボリュームの増減がタクトスイッチ操作で可能である。また、RDA5807FPの受信品質は、ワイドFM含めて良好で、小型のスピーカーを十分に鳴らせることが分かった。

次に、このRDA5807FPが、マイクロコントローラ制御で動作するかを確認する必要があるが、これは、この後に組んだ回路(ピン6はGNDに接続)で確認済みである。

このRDA7088モードは、どうも「隠し仕様」であるらしい。なお、RDA7088は、RDA5807FPの検査不良品(例えばレジスタが設定できない等)であるかもしれないので、RDA5807FPとして動作する保証はない(念のため)。

件のDIYキットであるが、後日、RDA5807FPを別途購入(安かった)したので、それを組み込んで完成させた。タクトスイッチはケースに収めるため基板の裏側に付けた。なお、動作に必要な部品のみ実装している。


KT0915(AM/SW/FM DSPラジオ)の試作

2022-09-20 14:43:21 | 電子工作

AM/SW/FMが受信できるマイコン制御のDSPラジオ ICは、これが3つ目(AKC6955、Si4732、KT0915)であり、たぶんこれが最後だと思う。KT0915については、期待を込めて試作したが、結論から言うと、試作で終えることにした(残念)。なお、DSPラジオ ICは、色々と種類があって、電子うさぎさんのサイト(日本語のリンクが貼れないので「電子うさぎ DSPラジオ」で検索)を参考にした。

結果のまとめを少々述べることにする。

SW(短波)の受信感度は、Si4732>AKC6955>KT0915の順であった。FMだけなら、KT0915が良い。AKC6955がそれに次ぐ(が製作上の安定度はいまいちで苦労した)。Si4732は、FMについては、音質が良くないのでお勧めではない。AMについては、感度はSWと同じ順番である、ただ、どれも音質は良くない、利用は電波状況が良い場所に限られると思う(筆者の環境は高雑音)。

マイコン(Arduino)用のライブラリは、いずれも、pu2clrさん作の物が利用できる(Si4732とKT0915で利用した)。特にSi4732(Si4735と同じ)の物は完成度が高い(そのまま利用した受信機が売られている程)。

KT0915は、KTマイクロ製、SSOPの16ピン ICである。ピン数が少ないため、部品点数が少なくて済むので、自作向きである。ただ、変換基板に載せるためのハンダ付けは、ほぼ限界である。AKC6955(SSOP、24ピン)で失敗した経験が役に立って、今回は上手くいった。

Arduinoは、Seeeduino XIAOを利用した。pu2clrさん作のKT0915用ライブラリは、GitHubにあるが、ArduinoのIDEのライブラリ管理の検索から「KT0915」で検索するとインストールできる。

試作ではpu2clrさんのGitHubのexamlpesフォルダにあるKT0915_02_OLEDをベースに、少々改変を加えた。詳細は筆者のGitHubを参照して頂きたい。なお、Arduino Pro Miniベースの回路図が前記のexamlpesフォルダにあるが、受信周波数を変更するロータリーエンコーダ(スケッチには存在)が省略されている。試作したスケッチでは、受信周波数の変更はタクトスイッチで行なっている。

さて、評価であるが、FMはリード線程度のアンテナで問題なく受信できた。音質もまずまずである。音量は小音量でスピーカーを鳴らせる程度、やはりアンプが欲しい。AMは、地元に4局(距離は20から30km)あるが、大電力(100㎾と300㎾)の2局(NHK)のみ受信できた。音質は良くない。SW(短波)は、マグネティックループアンテナを使用したが、7MHz帯の北京放送すらまともに受信できなかった(Si4732では同じアンテナで複数局が受信できたのに)。

 


Si4703搭載FMラジオチューナ評価ボードによるFMラジオ その3

2022-08-26 14:43:08 | 電子工作

SiliconLabのSi4703(FM DSPラジオIC)搭載の評価ボードについての記事は、3つ目(その1その2)である。この評価ボードで製作した2台のFMラジオはもう2年以上実用している。今回の記事は「その1」で行った試作の直ぐ後に作成したFMラジオについて紹介する。その概要とコードはGitHubに載せている。

特徴として、回路を簡単にし、部品を減らして、再現性を高めている。Si4703の制御は、Atmega328pで行ない、電圧を3.3Vに統一している。使用しているタクトスイッチ(ボタン)は3つだけである。表示にはOLED(SSD1306)を利用している。コントローラの基板(Auduino UNOなど)をラジオセットに持ち込まないのでコンパクトに組み立てられると思う。余談であるが、最近、Aruduinoの値段が高くなっていて、Auduino UNOなどを新規に買いたいと思わない。

写真に示したが、操作は、ボリュームの大小とFM局の選択だけである。百均のクリアケースに収めている。FM局の名前と周波数、ボリューム値をOLEDに表示する。FM局の名前と周波数は、予めコーディングしておく必要がある。受信できるFM局が多い場合は、タクトスイッチを追加して、正逆の選択ができるようにした方が良いかもしれない。電源はUSBからとるようにしている。5Vの電圧をAMS1117-3.3を使って3.3Vに変換している。

配線の様子は以下の通り。部品は最少である。なお、基板の下にも電源ラインの配線あり。Xtal発振子の周波数は16MHzである。発光ダイオードはピン19(PB5)に接続している。起動時に点滅する。

Atmega328pを単体で扱う場合は、いくつか考慮が必要である。その辺りの話はこちらのネット記事を参考にすると良い。まず、Atmega328pにはブートローダが書き込まれていなければならない。前記のネット記事にはその方法(Arduino UNOが必要)が紹介されている。難しいと感じる場合は、Atmega328pを購入する時にブートローダが書き込まれた物を購入すると良い。秋月電子から購入可能(それ程値段は高くならない。ピン配列のシールが貼付け済みで便利)である。

Atmega328pにスケッチを書き込む一番簡単な方法は、Arduino UNOの既存のAtmega328pを抜いて、該当のAtmega328pを差し込んでしまうことである。これが無理な(抜き差しには器具とコツがいる)場合は、USBシリアル変換器と若干の回路が必要である。これも前記のネット記事に説明されている。お勧めのUSBシリアル変換器は、ネット記事にも紹介されている秋月の FT232RL USBシリアル変換モジュール (AE-UM232R)であるが、同様なものがAmazonなどでも入手できる。ただし、PC側でのドライバの対応と、Atmega328pをリセットするための信号(DTR)がサポートされていることが必要である。

なお、Atmega328pの書き込みは5Vで行うことになっているので、スケッチの修正時に、既にSi4703やOLEDなどを組み込んだ基板上(3.3V)では書き込みできないので注意が必要である。また、3.3V動作では、16MHzのクロック周波数は保証されていないので、これも注意が必要(動いたらラッキー)である。


M6955(AKC6955)によるオールバンドラジオ受信機の製作

2022-05-13 16:17:58 | 電子工作

M6955(AKC6955)は、FM/TV/MW/SW/LWマルチバンドのDSPデジタルラジオICである。かなり歴史のあるチップで、中華の開発元AKC technology limitedのホームページは既に検索できなくなっている。このチップとの付き合いは、コロナ禍の始まる前からなので、既に3年近い。何とか纏まりが付いたので結果を報告することにした。最終のスケッチはGitHubにアップしている。

事の始まりは、aitendoのDSPラジオモジュールを見つけたことにある。マイコン制御のDSPラジオに興味があったので早速購入(2019年8月)したが、後から考えると少々敷居が高かったようである。Arduinoによる制御が目標であったが、チップもプログラムも実績なしで始めたため、モード(AM/FM)の変更までは確認できたものの、受信周波数の設定(つまり放送局の受信)は、ついに成功しなかった。このチップは色々と配線を替えて試しているうちに、誤ってDC9Vを印加して、燃やしてしまった。5VのArduinoと3.3VのDSPラジオを混在させてはいけない(信号の電圧レベルの変換が必要で配線が複雑化する)という教訓を得た。ただ、このDSPラジオモジュールには(受信周波数設定用レジスタの)不具合があったと、今でも思っている。ちなみに、この時利用していたArduinoのスケッチは、もへある氏作のもので、最終的なスケッチに一部原型が残っている。

前述の反省により、3.3Vで動作するArduino、ProMini(8Mhz動作)と、M6955チップをAliExpressから購入した。M6955チップを変換基板にハンダ付けするのには難儀したが、何とか成功。結果として、所期の目標機能(モード変更、受信周波数の変更など)は、ほぼ確認できたのであるが、ProMiniのI2Cに、M6955と表示用のOLEDをマルチドロップ接続すると、動作しなくなるいう不具合が最後まで解決出来なかった。プルアップ抵抗を追加するなど色々試したが無駄であった。そのまま、暫く放置(2019年12月頃)。

2020年になって、既に入手していたXIAOでは、どうかと思い付き、ProMiniから変更すると、OLEDの表示が可能になった。XIAOのI2CはM6955と相性が良かったということである。気を良くしたので、スケッチを改良して最終化(GitHubに登録した物)した。以下の写真は全体の最終形で、配線をブレッドボードから汎用基板(ブレッドボード互換)に替え、ケースに収めている(2022年の作業)。

感想を別稿のSi4703との比較で述べてみたい。一番大きな違いは、Si4703は無線機指向で、M6955はラジオ指向であるという点である。理由は、前者は受信周波数が1KHzステップ単位で変更が可能であるのに対して、後者は受信周波数の変更ステップ幅がモードごとに決まっていて、結果として1KHzステップ単位での受信周波数が選択できない点。これはラジオとしては問題ないが、無線機として致命的な欠点である。感度は、Si4703の方が良い。ただし明瞭度の点で若干問題がある。FMについては、M6955の方がはるかに音質が良く、Si4703は実用レベルとは言えない。AM(中波)については、XIAOとの電波干渉(AGCが効いて感度が低下?)がありバーアンテナの相性が良くない(実用性は期待できない)。音声出力はSi4703はイヤホンが精々で、M6955は音声出力が0.5Wあるので、小型のスピーカーを直接接続できる。


100均の単三2本のUSB充電器

2022-04-26 15:31:23 | 電子工作

最近、「USB家電」なるものの種類が増えてきた。スマホの充電器のUSB端子に差し込むと使えるタイプの家電のことである。スマホの充電器はどこの家でも転がっているし、テーブルタップにもスマホの充電器付きのものがある。従来、乾電池で動作していたものが、続々と「USB家電」に変わりそうである。ただし、リチウム電池内蔵のものを増やすのは止めた方が良い。リチウム電池は扱いが難しいので、安物は危険であるし、捨てる時にも困る。一方、リチウム電池なしの「USB家電」は安価で、「百均」と相性が良い。

例を挙げると、卓上用のUSB扇風機。パソコンのUSB端子に接続できるし、パーソナルには十分涼しい。手元用のLED照明。夕方に手元が暗くなって来た時に重宝である。USBのミニルーター。USBパーソナル加湿器。等々。電子工作でも、元々、乾電池で動作する想定の物が多いので、USB電源がとても便利である。USBのコードは、壊れたマウスの物が再利用できるし…。

「USB家電」が増えてくると、USB電源が無い所で使いたいとか、停電の時に使いたいという要求が出てくる。基本的にはモバイルバッテリーがあればOKである。ただ、モバイルバッテリーは再充電が必要という問題がある。じゃあ乾電池は使えないか?ということで探してみたところ、セリアのUSB充電器ダイソーのUSB充電器を発見した。いずれも単三の乾電池2本で動作する(注 最近のダイソーの物は乾電池4本、500円)。記事を参照すると、両者ともスマホの充電には、能力が足りない様子。さらにセリアの商品については、スマホには使えないという表示があり(電力不足)。あくまでも緊急用。しかしながら、「USB家電」の電源には十分と考える。

単三電池2本(3V程度)から、USB電源(5V)を得るためには、昇圧回路が必要で、分解して調べた記事あり。部品だけ集めても100円超える。これを、100円で売れるのだから、「百均」恐るべし。

正体が分かったところで、セリアで見つけて購入、使ってみた感想を報告。まず、様子を見るため、壊れたマウスを接続した。LEDが光り、電圧を測ると4.6Vあり。次に、USB端子に直接差し込めるLED照明を接続。懐中電灯として使える。最後に、電子工作で製作したFMラジオを接続、無事に動作。昇圧回路の効率が問題になるので、普段使うにはお勧めではないと思うが、メリットは、使い古して、1.2V位になったアルカリ乾電池が十分使えること。FMラジオは数時間動作したので、捨てるだけの乾電池が有効利用できる。ただし、電力を食う「USB家電」には使えないのでご注意を。

USB端子に差し込めるLED照明、Amazonなどで売ってます。

USBのコードは、壊れたマウスのものを使用。


Si4732によるオールウェーブラジオ受信機の製作

2022-01-23 12:55:24 | 電子工作

Si4732はSiliconLabs社のSOP16ピンのDSPラジオICで、FM、AM、SW受信に対応している。I2Cによるマイコン制御である。Amazonなどで販売されているラジオ受信機に採用されている。ICはAlixexpressから購入できるが、人気があるのか比較的高価である。コロナ禍前には、1個300円台であったが、半導体不足騒ぎの頃は1個800円台まで高騰したことがある。人気の理由は、マイコン(Arduino)のスケッチ(良くできていて、特徴として、コードからファームウェアにパッチをあて、SSBを受信可にしている)がGitHubから入手できるからである。不良品(5個単位なので大損?)の懸念もあったが、決心して購入した。データシートアプリケーションノートはネットから入手できる。

配線はブレッドボード上に行うので、Si4732はSOP16ピン用の変換基板にハンダ付けする必要がある。Si4732の供給電圧は3.3Vなので、マイコン(Arduino)はArduinoProMini(3.3V)にする。5V系のArduinoにするとレベル変換が必要である(配線を誤るとSi4732を破壊するリスクあり)。回路図、必要なパーツや全体の配線については、GitHub(SI4735/examples/SI47XX_03_OLED_I2C)を参照する。特別なパーツとしては、表示にOLED、同調にロータリーエンコーダを利用している。組み立てにあたってはこちらも参考にすると良い(ただし5V系のArduinoなのでご注意。部品が揃わない時はこちら(ヤフオク)から購入するのも手)。なお、Arduinoのスケッチは、Si4732と互換性があるのでピン番号を変換すればそのまま利用できる。注意点は、I2Cのアドレスであるが、Si4732のSENBピンの接続によって変更できるらしい。ここで使うスケッチでは、I2Cのアドレスを自動識別しているとの記述もある。筆者のところでは、SENBピンをGND(グラウンド)に接続した状態で動いている。

回路の接続を終えた後は、ArduinoProMiniにスケッチを書き込む必要がある(注 ArduinoProMiniはUSB-シリアル変換器が必要)。まずAuduinoIDEにSi4735のライブラリをインストールする必要があるが、pu2clr/SI4735には、ライブラリマネージャから”si4735”を検索してインストールする方法が紹介されている。ArduinoProMiniに書き込むスケッチは、”SI4735/examples/SI47XX_03_OLED_I2C/SI47XX_02_ALL_IN_ONE_OLED/SI47XX_02_ALL_IN_ONE_OLED.ino”である。なおArduinoProMiniとSi4735の接続方法がスケッチの冒頭に紹介されているので、Si4732の対応するピンに読み替えて接続すれば良い。使用するOLEDはSSD1306(I2C)タイプで、ライブラリはライブラリマネージャから”Tiny4kOLED”を検索してインストールする。

FM、AM、SW(短波)の受信を確認してみた。アンテナは室内設置のマグネチックループアンテナである。全体の印象としては、IC個体のせいかもしれないが、明瞭度が「いまいち」と感じる。音量のレベルはイヤホンでもギリギリで、アンプが必要である。バックグラウンドのホワイトノイズ系の雑音が気になるので、増幅すると耳障りかもしれない。ローカルのFM局は受信できた。ただし音質が「いまいち」で、常用する気にはならない。AMは、ローカルの大出力の局(NHK)が受信できた。民放局は信号を感じるが放送内容が聴き取れないレベル。SWは、7MHz帯の北京放送が何とか聴き取れた。SSB(Single Side Band)は切り替えが確認できたが、SSB局がいないので実際の受信状況は確認できていない。作って楽しむには面白いが、無線機として実用に使うには、ちょっと厳しいレベルである。