Tiger 1 BB airsoft RC Tank – V3


This is the sequel of 2 other posts describing previous work on this project:

It also builds on this previous post, which is all about interfacing the WiiMote IR Camera with the NXT and tracking an IR LED with a Lego motor.

11Jun2011 – FINALLY !!!

Everything seems to work nicely together now it not only tracks and locks on the target, but it finally shoots PLASTIC PELLETS !

Read more of this post

WiiMote IR Camera with Lego NXT Brick – LeJOS


This previous post talks about how to connect a IR Camera from a WiiMote to an Arduino.

There’s also this one, talking about how to connect it to the .NET micro framework, FEZ Domino board (which also has hardware details on how to extract the mentionned camera and solder it on its own little board…).

It’s therefore time I wrote a quick post, on how to interface this wonderful camera with a Lego NXT Brick, programmed in Java thanks to LeJOS !

WiiMote IR Camera and Lego NXT - LeJOS

Read more of this post

WiiMote IR Camera with Arduino


This post shows how to extract the IR Camera from the WiiMote and connect it to a .NET micro framework board (FEZ Domino in my case).

The present blog is simply a porting of the C# code to Arduino code, in case anybody is interested…

It’s a very basic file, really showing just the minimum necessary to get it working.


#include <Wire.h>

const byte ADDR_SENSOR = 0xB0 >> 1;
byte buff[2];
byte recvBuff[13];

int x, y, s;

void setup(){
Serial.begin(115200);
Wire.begin();

send(0x30, 0x01 );
send( 0x30, 0x08 );
send( 0x06, 0x90 );
send( 0x08, 0xC0 );
send( 0x1A, 0x40 );
send( 0x33, 0x03 );
send( 0x30, 0x08 );

delay(100);
}

void loop(){
readData();
Serial.print(x); Serial.print(" / "); Serial.print(y); Serial.print(" / "); Serial.println(s);
delay(300);
}

void readData()
{
send( 0x36 );
Wire.requestFrom(ADDR_SENSOR, (byte)13);
for(byte i=0; i<13; i++) recvBuff[i] = Wire.receive();

// have no idea why the 1st BLOB start at 1 not 0....
byte offset = 1;
x = recvBuff[offset];
y = recvBuff[offset + 1];
int extra = recvBuff[offset + 2];
x += (extra & 0x30) << 4;
y += (extra & 0xC0) << 2;
s = (extra & 0x0F);
}

void send(byte val){
Wire.beginTransmission(ADDR_SENSOR);
Wire.send(val);
Wire.endTransmission();
delay(10);
}

void send(byte val1, byte val2){
Wire.beginTransmission(ADDR_SENSOR);
buff[0] = val1; buff[1] = val2;
Wire.send(buff, 2);
Wire.endTransmission();
delay(10);
}

Tiger 1 BB airsoft RC Tank


CONTINUED HERE…

Together with a work colleague we have set ourselves a challenge: buy 2 1/16th RC tanks capable of firing BB pellets and transform them such that we can have an AUTONOMOUS BATTLE !

Unboxing

Read more of this post