Arduino Wii nunchuck y Wii motion plus con actualizado código IDE 1.0.2 y LEDs (6 / 7 paso)

Paso 6: Código de Nunchuck de Wii

Ahora que el Wii motion plus está funcionando bien, sólo puede conectar el Wii Nunchuck en la parte posterior de la wii motion plus con sin problemas,
los datos se pasan a través y usted está listo para probar el nunchuck pero necesita nuevo código, abrir un nuevo arduino IDE, copia y pega el código:

Otra vez el código no es mio que me fijo sólo para ser capaz de ejecutar en el IDE de ned y agregué leds, el código original es de esta página web:

http://www.windmeadow.com/node/42

todos los créditos para el código son para chadphillips

no es necesario cambiarla nada en el tablero que funciona con el nunchuck

#include < Wire.h >
#include < string.h >

#undef int
#include < stdio.h >

telefonía de uint8_t [6];        array para almacenar la salida de arduino
int cnt = 0;
int ledPin = 13;

vacío
(Setup)
{
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);

Serial.Begin (19200);
Serial.Print ("setup\n final");
Wire.Begin ();        Únete a bus i2c con dirección 0x52
nunchuck_init (); enviar el protocolo de inicialización
}

vacío
(nunchuck_init)
{
Wire.beginTransmission (0x52);    transmitir al dispositivo 0x52
Wire.Write (0 x 40);        envía la dirección de memoria
Wire.Write (0 x 00);        envía envía un cero.
Wire.endTransmission ();    interrumpir la transmisión
}

vacío
(send_zero)
{
Wire.beginTransmission (0x52);    transmitir al dispositivo 0x52
Wire.Write (0 x 00);        envía un byte
Wire.endTransmission ();    interrumpir la transmisión
}

vacío
(bucle)
{
Wire.requestFrom (0x52, 6);    solicitud datos del nunchuck
mientras que (Wire.available ())
{
telefonía [cnt] = nunchuk_decode_byte (Wire.read ());    recibe byte como un número entero
digitalWrite (ledPin, HIGH);    el LED se pone en
CNT ++;
}

Si hemos recibido los bytes de 6, y luego ir imprimir
Si (cnt > = 5)
{
Imprimir ();
}

CNT = 0;
send_zero (); enviar la solicitud de los siguientes bytes
Delay (10);
}

Imprimir los datos que hemos recibido
datos de Accel están largo 10 bits
así leemos 8 bits, entonces tenemos que añadir
en los últimos 2 bits.  Es por eso
multiplicar por 2 * 2
vacío
imprimir)
{
int joy_x_axis = telefonía [0];
int joy_y_axis = telefonía [1];
int accel_x_axis = telefonía [2] * 2 * 2;
int accel_y_axis = telefonía [3] * 2 * 2;
int accel_z_axis = telefonía [4] * 2 * 2;

int z_button = 0;
int c_button = 0;

telefonía de Byte [5] contiene bits de botones z y c
también contiene los bits menos significativos de los datos del acelerómetro
así que tenemos que comprobar cada bit del byte telefonía [5]
Si ((telefonía [5] >> 0) & 1)
{
z_button = 1;

}
Si ((telefonía [5] >> 1) & 1)
{
c_button = 1;

}

Si ((telefonía [5] >> 2) & 1)
{
accel_x_axis += 2;
}
Si ((telefonía [5] >> 3) & 1)
{
accel_x_axis += 1;
}

Si ((telefonía [5] >> 4) & 1)
{
accel_y_axis += 2;
}
Si ((telefonía [5] >> 5) & 1)
{
accel_y_axis += 1;
}

Si ((telefonía [5] >> 6) & 1)
{
accel_z_axis += 2;
}
Si ((telefonía [5] >> 7) & 1)
{
accel_z_axis += 1;
}

Serial.Print (joy_x_axis, DEC);
Serial.Print ("\t");

Serial.Print (joy_y_axis, DEC);
Serial.Print ("\t");

Serial.Print (accel_x_axis, DEC);
Serial.Print ("\t");

Serial.Print (accel_y_axis, DEC);
Serial.Print ("\t");

Serial.Print (accel_z_axis, DEC);
Serial.Print ("\t");

Serial.Print (z_button, DEC);
Serial.Print ("\t");

Serial.Print (c_button, DEC);
Serial.Print ("\t");

Serial.Print ("\r\n");

Si (z_button == 0) {}
digitalWrite(7,HIGH);
}

else if (c_button == 0) {}
digitalWrite(8,HIGH);
}

else if (joy_x_axis > = 190) {}
digitalWrite(9,HIGH);
}

else if (joy_x_axis < = 60) {}
digitalWrite(10,HIGH);
}

else if (joy_y_axis > = 190) {}
digitalWrite(11,HIGH);
}

else if (joy_y_axis < = 60) {}
digitalWrite(12,HIGH);
}

Else {}

digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
}
}

Codificar los datos para el formato que la mayoría conductores de wiimote excepto
sólo es necesario si utilizas uno de los pilotos regulares de wiimote
carbón de leña
nunchuk_decode_byte (char x)
{
x = (x ^ 0x17) + 0x17;
return x;
}

Artículos Relacionados

Cómo desmontar y reparar el módulo Wii Motion Plus.

Cómo desmontar y reparar el módulo Wii Motion Plus.

INTRO: uno de mis mandos de Wii por mantiene moviéndose al azar en una dirección que tenía el Wii Motion Plus.  Con la tirada de monja instalado, si presioné el empalme de la conexión a una dirección que podría funcionar, pero en cuanto suelto, se mu
Monitor de flujo de agua - Arduino Powered del Laser del CO2 / Windows con control

Monitor de flujo de agua - Arduino Powered del Laser del CO2 / Windows con control

Alarma y Monitor de flujo de agua de láser de CO2Accionado por un Arduino y controlados por software a la medida de un PC con WindowsPara alargar la vida de un CO2 tubo del laser es necesario bomba de enfriamiento de agua a través de él mientras está
RatPhone - 3 G FONA Arduino celular teléfono celular móvil con teclado botón Retro y rata de captura de la aplicación

RatPhone - 3 G FONA Arduino celular teléfono celular móvil con teclado botón Retro y rata de captura de la aplicación

No importa el iPhones y Androids. Aquí está el ratPhone! NO se es definitivamente de un teléfono inteligente. Pero no es un estúpido teléfono. Usted no podrá perder horas interminables en Facebook o Twitter, pero le ayudará a atrapar las ratas y otra
Arduino OLED termómetro e higrómetro con DHT11 para principiantes

Arduino OLED termómetro e higrómetro con DHT11 para principiantes

¡ Hola! Voy a mostrarte cómo hacer un Arduino OLED termómetro e higrómetro * con DHT11.El OLED que utilizamos hoy en día es 1.3″ pulgadas en tamaño, características 128 × 64 píxeles y usa el Bus SPI. En el siguiente paso encontrará más información út
Añadir soporte de Arduino a ESP8266 con el código de prueba de muestra

Añadir soporte de Arduino a ESP8266 con el código de prueba de muestra

ESP8266 paquetes de un montón de golpe. No es sólo un módulo de WiFi, también tiene un regulador micro decente en construido. Ahora la mejor parte es la comunidad ha hecho programar este microcontrolador incorporado muy fácil añadiendo soporte de Ard
Lector de RFID de AVR/Arduino con UART código en C

Lector de RFID de AVR/Arduino con UART código en C

RFID es la manía, en todas partes - desde sistemas de inventario hasta sistemas de identificación de la placa. Si alguna vez has estado en una tienda por departamentos y anduvo por esas cosas de apariencia de detector de metal en los puntos de entrad
Arduino controla intermitente hadas luces de Navidad con Jingle Bells

Arduino controla intermitente hadas luces de Navidad con Jingle Bells

como mi primer proyecto de Arduino que quería hacer algo impresionante pero no demasiado difíciles. Entré en un Hack de Navidad con este proyecto y lo ganó! La gente le encanta las luces de Navidad.Al final de este tienes un juego de luces de hadas d
[Proyecto Arduino] #Remote monitoreo de ultrasonido Sensor valor con ioShield-A & Cloud Server

[Proyecto Arduino] #Remote monitoreo de ultrasonido Sensor valor con ioShield-A & Cloud Server

Mi post explica cómo supervisar el valor del sensor ultrasónico usando Arduino, ioShield-A & Xively servidor.Tablero de Arduino Uno se utiliza para controlar todo el sistema y medir el valor del sensor. Estoy usando ioShield-A (que se basa de W5500)
InPace - un Arduino basado en datos GPS fitness pulsera con bluetooth y una app de iOS

InPace - un Arduino basado en datos GPS fitness pulsera con bluetooth y una app de iOS

InPace es una muñequera de fitness basado en Arduino, con una aplicación de iOS que lo acompaña, que puede proporcionar feedback directo sobre cómo el usuario es ellos mismos de estimulación durante una carrera, caminata o ciclismo de ruta. Realiza u
Modificación de los códigos en un HC-05 con el código ZS-040 que tiene el pasador EN vez de pasador

Modificación de los códigos en un HC-05 con el código ZS-040 que tiene el pasador EN vez de pasador

Durante la búsqueda sobre cómo modificar la configuración en el HC-05 llegó a ser obvio que varias de las tablas que tenían números diferentes a la mayoría de los tutoriales que he encontrado. La que voy a estar trabajando aquí es el HC-05 con un cód
Controlador Arduino Wii Nunchuck

Controlador Arduino Wii Nunchuck

Cómo controlar 2 servos piensa el nunchuck de wii.Paso 1: partes Wii nunchuckArduino2 servosProtoboardCables de puentePaso 2: conectar Conecte el nunchuck de wii como este esquema.Paso 3: Añadir el códigoPaso 4: hacer!!!!!! Ahora puede controlar el p
Arduino / Wii control torreta de cohetes Lego Star Wars

Arduino / Wii control torreta de cohetes Lego Star Wars

placa Arduino un recibe datos desde un Wii Nunchuck y lo envía a res servos: x, y, gatillo. Se ha añadido un láser independiente para apuntar. Actualmente es muy inestable debido a los servos baratos usados.Paso 1: construcción La torreta cohete fue
Ejecutar copias de seguridad en cualquier Wii sin Modchip a (actualizado)

Ejecutar copias de seguridad en cualquier Wii sin Modchip a (actualizado)

Aviso: acabo de actualizar el instructivo, si hay algún error, me dice. Yo se editar mi instructables para la próxima semana o tan.La primera versión de este instructable era muy anticuada y los DVD fueron realmente molestos.En esta versión, usted ca
Haciendo ApplePi, fusión Vintage Macintosh Plus con la frambuesa Pi

Haciendo ApplePi, fusión Vintage Macintosh Plus con la frambuesa Pi

Como un niño de finales de los 70 y estudiante de la escuela primaria de los años 80, siempre he estado fascinado por estas cajitas beige y platino y sus pequeñas pantallas B & W. Algunos apareció al lado de los animales domésticos Commodore y Apple]