tt

USBシリアル変換(FT232RLチップ)でシリアル通信する

ArduinoやGainerやmoxaで使ってるUSBシリアルチップのドライバが認識するようになってた(以前revBファーム+Ubuntu8.04でやった時はどうしても認識しなかった) Rubyから使ってみる。ruby-serialportインストール、シリアルポートを読む - 橋本詳解 の手順…

nose

serialInit(9600); pinMode(7, true); pinMode(6, true); pinMode(5, true); var stat = false; var dists = new Array(3); while(true){ dists[0] = analogRead(5); dists[1] = analogRead(6); dists[2] = analogRead(7); for(var i = 0; i < 3; i++){ seri…

距離センサの入力値を無線で飛ばして、受けた側はパソコンにシリアル通信でトンネルする

受信側 serialInit(9600); radioInit(0xDEAD, 0, 11, 31); // 無線チャンネルなど設定 function onRadioReceive(seq,id,pan,data,rss) { serialSend("("+id+"):"+data); } function loop(){ } function sleep(count){ for(var i = 0; i < count*10; i++){ } …

tt

serialInit(9600); var dist = 0.0; var dist_threshold = 0.1; function loop(){ serialSend("dist:"); dist = analogRead(7); if(dist > dist_threshold){ serialSend("move"); } else{ serialSend("stop"); } serialSend(dist); serialSend("\r\n"); slee…

無線で遠隔スピーカ操作

http://www.youtube.com/watch?v=Dz23O1fEQnk serialInit(9600); var radio = new Object(); radio.id = 3; radio.channel = 15; radioInit(0xDEAD, radio.id, radio.channel, 31); function onRadioReceive(seq,id,pan,data,rss) { if(data < 0){ pinMode(0…

setInterval内でsetIntervalをセットするとIDが同じになってしまう

そして実行間隔は最初に指定した方になる。この場合、zanmai(), kazusuke()両方とも1秒間隔で実行される。6行目をsetInterval(zanmai, 5000)にすると両方5秒間隔になる。 serialInit(9600); var z_id = 0; var k_id = 0; z_id = setInterval(zanmai, 1000); …

setIntervalを複数動かす

無名関数、関数名渡し、関数オブジェクト渡し serialInit(9600); setInterval(function(){ serialSend("1sec\r\n"); }, 1000); // 1秒間隔 setInterval(putHalf, 500); // 0.5秒間隔 setInterval(put2sec, 2000); // 2秒間隔 function putHalf(){ serialSend…

setIntervalに無名関数

http://d.hatena.ne.jp/shokai/20090225/1235575973 をいじる serialInit(9600); setInterval(function(){ serialSend(getTickCount()+"\r\n"); }, 1000); // 1秒間隔 while(true){ } よし動く

setInterval

while(true);しておかないとVMが実行終了してしまうので、かならず空ループでいいので入れよう serialInit(9600); putTime(); setInterval(putTime, 1000); // 1秒間隔 while(true){ } function putTime(){ serialSend(getTickCount()+"\r\n"); }

シリアル通信から周波数指定で音を出す

15000Hzあたりで耳がぶっ壊れる function onSerialReceive(){ while(serialAvailable()){ // 受信データがある時 var recvData = serialRead(); // 読み出し if(recvData > 0){ pinMode(0, true); soundWrite(0, recvData); // 受信データでrecvData(Hz)出力…

シリアルポートからanalogWrite制御

0送信でanalogWrite最大出力、100で最低になる serialInit(9600); pinMode(1,true); pinMode(0,true); power = 0.0; function onSerialReceive(){ // シリアル受信イベント while(serialAvailable()){ // 受信データがある時 var recvData = serialRead(); /…

pinMode(0, true); serialInit(2400); // 通信速度遅め function onSerialReceive(success){ data = serialRead(); for(i = 0; i < data.length; i++){ c = data.charAt(i); // 1文字ずつ処理 switch(c){ case "a": digitalWrite(0,true); break; case "b": …

soundWrite

serialInit(9600); function loop() { var an = 0; an = analogRead(0); var out = an * 1000; serialSend(out + "\r\n"); soundWrite(0, out); sleep(10); } function sleep(count){ for(var i = 0; i < count*10; i++){ } } while(true){ loop(); }

振動と明るさをシリアル通信で送る

CdSには330Ω serialInit(9600); pinMode(0, true); // 振動センサ function loop(){ var an = 0; var shaked = false; var loopTime = 10; for(var i = 0; i < loopTime; i++){ an += analogRead(0); // 明るさ if(!digitalRead(0)) shaked = true; } an = a…

距離を測る(複数版)

tt

送信機 var radio_id = 7; var radio_group = 5; var dist_time = 1; function loop() { dist_send(radio_id, radio_group); } function dist_send(id, group){ for(p = 0; p < 32; p++){ // power radioInit(0xDEAD, id, group, p); radioSend(0xFFFF, "pow…

距離計る

tt

送信機 var radio_id = 5; var radio_group = 5; var dist_time = 1; function main() { dist_send(radio_id, radio_group); } function dist_send(id, group){ for(p = 0; p <= 31; p++){ // power radioInit(0xDEAD, id, group, p); radioSend(0xFFFF, "po…

zigbee受信

tt

zigbeeで送信された無線 http://d.hatena.ne.jp/shokai/20080528/1211935209 を受信して、そのままLEDにPWMでアナログ出力してみる。 http://d.hatena.ne.jp/shokai/20080528/1211932214 の入出力が分離したような物ですね pinMode(0, true); radioInit(0xDE…

zigbee送信

tt

CdSで明るさを取ったので http://d.hatena.ne.jp/shokai/20080528/1211932214 それをそのままxtel内蔵の無線で送信してみる radioInit(0xDEAD, 1, 11, 31); // 無線チャンネルなど設定 var an = 0; while(true) { an = analogRead(0); radioSend(0xFFFF, 2*(…

ADC→PWM

tt

ttでのanalogReadは0~1の間の小数が返ってくる。 ピン0にLED、ADピン0にCdSを接続した。 pinMode(0, true); var an = 0; while(true) { an = analogRead(0); // CdSからの電圧を読む(0~1の小数が来る) analogWrite(0,an); // PWM出力 }

スイッチ入力→LED光らせる

tt

pin1にスイッチ、pin0にLED AVRなので内蔵プルアップ抵抗を使うとよい pinMode(0, true); pinMode(1, true); // プルアップ while(true) { if(digitalRead(1)){ // 読んで、電気来てたら digitalWrite(0, true); // LED光る } else{ // 来てなかったら digit…

digitalWrite

tt

pinMode(0, true); // プルアップ抵抗つける digitalWrite(0, true); // LED光らせる while(true) { }

tt

debug("start zigbee send\r\n"); //radioInit(0xDEAD, 1, 11, 31); //debug("start2 zigbee2 send\r\n"); var dist = 0; var dist_threshold = 0.1; // 距離のしきい値 // メインとなるループ while(true) { dist = analogRead(0); if(dist > dist_threshol…

function serialSend(str){ debug(str); } とか function put(str){ debug(str); } でいい

近づいた/離れた時だけ通信する

前の状態を覚えておく var dist = 0; var dist_threshold = 0.2; // 距離のしきい値 var wifeIsHere = false; serialInit(9600); //serialSend("this wife is watching me"); while(true) { dist = analogRead(0); if(dist > dist_threshold){ if(!wifeIsHer…

距離センサGP2D12をmoxa proto1boardで使う

var dist = 0; var dist_threshold = 0.2; // 距離のしきい値 serialInit(9600); //serialSend("this wife is watching me"); while(true) { dist = analogRead(0); if(dist > dist_threshold) serialSend("N"); else serialSend("F"); //serialSend(dist + …