0

Arduino+XPort+Perl+WebService

ArduinoにXPortでIP持たせて、そこにPerlからデータをプッシュする。

s.h.log: XPortをEthernet-UARTコンバータとして使うの通りにXPortを設定する。

そこに、明日の天気のデータをLivedoorお天気のRSSからパースしてsocketで送ると、

socket通信をXPort越しにArduinoで受け取れるので、晴れ/曇り/雨でそれぞれLEDを光らせる「てるてる坊主」を作ろうというもの。

最初は今日の天気だったが、よく考えたら今日の天気は空見ればわかるから、Date::Simple使って明日の天気になった。

あと、送信データもstringではなくchar一文字でいいやという事になった。Arduinoには文字列比較系の関数が無いし、heepが無いマイコンに無理させる必要も無いし。

以下は暫定版のArduino&Perlコード。

physicalとwebに向いているのをそれぞれで分業させたので、結構短く書けて楽だった。

これでテンプレートができたので、GoogleCalendarから予定引っ張ってきて枕に振動モータ突っ込んで起こすとか1時間あれば作れる。

Read more

0

PSoC Expressでスイッチ+LED×3個

今月28日の奥出研合宿で出すネタだけどフライング公開。

2週間前に初めてPSoCさわった俺が、さいきと逆井と共にPSoC Expressのワークショップやります。

時間は1時間で、

・タクトスイッチ1つとLED3種類(on/off, decay, blink)を動かすのを実際に回路/プログラムを作って動かしてもらう

・PSoC Expressセミナーと同じ内容を高速で実演しながら説明

という内容です。もちろんPSoCと他のマイコンどう違うの?、とか何に使われてるの?とかのリサーチも喋ります。

こういうの作ります

■ソースコード

Source Code (PSoC Express 2.2 / CY8C29466)

■回路

これが実際に作ってプログラム書いて動かしてもらう回路(左)

PSoCマイコン CY8C29466、LED&100Ωの抵抗×3個、そしてタクトスイッチ。

ブレッドボードに刺したMiniProg(ライター)が邪魔で見づらいかも。

合宿ワークショップ用 Button+LEDCY8C29466 PWM

実質、CY3210-MiniEval(右)と変わりんせんので、どっちでも動きます。

(ライターの接続方法はs.h.log: PSoC MiniProgをCY8C29466に接続すると同じです)

Read more

0

Perl – Date::Simpleで明日の日付を取得

明日の日付を取得したかったんだけど、月をまたいだりすると計算が面倒なので

install Date::Simpleして

usestrict;

usewarnings;

useDate::Simple;

my$today=Date::Simple->today;

my$tomorrow=$today->next;

print”today:$today¥n”;

print”tomorrow:$tomorrow¥n”;

my($year,$month,$day)=$tomorrow->as_ymd;

print”$year年$month月$day日¥n”;

実行結果

today: 2007-03-23

tomorrow: 2007-03-24

2007年3月24日

0

PerlのIO::Socketでソケット通信

CPANにあるIO::Socketを使うとソケット通信ができる。

usestrict;

usewarnings;

useIO::Socket;

my$sock=IO::Socket::INET->new(PeerAddr=>’192.168.0.180′,

PeerPort=>’50001′,

Proto=>’tcp’);

$sock->send(“zanmaizanmai”);

これだけで、192.168.0.180の50001番ポートにTCP接続で、「zanmaizanmai」というデータが送られる。

前に作ったLivedoor天気情報から東京の天気を取得するに組み合わせるとこうなった。

Read more

0

XPortをEthernet-UARTコンバータとして使う

XPort-03RのTCP/IPのポートを開いて、socket通信をマイコンに伝える設定をした。

XPortは3Vで動くので、その動かし方やパソコン側にインストールする設定ソフトについては

s.h.log: XPort-03Rを動かしてみた

ismlog XPort①

を参照。

ハードウェアはこんな感じ。自分のパソコンと同じLANにLANケーブルで接続されたXPort(Ethernet-UART変換器)に、ADM3202で自作したUART-RS232C変換器をつけて、そのRS232Cをパソコンのシリアルポートに戻している。

XPort + UART-RS232C Converter

XPortのIPアドレスは192.168.0.180を割り当てた。

XPortは3Vで動かしている。

ADM3202はブレッドボードから供給されている5Vで動いている。両者の間のUARTは、3Vと5Vだけども問題なく動いている。

もちろんGNDは共有する。

ちょっと違うけどこういう状態になっている。

XPortでwebサービス使う

Read more