アマチュア無線仲間の方々が
IchigoJamに興味を持ってくれたらいいな。
そんなことを思いながら、自分流のエレクトリックキーヤーを作り上げていく記事を連載風に書いています。今回がその第3回目になります。
前回は、パドルとリグをつなぐインターフェス回路と、キーヤーのプログラムをご紹介しました。
今回は、固定メッセージ(自局のコールサインなど)の送出する機能を追加します。
◆基板(今回実装分)
固定メッセージを送出するタクトスイッチを追加しました。
折角なので4つのスイッチを追加し、前回のキー速度UP/DOWNスイッチと併せて6つのスイッチになりました。
表(部品)面
左から、UP:緑のスイッチ:キー速度を早く、DOWN:青:遅く、メッセージ1(茶)、2(赤)、3(橙),4(黄)
裏(半田)面
IchigoJam S に挿入した写真
左側の木製の当局愛用の「
どこでもパドルMINI Wood 」by
のむさんローテク工房 です。
◆回路図
赤線で囲んだ部分が今回実装追加した回路です。
(クリックすると拡大します)
◆回路の説明
前回のUP/DOWNスイッチと同様にIN2の1ポートでアナログ分圧方式を採用し、(今回4つのスイッチが増えて)計6つスイッチを抵抗で分圧された電圧をプログラムで判定します。この回路は、アマチュア無線家らしくICOM社の無線機用外部キーパッドの回路定数に倣いました。
(参考
:IchigoJamに無線機用外部キーパッドをつないでみました(Part 1))
◆部品リスト(今回追加した部品のみ)
部品番号 |
名称 |
型番 |
備考 |
SW_1~4 |
タクトスイッチ |
(6x6mm) |
2.54mmピッチに挿入できるもの |
R6 |
1/6W カーボン抵抗 |
1.5kΩ |
|
R7 |
1/6W カーボン抵抗 |
1.5kΩ |
|
R8 |
1/6W カーボン抵抗 |
2.2kΩ |
|
R9 |
1/6W カーボン抵抗 |
4.7kΩ |
|
◆プログラム
10 '190828 CW KEYER(4)
20 GOSUB @INIT
30 IF !IN(1) OUT 1,1:LED 1:BEEP 13,T:WAIT T:OUT 1,0:LED 0:WAIT T
40 IF !IN(4) OUT 1,1:LED 1:BEEP 13,T*3:WAIT T*3:OUT 1,0:LED 0:WAIT T
50 GOSUB @SW:IF S=0 GOTO 30
60 IF S<5 GOTO @MORSE
70 IF S=6 T=T-1 ELSE T=T+1
80 IF T<2 T=2
90 IF T>18 T=18
100 IF IN(1) AND IN(4) BEEP 50,T:WAIT 2*T:GOTO 30
110 @MORSE:C=S*10
120 N=[C]:IF N=0 GOTO 30
130 B=10000:FOR I=0 TO 4:M=N/B%10:IF M<0 M=M+6:N=N+35536
140 IF M OUT 1,1:LED 1:BEEP 13,T*M:WAIT T*M:OUT 1,0:LED 0:WAIT T
150 B=B/10:NEXT
160 WAIT T*3:C=C+1:GOTO 120
170 @SW:V=ANA(2)
180 IF V>933 S=0:RTN
190 IF V<932 S=4
200 IF V<784 S=3
210 IF V<663 S=2
220 IF V<511 S=1
230 IF V<303 S=5
240 IF V<92 S=6
250 RTN
260 @INIT:T=5:LET[10],1333,333,11133,331,3111,311,0
270 LET[20],113,131,11111,31,31,3111,313,0
280 LET[30],3313,111,1311,0
290 LET[40],3,113,0
300 RTN
◆プログラムの説明
・30行から100行:前回のキーヤー部分です。これにメッセージキーヤーを追加していきました。
・170行の@SWサブルーチンは、IN2のアナログ電圧を判別してどのスイッチも押されていない時は変数Sに0を、押されているときは押されたスイッチの番号(1~6)をSに 返します。なお、便宜上UPスイッチは5、DOWNスイッチには6を割り当てています。
・20行と260行~300行:
固定文字列(メッセージ)のモールスコードを定義しています。今回は、短点(・)を1、長点(-)を3として、”JO3”の場合は、1333=・---=”J” 333=---=”O” 11133=・・・--=”3”といったわかりやすい方式(※1)を採用しました。おしまいには0を入れます。
260行で配列の[10]からにはSW_1が押されたときに送出する文字列を、270行に[20]からはSW_2の文字列といった具合に入れていきます。今回のプログラムでは、次のようにしていますが、好きなメッセージに変更できます。
行 |
配列 |
文字列 |
おしまい |
260 |
[10]~ |
1333(J), 333(O),11133(3),331(G),3111(B),311(D) |
0 |
270 |
[20]~ |
113(U),131(R),11111(5),31(N),31(N),3111(B),313(K) |
0 |
280 |
[30]~ |
3313(Q),111(S),1311(L) |
0 |
290 |
[40]~ |
3(T),113(U) |
0 |
・110行から160行:
前述のエンコードした数字をモールス符号化するプログラムです。
このわかりやすい単点1、長点3の方式とプログラムはIchigoJam開発者の福野さんのブログ記事:
音声読み上げで自学する和文モールス信号 on IchigoJamから頂きました。
IchigoJamのBASICに慣れ親しんでいただく目的でこのわかりやすい方式を紹介させていただきました。
一方で、実践面で必要な”?”や”/”といった6要素のモールス符号には対応していないので、次回以降では
とてもわかりにくい方式?への変更を予定していますので悪しからずご了承ください。
次回は、キーボードで入力した文字でモールス信号を送出してみたいと思います。
#IchigoJam
#IchigoHam #自作室
PR