忍者ブログ



JO3GBD
JO3GBD HomeJO3GBD - ブログ >[カテゴリ別]

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

カレンダー

01 2020/02 03
1
2 3 4 5 6 8
10 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29

ブログ&サイト内検索

最近の記事

最近の動画

リンク

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を使ってモールス練習機を作ってみました。

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


(この動画は、後でご紹介のたった3行の簡単なプログラムで出来ています。)

ボタンを押せばブザーが鳴るといった簡単なプログラムですが、IchigoJamを手にされたお子さん達がモールス通信に興味を持つきっかけになったらいいなと思い、初めの第一歩的にプログラミングのご紹介をしていきます。


◆IchigoJamの準備
IchigoJamに、キーボード、モニター、電源をつなぎます。
電源スイッチをONにすると、
IchigoJam BASIC 1.3.1 by jig.jp
OK

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


◆ボタンを押すとブザーが鳴る!1行プログラム
先ずは、超初歩編です。
たった1行のプログラムでIchigoJamのボタンスイッチを押すとブザーが鳴るようにしてみましょう。

キーボードから、次のプログラムを入力します。
10 BEEP BTN():GOTO 10

(行の最後は[ENTER]を押して改行します)

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

IchigoJamのボタンを押してみてください。押している間だけブザーが鳴り、離すと鳴りません。
ボタンを押したり離したりして遊んでみましょう。

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

このプログラムの意味はだいたいこんなイメージです。
10 行の番号(最初)
BEEP ブザーを鳴らす
BTN() ボタンを押していたら
GOTO 10 最初に戻る(繰り返す)


◆聞きやすい音でブザーを鳴らす3行プログラム
上の1行プログラムではブザー音が高すぎますし、これからいろんなことをするためにプログラムの改善をします。

キーボードから、次の3行のプログラムを入力します。
10 IF !BTN() CONT ELSE BEEP 9,999
20 IF BTN() CONT ELSE BEEP 0
30 GOTO 10

RUN

(各行の最後は[ENTER]を押して改行します)

IchigoJamのボタンを押してみてください。今度は聞きやすい音でブザーが鳴ります。

プログラムの意味はだいたいこんな感じです。
10 IF !BTN() CONT もし、ボタンが押されていなかったらそのまんま待ち
  ELSE BEEP 9,999 そうでなかったら(ボタンが押されたら)ブザーを鳴らす。
20 IF BTN() CONT もし、ボタンが押されたままならそのまんま待ち
ELSE BEEP 0 そうでなかったら(ボタンが離されたら)ブザーを鳴らすのを止める。
30 GOTO 10 最初に戻り繰り返す。

なお、20行のBEEP 9,999は、9という音に高さ(音程)で、999という長さで(音を止めないかぎり)ブザーを鳴らし続ける時間の指定です。なのでボタンを押し続けたら、一定時間(約16秒)たったらブザーは鳴り止みます。


◆LEDランプも連動させる (最初の動画のプログラムです)
IchigoJamにはLEDランプがありますので、少しプログラムを追加してLEDも連動させてみます。
10 IF !BTN() CONT ELSE BEEP 9,999:LED 1
20 IF BTN() CONT ELSE BEEP 0:LED 0
30 GOTO 10

RUN


追加したのは;
10行に追加 LED 1 LEDを点灯させる
20行に追加 LED 0  LEDを消す

ボタンを押してブザーが鳴っているときに、LEDが点灯するようになりました。

最初と同じ動画をここにも掲載します。
ボタンを押したり離したりしてモールス符号の練習機が出来上がりました。

IchigoJamのBTN端子とGND端子の間に大きなスイッチや電鍵を接続したらもっと本格的なモールス練習機になります。


-・・・-

次回は、2台のIchigoJamを使って通信をしてみようと思います。
モールス符号を覚えるための学習用プログラムも掲載を予定しています。

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


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

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

    



前回の記事でご紹介した自作ユニバーサル基板。その上に手持ちの部品をあれこれ乗せて(挿して)、次の自作品の構想を検討、っていうか、妄想をしています。




さてはて、何を作ろうとしていると思われますか?

実は、部品を乗せているうちに考えが変わってきて、私もなんだかはっきりとはわからなくなってきました。

まあ、こういう自由気ままな自作も良いのではないかと。
できたものが作ったもの、そして、できた時が作った時で、ということで。(笑)

ー・・・-
追)前回の記事で「信号名の文字が小さすぎてつぶれて読めません。次回は信号の印刷は止めようと思います。」 と書きましたが、IchigoJam開発者の福野さんから直々にコメントを頂きまして 次版では信号名の印刷を止めるのを止めて、文字がつぶれないよう頑張って工夫をすることとしました。
若い頃は「やればできる何事も」って考えていましたが、最近はあきらめが早くなっている(加齢のせい?)と気づいた次第です。<(_ _)> 

#IchigoJam #IchigoHam #自作室
    



先日KiCadで設計して発注したIchigoJam用ユニバーサル基板が着弾しました。

とりあえずはイメージ通りに出来てきました。










IchigoJamの電源スイッチ、ボタン、LEDへのアクセスを活かした上重ね構成です。

しかし、設計の一発目ですのでお決まりの失敗が。


・シルク印刷にライン漏れ
・無理やり入れた信号名の文字が小さすぎてつぶれて読めません。


次回は信号の印刷は止めようと思います。(※)

ともあれ、さてはて先ずは何を作ろうかな?


(※)追記)
>次回は信号の印刷は止めようと思います。
について、ツイッターで
とコメントを頂きましたので、次版では、信号を工夫して印刷することにしますね。


#IchigoJam #IchigoHam #自作室
    



こどもパソコンIchigoJam(※)を2台使って、キーボードへ打った文字がモールス信号で赤外線で送信され、受信側で受信したモールス信号を解析した文字がモニターに表示される「赤外線モールス通信機」の続編です。(※):IchigoJamについてはこちらをご参照。

前回はデジットさんの「赤外線モールス通信機」パーツセットのハード・ソフト(+修正版)そのままので試しましたが、今回は自分なりに少し変更を加えてみました。

動画をご覧ください。


なかなかうまく動いています。

手前のキーボードが付いていのが送信部。キーボードに打った文字がIchigoJamでモールス信号なり赤外線ダイオードから赤外線で送出されます。
奥の小型モニターがつながっているのが受信部。受光素子(フォトトランジスタ)で受けた信号を検波したモールス符号をIchogoJamで文字に変換しています。
プログラムは(懐かしい方には懐かしい)BASIC言語で組まれています。
これからもっとハード、ソフト面のいろんな機能を追加してみようと思います。

前回からの主な変更点】

◆送信部:
・赤外線LEDの駆動ポートをSOUNDからOUT 5に変更。(ブザーを外した代わりに抵抗を追加)
・赤外線LEDは、(SOUNDのBEEPに替えて)PWMで駆動。(PWM 5,10,20 =カットアンドトライで決定)
・SOUND端子はブザー専用にし(ブザーはIchigoJamのCN3に挿入)ブザー音は聴きやすいトーン に変更。 (SOUND 13,*)
・送信スピードを前回の倍速にアップ。(受信部の解析部もそれに合わせて変更)

◆受信部:
・モニター表示の文字を大きくした。(VIDEO 3)
・単点の表示文字を"."(ピリオド)から ”・”(中点=CHR$(165) )に変更。
・スクロール処理を変更し、受信した符号の横スクロールも追加。

なお、使用したIchigoJamのバージョンは、IchigoJam TとSでファームはVer.1.3.1です。

ー・・・ー
前回の記事も併せてご覧ください。→  IchigoJamでモールス:デジットの「赤外線モールス通信機」 を試してみました(動画あり)

・IchigoJamについてはコラム「IchigoJamってなに?」をご参照。

・このブログのアマチュア無線関連のIchigoJamの記事をまとめました。⇒   IchigoHam = IchigoJam x Ham Radio

#IchigoHam #IchigoJam #自作室
    





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

このブログのTopへ


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

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

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

JO3GBD
ホームページ


最近の記事


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

<トピックス>


IchigoJamでハム
のページへ


IchigoJam
価格:2200円(税込、送料別) (2020/2/18時点)

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

CQ ham radio 別冊 カムバックハム全集

CQ ham radio

コールサイン/文字が光る&流れる LEDネームプレート

便利な検索窓集

Yahoo! JAPAN

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


無線局等
情報検索


Callsign lookup:

Provided by QRZ.com

楽天で探す
楽天市場

IchigoJam


























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