//Roomba //function drv(v,r,t1,t2){ function drv(v,r){ var vh,vl,rh,rl; if(v<0)v=65535+v;//VELOCITY vh=v/256;vl=v&255; if(r<0)r=65535+r;//RADIUS rh=r/256;rl=r&255; uart(137,vh,vl,rh,rl);//DRIVE }; // sleep(t1); // uart(137,0,0,0,0); // sleep(t2); uart(128);//START uart(131);//SAFE var col; var bt; var bm; var dr,drh,drl; var v=80; col=20; while(col>0){ bt=rnd(255); uart(139,rnd(15),col,bt);//LED sleep(20); col=col-1; }; col=0; while(col>0){ col=col-1; log(col,"\n"); drv(100,-100,1500,1000); drv(100,100,1500,1000); drv(-100,100,1500,1000); drv(-100,-100,1500,1000); }; col=3;bt=0; while(uart()>-1){};//BUFFER CLEAR while(col>0){ uart(142,7);//BUMP SENSOR bm=uart(); uart(142,18);//BUTTON SENSOR bt=uart(); uart(142,45);//LIGHT BUMPER dr=uart(); // drh=uart(); // drl=uart(); // dr=drh*256+drl; // if(dr>32767)dr=dr-65535; // lc(20,15); // log("v=",dr,"mm/sec\n"); if(bm==0)drv(v,0); if(bm==1){ v=80; drv(-v,-100);sleep(500); } if(bm==2){ v=80; drv(-v,100);sleep(500); } if(bm==3)drv(0,0);//BUMP L&R if(dr)v=80; if(bt==4)v=v-10;//BUTTON DOCK if(v<0)v=0; if(bt==2)v=v+10;//BUTTON SPOT if(v>240)v=240; col=col+1;//LED COUNT UP if((col>20)*(col<40)) uart(139,4,0,0);//LED DOCK if(col>40){ uart(139,0,0,0);//LED OFF col=3; } };
すごい! まさかルンバを改造するとは! センサの読み取りも可能なのですね。既存のすごいロボットを改造できるというのは、非常に面白そうです。