blogこの広告は、90日以上更新していないブログに表示しています。最近TWE-LiteにはまっているのでEspruinoとつなげてみようと思います。Espruino、TWE-LiteはともにサポートしているUARTで通信してTWE-Liteのデータ通信の様子をのぞいてみようと思います。完成形はこんなかんじです。DIP親機、右側が子機です。IDEに表示しています。DIPは親、子の2台必要です。親機の電源はたまたま道具箱の中にあったリチウムイオン電池を使いましたが、単3電池2本とかで大丈夫です。TWE-Liteは3.6V以下でないと動かないので電源は3.6V以下にしてください。3.6V以上入れると壊れる可能性があります。親機の組み立て配線は写真のようにします。DIPの仕組みについては長くなるので割愛します。書いてあるほぼそのまんまです。PHRコネクタをつけて3.7Vのリチウム電池を電源にしました。TWE-Liteの動作電圧は3.6V以下なので3.7Vの電池は少しオーバー電圧ですが電池をテスターで測ったらだいたい3.4Vくらいしか出てなかったのでそのまま接続しても大丈夫でした。子機の組み立て配線は写真のようにします。こちらも初級編や本に書いてある子機の配線そのままです。電源はEspruinoからとります。赤いケーブルをEspruinoの3.3とシルクプリントされているピンに挿し、黒いケーブルをGNDと書いてあるピンに挿します。これでEspruinoからTWE-Liteへ3.3Vの電圧がはいります。間違って3.3のとなりにあるBatには接続しないでください。Batは5VなのでTWE-Liteが壊れます。TWE-Lite同士が通信できるか試してみる組み立てたら親機の電池をつなぎ、子機のEspruinoをUSBケーブルでPCと繋げます。親機のタクトスイッチを押してみます。子機のLEDが点灯したら正常に通信ができています。シリアル接続するいったんEspruinoからUSBケーブルをはずして、シリアル通信のためのケーブルを配線します。子機の3番ピン(左下から3番目)の真下のブレッドボードの穴にケーブルを挿します。次に子機の10番ピン(左下から10番目)の真下のブレッドボードの穴に別のケーブルを挿します。3番ピンに挿したケーブルをEspruinoのB6ピンに挿します。10番ピンに挿したケーブルをEspruinoのB7ピンに挿します。この2本の配線でUARTの送受信が可能になります。コードを書くJavaScriptコードは以下になります。Serial1はEspruinoが持つ6つの汎用シリアルポートの内のひとつです。Serial1.setup()でTWE-Liteとのシリアル接続を設定します。Serial1.setup()の引数にこれらを設定します。options.rxはそれぞれUARTの送受信ピンを指定しています。Serial1.on()でdataイベントを補足し、コールバック内にTWE-Liteのデータ受信コマンドが返ってきます。printLine()でデータの断片を処理し1行のデータとして表示しています。実行してみる親機を電池につなぎ、EspruinoをPCとUSBケーブルで接続します。IDEを起動し、Espruinoと接続します。JavaScriptコードをエディタに貼り付け、Espruinoに転送してみましょう。約1秒間隔でデータがコンソールにデータが表示されます。このデータが子機が親機から受信しているデータです。TWE-Liteの受信データの例::00811501D28100693F001115000D2D1D0101FFFFFFFFFFF4TWE-Liteの受信データの内容は、このページの「データの読み方」の段で解説されています。この実験でデータの変化を確認できるのは以下の3点です。デジタル入力(緑文字の部分)受信電波品質は親機と子機を離したり近づけたりすると変化します。電源電圧は一定ではないため常に変化します。デジタル入力は親機のボタンを押すと01、離すと00となります。まとめTWE-Liteたのしいです。省電力でけっこう通信距離が長いし、データの構造もシンプルなので単純なデータの送受信ならすぐできます。Espruino連動させるといろんな用途のセンサーネットワーク用小型デバイスができそうです。なによりJavaScriptでそれが実現できるってのがたまりませんね。