クリエイター手抜きプロジェクト[472]IoT編 IchigoJam同士で通信する(1)/古籏一浩

投稿:  著者:  読了時間:7分(本文:約3,000文字)



今回はIchigoJamを2台使って通信をしてみます。20年前だと2台のパソコンで通信するのもかなりお金がかかりましたが、IchigoJamなら1500円程度なので、2台でも3000円ほどです。

3000円程度で通信の基礎的な部分が学べるというか、実験できるわけですから、いい時代になったものです。

まず、通信の前に以下のものを用意しましょう。

・IchigoJamを2台
・IchigoJamを接続するための線を2本

IchigoJam同士を接続するための線は、ホームセンターなどで売っている安い銅線でも構いません。アマゾンで調達するなら「ジャンパー線」「ジャンパーワイヤ」で検索すると出てきます。

IchigoJam同士を接続する場合は「オス-オス」なので、以下の安いジャンパー線で大丈夫です。




・65pcsワイヤー ブレッドボード プラグ ワイヤ ブレッドボード
http://www.amazon.co.jp/exec/obidos/ASIN/B00JUDWILM/dgcrcom-22/

・普通のジャンパワイヤ(オス〜オス9
http://www.amazon.co.jp/exec/obidos/ASIN/B009ALH0H6/dgcrcom-22/

ただし、あまり長い線は入っていないので、以下のような線と組み合わせて使うのもありです。

・ジャンパワイヤ(オス〜メス)10本セット
http://www.amazon.co.jp/exec/obidos/ASIN/B0079BW7O0/dgcrcom-22/

さて、準備ができたら2台のIchigoJamを接続します。やや長めのジャンパーケーブルを使います。特にIchigoJamをケースに入れている場合は、短いと届きません。

まず、送信側のIchigoJamのOUT1の差し込み口から、受信側のIchigoJamのIN1にケーブルを差し込みます。次に送信側のIchigoJamのGNDと受信側のGNDを同様に繋ぎます。IchigoJamにはGNDが2か所ありますが、どちらに差し込んでも構いません。

無事に差し込むことができたら準備完了です。2台のIchigoJamの電源を入れましょう。電源を入れたら、まず受信側のIchigoJamに、以下のプログラムを入れます。

10 PRINT IN(1)
20 GOTO 10

わずか2行ですが、これがデータ受信のプログラムです。思っている以上に簡単でしょう。

ちなみに10行目のIN(1)は、IchigoJamのIN1から入ったデータという意味です。PRINTは、その通信データを表示することになります。今回の通信データは0か1になります。

プログラムを入力したら、RUNとして実行します。すると画面には0か1の数字が下から上にスクロールしながら表示されます。

ただ、あまりに速いので動いているようには見えないかもしれません。とりあえず、受信側のプログラムはこのまま動かしておきます。

それでは、送信側のIchigoJamでデータを送ってみましょう。データを送信するにはOUT命令を使います。OUT命令は送り先と送るデータ(0か1)を指定します。OUT1に0のデータを出力するには以下のようにします。

OUT 1,0

1を出力するなら以下のようになります。

OUT 1,1

実際にこのコードを入力して、受信側の表示が変わるかどうか確認してください。ちゃんと変われば正常に動作しています。もし、うまくいかないようであれば、IchigoJam同士の接続に問題がないか、2本の線を確認してください。

それでは次に、送信側のプログラムを作成してみましょう。INPUT命令によって入力された値をOUT1に出力します。これは以下の3行になります。

10 INPUT A
20 OUT 1,A
30 GOTO 10

RUNと入力して実行すると入力状態になるので、0か1を入力します。すると、受信側のIchigoJamの表示が入力した値に変わります。

これが最も基本的な通信です。しかし、いちいち0か1を入力してリターンキーを押すのは通信している気分になりません。せっかくなのでリアルタイムに通信してみましょう。

IchigoJamには基板の上にボタンがひとつ付いています。LEDの隣にある小さな黒いボタンです。

このボタンが押されたら1を、離したら0を送信してみましょう。このボタンからの入力はBTN()を使います。BTN()はボタンが押されたら1、押されていなければ0になります。

つまり、10行目をA=BTN()に変更するだけで、リアルタイム通信をするプログラムになります。簡単ですね。

10 A=BTN()
20 OUT 1,A
30 GOTO 10

さっそくRUNと入力して実行させてみましょう。送信側のIchigoJamのボタンを押すと、受信側の画面にボタンを押した場合は1が、押していない場合は0が表示されます。ちゃんとリアルタイム通信ができました。

これが1ビットでの通信です。0か1しか送ることができないのに使い物になるのか、という疑問を持つ人がいるかもしれません。

0と1で通信できる有名なものとしてはモールス符号(信号)があります。トン、ツーで通信するもので、聞いた事がある人もいるでしょう。特にSOS発信の際に使われることで知っている人が多いかもしれません。

・モールス符号(信号)
https://ja.wikipedia.org/wiki/モールス符号

今回作成したIchigoJamのプログラムでモールス信号を実現するなら、ボタンを押した長さでやるといったところでしょう。

しかし、さすがに1ビット通信は面倒なので、もう少しビットを増やして通信させてみたいところです。それについては、また次回。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

シン・ゴジラ見てきました。最初のカットですでに「新世紀ゴジラ」でした。あ〜やっぱり、やったか、みたいな。他の人が真剣に見ていたので、笑うところで笑えず何とも微妙な感じ。家で見ればまわりを気にせずに笑えそう。それにしても、いろいろなのが、入りまじった壮大なオマージュ映画(パクリ映画ではないが、微妙な感じもする)。

・IchigoLatteを楽しもう
http://www.openspc2.org/reibun/IchigoLatte/0.9.1/

・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/

・Premiere Pro & Media Encoder自動化サンプル集
http://www.amazon.co.jp/dp/4802090471/

・JavaScriptによるデータビジュアライゼーション入門
http://www.amazon.co.jp/dp/4873117461/

・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/

・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/

・Adobe JavaScriptリファレンス
http://www.amazon.co.jp/dp/B00FZEK6J6/

・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/

・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/