福野泰介の一日一創 - create every day

「世界一?簡単デジタルラジオキット」つくる、鯖江専用ラジオ

2018/04/26
#IchigoJam #maker #radio 

福井高専学生時代、アマチュア無線同好会にも所属。モールス信号を覚えて、アマハム3級を取得。でも、一度も無線機を触ることなく卒業。

長い休眠期間を経て、近年復活した「福井高専アマチュア無線研究会 - JA9YDB」との縁もあって、無線の勉強。

周波数別にいろいろ使われる電波、アマチュア無線ならではの短波(HF)を使うと電離層に電波を反射させ、インターネットも電話線も衛星も使わず、なんと世界とも通信できてしまうらしい。

世界中の子供たちが、IchigoJamのプログラムを送受信することを夢見て、まずは手軽に扱える電波、FMを使って実験開始。(FMは、超短波(VHF)を使った周波数変調の放送)


こちら、aitendoで500円「世界一?簡単デジタルラジオキット」を使った、福井で聞ける3局のみ受信できるFMラジオ。 DSPラジオ、RDA5807HSを使ったモジュールをIchigoJamのI2Cコマンドでコントロール!


たったこれだけの部品で、FMラジオができてしまう。
小さいタクトスイッチはおまけ。ラジオを鳴らすだけなら不要。アンテナ代わりにイヤホンを接続。


DSPラジオモジュールは、テープやペンチで押さえてはんだづけ。フラックスを塗ると楽です。


ラジオとIchigoJamの接続、ミニユニバーサル基板で、IchigoJamのCN5のI2Cの並びに変換。もちろんジャンパーワイヤーで接続でもOK!VCC-3.3V/GND/SCL/SDAの4本。

I2Cコマンドで、5byte送ってコントロール。周波数freq(MHz)は下記で求めた16bitの数を、先頭2byteにビッグエンディアンで設定。

4 * (freq * 1000000 + 225000) / 32768

この計算はIchigoJam BASICで普通にやるとオーバーフローしてしまうので、32bitまで扱えるArmマシン語の力をちょっと借ります。
freqを79.1MHzを7910と10kHz単位で表すことにして、上記の式を変形

((7910 * 10 + 225) * 1000) >> 13

これをasm15マシン語で分解するとこのようになります(R0*=R1 は R0=R0*R1 の意味)

R1=10 R0*=R1 R1=225 R0+=R1 R1=10 R0*=R1 R0*=R1 R0*=R1 R0=R0>>13 RET

アセンブルしたものを使うと、下記のように設定する数値が求まります(検算してみましょう)

POKE#700,10,33,72,67,225,33,8,68,10,33,72,67,72,67,72,67,64,11,112,71 OK ?USR(#700,7910) 9683 OK

あとは下記コマンドで鳴るはずです(受信可能な周波数を調べて設定ください)

F=USR(#700,7910):POKE#800,F>>8,F,#18,#16,0:?I2CW(96,#800,5)

鯖江で受信可能な3局、たんなんFM(79.1MHz)FM福井(76.1MHz)NHK福井放送局(83.4MHz)をボタンで切り替えるプログラムはこちら

10 LET[0],7910,7610,8349 20 ?[N] 30 POKE#700,10,33,72,67,225,33,8,68,100,33,10,34,81,67,72,67,64,11,112,71 40 F=USR(#700,[N]):POKE#700,F>>8,F,#18,#16,0:?I2CW(96,#700,5) 50 WAIT30 60 IF BTN()=0 CONT 70 N=N+1:IF [N]=0 N=0 80 GOTO 20

受信中はLEDが光るようにちょっと改造

45 LED1 65 LED0

128x64のOLEDディスプレイを使って、受信中の周波数を表示用の追加コード

5 GSB@INIT:GSB@CLS 25 F=[N]:CLS:?F/100;".";F/10%10 26 FORI=0TO3:X=2+I:Y=8:GSB@LC:C=PEEK(#900+I):GSB@PUTC:NEXT 100 @INIT:POKE#700,0,141,20,32,0,175:?I2CW(60,#700,6):RTN 110 @LC:POKE#700,0,33,Y*8,127,34,7-X,7:?I2CW(60,#700,7):RTN 120 @PUTC:COPY#700,C*8,8:?I2CW(60,#40,#700,8):RTN 130 @CLS:X=7:Y=0:GSB@LC:C=0:FORI=0TO127:GSB@PUTC:NEXT:RTN

人が聞くのではなく、機械が聞くラジオにするべく、次はFMトランスミッタと信号のデコードに挑戦してみたいところです。

身の回りにたくさんある見えない線、無線。スマホ、WiFi、飲食店での呼び出しボタン、ラジオ・テレビなど身近な電波の正体に迫ってみましょう。

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image