FMrabit-iは、IchigoJam用FMラジオキットです(半田付けが必要)。
7セグLEDによる周波数、音量の表示が可能です。
イヤホン又はアンプ付きスピーカーを御用意ください
(又はTVの音声入力にも接続可)。
スマホ用イヤホンのボタンによる操作にも対応しています。
ワイドFM(AM放送局のFM補完放送)にも対応しています。
エッジコネクタによりmicro:bit用周辺機器の利用が可能です。
また、液晶(ILI9341/AQM1602Y)やUSBシリアル用のスルーホールを備えています。
IchigoDakeでは電源供給用にIchigoIgai等を併用してください。
RISC-V版IchigoJamRに関しては1.5β8で動作確認済みです
(プログラムの先頭にLED0又はLED1の追加が必要になる場合があります:7セグ表示用)。
IchigoJam互換機J@mbitを使用する場合は、ピンソケットの追加が必要です。
IchigoJam/IchigoJamRに取り付けて、立てて使えるデザインになっています。
ボタンの長押しでチャンネル/音量のモードを切り替え、
短く押すとチャンネル/音量が変わります。

拡張用のスルーホールとしして以下があります。
(1)USBシリアルHW-728用(左側:写真のピンソケットは付属しません。)
こちらのお店で取り扱いがあるようです:https://www.shigezone.com/product/hw728/
(2)ILI9341液晶用(左側)
(3)AQM1602Y液晶用(中央下)
(4)NeoPixel用(左上)
(5)サーボ用(左下)
なお、右側はエッジコネクタになっており、micro:bitと接続したり、
micro:bitの周辺機器が使用できます。
IchigoJam基板の部品とぶつからないように長めのピンヘッダーが付属します。
基板間の距離は約18mmなので、立てて使用しても安定しています。
パーツ 一式(7セグLEDは時計用のものが付属します。)
IchigoDakeの場合は電源供給の為に、IchigoIgai等が必要です。
IchigoDakeとの組み合わせでは、高さが合わないので寝かせて使用します。
IchigoJam互換機J@mbitとの組み合わせでは、J@mbit側にピンソケットの追加が必要です。
J@mbitはIchigoCake用BASICに更新することも可能で、その場合は4Kバイトが利用できるので多機能なFMラジオも実現できるでしょう(時計表示、タイマー動作等)。
J@mbitとの組み合わせでは、高さが合わないので寝かせて使用します。
回路図です。

FMrabit-i ラジオキット 説明書 2021.6.17 MAENOH
本製品はIchigoJam用FMラジオキットです。
キット製品であり、半田付けが必要です。*IchigoJamは、jig.jpの登録商標です。
IchigoJam BASICのバージョンは1.4.2を推奨します
(1.4.3ではプログラム対策しても7セグLED表示がちらつきます)。
IchigoDakeでは別途3.3VのVCC電源が必要です(IchigoIgai等を御利用ください)。
RISC-V版IchigoJam Rは1.5β8で動作確認済みです。
IchigoJam互換機J@mbitを使用する場合は、ピンソケットの追加が必要です。
(J@mbitの場合は、IchigoCake用ファームに更新することで4Kバイトが利用可能で、
より多機能なFMラジオを実現できます。)
基本機能
(1)FMラジオ受信(周波数/音量をI2C制御)
(2)イヤホン端子からのステレオ音声出力(スマホ用イヤホンのボタンによる操作も可能)
(3)7セグLEDによる周波数/音量の表示
(4)イヤホン端子からのIchigoJam音声出力
(ジャンパーピンによりラジオの右出力と切り替えます。
左出力ではラジオを聴くことができます。)
備考:ラジオ用プログラムを実行し、選曲、音量調整をした後は、
プログラムを停止しても聴き続けることができます。
外付けスピーカーはダイソーのアンプ内蔵タイプをお勧めします。
アンプなしの100均のスピーカーでは音は小さめです。
拡張機能(上級者向け)
(EX1)イヤホン端子からのビデオ出力
(ジャンパーピンによりラジオの左出力と切り替えます。
TVとの接続にはステレオミニプラグRCAピン変換ケーブルが必要です。)
(EX2)液晶ILI9341を取り付け可能(1.4.3LCD用ファームに更新要、R6でバックライト調整可)
(EX3)液晶AQM1602を取り付け可能(なお、JP6でリセットをVCCに固定できます)
(EX4)I2C用Groveコネクタを追加可能(JGRV1:縦型コネクタ)
(EX5)7セグLED はアノードコモンで6ピンx2行のものの多くに対応。
(小数点なしの時計用4桁や、小数点付き3桁など。
2行の距離が20.32mmの大型のものまで取り付け可能です。
(EX6)NeoPixel用端子(LE0)があります(電源はVCCなので電流容量に要注意:数個なら可)。
(EX7)サーボ用端子(SV2)があります(OUT2制御、電源は5Vです)。
(EX8)エッジコネクタによりmicro:bit用拡張ボードの一部が利用可能
(I2Cはピン位置互換、P0/P1/P2は未接続:任意にジャンパー可能)
信号端子の並びは以下:
SND,P0,IN2,OUT1,OUT2,IN4,P1,IN1,IN3,VD2,BTN,LED,P2,
OUT3,OUT4,OUT5,OUT6,VCC,VCC,VCC,SCL,SDA,GND,GND,GND
(EX9)ビデオ出力の予備としてJV0端子(RCAピン用)があります。
(ただし、GNDの電極をクリップ等で自作する必要があります。)
(EX10)USBシリアル用端子JU1があります。
Amazonで、CH340Eで検索するとHW-728モジュールの1個売りのものが見つかると思います
(300円台から1000円程度)。
JU1はこのHW-728のピン配列に合わせて設計しています。
(G)ピンは必要に応じてJP0によりGNDに接続できます(HW-728は接続)。
その他のUSBシリアルも使用できるものがありますが、適切にジャンパー配線してください。
(EX11)マイクロスピーカー (秋月電子P-12494)を取り付け可能です。
(ユニバーサル領域の裏に貼り付け、GNDとL(又はR)に接続)
(EX12)USBコネクタを取り付け可能です。ダイソーのUSB電源のスピーカーへの電源供給や
IchigoDake用のキーボードが接続できます。
VBUS電源は。VCC又は5VをJPV35で切り替えることができます。
(5Vを使用する場合は、CN5の接続が必要です。)
付属部品
(1)基板
(2)FMラジオモジュール(RDA5807M)
(3)ステレオミニジャック
(4)7セグLED(4桁時計用)
(5)ボタンスイッチ(縦型/横型の2種)
(6)アンテナおよび取り付けネジ
(7)抵抗およびコンデンサー一式
(8)ピンヘッダー
(9)ジャンパーピン(3個)
(10)サンプルプログラムリスト
組み立て方法概要
大部分の部品は基板の裏に取り付けます。
FMrabit-iの表示のある側が表で、7セグLEDと縦型ボタンスイッチ(SW5)等を取り付けます。
(電解コンデンサーは裏又は表に取り付けることができます。)
組み立て手順
(1)基板にFMラジオモジュールを取りつけます。
銀色のクリスタルの位置がGND/3V3側になるようにします。
つまようじ2本で左右のセンターピンを仮固定し、
正確に位置を合わせて半田付けをします(四隅から)。
(2)半田ジャンパーを接続します。
基板裏側
JP1でCOL1をIN1に接続してください。
JP4でCOL4をSNDに接続してください。
基板表側
JP3を接続してください(SW3をIchigoJamのボタン代わりに利用する為)。
IchigoJam/IchigoDake/J@mbitの場合は、JP21でSDAをIN3に、JP22でSCLをEXに接続してください。
IchigoJamRの場合は、JP21でSDAをRSDに、JP22でSCLをRSCに接続してください。
(3)抵抗を取り付けます(カラーコードはネット等で調べてください)。
・7セグLEDを使用する場合はR11~R18の8つに330Ωを取り付けます。
・LE0端子用R4に330Ωを取り付けます(LE0にはNeoPixelや普通のLEDが取り付け可能です)。
・I2C用プルアップ抵抗R21,R22に10KΩを取り付けます。
・スマホイヤホンボタン用プルアップ抵抗R3に1KΩを取り付けます。
・ボタンスイッチSW5用の直列抵抗R5として100Ωを取り付けます。
(R5とR3で分圧するのでアナログ読み取り値は93程度になります。)
・本基板からビデオ出力したい場合は、R1に470Ω、R2に100Ωを取り付けます。
(4)ステレオミニジャックを取り付けます。
(5)横型ボタンスイッチSW3を取り付けます(裏側)。
(6)ジャンパーピンを取り付けます(3か所)。
JL0:ミニジャックのL側の信号を切り替えるジャンパーです。
通常はLSND (ラジオの左音声) 側ですが、VID側に切り替えることで
ビデオ出力に利用できます(ステレオミニRCA変換ケーブルを使用)。
JR1:ミニジャックのR側の信号を切り替えるジャンパーです。
通常はRSND側(ラジオの右音声)ですが、JAMSND側に切り替えることでIchigoJamのサウンドを出力できます。
JM9:スマホ用イヤホンのボタンを利用する場合のジャンパーです(使用する場合はMIC側に切り替え)。
通常のイヤホンや外部スピーカー、上記変換ケーブルを利用する場合は、
ピンを抜くか又は反対側に切り替えます(重要)。
(7)CN3,CN4に各々14ピン分のピンヘッダーを取り付けます。
IchigoJamにピンヘッダーを差し込んで、その状態で半田付けをします。
(備考:CN5のピンヘッダーは基本的には不要。5V利用時のみ接続。
IchigoJam Uでは、CN5の接続は禁止です:パソコンのUSB信号とショートする為。)
(8)縦型ボタンスイッチSW5を取り付けます(基板表側)。
(9)7セグLEDを取り付けます (基板表側) 。
文字の書いてある側の6ピンをL70(又はL69)に取り付けます。
7セグLEDを別のものに交換する可能性がある場合はピンソケットを利用します。
なお、付属の時計用7セグLEDは、6ピン x 2行の他に余分なピンが出ていますが、
使用しませんので、ショートしないように折り曲げます。
(10)コンデンサを取り付けます。
電解コンデンサーC60,C61はリード線の長い方を+表示側に差し込んでください。
IchigoJam等を差し込んでコンデンサーが他の部品と衝突しないか確認してから半田付けします。
衝突する場合は、基板の裏側ではなく、表側に取り付けます。
IchigoJamの音声をミニジャックから出力したい場合は、C52に0.1μF(104)、C53に1μF(105)を取り付けます。
(11)アンテナをJANT1にネジで取り付けます。
以上
備考:液晶ILI9341やUSBシリアル(HW-728)は秋葉原のShigezoneでも取り扱いがあるようです(21/7/1現在)。
サンプルプログラム1:「7セグFMラジオ」
7セグ周波数表示のFMラジオです。
(小音量時に7セグの雑音が気になる場合は、サンプルプログラム2を御利用下さい。)
7セグ横のSW5ボタンを押す(又は上側のSW3を長押しする)とモード切替(チャンネル/音量調整)ができます。
各モードで、SW3を押すとチャンネルP又は音量Vを変更できます。
なお、周波数とチャンネル数は40行目で変更してください。
20行のVIDEO1をVIDEO0に変更することで7セグのちらつきが軽減できます(1.4.3以外)。
SW3の代わりに、スマホ用イヤホンのボタンを用いることもできます。
スマホ用イヤホン以外を用いる場合は、ジャンパーピンJM9を抜くか又はJM9側に切り替えてください。
10 'FM7SEG-A
20 V=1:P=1:M=0:VIDEO1:LED0
30 OUT8,0:OUT9,0:OUT10,1:OUT11,0
40 LET[0],795,800,813,825,847,905,916,930,0
50 LET[20],#3F,#06,#5B,#4F,#66,#6D,#7D,#27,#7F,#6F,0
60 LET[37],1,2,8
70 F=[P]:GSB@FUP
80 @LP:
90 IF!BTN(0)GSB@DISP:CONT
100 W=0:OUT#27F
110 A=ANA(0):IF A>500 CONT
120 IFBTN(0)W=W+1:CONT
130 IF A>50 W=200
140 IFW<200GOTO@CHANGE
150 M=(M+1)%2
160 IFM=0GSB@FUP
170 IFM=1GSB@VUP
180 OUT#37F+(1-M)<<9
190 IFBTN(0)CONT
200 WAIT10:GOTO@LP
210 @CHANGE
220 IFM=0P=P+1:GSB@FUP
230 IFM=1V=(V+1)%16:GSB@VUP
240 WAIT10:GOTO@LP
250 @VUP
260 LET[40],16,V/10,V%10
270 GOTO@SRD
280 @FUP:IF[P]=0P=0
290 F=[P]:LET[40],F/100,(F%100)/10,F%10
300 B=2:T=1:C=F-760
310 H=C>>2:L=((C&3)<<6)+(T<<4)+(B<<2)
320 @SRD:POKE#700,#C2,5,H,L,#A,0,#88,#80+V
330 S=I2CW(#10,#700,8):RTN
340 @DISP
350 IFZ=1OUT10,0ELSEOUT10,1
360 O=[[Z+40]+20]^#7F:OUT11,-2
370 O=O+([37+Z]<<7)+(M<<9):OUTO
380 IFZ=2OUT11,1
390 IFBTN(0)OUT10,1:RTN
400 Z=(Z+1)%3:GOTO@DISP
備考:360,380行のOUT11はIchigoJam1.4.3対応です。
サンプルプログラム2:「7セグ自動消灯機能付きFMラジオ」
7セグ表示の自動消灯機能付きFMラジオです。
音量が小さい場合に7セグ表示による雑音が気になることがあります。
本プログラムでは一定時間後に7セグ表示をOFFにすることで雑音を低減します。
ボタンを押すと表示が開始され、表示されている間に再度ボタンを押すと
チャンネル又は音量がアップします。
なお、ボタンを長押しすることでモード切替(チャンネル/音量調整)ができます。
(ボタンの区別はありません:SW3/SW5/スマホ用イヤホンのボタン)
なお、周波数とチャンネル数は40行で変更してください。
20行のVIDEO1をVIDEO0に変更することで7セグのちらつきが軽減できます(1.4.3以外)。
20行のRが表示時間調整になります(IchigoJamRの場合はR=2000程度で調整して下さい)。
IchigoJamRでも1.5β8で動作確認済みです(20行目のLED0は1.5β8では必要です)。
スマホ用イヤホン以外を用いる場合は、ジャンパーピンJM9を抜くか又はJM9側に切り替えてください。
10 'FM7SEG-R
20 VIDEO1:P=1:V=1:R=300:D=0:LED0
30 OUT8,0:OUT9,0:OUT10,1:OUT11,0
40 LET[0],795,800,813,825,847,905,916,930,0
50 LET[20],#3F,#06,#5B,#4F,#66,#6D,#7D,#27,#7F,#6F,0
60 LET[37],1,2,8:'IN124
70 F=[P]:GSB@FUP
80 @LP:
90 IF!BTN(0)GOSUB@DISP:CONT
100 OUT#27F
110 WAIT6:W=0
120 IFBTN(0)W=W+1:WAIT6:IFW<9 CONT
130 IFD>R D=0:GOTO@WT
140 D=0:IFW<8GOTO@CHG
150 M=(M+1)%2
160 IFM=0GSB@FUP
170 IFM=1GSB@VUP
180 OUT#37F+(1-M)<<9
190 @WT:IFBTN(0)CONT
200 WAIT10:GOTO@LP
210 GSB@FUPDATE
220 @CHG:IFM=0P=P+1:GSB@FUP
230 IFM=1V=(V+1)%16:GSB@VUP
240 WAIT10:GOTO@LP
250 @VUP:LET[40],10,V/10,V%10:GOTO@SRD
260 @FUP:IF[P]=0P=0
270 F=[P]:LET[40],F/100,(F%100)/10,F%10
280 B=2:T=1:C=F-760
290 H=C>>2:L=((C&3)<<6)+(T<<4)+(B<<2)
300 @SRD:POKE#700,#C2,5,H,L,#A,0,#88,#80+V
310 S=I2CW(#10,#700,8):RTN
320 @DISP:IFD>ROUT#40:OUT11,-2:RTN
330 D=D+1:IFZ=1OUT10,0ELSEOUT10,1
340 O=[[Z+40]+20]^#7F:OUT11,-2
350 O=O+([37+Z]<<7)+(M<<9):OUTO
360 IFZ=2OUT11,1
370 IFBTN(0)OUT10,1:RTN
380 Z=(Z+1)%3:GOTO@DISP
備考:320,340,360行のOUT11はIchigoJam1.4.3対応です。
サンプルプログラム3:「7セグ4桁カウンタ」
SOUNDピンを用いて4桁目の表示を実現したカウンタです(BEEP-1,-1を利用)。
TICK()の値をそのまま表示しているので秒単位になっていません。
改良してみてください。
なお、SOUNDピンを使っているので音が出てしまいます。
20 '7SEGx4 TICK COUNTER
30 VIDEO0:LED0
40 OUT8,0:'IN1 DIGIT1
50 OUT9,0:'IN2 DIGIT2
60 OUT10,1:'IN3 SEG-DOT(:)
70 OUT11,0:'IN4 DIGIT3
80 LET[0],#3F,#06,#5B,#4F,#66,#6D,#7D,#27,#7F,#6F:'0 to 9
90 LET[10],1,2,8,0:'IN1,IN2,IN4,DUMMY(SOUND)
100 LET[14],1,2,3,4:'4digit value
110 C=#0:'COLON OFF(#200),ON(#0) IN3
120 @LOOP
130 FORI=0TO3
140 T=TICK():[17]=T%10:[16]=(T/10)%10:[15]=(T/100)%10:[14]=(T/1000)%10
150 S=[[I+14]]^#7F
160 S=S+([10+I]<<7)+C
170 OUT11,-2:BEEP0:OUT S:'-2for1.4.3
180 IF I=2 OUT11,1
190 IF I=3 BEEP-1,-1
200 NEXT
210 GOTO@LOOP