家にあったRoomba620にichigolatteをつないで動かしてみました。
ハードの接続は
ichigolatteからの送信はジャンパワイヤでichigolatteのTXDをRoombaのRXDにつなげばOK
Roombaからの受信は適当な抵抗2本で5Vを2.5Vに降圧してichigolatteのRXDにつないでやれば接続OKです。
接続出来たらuartでマニュアル通りのコマンドを投げてやればコマンド通りに動かす事ができます。
また、搭載されている各センサーの読み取りも問題なく可能でしたのでプログラム例を公開します。ichigolatteとRoombaをお持ちの方は気軽にロボットプログラミングを試してみてください。
このプログラムではRoombaをsafeモードで動かしていますので緊急時はRoombaを持ち上げて脱輪センサーを作動させれば通常モードに復帰して停止します。
みなさんもRoombaを楽しく動かして遊んでみてください。

//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;
}
};

すごい! まさかルンバを改造するとは! センサの読み取りも可能なのですね。既存のすごいロボットを改造できるというのは、非常に面白そうです。