いま研

とにかく作る!
iDigi XIGのデータアップロード機能を試してみる。
 XIGのアップロード機能を試してみました。
詳細説明がこちらに書かれています。

1)サーバ側のphpファイルを用意。
コピペしました。
ファイル名は、xig_upload_example.phpにしました。
   1 <?php
   2         // xig_upload_example.php
   3         // this code accepts any data uploaded as a GET variable and stores it
   4         //  into a text file called dataFile.txt on the server
   5         
   6         $value = $_GET['value'];
   7         $myFile = "dataFile.txt";
   8         $fh = fopen($myFile, 'a') or die("can't open file");
   9         fwrite($fh, $value);
  10         fwrite($fh, "¥n");
  11         fclose($fh);
  12 ?>
  13 
2)サーバにphpファイルをアップロード、テキストファイルの準備
・用意したサーバにphpファイルをアップロードします。実行権限を755にします。
・Xbeeが送ってきたデータをファイルとして書き込むためにdataFile.txtを用意します。実行権限を666にします。
3)動作確認のためにブラウザから、下記のように打ち込み、実行します。
http://(サーバ名)/xig_upload_example.php?value=72

4)実行後、dataFile.txtにvalue=**が書き込まれていたら、成功です。

http://(サーバ名)/dataFile.txt

| Digi ConnectPort X4 | 00:09 | comments(0) | trackbacks(0)
iDigi経由でXBeeのGPIOピンを制御した。
 iDigi経由でXBeeのGPIOピンを制御してみました。

ConnectPort X4には、XIGアプリを実行しています。
XIGのWikiページに外部ネットワークから、XBeeのGPIOピンをRCIコマンド経由で制御する解説が書いてありました。


解説記事を参考にオペレーションをしていけば問題なく動作することが確認できます。
サンプルxmlからの修正点は、
・device idの変更
・xbeeのaddressを変更
・GPIOピンの割付けは以下のとおり
GPIO4    <dio4_config>
GPIO11 <dio11_config>
GPIO12 <dio12_config>
・LOW出力の場合4、HIGH出力の場合5を指定する。

1)LOW出力

2)HIGH出力の場合
| Digi ConnectPort X4 | 22:30 | comments(0) | trackbacks(0)
Digi ConnectPort X4 XIGを試す。
オライリーのXBee本を買いました。P.231からXIGの紹介記事に目がとまりました。これは、有用なツールですので早速使ってみました。


0)XIGとは、 XIGは、X4上で動作するPythonプログラムです。X4に接続しているXBeeのシリアルポートから任意のURLを入力すると、そのURLから得られたページをシリアルポートに出力してくれる便利なプログラムです。
また、rciコマンドをサポートしており、外出先からXbeeにメッセージを送れます。

1)XIGのダウンロード、ファイルのupload
プログラムをダウンロードするためにXIG (XBee Internet Gateway)に接続します。

Downloadをクリックし、zipファイルをダウンロードします。

zipファイルを解凍し、xig.py, xig_config.py, _xig.zipをuploadします。


Auto-Start settingでxig.pyを自動起動に設定してから、X4をリブートします。


2)X-CTUでZigBee Series 2を設定する。 P.234にXIGのテストを参考に、買ってきたばかりのZigBee Series 2を設定します。 デフォルトでは、XBeeのATモードのZigBeeルーターに設定しています。 

書籍では、PAN IDなど設定変更していますが、今回はシリアルのボーレートを変更しただけです。 パラメータを変更後、Writeボタンで設定を反映させます。 

設定完了後、TeraTermでシリアル接続します。ローカルエコーおよび改行コードの設定を変更して接続します。

3)XBeeのMACアドレスの確認 X4のウェブ管理画面でXBeeがX4に接続しているか確認します。 またMACアドレスも控えておきます。

4)接続サーバ側のcgi
動作確認のためにcgiを用意しました。
現在時刻を表示するcgiと自ホストのIPアドレスを表示するcgiを用意しました。
http://emaken.com/currenttime.cgi
http://emaken.com/ipaddress.cgi
プログラムは、ここここのサイトを参考に作りました。

5)XIGの動作確認
UserDocumentationを参考に動作確認します。
5−1)シリアルポートからの動作確認
最後に動作確認します。helpとタイプするとXIGのhelp画面が出力されます。 また、4)で書いたURLをそのままタイプすると結果が出力されます。
5−2)iDigiからメッセージを送信する。
XIGでは、rciコマンドをサポートしており、XBeeにメッセージを送ることができますので外出先から自宅機器の制御が可能です。
テキストメッセージを送ったり、

バイナリデータを送ることができます。


XIGを利用することで、Pythonプログラムを作成しなくてもXBeeを簡単にインターネット接続できますね!
また、UserDocumentationを見るとサーバ側にデータを送信できるようです。


| Digi ConnectPort X4 | 05:28 | comments(0) | trackbacks(0)
iDigiにアクセスするAndroidアプリを作ってみた。
iDigiにアクセスするAndroidアプリを作ってみました。
アクセス方法はArduinoと同じように、

1.developer.idigi.com、Port80にtcp接続。
2.basic認証で該当APIにリクエスト。
3.レスポンスデータを取得。
4.液晶画面に結果を表示。

です。

参考にしたサイトは、
https://luna.easyjp.net/projects/memo/wiki/android/%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E
8%AA%AD%E3%81%BF%E6%9B%B8%E3%81%8D%E3%81%A8%E9%80%9A%E4%BF%A1/HTTP%E9%80%
9A%E4%BF%A1
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/String.html
http://www.syboos.jp/java/doc/byte-string.html
http://www.yukun.info/blog/2011/02/java-tcp-socket-echo.html
です。

出力画面


| Digi ConnectPort X4 | 01:26 | comments(0) | trackbacks(0)
LEGOでUFOキャッチャーを作ってみた。
=====================
2011/11/27 記述

 


LEGOでUFOキャッチャーを作ってみました。デルタロボットの機構を採用しました。アームの操作には、Android携帯を使ってます。主要部品は、Android, Arduino, 自作モータードライバシールド、NXT,モーター4つ、LEGOブロックです。

==================
2011/12/05 更新

解体前に記念撮影。ダンボール箱が邪魔だ〜。

Galaxy Tabのスクリーンショット画面です。



















========================
2011/12/08

アスキー.jpで紹介されました。


| LEGO | 01:25 | comments(2) | trackbacks(0)
Digi ConnectPort X4 iDigiからRCIコマンドでXBeeのLEDを制御した。
 iDigiからWeb Services Consolesサービスを利用して、RCIコマンドにてXBeeのLEDを制御できるようになりました。
サンプルアプリのiDigi_pro_devを使用しました。

Console画面にchannel_*** コマンドがあります。
このコマンドを使って、LED、スイッチの状態を取得したり、LEDを点灯したりすることができます。
引数のnameがポイントです。


RCIのコマンドのHelpを見てみると同様なコマンドがサポートされているのがわかりました。

あとは、RCIコマンドを引数にしてPOSTリクエストすればiDigiからでもLEDを制御できると推測しましたが、コマンドを受け付けてくれません。
そこで、Support Forumにて確認すると同じ悩みを抱えている人がいまして、<do_command target="idigi_dia">のパラメータが必要なのがわかりました。
なおidigi_diaは、RCI HandlerのTarget nameにあたります。

実行画面:
channel_dump

channel_get

channel_set


| Digi ConnectPort X4 | 01:39 | comments(0) | trackbacks(0)
Digi ConnectPortX4 python.zipの復旧方法
 pythonファイルを整理していたら、間違えてpython.zipまで削除してしまいました。



Support Forumで、このスレッドを見つけました。
digi.comのsupportから該当ファイルを見つけ、ファイル名を変更し、X4にuploadしたところうまく復旧できました。あせりました。よかったよかった。




| Digi ConnectPort X4 | 01:37 | comments(0) | trackbacks(0)
Make: Tokyo Meeting 07に出展します。→出展しました。
========
2011/11/30記載
 
12月3、4日に開催されるMTM07に出展します。

出展内容は、




3)頒布品

です。

当日、よろしくお願いします。

=================
2011/12/05更新

MTM07に参加してきました。
10:30ごろに会場に到着後、今回の出展物を並べていきます。
思っていたよりUFOキャッチャーの展示物をスムーズにくみ上げることができ、調整に要する時間も少なかったです。コンパクトに作品を纏め上げる力がつきつつあるようです。

会期中は、小さな子供さんが(3歳が最年少!)特に興味をしめしてくれて、楽しそうに遊んでくれたので展示してよかったです。中には、リピーターになってくれた子もいました。
今回、デルタロボット方式を採用し、各モーターを個別に上下移動させる方法をとりました。上下左右にアームを制御できないので、遊んだ方は操作に手間取っていましたが、かえってこの点がゲーム性を高めてくれて、達成感を得たようです。


反省点としては、アームを開く機構。
シリンダーの弁の切り替えにモーターを使っているのですが、トルク不足?のため、アームを開けないことがありました。アスキーさんに取材してもらった時も、アームを開くことができず、なくなく手動で切り替えました。

展示作品で気になったものをつらつらと。

うちの子がとても気に入った作品。何度も遊んでいました。
魚の口に指を入れるとかみます。pogoplugが使われています。


モーター1個であの”犬”を表現したレゴ作品。
作者は、謙遜されていたが、モーター1個で4足を制御している点がいい。
こういう作品をどんどん作って、メカ的センスを身に着けたいな。


空中配線版Arduinoを瓶に入れるプロジェクト。


MINTIAのケースに液晶やLED、基板を入れるプロジェクト。
表面実装のLEDを手付けで200個以上つけた作品をみせてもらいました。


ADKを使ったアプリ。MTM07で、ADKを使った作品を展示している人が意外と多かったです。自分もメッセージボードを出せばよかったかな。


LEDを使った時計作品。
ネタとしては定番ですけど、表現の仕方で印象が変わります。
自作のLEGOボックスに入れた時計アプリも気に入っているんですけど、何が違うのかな。
完成度かな?


念願だった、arm22さんに2年越しにお会いできました。うれしかった。


ルービックキューブ本体にモーターを仕込んで、みずから動いてしまおうという作品。
発想がぶっとんでいて、大好きだな。
モーターを6つ使って、動いているそうです。



| LEGO | 22:56 | comments(0) | trackbacks(0)
ConnectPort X4サンプルアプリを試してみる。
サンプルアプリを試しながら、iDigiに慣れようと思います。

今回の接続イメージ図。

ConnectPort X4にXBee-Pro Series2のProgrammableモデルが2つぶら下がっています。
・Xbee-Proは、電源を入れただけで設定変更などしてません。


Digi ESP for Pythonを立ち上げ、サンプルアプリを選択します。

今回は、iDigi Professional Development Kitを選択します。

対象デバイスを選択して、、、

プロジェクトファイルを生成するまえに最終確認をします。


自動生成後のプロジェクトの概要です。
Xbeeボードに赤×がついているのは、MAC Addressが登録されてないためです。

MACアドレスの確認のためにX4のウェブ管理画面を開きます。
お!、自動的にXbeeが接続されています。
MACアドレス情報をコピーして、プロジェクトファイルにペーストします。

ファイルを保存後、実行します。
プロジェクトを右クリック→Run As -> Remote iDigi Diaを選択します。


自動的にビルドされ、、、

ファイルがupdateされた後、実行されます。

telnet接続も自動的に行われます。

LEDの制御、ボタンのステータス確認ができるウェブ管理画面が起動します。

試しにLED値を変更し、Apply Changesを押すと、、、


LEDが点灯しました!
写真では、わかりにくいですが、左上にあるLEDを制御できます。


もちろん、iDigiからも現在のLEDの状態、スイッチの状態を確認できます。
LEDの制御のやり方はこれから勉強します。。。



iDigiの制御から、/ws/DiaChannelDataFullをGETコマンドを投げれば、状態を取得できることがわかったので、Arduinoにも実装してみました。

前回と違う点は、114行目の箇所を変更しただけです。
114 client.print("GET /ws/XbeeAttributeCore HTTP/1.1¥r¥n");
今回
 114       client.print("GET /ws/DiaChannelDataFull HTTP/1.1¥r¥n");


| Digi ConnectPort X4 | 23:40 | comments(0) | trackbacks(0)
ConnectPort X4 ファームウェアをupdateしてみた。
iDigiでConnectPort X4のfirmwareのバージョンを確認したところ、古めでしたのでupdateすることにしました。


 

DigiのSupportサイトで最新のファームウェア(Ver.2.13.0.12)を落としました。

今回は、インターネットを通して=iDigi経由でファームウェアを更新しました。
やり方は対象デバイスを右クリック、Firmware -> Update Firmwareを選び、ダウンロードしたファイルを選択します。Update Firmwareを選び、作業が完了するとデバイスを再起動します。



ファームウェアのバージョンを確認すると、最新になっていました。

iDigi、便利だな。
| Digi ConnectPort X4 | 23:39 | comments(0) | trackbacks(0)
ジャンル
CALENDAR
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    
<< January 2012 >>
SELECTED ENTRIES
CATEGORIES
ジャンル
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
レゴ 基本ブロック (XL) 6177
レゴ 基本ブロック (XL) 6177 (JUGEMレビュー »)

お得な基本ブロックセットです。
RECOMMEND
レゴ マインドストーム NXT2.0 (英語版) 8547
レゴ マインドストーム NXT2.0 (英語版) 8547 (JUGEMレビュー »)

オセロマシンに2個使用しています。
RECOMMEND
基礎からわかるTCP/IP ネットワーク実験プログラミング―Linux/FreeBSD対応
基礎からわかるTCP/IP ネットワーク実験プログラミング―Linux/FreeBSD対応 (JUGEMレビュー »)
村山 公保
Linux向けネットワークプログラミング入門書。お勧めです!
CATEGORIES
ARCHIVES
RECENT COMMENT
RECENT TRACKBACK
LINKS
PROFILE