utano
第5章では1つのサーバーを介して
ピンポンゲームがプレイできるものを作ります。
今回の役割分担:
tmg:client1(3軸センサでシーソーインタラクションでピンポンする人)
stk:client2(感圧センサ×2で足踏みインタラクションでピンポンする人)
utn:server(サーバーのプログラムソースコード)
pong serverソースコード(Processing)
①サーバ用のPCを1台用意して、
そのPCで上のソースコードをRunする。下のような画面が出ます。
②ピンポンしたい人(Client)は
telnetでポート番号8080でサーバのIPアドレスへ接続。
☆サーバ(PC)のIPアドレスを調べるには
[ネットワーク接続]などからネットの接続状態を選べば出てくる。
私は[ワイヤレス ネットワーク接続]を選んで[サポート]タブを出しました。
③するとこんな風になります。
コマンドプロンプト側で"hi"と言ってくれます。
Processing側では新しいClientが来た、と言い
ピンポンフィールドにラケットが現れます。
その入ってきたClientのIPもラケットの上に書いてあります。
④ちなみにコマンドプロンプト側でrを打つとラケットが右に、
lを打つとラケットが左に移動します。xでサーバとの接続を中断します。
なので、キーボードだけで十分ピンポンが戦えます。
センサを使ってインタラクションでピンポンをするために
XPortでArduinoの値を送るところは次回。
2008年7月4日金曜日
2008年6月29日日曜日
yahooweather teruteru②
てるてるマイコンコードを色々いじってみる。
てるてるコードその1
てるてるコードその2
voltmeterが動かなくなったのですが
文字列の後にこの数値ひろえー命令をあれは出していて
サイトが時々更新されて
その文字列が無くなってしまう時があるようです。
文字列が復活したのでひとまず動きそうだ!
と思ってもう一度動作確認中なのですが
…またウェブから値がやってこない病が…
てるてるコードその1
てるてるコードその2
voltmeterが動かなくなったのですが
文字列の後にこの数値ひろえー命令をあれは出していて
サイトが時々更新されて
その文字列が無くなってしまう時があるようです。
文字列が復活したのでひとまず動きそうだ!
と思ってもう一度動作確認中なのですが
…またウェブから値がやってこない病が…
2008年6月28日土曜日
yahooweather teruteru
utano
てるてるリベンジ中。
yahoo news(英語)のお天気サイトから
お天気情報をひっぱって、
更に曇りなら1、晴れなら2、雨なら3にするというPHPを書きました。
これのソースコードを見ると、
本のp.131みたく <weather:1>とか出ます。
で、マイコン側のプログラムはほとんどそのままに、
このPHPを読んで<>内の数字を記憶して
その数字をintにして、
if文で1のときは曇りなので曇りLED光らせてねっていう
void teruteru()をつくりました。コンパイルは成功。
yahooweatherてるてるマイコンコード
でも光りませんでした。
たまにvoltmeterでもそうなのですが
ウェブを要求した後その内容を読み込んでくれない時が発生します。
うーむぅ。
しょうさまたすけて。
てるてるリベンジ中。
yahoo news(英語)のお天気サイトから
お天気情報をひっぱって、
更に曇りなら1、晴れなら2、雨なら3にするというPHPを書きました。
これのソースコードを見ると、
本のp.131みたく <weather:1>とか出ます。
で、マイコン側のプログラムはほとんどそのままに、
このPHPを読んで<>内の数字を記憶して
その数字をintにして、
if文で1のときは曇りなので曇りLED光らせてねっていう
void teruteru()をつくりました。コンパイルは成功。
yahooweatherてるてるマイコンコード
でも光りませんでした。
たまにvoltmeterでもそうなのですが
ウェブを要求した後その内容を読み込んでくれない時が発生します。
うーむぅ。
しょうさまたすけて。
2008年6月27日金曜日
voltmeter完成
voltmeterが動きました!
このプロジェクトはアメリカの大気の汚染予報を教えてくれる、
AIRNowというサイトからNYの大気汚染度の現在情報を拾って
電流計メーター(アナログ)に出力させるというものです。
よく写真を見ると針が右にすこし振れています。
結局あの後いじったのは:
☆ルーターのIPを設定
(chapter3のp.84参照、ルータのIPアドレス調べ方)
☆ウェブから情報をはぎとるPHPのパーミッション変更
(Octalを707に、きょんちゃんアドバイス)
どれが果たして功を奏したのかw
全体像はこんな感じ:
あ、FT232Rのシリアル変換はさしっぱだっただけで無関係です。
LEDがナウシカのオームの目みたい…
2番目が光ってるのでHTTPrequest()してます。
情報を読み取るウェブ(PHP)を要求しているのです。
Arduinoの画面ではこんな感じ:
このプロジェクトはアメリカの大気の汚染予報を教えてくれる、
AIRNowというサイトからNYの大気汚染度の現在情報を拾って
電流計メーター(アナログ)に出力させるというものです。
よく写真を見ると針が右にすこし振れています。
結局あの後いじったのは:
☆ルーターのIPを設定
(chapter3のp.84参照、ルータのIPアドレス調べ方)
☆ウェブから情報をはぎとるPHPのパーミッション変更
(Octalを707に、きょんちゃんアドバイス)
どれが果たして功を奏したのかw
全体像はこんな感じ:
あ、FT232Rのシリアル変換はさしっぱだっただけで無関係です。
LEDがナウシカのオームの目みたい…
2番目が光ってるのでHTTPrequest()してます。
情報を読み取るウェブ(PHP)を要求しているのです。
Arduinoの画面ではこんな感じ:
マイコンとXPortとウェブの三角関係②
本に沿って回路つくってコードを書くと、
ご丁寧に今どういう通信状態なのかをLEDで判断する事が出来ます。
でも大体サーバに接続しようとしてる所で
ピコピコ止まりだったので、
もう少し通信状態を可視化しようと思いました。
まずAcknowrichとshokai様から頂いたSocketClientで実験
XPort接続中。IPアドレスは192.168.0.150 ポート番号は50001に設定済。
ではSocketClientからXPortさんにアクセスしてみましょう
するとシリアル側(Acknowrich)ではI192.168.0.110と出る。
IはIncomeのIなので、情報が伝わった事はわかるけど
なんでIPアドレスが変わるんじゃ?
本でXPort設定のところでルーターのIPを指定する所あるけど
そこと関係があるんでしょうか??
まぁ一旦おいといて
シリアル側から、欲しいウェブがあるサーバに行ってねってお願いしてみる
…ただのテキスト扱いっぽいんですけど
GETとかHOSTも入れてみたけど同じ。
SocketClientを終了すると
ちゃんとDisconnectのDが現れる。
つながっているようでつながっていないような…
何が問題なんじゃー。
ご丁寧に今どういう通信状態なのかをLEDで判断する事が出来ます。
でも大体サーバに接続しようとしてる所で
ピコピコ止まりだったので、
もう少し通信状態を可視化しようと思いました。
まずAcknowrichとshokai様から頂いたSocketClientで実験
XPort接続中。IPアドレスは192.168.0.150 ポート番号は50001に設定済。
ではSocketClientからXPortさんにアクセスしてみましょう
するとシリアル側(Acknowrich)ではI192.168.0.110と出る。
IはIncomeのIなので、情報が伝わった事はわかるけど
なんでIPアドレスが変わるんじゃ?
本でXPort設定のところでルーターのIPを指定する所あるけど
そこと関係があるんでしょうか??
まぁ一旦おいといて
シリアル側から、欲しいウェブがあるサーバに行ってねってお願いしてみる
…ただのテキスト扱いっぽいんですけど
GETとかHOSTも入れてみたけど同じ。
SocketClientを終了すると
ちゃんとDisconnectのDが現れる。
つながっているようでつながっていないような…
何が問題なんじゃー。
マイコンとXPortとウェブの三角関係①
utano
夜12時にDNPを訪れる!
てるてる坊主を作るにしても
とりあえず本にあるArduinoに書き込む、
ウェブを取り込むコードを理解しなければだめでしょう
ということで回路や本やら5時間くらいにらめっこして
ようやく本が書いてるコードが意図する所がつかめました。
マイコンで取ってきて欲しいウェブがあるサーバを呼ぶ
私の場合SFCなのでコマンドプロンプトでping web.sfc.keio.ac.jpを唱えて
SFCサーバのIPアドレスをゲットする。
そしてXPortに通じる呪文にする C133.27.4.40
接続が行われたらすかさずウェブを呼び出す
GET /~t05541ss/ほにゃほにゃ.php HTTP/1.0\n
HOST: web.sfc.keio.ac.jp
で、そのウェブのテキストをがーって読んで
その中から数字をゲットしてくる
その数字を更に数値にする(テキストのままだから)
あらかじめマイコンが読みやすい様に
そのウェブはPHPですっきりまとめてあります
HTMLタグ全部どけて、この文章の後に来る数字を表示してねって感じで。
で、その数値によってArduinoのoutputである電流計の触れ幅が変わる
っちゅうわけです。構造は分かるけど
XPort経由でウェブを問い合わせるのがなんかだめ。
ちゃんと動いているのか動作チェックする。
マイコンとXPortとウェブの三角関係②につづく。
夜12時にDNPを訪れる!
てるてる坊主を作るにしても
とりあえず本にあるArduinoに書き込む、
ウェブを取り込むコードを理解しなければだめでしょう
ということで回路や本やら5時間くらいにらめっこして
ようやく本が書いてるコードが意図する所がつかめました。
マイコンで取ってきて欲しいウェブがあるサーバを呼ぶ
私の場合SFCなのでコマンドプロンプトでping web.sfc.keio.ac.jpを唱えて
SFCサーバのIPアドレスをゲットする。
そしてXPortに通じる呪文にする C133.27.4.40
接続が行われたらすかさずウェブを呼び出す
GET /~t05541ss/ほにゃほにゃ.php HTTP/1.0\n
HOST: web.sfc.keio.ac.jp
で、そのウェブのテキストをがーって読んで
その中から数字をゲットしてくる
その数字を更に数値にする(テキストのままだから)
あらかじめマイコンが読みやすい様に
そのウェブはPHPですっきりまとめてあります
HTMLタグ全部どけて、この文章の後に来る数字を表示してねって感じで。
で、その数値によってArduinoのoutputである電流計の触れ幅が変わる
っちゅうわけです。構造は分かるけど
XPort経由でウェブを問い合わせるのがなんかだめ。
ちゃんと動いているのか動作チェックする。
マイコンとXPortとウェブの三角関係②につづく。
登録:
投稿 (Atom)