xtel technical information > learning> Sound Writeより
moxaとスピーカを直結させて、soundWrite(ピン番号, 周波数)関数を使うと音が出せる
センサと組み合わせるとインタラクティブに音階を変えられる。CdSという明度センサを使っている
xtelのmoxaを使う。
moxaのzigbee無線で距離を測るから距離情報を削って、少しフォーマットを変えただけだが
たくさんあるセンサ付きノードの状態を、zigbee無線で一カ所に集めるのが簡単にできる。
8ビットマイコンなのにclassが作れて(厳密にはJavaScript互換なのでクラスではないが)文字列が可変長でString.splitなども使えてArrayもあるので、こういう無線通信プロトコルは簡単に作れる
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();
}
基本はUSB給電だが、内部にレギュレータがあるので9V電池をそのまま接続するだけで使えるようになる。
■電源ケーブルを付け直す
上の写真にもある赤いケーブルが、PCのUSB端子からの5V給電をmoxaのレギュレータに送る役目をしている。
(上の写真では既に付け直した後だが)最初は基盤裏側に付けてあるのだけど、今回は下方向にピンヘッダを付けたかったので基盤表側につけなおした
基盤裏のピンヘッダ。赤い電源ケーブルははんだごてを当てながら抜けば簡単に外せる
表側に付け直した。
この状態で、まずは一回moxa基盤そのものがパソコンから認識できるかどうか確かめたりしておいた方が良い。電源まわりはバグの元なので。
■9V電池を接続する
図のように接続する。9Vのプラスとマイナスを間違えないように注意。
外部にセンサーなどを接続する時は、右の3.3V出力を利用する。左側のUSBからの5V出力は当然動いていないので使えない。
あと、左側にもGNDがあるのでうまく利用すると良いかも。
今回作った基盤は裏から見るとこうなっている。電池からの給電をON/OFFするスイッチを、電池+→VIN間に付けた。