Versión de ide: 1.0.5
Diagrama de conexión:
conectar el adaptador en las entradas analogas 2, 3, 4 y 5
Código:
/*
* NunchuckPrint
*
* 2007 Tod E. Kurt, http://todbot.com/blog/
*
* The Wii Nunchuck reading code is taken from Windmeadow Labs
* http://www.windmeadow.com/node/42
*/
#include <Wire.h>
void setup()
{
Serial.begin(19200);
nunchuck_setpowerpins(); // use analog pins 2&3 as fake gnd & pwr
nunchuck_init(); // send the initilization handshake
Serial.print ("Finished setup\n");
}
void loop()
{
nunchuck_get_data();
nunchuck_print_data();
delay(100);
}
//
// Nunchuck functions
//
static uint8_t nunchuck_buf[6]; // array to store nunchuck data,
// Uses port C (analog in) pins as power & ground for Nunchuck
static void nunchuck_setpowerpins()
{
#define pwrpin PORTC3
#define gndpin PORTC2
DDRC |= _BV(pwrpin) | _BV(gndpin);
PORTC &=~ _BV(gndpin);
PORTC |= _BV(pwrpin);
delay(100); // wait for things to stabilize
}
// initialize the I2C system, join the I2C bus,
// and tell the nunchuck we're talking to it
void nunchuck_init()
{
Wire.begin(); // join i2c bus as master
Wire.beginTransmission(0x52); // transmit to device 0x52
Wire.write(0x40); // sends memory address
Wire.write(0x00); // sends sent a zero.
Wire.endTransmission(); // stop transmitting
}
// Send a request for data to the nunchuck
// was "send_zero()"
void nunchuck_send_request()
{
Wire.beginTransmission(0x52); // transmit to device 0x52
Wire.write(0x00); // sends one byte
Wire.endTransmission(); // stop transmitting
}
// Receive data back from the nunchuck,
int nunchuck_get_data()
{
int cnt=0;
Wire.requestFrom (0x52, 6); // request data from nunchuck
while (Wire.available ()) {
// receive byte as an integer
nunchuck_buf[cnt] = nunchuk_decode_byte(Wire.read());
cnt++;
}
nunchuck_send_request(); // send request for next data payload
// If we recieved the 6 bytes, then go print them
if (cnt >= 5) {
return 1; // success
}
return 0; //failure
}
// Print the input data we have recieved
// accel data is 10 bits long
// so we read 8 bits, then we have to add
// on the last 2 bits. That is why I
// multiply them by 2 * 2
void nunchuck_print_data()
{
static int i=0;
int joy_x_axis = nunchuck_buf[0];
int joy_y_axis = nunchuck_buf[1];
int accel_x_axis = nunchuck_buf[2]; // * 2 * 2;
int accel_y_axis = nunchuck_buf[3]; // * 2 * 2;
int accel_z_axis = nunchuck_buf[4]; // * 2 * 2;
int z_button = 0;
int c_button = 0;
// byte nunchuck_buf[5] contains bits for z and c buttons
// it also contains the least significant bits for the accelerometer data
// so we have to check each bit of byte outbuf[5]
if ((nunchuck_buf[5] >> 0) & 1)
z_button = 1;
if ((nunchuck_buf[5] >> 1) & 1)
c_button = 1;
if ((nunchuck_buf[5] >> 2) & 1)
accel_x_axis += 2;
if ((nunchuck_buf[5] >> 3) & 1)
accel_x_axis += 1;
if ((nunchuck_buf[5] >> 4) & 1)
accel_y_axis += 2;
if ((nunchuck_buf[5] >> 5) & 1)
accel_y_axis += 1;
if ((nunchuck_buf[5] >> 6) & 1)
accel_z_axis += 2;
if ((nunchuck_buf[5] >> 7) & 1)
accel_z_axis += 1;
Serial.print(i,DEC);
Serial.print("\t");
Serial.print("joy:");
Serial.print(joy_x_axis,DEC);
Serial.print(",");
Serial.print(joy_y_axis, DEC);
Serial.print(" \t");
Serial.print("acc:");
Serial.print(accel_x_axis, DEC);
Serial.print(",");
Serial.print(accel_y_axis, DEC);
Serial.print(",");
Serial.print(accel_z_axis, DEC);
Serial.print("\t");
Serial.print("but:");
Serial.print(z_button, DEC);
Serial.print(",");
Serial.print(c_button, DEC);
Serial.print("\r\n"); // newline
i++;
}
// Encode data to format that most wiimote drivers except
// only needed if you use one of the regular wiimote drivers
char nunchuk_decode_byte (char x)
{
x = (x ^ 0x17) + 0x17;
return x;
}
Mostrando entradas con la etiqueta wii. Mostrar todas las entradas
Mostrando entradas con la etiqueta wii. Mostrar todas las entradas
Conectar WIImote al PC
PASOS PARA CONFIGURAR WIIMOTE CON BLUESOLEIL
1. Presionar 1+2 (y soltar enseguida) en el WIIMOTE y dar doble click sobre la esfera naranja en BlueSoleil
2. Tiene que aparecer el dispositivo, primero con un numero y luego con el nombre "Nintendo RVL-CN..."
3. Hacer doble click sobre el dispositivo
4. Presionar 1+2 en el WIIMOTE, y dar click derecho sobre el dispositivo y luego "Buscar servicios"
5. Cuando diga "NINTENDO RVL-CN... 1 servicios.", presionar 1+2 en el WIIMOTE y dar boton derecho sobre el dispositivo y elegir "Conectar Dispositivo de interfaz humana Bluetooth".
6. Cuando aparece la línea punteada entre el dispositivo y la esfera naranja, el WIIMOTE esta pronto para usar.
http://www.simplehelp.net/2009/01/14/how-to-connect-a-wii-remote-to-your-pc/
Conexion utilizando BlueSoleil
http://consoleplus.wordpress.com/2007/07/08/usar-el-wiimote-en-el-pc-version11/
Conectar el sensor bar al usb:
http://forums.dolphin-emulator.com/showthread.php?tid=21649
1. Presionar 1+2 (y soltar enseguida) en el WIIMOTE y dar doble click sobre la esfera naranja en BlueSoleil
2. Tiene que aparecer el dispositivo, primero con un numero y luego con el nombre "Nintendo RVL-CN..."
3. Hacer doble click sobre el dispositivo
4. Presionar 1+2 en el WIIMOTE, y dar click derecho sobre el dispositivo y luego "Buscar servicios"
5. Cuando diga "NINTENDO RVL-CN... 1 servicios.", presionar 1+2 en el WIIMOTE y dar boton derecho sobre el dispositivo y elegir "Conectar Dispositivo de interfaz humana Bluetooth".
6. Cuando aparece la línea punteada entre el dispositivo y la esfera naranja, el WIIMOTE esta pronto para usar.
http://www.simplehelp.net/2009/01/14/how-to-connect-a-wii-remote-to-your-pc/
Conexion utilizando BlueSoleil
http://consoleplus.wordpress.com/2007/07/08/usar-el-wiimote-en-el-pc-version11/
Conectar el sensor bar al usb:
http://forums.dolphin-emulator.com/showthread.php?tid=21649
Suscribirse a:
Entradas (Atom)