忍者ブログ



JO3GBD

JO3GBDアマチュア無線局長のブログ。無線、UD、IT、家電、電子工作、IchigoJam、IchigoHam、その他もろもろ。

カレンダー

04 2019/05 06
1 3
5 6 8 9 10
12 13 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

ブログ&サイト内検索

最近の記事

最近の動画

hamlife.jp

リンク

にほんブログ村

にほんブログ村 その他趣味ブログ アマチュア無線へ
にほんブログ村

人気ブログランキング


楽天で探す
楽天市場

FacebookのIchigoJam-FANグループで、モールス符号変換プログラムの符号変換データについて、一符号を1バイト(8ビット)以内であらわす方式があったとか、昔のZ80のCWトレーナーでは・・・とかの書込みを拝見して、「あ、それ知ってる!! 昔にやったことがある。」と・・・

という訳で、FacebookのIchigoJam-FANグループでSHIROさんが公開されいてたSHIROのIchigoJam日記 モールス符号変換のプログラムをベースにさせていただいて、8ビットコードの変換方式をご紹介します。

・記憶を辿って

四十数年前、8ビットマイコンのハンドアセンブルの時代のこと、TK-80の16進キーでASCIIコードで打った文字がモールス符号に変換されて、脇に置いたAMラジオから決して澄んだ音ではないツートツートを聞こえて喜んだ時の記憶が甦りました。
確かTK-80にはブザーが無かったので、マシン語ループ作ったノイズ音をブザー代わりにAMラジオで聞いていたのです。
更に、ふと「"bit"という雑誌があったなあ」を思い出したので、プログラムはそれを参考にしたのかもそれませんが、さすがにこれは定かではありません。
TK-80でしたのでZ-80より以前の8080。8Bit演算しかないので、モールス符号変換は8ビットで処理をしていました。

・符号変換データー

前置きが長くなりましたが、当時を思い出しつつご説明します。
(この方式は私のオリジナルではありません、出典は四十数年前の当時の雑誌か書籍の記事だったと記憶しています。)

まず、モールス符号は 単点(ドット)と長点(ダッシュ)の組み合わせで構成されていて、最小1要素から最大6要素で構成されます。(※1一部の例外があります。)、
従い、単点を0、長点を1とビット単位で構成すれば最大6ビットであらわすことができますが、モールス符号は可変長なので、はじめと終わりがわかるようにしなければばりません。そこで1バイトの変換データーの(頭=MSB=から0で埋めて)符号データの前にスタートビット1を付加し、その後が符号データ(1~6ビット)としてあらわします。 

例えば、
 ”A”は・ー(単点と長点) なので”01”。それに頭にスタートビットの”1”を付加して”101”(二進数)。”101”を十進数表記して"5"になります。

 ”?”は・・--・・なので”001100”、頭に”1”を付加して”1001100”で十進数で”76”
といった具合です。

参考)符号変換表(抜粋)
文字 モールス符号 2進数 10進数
E 00000010 2
M 00000011 3
A ・ー 00000101 5
1 ・ーーーー 00101111 47
9 ーーーー・ 00111110 62
? ・・ーー・・ 01001100 76
: ーーー・・・ 01111000 120

訂正符号(HH(--------)

・・・・・・・・ 100000000 256 ※1

※1)訂正符号(HH(--------))の”・・・・・・・・”は例外で8要素あり、データー9ビット長になります。

・符号化プログラム

目的文字のデータからモールス符号に変換するには、まず、データーを左にビットシフトしてスタートビットの1が来るまでシフトを続けます。

その次から左シフトして0が出れば単点、1が出れば長点、所定の回数(ビット数)になればおしまいとします。

ここでちょっと問題が。8ビットデータを左シフト(RAL)してキャリー(あふれたビット)で判定(JC)とイメージしていたのですが、IchigoJam BASICのデータは16ビットですしキャリー有無の条件判断がありません。(左シフトは”<<"の演算子があります。)

代わりに、左シフト後に十進数の256(二進数では0000000100000000)でビット論理積(&)を取って(マスクして)ビット8(下=LSB=から9ビット目)が1か0かの判断をしています。
(ビット8で判断することで、訂正符号(HH(--------))の符号化も対応ができます。)

参考)符号化プログラムの例:キー入力した文字データをモールス符号に変換して表示する
40 INPUT "MOJI DATA?=",M
60 L=9
80 IF!(M&256):M=M<<1:L=L-1:CONT
90 M=M<<1:L=L-1
100 IF !L ?:GOTO 40
120 IF !(M&256) ?"・";ELSE ?"-";
130 GOTO 90


・IchigoJamのプログラム

FacebookのIchigoJam-FANグループでも公開されてたSHIROのIchigoJam日記 モールス符号変換のIchigoJamプログラムをベースにさせていただいて、8ビットコード方式にしてみましした。

また、変換データの定義が減った分プログラムサイズに余裕ができたので、下記の追加をしました。
 - モールス符号をブザー音で鳴るようにした
 - 訂正符号(HH(--------) も個別対応し、バックスペースとDELキーに割り当てた
なお、(バックスペースを対応した結果論ではありますが)カタカナの変換時の振る舞いが(正しくはないが)モールス符号的に間違いではない動きになりました。

以降にSHIROのIchigoJam日記 モールス符号変換にならった符号変換表と、IchigoJamプログラムを記します。

・符号変換表

文字 文字
コード
内部
コード
モールス符号 2進数 10
進数
アド
レス
! 33 0 ー・ー・ーー 1101011 107 700
" 34 1 ・ー・・ー・ 1010010 82 701
# 35 2 (N/A) 0 0 702
$ 36 3 (N/A) 0 0 703
% 37 4 (N/A) 0 0 704
& 38 5 ・ー・・・ 101000 40 705
' 39 6 ・ーーーー・ 1011110 94 706
( 40 7 ー・ーー・ 110110 54 707
) 41 8 ー・ーー・ー 1101101 109 708
* 42 9 ・・・ー・ 100010 34 709
+ 43 10 ・ー・ー・ 101010 42 70A
, 44 11 ーー・・ーー 1110011 115 70B
- 45 12 ー・・・・ー 1100001 97 70C
. 46 13 ・ー・ー・ー 1010101 85 70D
/ 47 14 ー・・ー・ 110010 50 70E
0 48 15 ーーーーー 111111 63 70F
1 49 16 ・ーーーー 101111 47 710
2 50 17 ・・ーーー 100111 39 711
3 51 18 ・・・ーー 100011 35 712
4 52 19 ・・・・ー 100001 33 713
5 53 20 ・・・・・ 100000 32 714
6 54 21 ー・・・・ 110000 48 715
7 55 22 ーー・・・ 111000 56 716
8 56 23 ーーー・・ 111100 60 717
9 57 24 ーーーー・ 111110 62 718
: 58 25 ーーー・・・ 1111000 120 719
; 59 26 (N/A) 0 0 71A
< 60 27 (N/A) 0 0 71B
= 61 28 ー・・・ー 110001 49 71C
> 62 29 (N/A) 0 0 71D
? 63 30 ・・ーー・・ 1001100 76 71E
@ 64 31 ・ーー・ー・ 1011010 90 71F
A 65 32 ・ー 101 5 720
B 66 33 ー・・・ 11000 24 721
C 67 34 ー・ー・ 11010 26 722
D 68 35 ー・・ 1100 12 723
E 69 36 10 2 724
F 70 37 ・・ー・ 10010 18 725
G 71 38 ーー・ 1110 14 726
H 72 39 ・・・・ 10000 16 727
I 73 40 ・・ 100 4 728
J 74 41 ・ーーー 10111 23 729
K 75 42 ー・ー 1101 13 72A
L 76 43 ・ー・・ 10100 20 72B
M 77 44 ーー 111 7 72C
N 78 45 ー・ 110 6 72D
O 79 46 ーーー 1111 15 72E
P 80 47 ・ーー・ 10110 22 72F
Q 81 48 ーー・ー 11101 29 730
R 82 49 ・ー・ 1010 10 731
S 83 50 ・・・ 1000 8 732
T 84 51 11 3 733
U 85 52 ・・ー 1001 9 734
V 86 53 ・・・ー 10001 17 735
W 87 54 ・ーー 1011 11 736
X 88 55 ー・・ー 11001 25 737
Y 89 56 ー・ーー 11011 27 738
Z 90 57 ーー・・ 11100 28 739
163 58 ・ー・ー・・ 1010100 84 73A
164 59 ・ー・ー・ー 1010101 85 73B
165 60 (N/A) 0 0 73C
166 61 ・ーーー 10111 23 73D
167 62 ーー・ーー 111011 59 73E
168 63 ・ー 101 5 73F
169 64 ・・ー 1001 9 740
170 65 ー・ーーー 110111 55 741
171 66 ・ー・・・ 101000 40 742
172 67 ・ーー 1011 11 743
173 68 ー・・ーー 110011 51 744
174 69 ーー 111 7 745
175 70 ・ーー・ 10110 22 746
176 71 ・ーー・ー 101101 45 747
177 72 ーー・ーー 111011 59 748
178 73 ・ー 101 5 749
179 74 ・・ー 1001 9 74A
180 75 ー・ーーー 110111 55 74B
181 76 ・ー・・・ 101000 40 74C
182 77 ・ー・・ 10100 20 74D
183 78 ー・ー・・ 110100 52 74E
184 79 ・・・ー 10001 17 74F
185 80 ー・ーー 11011 27 750
186 81 ーーーー 11111 31 751
187 82 ー・ー・ー 110101 53 752
188 83 ーー・ー・ 111010 58 753
189 84 ーーー・ー 111101 61 754
190 85 ・ーーー・ 101110 46 755
ソ 191 86 ーーー・ 11110 30 756
192 87 ー・ 110 6 757
193 88 ・・ー・ 10010 18 758
194 89 ・ーー・ 10110 22 759
195 90 ・ー・ーー 101011 43 75A
196 91 ・・ー・・ 100100 36 75B
197 92 ・ー・ 1010 10 75C
198 93 ー・ー・ 11010 26 75D
199 94 ・・・・ 10000 16 75E
200 95 ーー・ー 11101 29 75F
201 96 ・・ーー 10011 19 760
202 97 ー・・・ 11000 24 761
203 98 ーー・・ー 111001 57 762
204 99 ーー・・ 11100 28 763
205 100 10 2 764
206 101 ー・・ 1100 12 765
207 102 ー・・ー 11001 25 766
208 103 ・・ー・ー 100101 37 767
209 104 11 3 768
210 105 ー・・・ー 110001 49 769
211 106 ー・・ー・ 110010 50 76A
212 107 ・ーー 1011 11 76B
213 108 ー・・ーー 110011 51 76C
214 109 ーー 111 7 76D
215 110 ・・・ 1000 8 76E
216 111 ーー・ 1110 14 76F
217 112 ー・ーー・ 110110 54 770
218 113 ーーー 1111 15 771
219 114 ・ー・ー 10101 21 772
220 115 ー・ー 1101 13 773
221 116 ・ー・ー・ 101010 42 774
222 117 ・・ 100 4 775
223 118 ・・ーー・ 100110 38 776

・プログラム

10 '190427 Morse Encode 3
20 CLS:?"*Morse Encode 3"
30 CLV:S=5:POKE#700,107,82,0,0,0,40,94,54,109,34,42,115,97,85,50,63,47,39,35,33,32,48,56,60,62,120,0,0,49,0,76,90,5,24,26,12,2,18,14,16,4,23,13,20,7,6,15,22,29,10,8,3,9,17,11,25,27,28
40 POKE#73A,84,85,0,23,59,5,9,55,40,11,51,7,22,45,59,5,9,55,40,20,52,17,27,31,53,58,61,46,30,6,18,22,43,36,10,26,16,29,19,24,57,28,2,12,25,37,3,49,50,11,51,7,8,14,54,15,21,13,42,4,38
50 ?"CHR?=";
60 K=INKEY():IF !(K=8 OR (K>32 AND K<91) OR K=127 OR (K>162 AND K<224)) CONT
70 L=9
80 IF K=8 OR K=127 M=256:? "xx";:GOTO 140
90 IF K>161 A=K-105 ELSE A=K-33
100 M=PEEK(#700+A)
110 IF !M GOTO 60
120 ? CHR$(K);" ";
130 IF!(M&256) M=M<<1:L=L-1:CONT
140 M=M<<1:L=L-1
150 IF !L ?:WAIT 2*S:GOTO 50
160 BEEP 13,99:LED 1
170 IF !(M&256) ?"・";:WAIT S:ELSE?"-";:WAIT S*3
180 BEEP 0:LED 0:WAIT S:GOTO 140

プログラムの残りバイトは200バイトあり、更に機能アップができます。

なお、今回使用したIchigoJamのファームウェアはVer. 1.3.1です。


-・・・-


IchigoJamでモールスの記事の目次を こちら にまとめましたのでご覧ください。

「IchigoJamってなに?」って方は、こちらのコラムをご参照ください。


なお、IchigoJamは(株)jig.jpの登録商標です。

#IchigoHam #IchigoJam #IchigoJamでモールス #CW #自作室

PR
    



「組み込み用IchigoJam基板の第三弾」の確認経過報告です。

昨日のターミナルエミュレータからLチカ、BEEPに引き続き、ビデオモニター、キーボードも仮接続して動作確認をしました。


仮付けしたボタンも確認、


OKでした。

今日はここまで。次はI/OポートとI2Cの確認をします。


#IchigoJam #IchigoHam #自作室
    



この記事は、先日の「IchigoJamでモールス (2):赤外線ワイヤレス通信ごっこ」のIchigioJamプログラムの説明編です。

直接この記事におこしになられた方は、先に こちらの記事と動画 をご覧されればと思います。

◆送信側のIchigoJam
・プログラム
10 IF !BTN() CONT ELSE BEEP 9,999:LED 1
20 PWM 2,421,-1263:WAIT -10:OUT 2,0:WAIT -10
30 IF BTN() GOTO 20
40 BEEP 0:LED 0:GOTO 10

・説明
ボタンを押している間は、OUT2番端子に、38KHzの周波数の断続信号を出力します。
補足:
 - OUT2番端子:赤外線発光素子=赤外線LEDの駆動回路がつながれている
 - 38KHz:受信側の回路に実装した赤外線受光モジュールの中心周波数に合わせた(キャリア信号)
 - 断続信号:距離が離れると、38KHzを連続では、途中で信号が途切れる現象がになり、断続パルスにした方が安定して通信できる。

10行 ボタンが押されるまで待ち、ボタンが押されたら、ブザーを鳴らし始めてLEDも点灯させ
ます。
20行 (ボタンが押されたので)赤外線発光素子(小基板上のLED)の駆動を行います。
「PWM 2,421,-1236」
使用した赤外線受信モジュールの中心周波数が38KHzなので、38KHzの波形を2番の出力端子(赤外線発光素子回路がつながっている)に出力します。パルス幅は1/3duty(※1)になるようにしています。
 パラメーター:
  -1263: ここがマイナスなのでPWMコマンドの周期とパルス幅が通常(0.01msec)の1/480になります。なので、
  2:出力端子は2番
  421:パルス幅が、0.01msec x (1/480) x 421 = 0.0088ms
  1236:周期が、0.01msec x (1/480) x 1263 = 0.02631ms
の波形が出力されます。
(周波数は1/0.02631msec=38KHz、の周波数で、duty比は0.0088/0.02631=1/3)
「WAIT -10」「OUT 2,0」
その出力状態を (1sec/60/261) x10 = 0.639msec 続けた後に、2番端子を0(LOWレベル)にして、38KHzを一旦止める(休ませる)ます。(※2)
「WAIT -10」※2
その休んだ状態を (1sec/60/261) x10 = 0.639msec 続けます。
30行 ボタンが押されて(押され続けて)いたら、前の20行に戻り、繰り返します。
40行 ボタンが押されていなかったら、ブザーを止めて、LEDを消灯させて、元の10行へ戻ります。

※1:パルス比は421の数値を変更していろんなパルス比で実験できます。1/3の設定は(回路の遅延の影響もあり)最適かどうかは分かりませんが、1/2よりも安定しています。1/3や421にこだわる必要はありません。

※2:「WAIT -10」は正直言って気休め的に入れています。(無くても良いです。)IchigoJamのコマンドの実行速度で制限されますのでPWM 2,421,-1263:OUT 2,0でもさほど変わりませんが、そのタイミングで少し待つ気持をプログラムに入れ込みました。

・OUT2端子の実測波形(ボタンを押した時)





◆受信側のIchigoJam
・プログラム
10 IF IN(1) CONT
20 BEEP 13,999:LED 1:C=0
30 IF !IN(1) C=0:WAIT -20:CONT
40 C=C+IN(1):WAIT -10
50 IF C<10 GOTO 30
60 BEEP 0:LED 0:GOTO 10

・説明
赤外線受光モジュール(IN1端子につないている)は、赤外線が来たら出力が0(Low)にしますので、IN1が0になったら、送信側でボタンが押されたと判断し、ブザー音を鳴らし始めてLEDを点灯させます。
そして、IN1がベタ1になったら、送信側のボタンが離されたと判断してブザーとLED を止めます。ここで、送信側は赤外線は断続的に送信しますので、断の時(IN1が1)には反応しないよう、一定間隔(※3)おいてIN1=1を複数回(※4)検出したら、送信側のボタンがOFFされたと判定をしています。

※3:一定間隔はWAIT -10としていますが、送信側同様にこれもいい加減な値ですし、実際には狙い通りの時間間隔にはなっていません。
※4:複数回数は10で判定しています(変数Cに加算して、Cが10なったら判定)が、これもカットアンドトライ的な値です。あまり多くし過ぎると、反応が遅れてきます。(信号が長めになる=キレが悪くなる。)

なお、今回使用したIchigoJamのファームウェアはVer. 1.3.1です。


最後に、前回の記事と同じ実験動画をここにも掲載します。


動画の実験では、6.5m離しても大丈夫でしたが、今回のブログラムは※1~4は暫定値でまだまだ調整ができますし、プログラムを工夫をしたり、回路や受光・発光素子に工夫を加えたりして、もっと遠い距離まで届くようになるでしょう。 チャレンジされてはいかがでしょうか?

-・・・-

IchigoJamでモールスの記事の目次を こちら にまとめましたのでご覧ください。



ここまで読んでいただいて、「IchigoJamってなに?」って方は、こちらのコラムをご参照ください。


なお、IchigoJamは(株)jig.jpの登録商標です。

#IchigoHam #IchigoJam #IchigoJamでモールス #CW #自作室


    



先日の「組み込み用IchigoJam基板の第三弾」が到着しました。

早速、部品実装して、ファーム書き込み(Flash Magic)、UARTからターミナルエミュレータ(Tera Tarm)で、Lチカ、BEEPもクリアし、今のところ順調です。




今日はここまでで、ビデオとキーボードの確認はこれからになります。(キーボードはちょっと不安がありますが。)

さて、この基板のこけら落としは何を作りましょうか?


#IchigoJam #IchigoHam #自作室
    



こどもパソコンのIchigoJamを手にされたこどもたちが、モールス通信に興味を持ってくれたらいいな、と、そんなことを思いながら書いた記事の第2弾です。

前回3行のプログラムで押したら鳴るモールス練習機を作りました。

今回は実際にモールス通信をするまねごとをしてみたいと思います。
(なお、この記事はこどもたちに向けてではなく、親御さんや指導者の方々に向けた記事になっています。)

先ずは、動画をご覧ください。



こっち(送信側)のIchigoJamのボタンを押したら、あっち(受信側)のIchigoJamのLEDが光ってブザーが鳴ります。実験では6.5m離れても反応していました。さらに工夫をすればもっと離れても反応すると思います。


◆ IchigoJamどうしをワイヤで通信 ◆

さて動画のワイヤレスの前に、先ず最初はワイヤ(電線)でIchigoJamどうしをつない通信をしてみましょう。

・プログラム
送信側のIchigoJam:
10 IF !BTN() CONT ELSE BEEP 9,999:LED 1:OUT 2,1
20 IF BTN() CONT ELSE BEEP 0:LED 0:OUT 2,0
30 GOTO 10
受信側のIchigoJam:
10 IF !IN(1) CONT ELSE BEEP 9,999:LED 1
20 IF IN(1) CONT ELSE BEEP 0:LED 0
30 GOTO 10


・接続
IchigoJamどうしを2本のワイヤでつなぎます。
  

結線
送信側   受信側
OUT2 IN1
GND GND


送信側


受信側


・実験
準備が出来たら、ふたつのIchigoJamをRUN [ENTER]します。
こっち(送信側)のIchigoJamのボタンを押すと、あっち(受信側)のIchigoJamのLEDが光ってブザー音が鳴るはずです。

長いワイヤがあれば、IchigoJamを離れた場所や、部屋越しに動かして鳴らしてみましょう。

-・・・-


◆ IchigoJamどうしをワイヤレス(無線)で通信 ◆

次に、冒頭の動画の実験です。

「ワイヤレス」とはワイヤ(電線)が無い(レス)という意味で、電線が無い、すなわち、「無線」での通信ということです。
今回はリモコンなどで使われている赤外線を使って無線の実験をしてみます。

・回路の準備
IchigoJamにつなぐ赤外線の送信、受信の回路部品を準備します。

回路図

送信側の発光素子はIRダイオードで赤外線発光ダイオード(LED)です。
受信側の赤外線受信モジュールは、3.3Vで駆動できるタイプで中心周波数は38KHzのものを選びました。

ともに、電子部品のパーツ屋さんで手に入る部品です。
今回は2cm角(7x7孔)のユニバーサル基板で作りました。

送信側          受信側





・IchigoJamに装着
IchigoJamのソケットCN4に差し込みます。

送信側
OUT4~VCC端子に挿入


受信側
GND~IN1端子に挿入
ずれて挿さないようにご注意ください。


・IchigoJamのプログラム

送信側のIchigoJam:
10 IF !BTN() CONT ELSE BEEP 9,999:LED 1
20 PWM 2,421,-1263:WAIT -10:OUT 2,0:WAIT -10
30 IF BTN() GOTO 20
40 BEEP 0:LED 0:GOTO 10

受信側のIchigoJam:
10 IF IN(1) CONT
20 BEEP 13,999:LED 1:C=0
30 IF !IN(1) C=0:WAIT -20:CONT
40 C=C+IN(1):WAIT -10
50 IF C<10 GOTO 30
60 BEEP 0:LED 0:GOTO 10

ここでは長くなるので、プログラムの説明は割愛します。こちらの記事で説明をしていますので、ご参照ください。


・実験
発光素子と受光素子を向かいあうようにIchigoJamどうしを向い合せます。

二つのIchigoJamをRUN [ENTER]して、送信側のIchigoJamのボタンを押すと、受信側のIchigoJamが光って音が鳴るはずです。

IchigoJamを少し離して試してみましょう。。
発光素子と受光素子が向き合っていると結構届きますが、ずらしたり、斜めを向いたり、あいだに障害物があると届かなくなります。
赤外線という眼には見えない光で通信しているので、光が届いている範囲をイメージするとよいでしょう。


・IchigoJamを持ち運べるようする

さて、どこまで届くのでしょうか? もっと離して実験しましょう。
といっても、実験をするとき、IchigoJamのキーボードやモニターは邪魔ですね。

そういう時は次の手順をすると、モニターやキーボードなしでもIchigoJamが使えます。
1)RUNしていたらEscキーでプログラムを止める
2)SAVE 0[ENTER]と押す。
 ここで、こんな画面がでたらOKです。
3)IchigoJamの電源スイッチをOFFにする
4)キーボードとモニターのケーブルを取り外す。
  電源ケーブルはそのまま。
5)IchigoJamのボタンを押しながら電源スイッチをONにする。

これで先ほどと同じ状態になります。
プログラムを止めるときは電源をOFFにします。(電池の消耗を防ぐためにも、使わないときはこまめにOFFをすることをおすすめします。)

電源をOFFしても、また5)のようにボタンを押しながら電源をONにすれば再開できます。

電源はモバイルバッテリーを使うとIchigoJamを持ち運びながら実験ができます。


・さて、どこまで届くか?
IchigoJamをボタンを押しながら電源スイッチをONにて自動起動します。
発光素子と受光素子が向かい合うようにIchigoJamを向い合せにして、送信側のボタンを押して実験をしましょう。
受信側が光って鳴るはずです。

動画の実験では、6.5m離しても大丈夫でした。さらに、プログラムを工夫をしたり、回路や受光・発光素子に細工をしたら、もっと遠い距離まで届くようになるでしょう。
チャレンジされてはいかがでしょうか?

なお、今回使用したIchigoJamのファームウェアはVer. 1.3.1です。


最後に、最初と同じ動画をここにも掲載しておきますね。


お詫び:
動画内で、”ICHIGOJAM”とモールス符号で打とうとしたのですが、誤って”ICHIGAJAM"になっていました。お恥ずかしい話ですみません。


-・・・-

次回は、モールス符号を覚えるための学習用プログラムを予定しています。

IchigoJamでモールスの記事の目次を こちら にまとめましたのでご覧ください。



ここまで読んでいただいて、「IchigoJamってなに?」って方は、こちらのコラムをご参照ください。


なお、IchigoJamは(株)jig.jpの登録商標です。

#IchigoHam #IchigoJam #IchigoJamでモールス #CW #自作室


    



アマチュア無線仲間の方々に、IchigoJamに興味を持ってもらいたい!

IchigoJamとはもともと小学生のプログラミング学習用の小型のマイコンですが、お手軽で簡単にプログラミングが出来て、性能も結構良いので、無線関係の自作用にはもってこいだと思っています。(IchigoJamについては⇒こちらのコラムをご参照)

ハムがこどもたちと同じ道具(ハード=IchigoJam)を使い、同じ言葉(ソフト=IchigoJamのBASIC言語)を話すようになれば、いつぞやアマチュア無線界も活性化するはず! と勝手に思っています。

そんなことを想いつつ、IchigoJamを使ったCWキーヤーを数回に分けてこのブログでご紹介していきます。

先ずは動画をご覧ください。


スクイズ(両方を同時に押すと長点・単点を繰り返す)もちゃんと対応していますね。
実は、このキーヤーは後でご紹介するたった3行の簡単なプログラムで出来ています。

ハードの接続やプログラムの入力もお手軽で簡単です。
OMの自作バリエーションとしてIchigoJamをお使いになるきっかけになったらいいなと思いながら、IchigoJamの初めの第一歩的にこのキーヤーの作り方をご紹介をします。


◆パドルをIchigoJamにつなぐ
パドルとIchigoJamを次のように3本のワイヤーでつなぎます。

パドルの端子 IchigoJamのピンソケット
コモン <----> GND
ドット(短点の端子) <----> IN1
ダッシュ(長点の端子) <----> IN4



◆IchigoJamの準備

IchigoJamに、キーボード、モニター、電源をつなぎます。


電源スイッチをONにすると、モニターに、
IchigoJam BASIC 1.3.1 by jig.jp

OK
のような画面が出てプログラムの準備完了です。


◆プログラムを入力する
キーボードから、次のプログラムを入力します。

10 IF !IN(1) BEEP 9,5:WAIT 10
20 IF !IN(4) BEEP 9,15:WAIT 20
30 GOTO 10
(各行の最後は[ENTER]キーを押して改行します)

これで、プログラミングが完了です。
(このように、IchigoJamとそれにつながったキーボード、モニターディスプレー、5V電源以外は何も要らない、つまり、パソコンやパソコン上での開発ソフトも不要で、プログラミングが完了するお手軽さでIchigoJamの特長です。)

◆プログラムを確認する
ここで、LIST[ENTER]と押すと、入力したプログラムの確認ができます。




◆プログラムを実行する

次に、
RUN
[ENTER]と押してプログラムを実行します。

パドルを操作してみてください。
スクイズ付のCWキーヤーが出来ました。

◆プログラムを止める
プログラムを止めるときはESCキー(キーボードの左上側)を押します。

◆プログラムの説明
この3行のプログラムの意味はだいたいこんなイメージです。

10 IF !IN(1) もしIN(1)端子がLowなら
  BEEP 9,5:WAIT 10 ブザーを5単位時間鳴らしつつ、10単位時間待つ。
20 IF !IN(4) もしIN(4)端子がLowなら
  BEEP 9,15:WAIT 20 ブザーを15単位時間鳴らして、20単位時間待つ。
30 GOTO 10 最初に戻り繰り返す。

なお、BEEP 9,15は、9という音に高さ(音程)で、5という単位時間でブザーを鳴らし続けます。
また、WAIT 10 は10単位時間待ちます。

IchigoJamでの時間は60単位時間で1秒(即ち WAIT 60で約一秒)ですので一単位時間は1秒/60=約16.7msです。
従って、このプログラムでは、
短点 BEEP 9,5 5単位時間=16.7ms x 5=83msの1マーク
  WAIT 10 10単位時間=16.7ms x 10=167msで、スペースは上の83msを差し引いた83msの1スペース
長点 BEEP 9,15 15単位時間=16.7ms x 15=250msの3マーク
  WAIT 20 20単位時間=16.7ms x 20=333msで、スペースは上の250msを差し引いた83msの1スペース

となります。


いかがでしょうか?
特定の世代の方には、昔を彷彿させられ懐かしさを感じられたかも知れませんね。
最初と同じ動画をここにも掲載しますので、改めてご覧ください。



-・・・-

次回の記事では、IchigoJamに簡単なインタフェース回路を追加して、キー出力を無線機につないでみようと思います。

また、追々、キーボードキーヤーやメッセージキーヤーもご紹介する予定をしています。

ここまで読んでいただいて、IchigoJamってなに?って方は、こちらのコラムをご参照ください。


なお、IchigoJamは(株)jig.jpの登録商標です。

#IchigoHam #IchigoJam #IchigoJamでCWキーヤー #CW #自作室
    



前回のIchigoJam用自作ユニバーサル基板が着弾!の記事で、「シルク印刷で無理やり入れた信号名の文字が小さすぎてつぶれて読めません。」で、一旦あきらていました。が、コメントもいただきまして、文字に工夫をしてなんとか読めるようにと再度出図した基板が着弾しました。


手前が今回、奥が前回版に基板

拡大すると


ロングソケットを挿しても




小さいながらも信号名が見えますし判別できますね。

なかなか。
「やればできる!」ではないですか?

ところが、ところが・・・再着弾した基板を裏返すと


なんとまあ、裏面の信号名を入れるのを忘れているではありませんか。

何故に出図前に気が付かなかったのか? ・・・

最近「加齢のせい」で片付けてしまうことが多くなったように思えます。Hi!


ともあれ、ユニバーサル基板ばかり作っても仕方がないので、このユニバーサル基板を使ってアマチュア無線関係の大作!?を自作する予定をしています。

以前の記事から自作の構想写真です。




#IchigoJam #IchigoHam #自作室
    




IchigoJamを組み込みで使うための小さな基板の第三弾。
あれこれと考えてしまい時間がかかりましたが、きりがないので、この内容で出図をしました。

2.3㎝角の小型サイズながら、今回の第三弾では、
・レギュレータICを実装し5V駆動に対応。
 (レギュレーターICを実装しなければ3.3V駆動も可能)
・I2C端子をフル対応
・PS2キーボード接続端子対応(要は5V端子が追加)
・ブザーとボタンも(無理やりですが)載せれるようにしました。


はたして上手く動くでしょうか? 基板の到着が楽しみです。



-・・・-
ご参考)これまでの組み込み用基板



ご参考)これまでの組み込み例。



#IchigoJam #IchigoHam #自作室
    



3ヶ月毎の恒例記事「このブログのアクセスが多かった人気記事のランキング」を公開します。

(2019年1月から3月の3ヵ月間における単独ページ記事のページビュー数の順位です)

No.記 事投稿日
1 【備忘録】エクセルでグラフを矢印キーで動かす方法 2014/11/09
2 100円ショップのイヤフォンマイクでハンディー機のイヤフォンマイクを作ってみました。 (製作編) 2014/12/28
3 第一級陸上特殊無線技士を受験して (一アマとの相違点など) 2016/02/11
4 キートップのお話:シリンドリカル・ステップ・スカルプチャー 2015/04/01
5 コンボジャックを変換するアダプタを作りました。 2013/10/08
6 【備忘録】ハムログデーターの一部をエクセルで編集する方法 2015/08/22
7 広島でパーツ屋さん跡を巡ってサプライズ 2015/11/08
8 ハムログに入力しやすい紙ログ!「LOGBOOK for Amateur Radio」 2015/12/18
9 JT65:QSLカードのレポート欄 2013/11/09
10 ID-51用ハンディーマイクのプチ自作 - FRISKケース入り 2017/01/09
11 【備忘録】CI-V接続のHAMLOG設定 2016/03/26
12 AMラジオ放送廃止の報道に接して 2019/03/23
13 IchigoJamでモールス:初めの第一歩 3行プログラムでモールス練習機 2019/03/27
14 久しぶりの従事者免許申請で思うこと 2016/02/28
15 AWXアンテナを作ってみました! が・・・ 2013/05/04
16 IchigoJamでモールス:「赤外線モールス通信機」 その2(動画あり) 2019/03/03
17 IchigoJam用CI-Vインターフェースの改善 2019/01/17
18 【備忘録】 aitendoの送料無料会員手続き 2016/06/18
19 IchigoJamでモールス:デジットの「赤外線モールス通信機」 を試してみました(動画あり) 2019/03/01
20 米国FCC免許の更新手続きをしました。 2015/04/11
21 お手軽移動運用派の当局に強い味方??RHM10でプチ移動運用 2012/07/28
22 リモコンハンドマイクHM-151のPTT不良の修理 - スイッチを交換しました 2019/01/19
23 一陸特合格しました。早速、従免申請を。 2016/02/26
24 遅ればせながら IchigoJam Sを組立てました。 2019/01/11
25 IchigoJam用ユニバーサル基板に部品を乗せて妄想中・・・ 2019/03/12
26 富士山の無線従事者免許証が届きました。 2016/03/19
27 静電タッチモジュールで無接点パドルを作ってみました 2018/05/05
28 IchigoJam用自作ユニバーサル基板が着弾! 2019/03/07
29 紙ログのダウンロード、ハムログ関係のページを集めました 2016/06/1
30 年初のご挨拶と年初恒例の・・・ 2019/01/05

定番の過去記事に加えて最近力を入れている自作関係の記事に多くのアクセスをいただきました。

中でも、こども達のパソコンIchigoJamと老齢化の進むアマチュア無線を無理やりコラボさせた「IchigoHam」がテーマの記事は、SNSの恩恵もあってアクセスが増えています。
(IchigoHamの記事を目次のような感じでこちらにまとめていますので、併せてご覧ください。)

ともあれ、多くの皆様にブログをお読みいただきましてありがとうございます。

これからもよろしくお願いします。

関連記事:
・このブログの人気記事ランキング
2018年10月~2018年12月2018年7月~2018年9月2018年4月~2018年6月2018年1月~2018年3月2017年10月~2017年12月2017年7月~2017年9月2017年4月~2017年6月2017年1月~2017年3月2016年10月~2016年12月2016年7月~2016年9月2016年4月~2016年6月2016年1月~3月2015年2015年5月~7月2014年11月~2015年1月このブログの人気記事は?( 2014/11/15)





    



先日、IchigoJamのPWM出力でブザーを鳴らす技をご教示いただいたので、ちょっと遊んでみました。

なお、ブザーはOUT5とGND間につなぎかえています。



5 'ワレワレハ ウチュウジンダ
7 '(ブザー ハ OUT5-GND ニ ツナギマス)
10 LET[0],10,159,15,20,159,15,30,159,15,40,159,15,50,159,15,0,0,30,50,159,15,60,159,30,70,159,15,80,159,15,90,159,15,0,0,60
20 FOR I=0 TO 33 STEP 3
30 PWM 5,[I],[I+1]:WAIT [I+2]
40 NEXT


#IchigoJam #自作室
    





にほんブログ村
にほんブログ村 その他趣味ブログ アマチュア無線へ
にほんブログ村 アマチュア無線へ

このブログのTopへ


------こちらもよろしく!------

ハム川柳.詠み人知らず.com
ハム川柳.
詠み人知らず.com

カムバック・ハム・
ハンドブック

JO3GBD
ホームページ


最近の記事


  • 本ページに掲載されている全てのコンテンツの無断転載を禁止します。
  • 本ページの内容を予告なく変更する場合があります。
  • 本ページに掲載されている内容のご利用に関してはご自身の判断と自己責任でお願い致します。
  • このホームページはリンクフリーです。
  • Copyright (C) 2005-2018 JO3GBD.  All rights reserved.

トピックス

新刊:CQ ham radio カムバックハム全集

便利な検索窓集

Yahoo! JAPAN

  • ウェブ全体を検索
  • このブログを検索


免許情報楽ちん検索
© JHøMGJ

QRZ callsign lookup:
Callsign lookups provided by qrz.com

楽天で探す
楽天市場





















  • 本ページに掲載されている全てのコンテンツの無断転載を禁止します。
  • 本ページの内容を予告なく変更する場合があります。
  • 本ページに掲載されている内容のご利用に関してはご自身の判断と自己責任でお願い致します。
  • このホームページはリンクフリーです。
  • Copyright (C) 2005-2019 JO3GBD.  All rights reserved.
  • 忍者ブログ
  • [PR]
  • CQ ハム アマチュア無線