xtel technical information > learning> Sound Writeより
moxaとスピーカを直結させて、soundWrite(ピン番号, 周波数)関数を使うと音が出せる
センサと組み合わせるとインタラクティブに音階を変えられる。CdSという明度センサを使っている
xtelのmoxaを使う。
moxaのzigbee無線で距離を測るから距離情報を削って、少しフォーマットを変えただけだが
たくさんあるセンサ付きノードの状態を、zigbee無線で一カ所に集めるのが簡単にできる。
8ビットマイコンなのにclassが作れて(厳密にはJavaScript互換なのでクラスではないが)文字列が可変長でString.splitなども使えてArrayもあるので、こういう無線通信プロトコルは簡単に作れる
Read more
重い処理が終わったらgoogle talkで通知する – 橋本詳解
が便利で、サーバーでの処理が終わったらIM通知するのに使っている。
IMはポップアップして音も鳴るので、Terminalを睨んでなくても良くなる
(サーバーで使う物と、自分が普段使うのとでGoogleアカウントが2つ必要)
追記:どうやらtoもuserも同じアドレスを指定して大丈夫らしい
Read more
CdSと振動スイッチを使った。
xtel基盤のDigitalReadとAnalog Readのページが大変参考になりました。
このサイズのCdSだと、330ΩをGNDにつないで分圧したら丁度良くなった。
まずブレッドボードで回路を組んでみた
それからはんだづけ
プログラム。
連続でシリアル通信するとPCが大変なので、1秒ぐらいのインターバルを取る。
明るさはアナログ値なのでその時間内の平均を取った。
振動も、一度でも振動センサが反応したらshaked:trueになるようにして、serialSendでまとめて送った。
serialInit(9600);
pinMode(0, true); // 振動センサ
function loop(){
var an = 0;
var shaked = false;
var loopTime = 1000;
for(var i = 0; i < loopTime; i++){
an += analogRead(0); // 明るさ
if(!digitalRead(0)) shaked = true;
}
an = an/loopTime;
serialSend("light:"+an+",shake:"+shaked+"¥r¥n");
sleep(1);
}
function sleep(count){
for(var i = 0; i < count*10; i++){
}
}
while(true){
loop();
}
Flashでよく使われるXMLSocketの.NET実装を作っていて、このドメインでもMercurialで管理しているリポジトリを公開しているんだけど
最近bitbucketとfreeHgにもコピーしてみた。
これらはGitHubのMercurial版で、アカウントを作って自分のリポジトリをコピーして、しかも他の人のプロジェクトが気に入ったらそのままweb上でコピーして改良したりできる。面白い。
bitbucketもfreeHgも日本語のコメントが化けてて困ったけど、今見たらbitbucketは直ってた。これからは積極的にbitbucketにpostするようにしてみるか。
参考:橋本商会 ブログアーカイブ mercurialを使ってみていて、リポジトリとか公開してみたりした
ちなみにXMLSocket.NETは普通のSocketを拡張して作っていて、Flashと接続できるServer、ついでにClient、あとそれらのGUI付きサンプルプログラムができたところ