今回の合宿のモジュール工房に向けてやろうとしていることは、
ウェブからお天気情報を持ってきて、
明日の天気が晴れだったらLEDを赤く光らせ、雨だったら青く光らせる
てるてる坊主をつくろうみたいな感じ。
WebServiceだとか、Perlだとかは翔さんのブログ①②③を参照。
ここでは、XPortとArduinoをつなげてみました。
XPortとUART-RS232C変換器をつないだときと同様に、
XPortとArduinoをつなぎます。
LEDも晴れ・くもり・雨に合わせて3色用意し、つないであげます。
UARTで送信された文字によって点滅するLEDを変えるようにしました。
"s"と送られてきたら赤のLED、
"c"と送られてきたら黄色のLED、
"r"と送られてきたら緑のLEDが光ります。
以下はArduinoのソース
(翔さんの過去のブログを参照しました)
******************************************
char led1 = 13;
char led2 = 12;
char led3 = 11;
boolean led_state = true; // on/off
char recvData; // シリアルで受信した変数
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
Serial.begin(9600);
}
void loop()
{
while(Serial.available()){
recvData = Serial.read();
Serial.print(recvData);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
if (recvData == 's'){
digitalWrite(led1, led_state = !led_state); // LEDピコピコ
break;
} else if (recvData == 'c'){
digitalWrite(led2, led_state = !led_state); // LEDピコピコ
break;
} else if (recvData == 'r'){
digitalWrite(led3, led_state = !led_state); // LEDピコピコ
break;
}
}
}
ウェブからお天気情報を持ってきて、
明日の天気が晴れだったらLEDを赤く光らせ、雨だったら青く光らせる
てるてる坊主をつくろうみたいな感じ。
WebServiceだとか、Perlだとかは翔さんのブログ①②③を参照。
ここでは、XPortとArduinoをつなげてみました。
XPortとUART-RS232C変換器をつないだときと同様に、
XPortとArduinoをつなぎます。
LEDも晴れ・くもり・雨に合わせて3色用意し、つないであげます。
UARTで送信された文字によって点滅するLEDを変えるようにしました。
"s"と送られてきたら赤のLED、
"c"と送られてきたら黄色のLED、
"r"と送られてきたら緑のLEDが光ります。
以下はArduinoのソース
(翔さんの過去のブログを参照しました)
******************************************
char led1 = 13;
char led2 = 12;
char led3 = 11;
boolean led_state = true; // on/off
char recvData; // シリアルで受信した変数
void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
Serial.begin(9600);
}
void loop()
{
while(Serial.available()){
recvData = Serial.read();
Serial.print(recvData);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
if (recvData == 's'){
digitalWrite(led1, led_state = !led_state); // LEDピコピコ
break;
} else if (recvData == 'c'){
digitalWrite(led2, led_state = !led_state); // LEDピコピコ
break;
} else if (recvData == 'r'){
digitalWrite(led3, led_state = !led_state); // LEDピコピコ
break;
}
}
}
翔さんのブログにも書いてありますが、
XPortをEthernet-UARTコンバータとして使う設定をしました。
復習がてらまとめてみます。
XPortとADM3202で自作したUART-RS232C変換器をつなぎ、
(IN、OUTをそれぞれつなぎます)
UART-RS232C変換器をパソコンのシリアルポートとつなぎます。
※Arduinoからは電源をもらってるだけです。
●XPortの設定
①XPortのWeb設定画面を開き、「Serial Settings」をクリックし、
Baud Rateを「9600bps」、Data Bitsを「8bit」に設定し、「OK」をクリックします。
②次に「Connection」をクリックし、Local Portを「50001」に設定し、
「OK」をクリックします。
(50000番以降はユーザーが自由に使っていいポートらしい)
③「Apply Settings」をクリックします。
※Apply Settingsをクリックしないと設定が反映されないので注意。
●XPortを試してみる
Acknowrichを立ち上げ、Ethernet-RS232C変換の接続がされているか試します。
※「Acknowrich」ってググると出てきます。フリーソフトです。
①「ファイル」→「シリアルデバイスを開く」をクリックします。
②使われているCOMポートを調べ、「OK」をクリックします。(※3)
※3 COMポートの調べ方
1.マイコンピュータを右クリックし、「プロパティ」を開く。
2.「プロパティ」→「ハードウェア」→「デバイスマネージャ」を開く。
3.「ポート(COM/LPT)」から調べられます。
③XPortの設定と同じように、「9600bps」、「8bit」に設定します。
それぞれのところを右クリックすると設定を変えられます。
④コマンドプロンプトを立ち上げます。
(「スタート」→「ファイル名を指定して実行」→「cmd」を入力し、「OK」をクリックします)
⑤「telnet」の後にスペースを置き、IPアドレスを入力し、
さらにその後にスペースを置き、XPortに設定したLocal Portを入力します。
(今回は「telnet 192.168.0.180 50001」と入力)
⑥すると接続され、どちらかに文字を入力すると、もう一方に反映されます。
※Acknowrichは文字を入力してEnterを押すだけでは送信されず、
Shift+Enterを押して送信されるので注意。
XPort③に続く。
XPortをEthernet-UARTコンバータとして使う設定をしました。
復習がてらまとめてみます。
XPortとADM3202で自作したUART-RS232C変換器をつなぎ、
(IN、OUTをそれぞれつなぎます)
UART-RS232C変換器をパソコンのシリアルポートとつなぎます。
※Arduinoからは電源をもらってるだけです。
●XPortの設定
①XPortのWeb設定画面を開き、「Serial Settings」をクリックし、
Baud Rateを「9600bps」、Data Bitsを「8bit」に設定し、「OK」をクリックします。
②次に「Connection」をクリックし、Local Portを「50001」に設定し、
「OK」をクリックします。
(50000番以降はユーザーが自由に使っていいポートらしい)
③「Apply Settings」をクリックします。
※Apply Settingsをクリックしないと設定が反映されないので注意。
●XPortを試してみる
Acknowrichを立ち上げ、Ethernet-RS232C変換の接続がされているか試します。
※「Acknowrich」ってググると出てきます。フリーソフトです。
①「ファイル」→「シリアルデバイスを開く」をクリックします。
②使われているCOMポートを調べ、「OK」をクリックします。(※3)
※3 COMポートの調べ方
1.マイコンピュータを右クリックし、「プロパティ」を開く。
2.「プロパティ」→「ハードウェア」→「デバイスマネージャ」を開く。
3.「ポート(COM/LPT)」から調べられます。
③XPortの設定と同じように、「9600bps」、「8bit」に設定します。
それぞれのところを右クリックすると設定を変えられます。
④コマンドプロンプトを立ち上げます。
(「スタート」→「ファイル名を指定して実行」→「cmd」を入力し、「OK」をクリックします)
⑤「telnet」の後にスペースを置き、IPアドレスを入力し、
さらにその後にスペースを置き、XPortに設定したLocal Portを入力します。
(今回は「telnet 192.168.0.180 50001」と入力)
⑥すると接続され、どちらかに文字を入力すると、もう一方に反映されます。
※Acknowrichは文字を入力してEnterを押すだけでは送信されず、
Shift+Enterを押して送信されるので注意。
XPort③に続く。
翔さんのブログにも書いてありますが、
合宿のモジュール工房に向けてXPortを動かしました。
●XPortを使うための準備(基盤作成)
まずはXPortを組み込んだ基盤を作成します。
XPortのピン配置
XPortの電源は3.3Vでないといけないので、
5Vを3.3Vに変換してあげます。(※1)
(今回はArduinoの5Vをもってきて3.3Vに変換しました)
※1 XPort-01(写真左)は電源を3.3Vに変換しないと壊れますが、
今回使用したXPort-03R(写真右)は5Vでも大丈夫みたいです。
回路図
基盤が作成できたらVCCとGNDを供給して起動させ、
LANケーブルに接続し、同じLANの中にXPortとPCを置きます。
(XPortについてるLEDがピコピコ光ったらちゃんとつながってます)
●XPortを使うための準備(設定)
①付属のCD-ROMを入れ、「DeviceInstaller」をインストールします。
②「スタート」→「すべてのプログラム」→「Lantronix」→「DeviceInstaller」→「DeviceInstaller」で、「DeviceInstaller」を立ち上げます。
③「Assign IP」をクリックします。
④ハードウェアアドレスを入力し、「Next」をクリックします。
ハードウェアアドレスはXPortの表面に記されている、
「00-20-4A-XX-XX-XX」の番号です。
⑤「Assign a specific IP address」を選択し、「Next」をクリックします。
⑥「IP Address」を入力し、「Next」をクリックします。
今回は奥出研内で使えるIP Address「192.168.0.xxx」の中の
空いてるアドレスを調べ、指定してあげました。(xxxは0~255)(※2)
※2 空いているIPアドレスの調べ方
1.「スタート」→「ファイル名を指定して実行」を立ち上げます。
2.「cmd」と入力し、「OK」をクリックし、コマンドプロンプトを開きます。
3.「ping」の後にスペースを置き、調べたいIPアドレスを入力します。
(今回は「ping 192.168.0.150」と入力)
4.図のように、「Request timed out」と出れば、そのIPアドレスは空いています。
⑦「Assign」をクリックし、終わったら「Finish」をクリックします。
⑧メインウィンドウの「Tools」→「Ping」を開きます。
⑨さっき入力したIP Addressを入力し、「Ping」をクリックします。
文字が出てきて、終わったら「Close」をクリックして閉じます。
⑩「Web」をクリックします。
ウィンドウが出てくるので、IP Addressを再度入力します。
すると、XPortにログインして設定画面を操作できるようになります。
XPort②に続く。
合宿のモジュール工房に向けてXPortを動かしました。
●XPortを使うための準備(基盤作成)
まずはXPortを組み込んだ基盤を作成します。
XPortのピン配置
XPortの電源は3.3Vでないといけないので、
5Vを3.3Vに変換してあげます。(※1)
(今回はArduinoの5Vをもってきて3.3Vに変換しました)
※1 XPort-01(写真左)は電源を3.3Vに変換しないと壊れますが、
今回使用したXPort-03R(写真右)は5Vでも大丈夫みたいです。
回路図
基盤が作成できたらVCCとGNDを供給して起動させ、
LANケーブルに接続し、同じLANの中にXPortとPCを置きます。
(XPortについてるLEDがピコピコ光ったらちゃんとつながってます)
●XPortを使うための準備(設定)
①付属のCD-ROMを入れ、「DeviceInstaller」をインストールします。
②「スタート」→「すべてのプログラム」→「Lantronix」→「DeviceInstaller」→「DeviceInstaller」で、「DeviceInstaller」を立ち上げます。
③「Assign IP」をクリックします。
④ハードウェアアドレスを入力し、「Next」をクリックします。
ハードウェアアドレスはXPortの表面に記されている、
「00-20-4A-XX-XX-XX」の番号です。
⑤「Assign a specific IP address」を選択し、「Next」をクリックします。
⑥「IP Address」を入力し、「Next」をクリックします。
今回は奥出研内で使えるIP Address「192.168.0.xxx」の中の
空いてるアドレスを調べ、指定してあげました。(xxxは0~255)(※2)
※2 空いているIPアドレスの調べ方
1.「スタート」→「ファイル名を指定して実行」を立ち上げます。
2.「cmd」と入力し、「OK」をクリックし、コマンドプロンプトを開きます。
3.「ping」の後にスペースを置き、調べたいIPアドレスを入力します。
(今回は「ping 192.168.0.150」と入力)
4.図のように、「Request timed out」と出れば、そのIPアドレスは空いています。
⑦「Assign」をクリックし、終わったら「Finish」をクリックします。
⑧メインウィンドウの「Tools」→「Ping」を開きます。
⑨さっき入力したIP Addressを入力し、「Ping」をクリックします。
文字が出てきて、終わったら「Close」をクリックして閉じます。
⑩「Web」をクリックします。
ウィンドウが出てくるので、IP Addressを再度入力します。
すると、XPortにログインして設定画面を操作できるようになります。
XPort②に続く。
インタラクションデザインの最終発表では「お絵かきセッションカフェ」をつくった。
カフェのマスターがお題(もととなるデッサン)を出し、それにお客さんがお絵かきして、1つの作品を作るというもの。
ムービー←とても重い
↓実装はテクササイズで学んだ技術を使ってこんな感じ。
ペン立てからペンをとるとお絵かきができるようになるけど、
客①が描いてるときは客②は描けない、客②が描いてるときは客①は描けないっていうように、
順番に描いていけるようにした。
マスターがお題を出すっていうところはボタンを押すと下絵が表示される感じ。
ペン立ての中にCdsを入れ、光の量でペンが置いてあるかどうかを判別。
誰かが描いてるときだとランプ(LED)が光る。
パソコン2台をFlashMediaServer2でつなぎ、描いた絵がお互いの画面にも反映される。
絵はカフェの壁にも反映される。
↓参考にしたのは以下のページ
s.h.log
テクササイズ第6回 FlashMediaServer2
テクササイズ第9回 インタラクションのためのプロトタイプ入門
インタラクションデザイン第7回
noughts(おまけ)
↓メモ
■複数のパソコンを使ったSharedObjectの使い方
サーバーが入ってる方のPCのIP Addressを確認する
「スタート」
→「ファイル名を指定して実行」
→”cmd”と入力
→黒い画面が出てきたら”ipconfig”と入力
→IP Addressを確認
”localhost”を確認したIP Addressに書き換える。
(localhostだと自分のPC内でしか共有されない)
Special thanks はたやんさん、すがのさん、いつきさん
カフェのマスターがお題(もととなるデッサン)を出し、それにお客さんがお絵かきして、1つの作品を作るというもの。
ムービー←とても重い
↓実装はテクササイズで学んだ技術を使ってこんな感じ。
ペン立てからペンをとるとお絵かきができるようになるけど、
客①が描いてるときは客②は描けない、客②が描いてるときは客①は描けないっていうように、
順番に描いていけるようにした。
マスターがお題を出すっていうところはボタンを押すと下絵が表示される感じ。
ペン立ての中にCdsを入れ、光の量でペンが置いてあるかどうかを判別。
誰かが描いてるときだとランプ(LED)が光る。
パソコン2台をFlashMediaServer2でつなぎ、描いた絵がお互いの画面にも反映される。
絵はカフェの壁にも反映される。
↓参考にしたのは以下のページ
s.h.log
テクササイズ第6回 FlashMediaServer2
テクササイズ第9回 インタラクションのためのプロトタイプ入門
インタラクションデザイン第7回
noughts(おまけ)
↓メモ
■複数のパソコンを使ったSharedObjectの使い方
サーバーが入ってる方のPCのIP Addressを確認する
「スタート」
→「ファイル名を指定して実行」
→”cmd”と入力
→黒い画面が出てきたら”ipconfig”と入力
→IP Addressを確認
”localhost”を確認したIP Addressに書き換える。
(localhostだと自分のPC内でしか共有されない)
Special thanks はたやんさん、すがのさん、いつきさん
テクササイズ最終課題 -インタラクティブなおもちゃ-
せっかくなので、ArduinoとFlashを連携させて、
某ゲームもどきのおもちゃをつくってみた。
≪太鼓の見習い≫
画面の右から音符が流れてくるので、音符が枠にきたときにバチで叩くと音が鳴る。
音符は3種類あって、それぞれ叩く強さを変えないと音が鳴らない。
(距離センサーでやったので、この場合は叩く距離で判別)
太鼓の中に距離センサーが入っている。
Flashの画面
デモムービー
距離センサーでやろうとしたのにだいぶ無理があったけど、
ArduinoとFlashの連携ができたのでまぁいいってことでw
せっかくなので、ArduinoとFlashを連携させて、
某ゲームもどきのおもちゃをつくってみた。
≪太鼓の見習い≫
画面の右から音符が流れてくるので、音符が枠にきたときにバチで叩くと音が鳴る。
音符は3種類あって、それぞれ叩く強さを変えないと音が鳴らない。
(距離センサーでやったので、この場合は叩く距離で判別)
太鼓の中に距離センサーが入っている。
Flashの画面
デモムービー
距離センサーでやろうとしたのにだいぶ無理があったけど、
ArduinoとFlashの連携ができたのでまぁいいってことでw
電子工作。
課題2:5Vを作って自作のスイッチをつかってLEDを光らせる
インタラクションデザインでやったやつの半田付けしたバージョン。(id第2回課題参照)
回路図
課題3:リレーを電源回路に組み合わせて簡単なインタラクションのあるクリスマスイルミネーションを作る
回路図
転倒スイッチがハンドベルについていて、
ハンドベルを振るとイルミネーションがつくようになってます。
(↑実際にやってみてる動画)
課題2:5Vを作って自作のスイッチをつかってLEDを光らせる
インタラクションデザインでやったやつの半田付けしたバージョン。(id第2回課題参照)
回路図
課題3:リレーを電源回路に組み合わせて簡単なインタラクションのあるクリスマスイルミネーションを作る
回路図
転倒スイッチがハンドベルについていて、
ハンドベルを振るとイルミネーションがつくようになってます。
(↑実際にやってみてる動画)