怪盗列車(旧・本館)

混ぜると危険!萌え鉄スタンドマンの断末魔の叫び
<< March 2017 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
<< ネパール地震 非常通信周波数 | main | IchigoJamでLチカ >>

IchigoJamでキーボードキーヤーを作れるか

キーボードキーヤープログラム
こどもパソコンとして一世を風靡しているBASICマイコンボード「IchigoJam」ですが、PS/2キーボードとテレビを接続しスタンドアロンで走ることを活かして、アマチュア無線で使用できるキーボード入力のエレキー・キーボードキーヤーのプログラムを考えてみました。

当初は、入力されたキーをベースにGOSUB文でひたすら長点・短点のサブルーチンに飛ばすものを組みましたが、いかんせん1kBという壁が大きく、入りきりません。
何か良い方法はないかと考えた結果、まず、配列変数が1つあることを利用して、そこにキーのデータを入れることを思いつきます。しかし今度は、そのデータを頭から使うには計算が増えることが判明、データは逆順で入れることにしました。例えば「A」は「・−」ですが、逆向きの「−・」にしてデータ格納しています。それを演算処理すれば簡単というわけです。
もう1つの問題は、「?」などの6符以上ある場合です。変数の仕様を確認したわけではありませんが、おそらく0-6
5535であろうと容易に想像ができます。すると6符は入りません。そこで別の作業ルーチンを用意し、似たような符をデータから拾い出し、くっつけて対応しています。
動作は、本体のLEDを点滅させることで確認しましたが、実装時には「LED」コマンドを「OUT」コマンドに変更し、ここにフォト・カプラなどを介して無線機のキー端子につなぐことを検討しています。

というわけで、「IchigoJamでキーボードキーヤーを作れるか」の答えは「作れる」が正解です。

--------

(2015.-5.-9 追記)

・恐れ多くも、IchigoJam公式サイトの、プログラム作品例の欄よりリンクを頂いています。

・プログラム内に若干のバグがあり、キャラクタコード101番以降のキーを入力するとエラーになります。INKEY()コマンドの後ろで、拾ったキャラクタコードが101番以降の場合にINKEY()に戻すことで回避できます。

・送出速度は固定になっていますが、WAIT文の数字を加減することで変更することが出来ます。また、WAIT文の数字を変数にすることで、タイプ中に可変する要素も残されています。

・本プログラムはIchigoJam v0.9.7以降にある、配列変数の一括指定を活用しています。v0.9.3ではエラーになりますので、パソコンとUSB-シリアル変換を使用してIchigoJamをアップデートする必要があります。
--------

(2016.-3.28 更新)

修正したプログラムリスト(ソースコード)と、キーボードキーヤーの回路図をアップしておきます。このプログラムはIchigoJam v1.0系以降で動作するようにしてあります。回路図は以前のものと共通です。

キーボードキーヤーv1.2ソースコード
↑IchigoJamキーボードキーヤーv1.2のプログラムリスト

キーボードキーヤーの回路図
↑IchigoJamキーボードキーヤーの回路図
IchigoJam | permalink | comments(0) | trackbacks(0)

スポンサーサイト

- | permalink | - | -

この記事に対するコメント

コメントする









この記事のトラックバックURL
http://sailors.jugem.jp/trackback/1785
この記事に対するトラックバック