<- BACK

ARDUINO FOR HAM RADIO :: RTTY

MENU
1. BAUDOT ENCODER ( KEYBOARD INPUT )
2. BAUDOT ENCODER ( SENSOR INPUT / TELEMETRY )
3. BAUDOT DECODER
4. BAUDOT EnDECODER ( =TX & RX )
5. PRODUCT
6. ASCII-8
7. VARIOUS CODES ON THE WEB

BAUDOT ENCODER ( KEYBOARD INPUT )

Arduinoで「5単位BAUDOTコード」を生成します。

アマチュア無線の実際の交信に使えるものとして、キーボードからのリアルタイム入力をサポートします。
2004 SIMPLE VERSION

** BASIC TEST **

DIAGRAM

DIAGRAM

アイコムのIC-7000と組み合わせた例。

IC-7000にはデコーダーが内蔵されているので、PCを必要としないシンプルなRTTYシステムが出来上がります。

意外なことに、最新のIC-7300でもUSBキーボードからの送信機能は付かなかったので、このような付加装置は今後も有用かもしれません。
DIAGRAM

DIAGRAM

QP-7と組み合わせた例。

RTTYと自作はとても相性が良い!と個人的には思っているのですが、、
ARDUINO_UNOスケッチ

PROGRAM

DOWNLOAD(.zip) v3.1

「ARDUINO」は世界標準のマイコンボードだけあって、ライブラリ群が非常に充実しています。標準インストールされているものはもちろん、世界中のユーザーが独自のライブラリを公開しています。ほとんど「ないものはない」という感じです。今回はPS/2キーボードを接続するためのライブラリ等を使わせて頂きました。

※あらかじめダウンロード&インストールしてください。
(1)"TimerOne" Library
(2)"FlexiTimer2" Library
(3)"PS2keyboard" Library
INSTALL LIBRARY

INSTALL LIBRARY

ライブラリの「インストール」というのは、解凍したフォルダをライブラリフォルダ内に「配置」するだけのことです。解凍した際にフォルダが2重になった場合は、内側のフォルダだけを配置します。

例えば、"FlexiTimer2"ライブラリをインストールすると左画像のようになります。
SCHEMATIC

SCHEMATIC

LCD:16x2
SCHEMATIC

SCHEMATIC

LCD:20x4

動作TEST

できました〜!
PS/2キーボード

PS/2キーボード

一応、念のために確認しておきますが、ソニー「プレステ2」のキーボードではございません^^

写真左側、普通のパソコン用キーボードです。USBキーボードとはコネクタ形状が違いますね。

ちょっと古い規格ですが、今でも入手容易です。キーの多数同時押しを認識するらしく、一部のゲーマーさんに根強い人気。
PS/2コネクタ

PS/2コネクタ

「ミニDIN6P」という名称で売られている汎用品です。
定型文送信

** 22CH MESSAGE VERSION **

定型文の送信機能を盛り込んでみました。

これもアマチュア無線の実際の交信においては、ほぼ必須の機能でしょう。

数字キーとファンクションキーに最大22個の定型文を割り当てることができます。
ARDUINO_UNOスケッチ

PROGRAM

DOWNLOAD(.zip) v6.2

※あらかじめダウンロード&インストールしてください。
(1)"TimerOne" Library
(2)"FlexiTimer2" Library
(3)"PS2keyboard" Library
PS2Keyboard.h

PS2keyboard.h

ファンクションキーを使う場合、キーボードライブラリのヘッダファイルを修正する必要があります。

"PS2Keyboard.h" in the library must be modified to activate function keys.
SCHEMATIC

SCHEMATIC

LCD:16x2
SCHEMATIC

SCHEMATIC

LCD:20x4
ARDUINO RTTY

組み込み例 new


ARDUINO UNOと完全互換のMetro Miniという小さなマイコンボードを使ってコンパクトに組んでみました。
ARDUINO RTTY

内部

動作TEST

できました〜!
ワード単位送信

** WORD-MODE-INPUT VERSION **

ワード単位送信に対応しました。

4行目の入力エリアに表示されている単語は、[Space] [Enter] [DownArrow]のいずれかで確定してからエンコードされます。

確定前なら[Backspace]で修正可能という大きな利点があります。
ARDUINO_UNOスケッチ

PROGRAM

DOWNLOAD(.zip) v6.0

※あらかじめダウンロード&インストールしてください。
(1)"TimerOne" Library
(2)"FlexiTimer2" Library
(3)"PS2keyboard" Library
PS2Keyboard.h

PS2keyboard.h

ファンクションキーを使う場合、キーボードライブラリのヘッダファイルを修正する必要があります。

"PS2Keyboard.h" in the library must be modified to activate function keys.
SCHEMATIC

SCHEMATIC

動作TEST

個人的にミスタイプはかなり多い方なので、これでプレッシャーなく楽に打てるようになります^^

実際のQSOで使ってるところ



BAUDOT ENCODER ( SENSOR INPUT / TELEMETRY )

遠隔でセンサーデータ等を送る時に使うタイプです。
FOR TELEMETRY BEACON

** FOR TELEMETRY BEACON USE **

PROGRAM

PROGRAM

DOWNLOAD(.zip)

v1.5 "TX UOS" added
SCHEMATIC

SCHEMATIC

動作TEST

センサーデータ10セットに対しIDを一回送出しています。


BAUDOT DECODER

Arduinoで「5単位BAUDOTコード」を解読します。
GR-SAKURA 1602 VERSION

** GR-SAKURA 1602 VERSION **

Arduino互換の"GR-SAKURA"と16x2液晶を使った作例。
>PLL DEMODULATOR

PLL DEMODULATOR

先日作ったPLLデモジュレーターと組み合わせて使います。
DIAGRAM

DIAGRAM

GR-SAKURAスケッチ

PROGRAM

DOWNLOAD(.zip)

※WEBコンパイラ上で「gr_sakura_liquidcrystalライブラリ」をインポートしてください。
SCHEMATIC

SCHEMATIC

動作TEST

できました〜!
UNO 2002 VERSION

** UNO 2002 VERSION **

"ARDUINO UNO"と20x2液晶でやってみました。
ARDUINO_UNOスケッチ

PROGRAM

DOWNLOAD(.zip)

※あらかじめ"FlexiTimer2"ライブラリをダウンロード&インストールしてください。
SCHEMATIC

SCHEMATIC

電源とLEDの接続ピンは、商品によって全くバラバラ。電源逆接で壊さないようにデータシートをしっかり確認。

動作TEST

できました〜!
UNO 2004 VERSION

** UNO 2004 VERSION **

さらに大型の20x4液晶で見やすくしてみました。
ARDUINO_UNOスケッチ

PROGRAM

縦スクロールの処理が重いかな?と心配しましたが、シリアルでモニターしてみると25ms程度で十分余裕があります。

DOWNLOAD(.zip)

※あらかじめ"FlexiTimer2"ライブラリをダウンロード&インストールしてください。
SCHEMATIC

SCHEMATIC

電源とLEDの接続ピンは、商品によって全くバラバラ。電源逆接で壊さないようにデータシートをしっかり確認。

動作TEST

できました〜!
MEGA & 16SEG LED

** MEGA & 16SEG LED **

16セグLEDを使用したバージョンです。
VQB201

VQB201

ドイツ製の古いストック品と思われます。
ARDUINO_UNOスケッチ

PROGRAM

DOWNLOAD(.zip)

※あらかじめダウンロード&インストールしてください。
(1)"TimerOne"ライブラリ
(2)"FlexiTimer2"ライブラリ
SCHEMATIC

SCHEMATIC

できました〜!


BAUDOT EnDECODER ( =TX & RX )

上記、エンコーダーとデコーダーを一つのプログラムにまとめたもの。
仮組み

仮組みの様子


もうブレッドボードでは収拾がつきません(笑)
ARDUINO_UNOスケッチ

PROGRAM

DOWNLOAD(.zip) v5.0 up

v5.0 MEMORY 10CH -> 22CH

※あらかじめダウンロード&インストールしてください。
(1)"TimerOne"ライブラリ
(2)"FlexiTimer2"ライブラリ
(3)"PS2keyboard"ライブラリ
PS2Keyboard.h

PS2keyboard.h

ファンクションキーを使う場合、キーボードライブラリのヘッダファイルを修正する必要があります。

"PS2Keyboard.h" in the library must be modified to activate function keys.
SCHEMATIC

SCHEMATIC

いつものPLLデモジュレーターと組み合わせて使います。

※LPFを追加しました。

<RX> 動作TEST

7MHz RTTY 受信中

<TX> 動作TEST

定型文を3つ連続指定して送信したところ。
F6IDT RTTY TERMINAL

** F6IDT VERSION **

フランスのF6IDT局による応用例です。

バーグラフ式の「チューニングインジケーター」や、サイン波の「高音質なAFSK発信器」などが追加されています。

元ネタが想像できないくらいの美しく完璧な出来栄え!!


PRODUCT new

製品化されます(汗
Open Interface III

** Open Interface III **

RemoteQTH.comで開発・販売しているデジタルモード用インターフェース"Open Interface"の次期バージョンに、私の書いたコードが少し使われる予定です(汗、汗

もともとこの製品はK3NGキーヤーを搭載した多機能インターフェースであり、その拡張としてBAUDOTのエンコーダーとデコーダーを載せるようです。


ASCII-8 new

8ビットASCIIコードでのテキスト送受信プログラムの例です。

ASCIIコードはARDUINOの内部データそのものなので、符号の定義が必要ありませんね。そのかわりBackSpaceキーの処理等が追加となります。
TRANSMITTER

** TRANSMITTER **

ARDUINO_UNOスケッチ

PROGRAM

DOWNLOAD(.zip) v1.0

※あらかじめダウンロード&インストールしてください。
(1)"TimerOne"library
(2)"FlexiTimer2"library
(3)"PS2keyboard"library
SCHEMATIC

SCHEMATIC

RECEIVER

** RECEIVER **

ARDUINO_UNOスケッチ

PROGRAM

DOWNLOAD(.zip) v1.0

※あらかじめダウンロード&インストールしてください。
(1)"FlexiTimer2"library
SCHEMATIC

SCHEMATIC

動作TEST


受信側の液晶画面です。BackSpaceキーによる文字削除が機能しています。


VARIOUS CODES ON THE WEB

WEB上にはRTTY関連のスケッチやライブラリを公開している人がたくさんおられます。参考にするべき点も多いと思いますので順に試して行きたいと思います。
Tim Zaman RTTY

** Tim Zaman (ASCII-7) **

オランダのZaman氏のライブラリ。テレメトリー用途でかなり多くの人が活用されているようです。

本来、ASCII符号ならUARTシリアルの出力そのまんまなのですが、無線に適した50baudというスピードは「遅すぎて」設定できないのです。

[Radio] RTTY Library for Arduino
Modify

RTTY.h

新しいIDEでは"WProgram.h"を"Arduino.h"に変更。
Modify

RTTY.cpp

ここ重要。

※公式のリファレンスによりますと"delayMicroseconds()"に設定してよい最大値は"16383"となっています。
Modify

RTTY.pde(サンプルスケッチ)

"#include <rtty.h>"から"#include <RTTY.h>に変更。
TEST CIRCUIT

TEST CIRCUIT

動作TEST


FLDIGI SETTING :
  • ASCII-7
  • NON PARITY
  • 1 STOP BIT
  • 50baud
  • SHIFT 425Hz
KG4SGP RTTY

** KG4SGP (BAUDOT) **

アメリカのKG4SGP局のスケッチです。アマチュア無線のビーコンなどに使えるでしょう。

arduino-rtty

動作TEST


PWMを用いてサイン波を出力するコードのはずですが実際には矩形波が出ています。どこか修正が必要なのかもしれません。
M0UPU RTTY

** M0UPU (ASCII-7) **

UKのM0UPU局のスケッチです。気球などを飛ばす際のテレメトリー用として最適です。

CRC-16チェックサムを付加してエラーチェックする機能が興味深いです。

Linking an Arduino to a Radiometrix NTX2B Transmitter / Part2 - RTTY

動作TEST


FLDIGI SETTING :
  • ASCII-7
  • NON PARITY
  • 2 STOP BITS
  • 50baud
  • SHIFT 425Hz
VU2ESE RTTY

** VU2ESE (BAUDOT) **

インドのVU2ESE局のGPSビーコンとRF発振回路の作例です。

私自身はGPSモジュールを初めて購入したので、いろいろと勉強になりました。

Simple RTTY Transmitter with Arduino
QLG1 GPS kit

GPS MODULE

大きな基板のGPSモジュールは"QLG1 GPS Receiver kit"という高感度タイプのGPSですね。

※感度にこだわらなければ国内で入手可能な一般的なものでOKです。私は秋月電子の小型モジュールで動作確認しました。(動画参照)
GitHub Picotracker

GPS LIBRARY

GPSライブラリは記事内で特に明示されていませんが、スケッチ内の関数名や変数名から推察するとEA5HAV局の"trackuino"系のものでしょう。

※今回は"ok1cdj / Picotracker"より"gps.h"及び"gps.cpp"のみをコピーして使用しました。
Modify

スケッチの改良

サンプルスケッチを動かしてみると緯度経度は正しく取り出せているのですが、シリアルでモニターした時のデータに乱れがあります。

これは少しコードを追加してやると解消されました。

動作TEST