>[カテゴリ別]http://jo3gbd.blog.shinobi.jpJO3GBDアマチュア無線局長のブログ。IchigoJam、IchigoHAM、その他もろもろ。長井明人/JF7QEA]Re:ページリンクさせてください。7N1MPI]ページリンクさせてください。昔にやったことがある。モールス符号変換のプログラムをベースにさせていただいて、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ビット)としてあらわします。それに頭にスタートビットの”1”を付加して”101”(二進数)。”101”を十進数表記して"5"になります。”?”は・・--・・なので”001100”、頭に”1”を付加して”1001100”で十進数で”76”といった具合です。※1※1)訂正符号(HH(--------))の”・・・・・・・・”は例外で8要素あり、データー9ビット長になります。・符号化プログラム目的文字のデータからモールス符号に変換するには、まず、データーを左にビットシフトしてスタートビットの1が来るまでシフトを続けます。その次から左シフトして0が出れば単点、1が出れば長点、所定の回数(ビット数)になればおしまいとします。ここでちょっと問題が。BASICのデータは16ビットですしキャリー有無の条件判断がありません。(左シフトは”<<"の演算子があります。)代わりに、左シフト後に十進数の256(二進数では0000000100000000)でビット論理積(&)を取って(マスクして)ビット8(下=LSB=から9ビット目)が1か0かの判断をしています。(ビット8で判断することで、訂正符号(HH(--------))の符号化も対応ができます。モールス符号変換のIchigoJamプログラムをベースにさせていただいて、8ビットコード方式にしてみましした。変換データの定義が減った分プログラムサイズに余裕ができたので、下記の追加をしました。個別対応し、バックスペースとDELキーに割り当てたなお、(バックスペースを対応した結果論ではありますが)カタカナの変換時の振る舞いが(正しくはないが)モールス符号的に間違いではない動きになりました。140プログラムの残りバイトは200バイトあり、更に機能アップができます。まとめましたのでご覧ください。「IchigoJamってなに?」って方は、こちらのコラムをご参照ください。IchigoJamは(株)jig.jpの登録商標です。(Thu)「組み込み用IchigoJam基板の第三弾」の確認経過報告です。昨日のターミナルエミュレータからLチカ、BEEPに引き続き、ビデオモニター、キーボードも仮接続して動作確認をしました。仮付けしたボタンも確認、OKでした。次はI/OポートとI2Cの確認をします。(2):赤外線ワイヤレス通信ごっこ」のIchigioJamプログラムの説明編です。ご覧されればと思います。10・説明ボタンを押している間は、OUT2番端子に、38KHzの周波数の断続信号を出力します。断続信号:距離が離れると、38KHzを連続では、途中で信号が途切れる現象がになり、断続パルスにした方が安定して通信できる。ボタンが押されるまで待ち、ボタンが押されたら、ブザーを鳴らし始めてLEDも点灯させます。(ボタンが押されたので)赤外線発光素子(小基板上のLED)の駆動を行います。つながっている)に出力します。パルス幅は1/3duty(※1)になるようにしています。ここがマイナスなのでPWMコマンドの周期とパルス幅が通常(0.01msec)の1/480になります。0.02631msの波形が出力されます。続けた後に、2番端子を0(LOWレベル)にして、38KHzを一旦止める(休ませる)ます。ボタンが押されて(押され続けて)いたら、前の20行に戻り、繰り返します。ボタンが押されていなかったら、ブザーを止めて、LEDを消灯させて、元の10行へ戻ります。※1:パルス比は421の数値を変更していろんなパルス比で実験できます。1/3の設定は(回路の遅延の影響もあり)最適かどうかは分かりませんが、1/2よりも安定しています。1/3や421にこだわる必要はありません。-10」は正直言って気休め的に入れています。2,0でもさほど変わりませんが、そのタイミングで少し待つ気持をプログラムに入れ込みました。モジュール(IN1端子につないている)は、赤外線が来たら出力が0(Low)にしますので、IN1が0になったら、送信側でボタンが押されたと判断し、ブザー音を鳴らし始めてLEDを点灯させます。ここで、送信側は赤外線は断続的に送信しますので、断の時(IN1が1)には反応しないよう、一定間隔(※3)おいてIN1=1を複数回(※4)検出したら、送信側のボタンがOFFされたと判定をしています。-10としていますが、送信側同様にこれもいい加減な値ですし、実際には狙い通りの時間間隔にはなっていません。※4:複数回数は10で判定しています(変数Cに加算して、Cが10なったら判定)が、これもカットアンドトライ的な値です。多くし過ぎると、反応が遅れてきます。(信号が長めになる=キレが悪くなる。最後に、前回の記事と同じ実験動画をここにも掲載します。動画の実験では、6.5m離しても大丈夫でしたが、今回のブログラムは※1~4は暫定値でまだまだ調整ができますし、プログラムを工夫をしたり、回路や受光・発光素子に工夫を加えたりして、もっと遠い距離まで届くようになるでしょう。まとめましたのでご覧ください。ここまで読んでいただいて、「IchigoJamってなに?」って方は、こちらのコラムをご参照ください。IchigoJamは(株)jig.jpの登録商標です。コメント(0)組み込み用IchigoJam基板が到着。今のところ順調!http://jo3gbd.blog.shinobi.jp/Entry/727/組み込み用IchigoJam基板が到着。(Wed)先日の「組み込み用IchigoJam基板の第三弾」が到着しました。Tarm)で、Lチカ、BEEPもクリアし、今のところ順調です。今日はここまでで、ビデオとキーボードの確認はこれからになります。(キーボードはちょっと不安がありますが。#自作室http://jo3gbd.blog.shinobi.jp/Entry/727/組み込み用IchigoJam基板が到着。(Mon)こどもパソコンのIchigoJamを手にされたこどもたちが、モールス通信に興味を持ってくれたらいいな、と、そんなことを思いながら書いた記事の第2弾です。前回は3行のプログラムで押したら鳴るモールス練習機を作りました。今回は実際にモールス通信をするまねごとをしてみたいと思います。(なお、この記事はこどもたちに向けてではなく、親御さんや指導者の方々に向けた記事になっています。)先ずは、動画をご覧ください。こっち(送信側)のIchigoJamのボタンを押したら、あっち(受信側)のIchigoJamのLEDが光ってブザーが鳴ります。実験では6.5m離れても反応していました。工夫をすればもっと離れても反応すると思います。◆さて動画のワイヤレスの前に、先ず最初はワイヤ(電線)でIchigoJamどうしをつない通信をしてみましょう。10・接続IchigoJamどうしを2本のワイヤでつなぎます。[ENTER]します。こっち(送信側)のIchigoJamのボタンを押すと、あっち(受信側)のIchigoJamのLEDが光ってブザー音が鳴るはずです。長いワイヤがあれば、IchigoJamを離れた場所や、部屋越しに動かして鳴らしてみましょう。次に、冒頭の動画の実験です。「ワイヤレス」とはワイヤ(電線)が無い(レス)という意味で、電線が無い、すなわち、「無線」での通信ということです。今回はリモコンなどで使われている赤外線を使って無線の実験をしてみます。・回路の準備IchigoJamにつなぐ赤外線の送信、受信の回路部品を準備します。送信側の発光素子はIRダイオードで赤外線発光ダイオード(LED)です。受信側の赤外線受信モジュールは、3.3Vで駆動できるタイプで中心周波数は38KHzのものを選びました。ともに、電子部品のパーツ屋さんで手に入る部品です。今回は2cm角(7x7孔)のユニバーサル基板で作りました。・IchigoJamに装着IchigoJamのソケットCN4に差し込みます。受信側GND~IN1端子に挿入ずれて挿さないようにご注意ください。10ここでは長くなるので、プログラムの説明は割愛します。受光素子を向かいあうようにIchigoJamどうしを向い合せます。[ENTER]して、送信側のIchigoJamのボタンを押すと、受信側のIchigoJamが光って音が鳴るはずです。IchigoJamを少し離して試してみましょう。発光素子と受光素子が向き合っていると結構届きますが、ずらしたり、斜めを向いたり、あいだに障害物があると届かなくなります。赤外線という眼には見えない光で通信しているので、光が届いている範囲をイメージするとよいでしょう。離して実験しましょう。いっても、実験をするとき、IchigoJamのキーボードやモニターは邪魔ですね。いう時は次の手順をすると、モニターやキーボードなしでもIchigoJamが使えます。0[ENTER]と押す。ここで、こんな画面がでたらOKです。3)IchigoJamの電源スイッチをOFFにする4)キーボードとモニターのケーブルを取り外す。電源ケーブルはそのまま。5)IchigoJamのボタンを押しながら電源スイッチをONにする。これで先ほどと同じ状態になります。プログラムを止めるときは電源をOFFにします。(電池の消耗を防ぐためにも、使わないときはこまめにOFFをすることをおすすめします。)電源をOFFしても、また5)のようにボタンを押しながら電源をONにすれば再開できます。電源はモバイルバッテリーを使うとIchigoJamを持ち運びながら実験ができます。・さて、どこまで届くか?IchigoJamをボタンを押しながら電源スイッチをONにて自動起動します。発光素子と受光素子が向かい合うようにIchigoJamを向い合せにして、送信側のボタンを押して実験をしましょう。受信側が光って鳴るはずです。動画の実験では、6.5m離しても大丈夫でした。プログラムを工夫をしたり、回路や受光・発光素子に細工をしたら、もっと遠い距離まで届くようになるでしょう。最後に、最初と同じ動画をここにも掲載しておきますね。お詫び:動画内で、”ICHIGOJAM”とモールス符号で打とうとしたのですが、誤って”ICHIGAJAM"になっていました。お恥ずかしい話ですみません。-・・・-次回は、モールス符号を覚えるための学習用プログラムを予定しています。まとめましたのでご覧ください。ここまで読んでいただいて、「IchigoJamってなに?」って方は、こちらのコラムをご参照ください。IchigoJamは(株)jig.jpの登録商標です。(Sat)アマチュア無線仲間の方々に、IchigoJamに興味を持ってもらいたい!IchigoJamとはもともと小学生のプログラミング学習用の小型のマイコンですが、お手軽で簡単にプログラミングが出来て、性能も結構良いので、無線関係の自作用にはもってこいだと思っています。そんなことを想いつつ、IchigoJamを使ったCWキーヤーを数回に分けてこのブログでご紹介していきます。スクイズ(両方を同時に押すと長点・単点を繰り返す)もちゃんと対応していますね。実は、このキーヤーは後でご紹介するたった3行の簡単なプログラムで出来ています。ハードの接続やプログラムの入力もお手軽で簡単です。OMの自作バリエーションとしてIchigoJamをお使いになるきっかけになったらいいなと思いながら、IchigoJamの初めの第一歩的にこのキーヤーの作り方をご紹介をします。◆パドルをIchigoJamにつなぐパドルとIchigoJamを次のように3本のワイヤーでつなぎます。IN4◆IchigoJamの準備IchigoJamに、キーボード、モニター、電源をつなぎます。jig.jpOKのような画面が出てプログラムの準備完了です。◆プログラムを入力するキーボードから、次のプログラムを入力します。10(各行の最後は[ENTER]キーを押して改行します)これで、プログラミングが完了です。(このように、IchigoJamとそれにつながったキーボード、モニターディスプレー、5V電源以外は何も要らない、つまり、パソコンやパソコン上での開発ソフトも不要で、プログラミングが完了するお手軽さでIchigoJamの特長です。)◆プログラムを確認するここで、LIST[ENTER]と押すと、入力したプログラムの確認ができます。◆プログラムを実行する次に、RUN[ENTER]と押してプログラムを実行します。パドルを操作してみてください。スクイズ付のCWキーヤーが出来ました。◆プログラムを止めるプログラムを止めるときはESCキー(キーボードの左上側)を押します。◆プログラムの説明この3行のプログラムの意味はだいたいこんなイメージです。ブザーを5単位時間鳴らしつつ、10単位時間待つ。ブザーを15単位時間鳴らして、20単位時間待つ。9,15は、9という音に高さ(音程)で、5という単位時間でブザーを鳴らし続けます。10単位時間待ちます。60で約一秒)ですので一単位時間は1秒/60=約16.7msです。20=333msで、スペースは上の250msを差し引いた83msの1スペースとなります。いかがでしょうか?特定の世代の方には、昔を彷彿させられ懐かしさを感じられたかも知れませんね。最初と同じ動画をここにも掲載しますので、改めてご覧ください。-・・・-次回の記事では、IchigoJamに簡単なインタフェース回路を追加して、キー出力を無線機につないでみようと思います。キーボードキーヤーやメッセージキーヤーもご紹介する予定をしています。ここまで読んでいただいて、IchigoJamってなに?って方は、こちらのコラムをご参照ください。IchigoJamは(株)jig.jpの登録商標です。(Wed)こどもパソコンのIchigoJamを使ってモールス練習機を作ってみました。(この動画は、後でご紹介のたった3行の簡単なプログラムで出来ています。)ボタンを押せばブザーが鳴るといった簡単なプログラムですが、IchigoJamを手にされたお子さん達がモールス通信に興味を持つきっかけになったらいいなと思い、初めの第一歩的にプログラミングのご紹介をしていきます。◆IchigoJamの準備IchigoJamに、キーボード、モニター、電源をつなぎます。jig.jpOKのような画面が出てプログラムの準備完了です。◆ボタンを押すとブザーが鳴る!1行プログラム先ずは、超初歩編です。1行のプログラムでIchigoJamのボタンスイッチを押すとブザーが鳴るようにしてみましょう。キーボードから、次のプログラムを入力します。10(行の最後は[ENTER]を押して改行します)次にRUN[ENTER]と押してプログラムを実行します。IchigoJamのボタンを押してみてください。押している間だけブザーが鳴り、離すと鳴りません。ボタンを押したり離したりして遊んでみましょう。プログラムを止めるときはESCキー(キーボードの左上側)を押します。このプログラムの意味はだいたいこんなイメージです。最初に戻る(繰り返す)◆聞きやすい音でブザーを鳴らす3行プログラム上の1行プログラムではブザー音が高すぎますし、これからいろんなことをするためにプログラムの改善をします。キーボードから、次の3行のプログラムを入力します。10RUN(各行の最後は[ENTER]を押して改行します)IchigoJamのボタンを押してみてください。今度は聞きやすい音でブザーが鳴ります。プログラムの意味はだいたいこんな感じです。なかったら(ボタンが押されたら)ブザーを鳴らす。なかったら(ボタンが離されたら)ブザーを鳴らすのを止める。9,999は、9という音に高さ(音程)で、999という長さで(音を止めないかぎり)ブザーを鳴らし続ける時間の指定です。ボタンを押し続けたら、一定時間(約16秒)たったらブザーは鳴り止みます。(最初の動画のプログラムです)IchigoJamにはLEDランプがありますので、少しプログラムを追加してLEDも連動させてみます。LEDを消すボタンを押してブザーが鳴っているときに、LEDが点灯するようになりました。最初と同じ動画をここにも掲載します。ボタンを押したり離したりしてモールス符号の練習機が出来上がりました。IchigoJamのBTN端子とGND端子の間に大きなスイッチや電鍵を接続したらもっと本格的なモールス練習機になります。-・・・-次回は、2台のIchigoJamを使って通信をしてみようと思います。モールス符号を覚えるための学習用プログラムも掲載を予定しています。IchigoJamってなに?って方は、こちらのコラムをご参照ください。IchigoJamは(株)jig.jpの登録商標です。(Tue)前回の記事でご紹介した自作ユニバーサル基板。その上に手持ちの部品をあれこれ乗せて(挿して)、次の自作品の構想を検討、っていうか、妄想をしています。はて、何を作ろうとしていると思われますか?実は、部品を乗せているうちに考えが変わってきて、私もなんだかはっきりとはわからなくなってきました。いう自由気ままな自作も良いのではないかと。できたものが作ったもの、そして、できた時が作った時で、ということで。(笑)ー・・・-追)前回の記事で「信号名の文字が小さすぎてつぶれて読めません。次回は信号の印刷は止めようと思います。次版では信号名の印刷を止めるのを止めて、文字がつぶれないよう頑張って工夫をすることとしました。若い頃は「やればできる何事も」って考えていましたが、最近はあきらめが早くなっている(加齢のせい?)と気づいた次第です。(Thu)先日KiCadで設計して発注したIchigoJam用ユニバーサル基板が着弾しました。イメージ通りに出来てきました。IchigoJamの電源スイッチ、ボタン、LEDへのアクセスを活かした上重ね構成です。設計の一発目ですのでお決まりの失敗が。・シルク印刷にライン漏れ・無理やり入れた信号名の文字が小さすぎてつぶれて読めません。次回は信号の印刷は止めようと思います。(※)ともあれ、さてはて先ずは何を作ろうかな?(※)追記)>次回は信号の印刷は止めようと思います。2019年3月7日とコメントを頂きましたので、次版では、信号を工夫して印刷することにしますね。(Sun)こどもパソコンIchigoJam(※)を2台使って、キーボードへ打った文字がモールス信号で赤外線で送信され、受信側で受信したモールス信号を解析した文字がモニターに表示される「赤外線モールス通信機」の続編です。(※):IchigoJamについてはこちらをご参照。前回は、デジットさんの「赤外線モールス通信機」パーツセットのハード・ソフト(+修正版)そのままので試しましたが、今回は自分なりに少し変更を加えてみました。