Android IOIO Wii Motion Plus – Gyroscopes

First of all, the more I work with Android, the more I love it … ! It’s so cool to have both Linux and Java and everything is so open and hackable … !

Wii Motion Plus connected to the IOIO board and then to the Android phone

Read more of this post

Android IOIO Wii Nunchuck

I’ve already written a post about how to connect the Wii Nunchuck to the Lego NXT using LeJOS, and there is also information on my blog about how to do the same thing with an Arduino (though I can’t find it right now, so no easy link…).

It’s only fair that I explore the same thing with an Android phone and the IOIO board.

Read more of this post

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

The WiiMote and FEZ Domino

at the beginning....

FEZ Domino I2C

The I2C pins on the Domino board are:

  • Di2 – SDA
  • Di3 – SCL

Both Di2 and Di3 are open drain pins with 2.2K pull up resistors.

Read more of this post

Follow

Get every new post delivered to your Inbox.

Join 57 other followers