Nano

VNALTsecip

Rasp

Arduinoberry Pi

流行りのツールを活用してUHF帯のデジタル無線機を製作してみた！

自作派

向け 日本アマチュア無線機器工業会
いし難とっワイヤレょ
技術委員会
ちス人 材？
！
育成
2023年8月19日
かも本講演資料に記載されている商品名、会社名またはロゴマークは、各社の商標、登録商標もしくは商号です。

1

JAIAのご紹介(1)
日本アマチュア無線機器工業会（略称：ＪＡＩＡ）は、国内の主なアマチュア無線機器及び関連機器メーカーによって構成されています。
会員会社による魅力あふれた商品の創造と、さまざまな委員会活動を通してアマチュア無線の発展に寄与しています。

（50音順）

2

JAIAのご紹介(2)• 普及推進委員会
会員会社の企業経営に必要な情報資料を収集作成及び提供すると共に、展示会等合同催事の開催または参加を推し進め、本会の目的達成と維持発展に寄与しています。

アマチュア無線機の市場動向を会員各社で共有して、ユーザーのニーズにマッチした無線機を市場投入することが使命です！
3

JAIAのご紹介(3)• 技術委員会
技術委員会はアマチュア無線の健全な発展のため、アマチュア無線機器及び関連機器の技術基準、規格の統一及び測定法を定め、ＪＡＩＡ会員の発展、活動の活性化に寄与しています。

JAIA加盟各社間では測定方法や評価基準が統一されているので、スペックを公正に比較することができ、安心です！
4

JAIAのご紹介(4)
関連団体との窓口にも…
アマチュア無線機器製造業界を代表する団体として、行政当局、JARL、JARD等の関連団体との連携を密にし、電波環境保護の基本理念に合致するよう自主規制を行う等、アマチュア無線業界の秩序維持と適正な発展に尽くしています。

5

最終的にこんな感じのものが出来ます
本講演では438MHzのデータ送受信機を製作していきます。
最終的な完成形は以下の写真のようなものです。

電波の質を確認して、保証認定を取得し、無線局の工事設計の変更を行います。

6

気象テレメーターアプリケーション製作した送受信機と気象センサを用いて、気象テレメータを構成しました。下図の構成にて気温・湿度・気圧の気象データをAPRS網に送信することができます。
japan.aprs2.net等

OOK_UHF_Transmitter

OOK_UHF_Receiver

Arduino Nano

Arduino Nano

+ SYN113+ SYN480R

USB

USB

WX_USB_BME280
気温・湿度・気圧の計測

Arduino Pro Mini
+ USB Host Shield

APRS
ServerOOKRX_WX_Reporter
Raspberry Pi

BME2807Internet

WX

目次•
••
•
•
•
•
•
•
•

433.92MHzの無線モジュールを入手します。
送受信の周波数を変えられるようにします。
コイルを自作してインダクタンスを測定します。
バンドパスフィルタを設計します。
バンドパスフィルタの特性をシミュレーションで確認します。
バンドパスフィルタをネットワークアナライザで測定します。
電波の質を確認して保証認定を受けます。
電子申請で送信機の増設申請を行います。
デジタル無線モデムを設計します。
テレメータアプリケーションを製作します。
8さらに理解を深めたいときは！
講演時間の制約で、デジタルモデムの設計やテレメーターアプリケーションの詳細までは紹介しきれそうにありません・・・
ＣＱ出版社様のご厚意で、トランジスタ技術に記事を掲載していただきました！

トランジスタ技術 ８月号、9月号のRFコーナーをご参照ください！

9送受信機製作編
••
•
•
•
•

目次

RFモジュールの入手
送受信の周波数を変更できるようにする
スプリアスの規格値について帯域外領域の確認
スプリアス領域の確認
スプリアスを減衰させるフィルタについて

10

433.92MHzのモジュールについて(1)
海外通販では下図のような433.92MHzの無線モジュールが安価に販売されています。

430MHz帯は国内ではアマチュア無線に割り当てられていますので、このモジュールを使用できれば面白そう！

11

433.92MHzのモジュールについて(2)
主な仕様…
• Synoxo社 送信機：SYN115、受信機；SYN480R• 周波数…433.92 MHz（固定）• 送信出力…10mW以上• 変調方式…2値ASK（OOK : On-Off-Keying）
モールス信号と同じでRF信号のON･OFFに情報を乗せる方式です• 伝送速度…～10kbps
今回は1kbpsの2値ASKモデムを作ります。

12モジュールを使用するにあたっての課題① 送受信の周波数が433.92MHz固定なので、バンドプランを遵守するため、周波数を変更できるようにする必要がある。
② 技適が取れていないので、電波法に定められている電波の質を確認して保証認定を受ける必要がある。
③ 送受信モジュール間で決められた通信手順（プロトコル）が無いので、独自に定義する必要がある。
本講演では、①＆②について説明していきます。
③（デジタル無線機のモデム設計）の詳しい解説はトランジスタ技術2023年8月号、9月号のRFコーナーをご参照ください！
13送信周波数を変えられるようにする
送信モジュールには、13.56MHzの水晶振動子が実装されています。

433.92MHz = 13.56MHz x 32 です。
水晶の周波数を変更すれば、送信周波数を変更できそうです。
14送信モジュールの内部構造
データシートを見ると、やはり内部で３２倍しているようです。水晶振動子を取り外して外部から任意の周波数のクロックを入力できるようにします。
ここから任意の周波数のクロックを注入する

15

任意クロック生成器について(1)基準周波数生成器は、プログラマブルクロックジェネレー
タ [Si5351A] を使用しました。

秋月電子
AE-Si5351A-B
1セット 500円• 電源電圧：2.5～3.3V(CORE)、1.8～3.3V(出力部)• 出力周波数：2.5kHz～200MHz• I2C（2線式シリアル)で制御

16

任意クロック生成器について(2)Si5351Aを制御して、送信希望周波数の32分の1の値を出力させます。
誤ってオフバンド送信をしないよう、チャンネルをロータリースイッチで選択するようにしました。周波数は全電波形式のうち、438.1MHz～438.9MHz の100kHzステップの9波としました。

17

受信周波数を変えられるようにする(1)

データシートに掲載されている回路図（定数は315MHz用の値）受信モジュールには、6.7458MHzの水晶振動子が実装されています。
送信モジュールと同様、水晶振動子を取り外して外部から任意の周波数のクロックを入力します。
18受信周波数を変えられるようにする(2)受信周波数の計算式をデータシートから引用すると以下のとおりです。

(1)式で fTX (受信周波数) から fLO (ローカル周波数) を求めて、(2)式で fLO から fT (発振周波数) を求めます。
上記式を解くと、438MHzにおける fT は 6,809,237.36Hzになります。また、この付近で受信周波数を100kHz動かすには、 fT を 1,554.62Hz 動かせば良いことがわかります。

19（参考） 送信出力を上げたい場合出荷状態では 2.5mW 程度の出力で、データシートのスペックである 10mW の1/4の出力でした。
下記回路図内 C2を取り外し、C3を100pF、L2を20nH (村田製作所の 1608サイズチップインダクタ LQW18AN20NG)にすることで約30mW程度の出力になりました。
この作業は必須ではないので、参考程度にしてください。

20

電波法に定められている電波の質の確認
430MHz帯のアマチュア局の送信設備のスプリアス発射又は不要発射の強度の許容値は、無線設備規則 別表第三号に記載があります。

21

帯域外領域のスプリアスの確認(1)
搬送波周波数が 30 MHz＜fc≦1 GHzで、必要周波数帯域幅（Bn）＜ 25 kHz未満の通信方式は、 搬送波±62.5kHz（＝Span 125kHzで測定）が帯域外領域とスプリアス領域を区分する境界になります。

- 62.5kHz+ 62.5kHz

100μW 以下100μW 以下

22帯域外領域のスプリアスの確認(2)

今回のBnは７．５ｋＨｚ- 62.5kHz

12.5kHz / div+ 62.5kHz

測定した結果、規格内に入っていることが確認できました。
23

スプリアス領域の確認(1)1W以下の機器のスプリアス領域における不要発射の強度の許容値は50μW(-13dBm)以下、スプリアスの測定範囲
は基本周波数が 300MHz～600MHzの時は、30MHz～3GHzです。

30MHzから3GHzまで-13dBm 以下-13dBm 以下

24

スプリアス領域の確認(2)スペックアウト

測定したところ、2倍と3倍の高調波がNGで、そのままでは使えません。そのため、フィルタを挿入する必要があります。高調波を減衰させるだけならLPFでも良いのですが、このモジュールには ±111, ±222MHzにもスプリアスがありますので、今回はバンドパスフィルタを設計します。
25

フィルタ製作編 目次• バンドパスフィルタの方式検討• ソレノイドコイルの設計と製作• インダクタンスとQの測定• バンドパスフィルタの設計、シミュレーション確認• バンドパスフィルタの製作• バンドパスフィルタの特性確認• スプリアスの最終確認• 送受信機のブロック図26

バンドパスフィルタの設計(1)
バンドパスフィルタの設計目標• 中心周波数：435MHz• 通過帯域幅：±35MHz = 70MHz• 通過ロス：1dB以下送信機に取り付けたときに• ２，３倍の高調波のスプリアスが規格値以下• ±111, 222MHzのスプリアスが軽減されること
減衰量

周波数

ストップ
バンド

パスバンドとストップ
バンドの境界は、減衰量が３ｄBになる周波数で表すことが多い

ストップ
バンド
パスバンド

27

バンドパスフィルタの設計(2)バンドパスフィルタは２つの共振回路を結合させた、複同調回路の形にします。コイルの相互誘導により結合する形も考えられますが、相互インダクタンスの具体的な量をコントロールすることは難しいので、コンデンサを用いた結合回路にします。
相互誘導による結合

Rs
Term
信号源

コンデンサを用いた結合

Rs
Term
信号源

28

採用！

コイルの製作(1)インダクタンスやQが規定された空芯コイルは、一般の小売店では入手が難しいので自作することにします。
２ポール・バンドパスフィルタの設計において、コイルは設計周波数でインピーダンスが数十Ωになるように選ぶとよいとされています。435MHzにおいては15nHでインピーダンスが 約41Ω となり、過去の実績でもこのあたりの定数が使用されていますので目安にします。
インピーダンス[ωL] = 2*3.14*435M*15n = 40.98Ω29コイルの製作(2)
使 用 し た の は 0.5mm の ポ リ エ ス テ ル 銅 線 （ PEW ） で す 。
直径2㎜のドリル棒に密巻する場合、ソレノイドコイルのインダクタンスの公式で巻き数の見当をつけると…
巻き数

長さ

比

長岡係数 インダクタンス[nH]

1.5T

0.75

3.33

0.429

7.94

2.5T

1.25

2.00

0.529

16.32

3.5T

1.75

1.430.611

26.38

採用！

インダクタンス [H]=(長岡係数)×(真空中の透磁率)×(比透磁率)×(コイルの断面積：平方m)×(巻き数の2乗)÷(コイルの長さ：m)30コイルの製作(3)
実際にφ2mmのドリルに巻いて被覆を剥き…

インピーダンス・マテリアルアナライザで測定すると…

Keysight
E4991A31

コイルの製作(4)100 MHzL[nH]Q
0.5-2-2.5T 16.4
89440 MHz
L[nH]
Q
16.7
135

狙い通り！

おおむね狙った通りの特性になっていることが確認できました！
32

コイルの製作(5)ついでに、シミュレーションで使うので、等価回路のパラメータを算出しておきました。

インダクタの等価回路
3素子モデルLs = 16.33nH, Rs = 11.70 mΩ, Cp = 187.06fFとなりました。
33

LCRメータで測ってみるが…
インピーダンス・マテリアルアナライザを個人で持っている方…
いないだろう…
一般的なLCRメータは1mH = 1,000,000nH以下は測定が困難のようです。
赤枠内に自作コイル測定下限以下で正しく測れない34

NanoVNA で測れる・・・ってコト！？
トランジスタ技術2022年7月号「NanoVNAで電子工作革命」によれば、NanoVNAでコイルのインダクタンスが測定可能とのことでしたので試してみました。

35

NanoVNAを使って測定(1)
オープン・ショート・ロードの３種類の治具を製作して…

キャリブレーションを取り、コイルを実装してCH0ポートに接続します。

36

NanoVNAを使って測定(2)NanoVNAでSerial Lを測定してみると…

440M付近でインダクタンスは14.3nH(E4991A比で-15%)
まずまず信頼できる結果
Ｑは当てにならなそう
37

２ポール・バンドパスフィルタの設計(1)
設計の手順は以下のとおりです。
１ 通過帯域幅を与える
２ 中心周波数を求める
３ フィルタのＱを算出する
４ 共振器のQLを求める
５ インダクタンスLを算出する
６ 共振容量を算出する
７ 結合容量を算出する
８ 設計Qを求める
９ 負荷インピーダンスを求める
１０ インピーダンス変換容量を求める
１１ フィルタ回路容量を求める
トロイダル・コア活用百科
第5.3章 バンドパス・フィルターから引用38

２ポール・バンドパスフィルタの設計(2)
順を追って計算していくと
7. 結合容量CC = 0.94pF→1pF
8. 設計Q … Quを与える
Qe = 9.45
9. 負荷インピーダンス
Re =419.6Ω
10.インピーダンス変換容量
Cend = 2.7pF→3pF
11.フィルタ回路容量
C = 4.6pF→4pF

1. 通過帯域幅
BW = 470M – 400M = 70 M
2. 中心周波数fS = 470𝑀 ∗ 400𝑀 = 433.59M
3. フィルタQ
Qf = 433.59M/70M = 6.19
4. 共振器QL

QL = 2 ∗ 6.19 = 8.76
5. インダクタンスL
L = 16.3nH
6. 共振容量 … Lを与える
C0 = 8.27pFとなります。
39

シミュレーションで確認を行う(1)回路シミュレーションソフト（Keysight, Advanced DesignSystem [ADS]）で設計が正しいか確認します。
回路図をこさえてシミュレーションを回すと…

40

シミュレーションで確認を行う(2)おおむね設計通りの値になっているようです。ただし、インピーダンス変換容量(3pF)とフィルタ回路容量(4pF)が小さめなので、コンデンサ分割型のインピーダンス変換回路を検討します。
41

インピーダンス変換回路を変更
コンデンサ分割型インピーダンス変換回路の計算式は高周波センスアップ101
第３章 インピーダンス変換技術
センスアップ！ から引用

R1 = 50Ω, R2 =419.6Ω,
L = 16.3nH → XL = 44.6Ω@435M を与えると、
k = 9.41, XC2 = 22.1Ω@435M ⇛ C2 =16.6pF,
XC1 = 33.5Ω@435M ⇛ C1 =10.9pF が求まります。
42

シミュレーションで確認を行う(3)C2 = 15pF, C1 = 10pF としてシミュレーションを実行すると先ほどより通過帯域幅は狭まりましたが、切れは少し良くなるようです。今回は±111, ±222MHzのスプリアスも減衰させたいので、こちらの方式で製作することにします。
43

フリーのシミュレーターではどうだろう
ADSを個人で持っている方…
いないだろう…

ADS

LTspice でやってみよう！
なんと無料！！
44

LTspiceでシミュレーション行う(1)
回路図を以下のようにこしらえて…

回路図下部のテキストは、通過特性のシュミレーションを実行するための呪文です。

45

LTspiceでシミュレーション行う(2)シミュレーションを実行すると…

おおむねADSと同じ結果が得られました。
フリーのシミュレータでも十分実用になると思います。
46

バンドパスフィルタの製作(1)
基板は両面の銅張積層板（サンハヤト No.31R）を使用しました。
まず、テーブルソーで32x19mmにカットします。

47

バンドパスフィルタの製作(2)刃の位置を天面からわずかに出るように調整し、ガイドを2mmずつずらして、端から 6.5, 8.5, 10.5, 12.5mmの位置に4本切り込みを入れます。

48

バンドパスフィルタの製作(3)
中央の脇のラインの銅箔をラジオペンチで剝がします。
剥がす前に、（ナイフエッジ型のコテ先の）はんだごてで銅箔を熱し、接着力を弱めてから作業するとスムーズです。伝送路上でコンデンサを実装する場所は、カッターナイフで切り込みを入れ約1.5mのギャップを設けます。

黒線はカッターでカット、斜線はラジオペンチで剥がしました。

49

バンドパスフィルタの製作(4)コイルは結合しないように縦横に配置します。
コンデンサ（１６０８サイズ）はコイルと同じ側で直線上になるように実装します。最後に両端に基板エッジ用のSMAコネクタをとりつけます。

50

ネットワークアナライザで調整(1)
BPFが形になったらネットワークアナライザ通過特性を確認しながら定数を微調整します。
ベクトルネットワークアナライザ
Keysight E5080B

51

ネットワークアナライザで調整(2)
とりあえず測ってみると…

おおむね設計した通りの形だが…
• 通過ロスが1.7dBある• 中心が415MHz付近にある→微調整が必要。
52

ネットワークアナライザで調整(3)Cc : 1p→1.5p, C1 : 10p→9p, C2 : 15p→12pに変更• 中心は435MHz付近• 通過ロスは 0.65dB → パワーロスが少ない• ±3dB帯域幅 約94MHz

94MHz

53

NanoVNAで確認
NanoVNAでも同様に測定してみました。

測定結果はE5080Bと遜色なく、十分に実用になると思われます。
54

スプリアスの最終確認完成したフィルタを送信機の出力につけて確認すると2倍, 3倍 の高調波は40dB以上減衰

通過Lossを減らすことを優先したため、帯域幅は設計よりも広くなってしまいましたが、スプリアスが規格内に入りましたので目標達成とします。
55

受信側も念のため確認(1)
受信側も副次的に発する電波の強度の規定があります。

電波法 第二十九条（受信設備の条件）・・・
受信設備は、その副次的に発する電波又は高周波電流が、総務省令で定める限度をこえて他の無線設備の機能に支障を与えるものであつてはならない。
規格値は、無線設備規則 第二十四条（副次的に発する電波等の限度）で定められていて、4nW(-54dBm)以下です。
56

受信側も念のため確認(2)

受信側は測るだけでＯＫ測定した結果、問題なく規格内に入っていることが確認できました。
57

送信機のブロック図
ここを作ったPC
ターミナル
438.1MHz～438.9MHz
100kHzステップ ９波

送信LED

USB-UART

データ

レベル変換
分圧回路

データ

送信
モジュール
SYN115BPF
F0=435MHz

測定用モード切替スイッチ

周波数選択
DIPロータリースイッチ

MPU Module
Arduino Nano
ATMEGA328P

I2Cレベル変換
PCA9306

クロック
ジェネレータSi5351A

送信周波数の32分の1リセットスイッチ

免許申請の際、送信機系統図として添付しました。
58

送信機の回路図（参考）

ケースはタカチのYM-90です。

RFモジュールをのぞいて、３０００円くらいかかりました。
59

受信機のブロック図（参考）PC
ターミナル
438.1MHz～438.9MHz
100kHzステップ ９波

受信LED

USB-UART

データ

受信モジュール
SYN480R

BPF
F0=435MHz

受信モード切替スイッチ

周波数選択
DIPロータリースイッチ

リセットスイッチ

MPU Module
Arduino Nano
ATMEGA328P

クロック
ジェネレータSi5351A

6.8108～6.8232MHz

I2C, 3.3V

I2C,5VI2Cレベル変換
PCA9306

受信側のBPFは帯域外の強力な信号を減衰させるために取り付けています。（なくても動作します）
60

受信機の回路図（参考）

ケース加工を送信機と共通にしています
61

実際に電波を出すために必要な手続き
実際に電波を出すには、無線局の工事設計に自作した送信機を追加する必要がありますが、自作無線機は電波の質を確認して、認定機関にて保証認定を受ける必要があります。
今回は、既存の無線局の工事設計書の変更を
総務省 電波利用 電子申請・届出システム Lite で行い、保証認定を日本アマチュア無線振興協会 [JARD] で受ける場合の手順を解説していきます。

62

工事設計の変更の流れ（概要）① [電子申請システム] 送信機増設申請の工事設計書を作成する。
② [電子申請システム] 総務省には送信せず、パソコンにzipファイルを保存する。 ここで一旦、ログアウトする。
③ [JARD] アマチュア局の保証願書を作成する。
④ [JARD] ②で作成したzipファイルをアップロードする。
⑤ [JARD] 保証料を振り込む。
⑥ [JARD] 保証書を受け取る。
⑦ [電子申請システム] ②のzipファイルに⑥の保証書を添付して総務省に送信する。
⑧ [電子申請システム] 審査終了になったら免許状を受け取る。
63

工事設計の変更手続き(1)
総務省の『電波利用 電子申請・届出システム』の変更申請（届出）を行います。

申請の画面は、令和５年９月２５日にガラっと変わる見込みです！
ユーザー登録がお済
みでない方はこの機会に是非どうぞ！

https://www.denpa.soumu.go.jp/public2/index.html

64工事設計の変更手続き(2)
工事設計書の送信機の増設を申請します。
今回の送信機は、電波の形式 A1D、周波数帯 433MHz、変調方式 ASK、終段管 SYN115、終段電圧 3.3V、送信振幅変調, 副搬送波を使用
出力30mWとなります。
しないデジタル信号の単一チャネルのデータ

この時、送信機系統図やスプリアスの測定結果も忘れずに添付しておきます。

電子申請用ファイルを作成し終えたら、総務省へは送信せず、パソコンに作成したファイルを保存します。
65

工事設計の変更手続き(3)JARDのアマチュア局の保証願書（開設）を作成します。

http://jard.or.jp/warranty/index.html

アップロードの画面にて保存したファイルをアップロードします。
完了したら保証料の案内が届くので、JARDに送金します。

66

工事設計の変更手続き(4)問題なければ1週間ほどすると「技術基準適合の保証書」がJARDから電子メールにて送付されます。

67工事設計の変更手続き(5)『電波利用 電子申請・届出システム』にて、中断した変更申請（届出）の手続きを行います。
工事設計書の添付書類にJARDから受領した保証書を追加して総務省に送信します。

68

工事設計の変更手続き(6)
問題がなければ、しばらくすると審査完了になります。
電波形式「A1D」は一括コード（3VA等）に含まれませんので、A1Dが追加された免許状の交付を受ける必要があります。

免許状を入手後、アンテナを接続してオンエアできます！
令和5年9月25日以降は表記が大きく変わる見込みです！

69

ソフトウェア編 目次超特急• デジタル無線機のモデム設計• 独自フレームの定義• ステートマシンの設計• リアルタイム処理とクロック再生• プログラムのフロー図• テレメーターアプリケーション• 温度・湿度・気圧を出力する装置を制作• 電文フォーマットを定義してArduinoに実装• 受信したデータをチェックして気象局としてAPRS網に登録するアプリケーションを作成（Raspberry
Pi + Python3)70

デジタル無線機のモデム設計(1)
課題③のおさらい：
送受信モジュール間で決められた通信手順（プロトコル）が無いので、独自に定義する必要がある
UARTをベースに、ビット同期とフレーム同期と開始ワード等を付加したオリジナルフレームを定義しました！
プリアンブル1010の連続(D-STARと同じ)

フレーム同期111011001010000(D-STARと同じ)

開始ワード
16bit分のH

実際に送るデータ
CQCQ

秘話性なし

最初のスタートビット

同期ワードは、D-STARをリスペクトして全く同じワード(0b111011001010000)にしました！
71デジタル無線機のモデム設計(2)
前項で定義したフレームを受信するステートマシンを設計しました！
アイドル状態からフレーム同期
状態遷移図は以下の通りです。
ﾌﾚｰﾑ同期ｽﾀｰﾄﾋﾞｯﾄ
N not = 8

ｱｲﾄﾞﾙ
ﾃﾞｰﾀ取得受信ﾃﾞｰﾀ
送信
次のﾃﾞｰﾀｽﾄｯﾌﾟﾋﾞｯﾄ
Stop Bit = H

72

信号検出でスタートビット待ちに遷移する。
スタートビットを検出したら8ビット分のデータを取り込み、ストップビットを取得する。
次のスタートビットが来たら次の8ビットを取得し、スタートビットが来なければ同期状態を解除してアイドル状態に移行する。

デジタル無線機のモデム設計(3)
受信機は送信機とは非同期なので、クロック再生処理が必要です…
Serialdata

1011001Sampling
Point00000011 11 1 0 000 0 1111 1 1 11110000000000 1 1 1 1 1Over Sampling
Counter

ここでデータが変化しているので、クロックの開始点とみなす

01234 012340123401234012340123401234
ここは変化がないので自走でリセット

Recovered
Clock
Captured
Data

101

100

1735倍のオーバーサンプリングを行い、データのエッジでクロックを引き込み、半周期後のデータを取り込んでメイン処理に通知します。
リアルタイム（実時間内）処理が必要です。

デジタル無線機のモデム設計(4)プログラムをArduinoに実装しました！
受信側

送信側

開始

開始

ピンの初期化

データピン状態取得

開始

タイマ割り込みで一定時間ごとに処理する。
例：1000bpsで5倍のオーバー
サンプルのときは、200μsec毎

メインループピンの初期化

Si5153Aを初期化
なし

ピン変化あり？

なし

Si5153Aを初期化

送信データあり？

チャネル設定SWを読むあり

受信周波数を設定

オーバー
サンプリングカウンタ
＝満了？

満了

オーバーサンプリング
タイマの開始

途中あり

チャネル設定SWを読むオーバー
サンプリングカウンタ＝シンボル点？

No

送信データをバッファに追加

送信周波数を設定

Yes

メインループプリアンブル送信

ビット取得をメインループに通知
なし

無変調

通常

開始ワード送信

ビット取得
通知？
あり

送信モード
設定
PN9

オーバーサンプリング
カウンタをクリア

オーバーサンプリング
カウンタをインクリメント

ステートマシン
状態に応じた処理

無変調
送信

シンボル
タイマ開始

通常
モード

バッファの中身を送信

終了ワード送信

今回のピン状態を保存

PN9
送信終了

送信終了

この処理はリアルタイム処理が必要
実測４～５μsec

プログラムはGithubで公開しています。⇒ https://github.com/7m4mon/ook_uhf_transceiver74気象テレメーターアプリケーション（再掲）
製作した送受信機と気象センサを用いて、気象テレメータを構成しました。下図の構成にて気温・湿度・気圧の気象データをAPRS網に送信することができます。
japan.aprs2.net等

OOK_UHF_Transmitter

OOK_UHF_Receiver

Arduino Nano

Arduino Nano

+ SYN113+ SYN480R

USB

USB

WX_USB_BME280
気温・湿度・気圧の計測

Arduino Pro Mini
+ USB Host ShieldOOKRX_WX_Reporter

APRS
ServerInternet

Raspberry Pi

BME28075

テレメーターアプリケーションについて(1)
温度・湿度・気圧を測定して送信機に送る装置を設計＆製作しました。
Power
DC5V

USB-UARTUSB

BME280Send
ButtonI2C

USB
Connector

+3.3V
REG

ArduinoPro mini

SPI

USB HostShield

BME280という気象センサと、Arduino Pro mini とUSB ホストシールドの組み合わせた装置です。
赤いボタンを押すと、コールサイン＋気象データを送信機に送ります。
76テレメーターアプリケーションについて(2)
電文のフォーマットも以下のように定義しました！
To,From,Latitude,Longitude,Altitude,Tempreture(x10),Humidity(x10),Pressure(x10),CRC8(hex)
BME280で計測した 気温, 湿度, 気圧 を10倍したものに宛先と送り元のコールサインとCRCをつけたものです。
無線区間でデータが誤ってしまった場合に検出できるように、ＣＲＣ（巡回冗長検査：Cyclic Redundancy Check）も付けました。
プログラムはGithubで公開しています。⇒ https://github.com/7m4mon/wx_usb_bme280

77

テレメーターアプリケーションについて(3)Raspberry Pi (Type B)＋Python3 で、受信機で受信した電文をシリアルポートから取り込み、CRCや宛先（自局宛かどうか）、気象データの数値範囲などを確認し、正しけれ
ば raspi-aprs-weather-submit(※) にコマンドを発行するプログラム「ookrx_wx_reporter」を作成しました。
なお、APRS網に気象データを送信するには、 APRSサーバーから発行されたユーザー名と認証コードが必要です。
※ raspi-aprs-weather-submit
https://github.com/marsolla/Raspberry-APRS-Weather-Submit
プログラムはGithubで公開しています。⇒ https://github.com/7m4mon/ookrx_wx_reporter

78

まとめ
アマチュア無線は、自作の無線機でも電波の質を確認して保証認定を受ければ、免許を得てOn the Air することができます。
アマチュア無線の醍醐味の一つですよね！
市販のデジタル無線機は高機能で複雑なので、なかなか自作では手が出しづらいと考えがちですが、モジュールをうまく利用すれば、送受信回路を設計せずにデジタル無線機も自作して楽しむことができます。
この資料が、皆様のご参考となれば幸いです。
79

参考文献
* 山村 秀穂; 「バンドパスフィルター」,
トロイダル・コア活用百科, P.296, CQ出版, 1983
* 広畑 敦; 「インピーダンス変換技術 センスアップ！」,
高周波技術センスアップ101, P.83, CQ出版, 2003
* 川藤 光裕; 「NanoVNA実測③…電子部品の周波数特性」,
トランジスタ技術(2022年7月号), P.70, CQ出版, 2022

80

おしまい！
ご清聴ありがとうございました。

日本アマチュア無線機器工業会
技術委員会
2023年8月19日

81