6 Arduino tiro goma Torreta (Wii Nunchuck + Arduino) (4 / 5 paso)

Paso 4: El Software

Ahora para la verdadera diversión: comunicación I2C!

Wii Nunchuks comunicarse a través de un lenguaje llamado I2C, que no es increíblemente complicado, pero tenemos una biblioteca de Arduino para lidiar con esto, la biblioteca de hilos.

Aquí está mi código, hacer lo que se quiere de él!

[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[

#include //include la biblioteca de alambre
#include
Servo LR; servo para el movimiento de izquierda a derecha
Servo UD; servo para el movimiento de arriba-abajo
Bang del servo; servo para tirar las gomas

char el nunchuck = 0xA4 >> 1; establece la dirección nunchuck como 0xA4 (operacionalmente 0x52)

nunData uint8_t [6]; para el almacenamiento de datos

pedazo de int; para hacer el seguimiento de los trozos de tamaño de byte de datos
int joyX;
int joyY;
int accelX; no se olvide de añadir dos pedacitos debido a protocolo de empaquetado de la nunchuck
int accelY;
int accelZ;
byte Zbutt; último bit aislamientos de numData [5]
byte Cbutt;

void setup() {}
LR.attach(9);
UD.attach(10);
Bang.Attach(11);

Serial.Begin(19200);
Wire.Begin(); inicia la comunicación I2C
Initialize(); configura el nunchuck
Delay(100);
}

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

void loop() {}

Wire.requestFrom (nunchuck, 6); Enviame esos datos!
trozo = 0;
while(Wire.Available()) {//while allí es los datos a enviar
nunData [fragmento] = decode(Wire.receive()); almacena los datos en valor 'trozo' de nunData como descodifica
pedazo ++;
}

makeVars();

Convert(); paquete de los datos del sensor
Delay(50);
}

convert() {//tells nunchuck para "empaquetar" los datos del sensor de vacío
Wire.beginTransmission(nunchuck); Dile nunchuck para escuchar
Wire.Send(0x00); envía cero
Wire.endTransmission(); PARADA
}

void makeVars() {}
joyX int = nunData [0];
joyY int = nunData [1];

int accelX = nunData [2] * 2 * 2; no se olvide de añadir dos pedacitos debido a protocolo de empaquetado de la nunchuck
int accelY = nunData [3] * 2 * 2;
int accelZ = nunData [4] * 2 * 2;

byte Zbutt = (nunData [5] >> 0) y 1; último bit aislamientos de numData [5]
byte Cbutt = (nunData [5] >> 1) y 1;

accelX = accelX + (nunData [5] >> 2) + 2 * (nunData [5] >> 3); suma los dos bits faltantes a cada valor de la aceleración (faltan bits encontradas 6 bytes)
accelY = accelY + (nunData [5] >> 4) + 2 * (nunData [5] >> 5);
accelZ = accelZ + (nunData [5] >> 6) + 2 * (nunData [5] >> 7);

int horiz = mapa (joyX, 230, 23, 78, 102); es así que hay una pequeña área en el centro donde no accionar la palanca de mando nada (X sentido)
Si (abs (horiz - 90) < = 2) {}
horiz = 90;
}
else if (horiz > 90) {}
horiz-= 2;
}
else if (horiz < 90) {}
horiz += 2;
}

vert int = mapa (joyY, 28, 231, 80, 100); es así que hay una pequeña área en el centro donde no accionar la palanca de mando cualquier cosa (Y dirección)
Si (abs (vert - 90) < = 2) {}
Vert = 90;
}
else if (vert > 90) {}
Vert-= 2;
}
else if (vert < 90) {}
Vert += 2;
}

sesión de int = 90; crea valor de servo tiro

Si ((Zbutt == 0) & & (Cbutt! = 0)) {//if Z se presiona, gire el tiro delantero servo lentamente
tirar = 95;
}

Si ((Cbutt == 0) & & (Zbutt! = 0)) {//if C se presiona, girar tiro servo hacia atrás rápidamente
tirar = 82;
}

LR.send(horiz); enviar todos los valores de servo
UD.send(vert);
Bang.Send(Shoot);

}

decodificación de Char (byte x) {//decodes valor del sensor (contemplada en una declaración anterior)
x = (x ^ 0x17) + 0x17; No tengo ni idea lo que esto significa...
return x;
}

]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

Artículos Relacionados

Wii Nunchuck como controlador de propósito general a través de la placa Arduino

Wii Nunchuck como controlador de propósito general a través de la placa Arduino

Fondo:He hecho un uno mismo-equilibrio monopatín eléctrico que se dirige con un Wii Nunchuck usando el joystick de pulgar en la parte superior o por inclinación izquierda o derecha, dependiendo de cuál de los dos botones en el extremo están siendo pr
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
Controlar su Robot con un Wii Nunchuck (y un Arduino)

Controlar su Robot con un Wii Nunchuck (y un Arduino)

después de usar yo mismo a jugar Wii boxeo me puse a pensar sería genial si pudiera utilizar este control con mi robot, (mirando a mi mano izquierda).Buscando por internet encontré un grupo de personas que hacen cosas similares, (enlaces a todos just
Arduino Wii nunchuck y Wii motion plus con actualizado código IDE 1.0.2 y LEDs

Arduino Wii nunchuck y Wii motion plus con actualizado código IDE 1.0.2 y LEDs

por lo tanto, estaba tratando de hackear mi Wii nunchuck porque quiero controlar motores y luces con el nunchuck de Wii.El primer problema que encontré fue cómo conectar el control sin un adaptador, planeaba hacer uno, perocuando estaba buscando el n
HackerBoxes 0002: Intensificación a ARM32, Video de MCU, Wii Nunchuck

HackerBoxes 0002: Intensificación a ARM32, Video de MCU, Wii Nunchuck

Este Instructable comparte los fundamentos de trabajar con HackerBoxes #0002. HackerBoxes es el servicio de caja de suscripción mensual para aficionados de electrónica, fabricantes y los hackers. Si desea recibir un cuadro como este derecho a su buzó
Lanzador de escritorio Frisbee con Wii Nunchuck

Lanzador de escritorio Frisbee con Wii Nunchuck

Aquí es cómo construir mi primera iteración de un lanzador que lanza discos Discraft Ultimate de mini estrellas. Esto podría llamar la versión rápida y sucia. Es muy básico. Lo único que hace es disparar. Sin embargo, se podría modificar fácilmente p
ESP8266 y Visuino: mando a distancia WiFi Smart coche Robot con Wii Nunchuck

ESP8266 y Visuino: mando a distancia WiFi Smart coche Robot con Wii Nunchuck

Que coche elegante se establece cuando se combinan con Los módulos de controladores Motor L298N, ofrecen una de las maneras más fáciles de fabricar coches robot. Ya hice un Instructable sobre cómo puede controlar coche Smart con Arduino y Joystick. S
Wii Nunchuck adaptador

Wii Nunchuck adaptador

este tutorial es para todas aquellas personas que tienen un arduino y usar allí nunchuck de Wii como un dispositivo de entrada, pero no ganas realmente de corte abierto del cordón y arruinar el nunchuck para siempre!!!!!!bien has llegado al lugar cor
USB ratón hecho por un Wii Nunchuck

USB ratón hecho por un Wii Nunchuck

este instructable describe cómo convertir un controlador de Nintendo Wii Nunchuck en un ratón de 2 botones USB usando un Teensy USB.  El Teensy USB es un desarrollo muy fácil de usar que puede ser programado en un entorno de Arduino. La Junta de desa
Ojos de Animatronic y Wii Nunchuck parte 2 - le dan una voz

Ojos de Animatronic y Wii Nunchuck parte 2 - le dan una voz

Después de los ojos de animatronic en la parte 1, quería completar la cara con una voz y posiblemente moviendo las cejas. Si usted repasa mi parte 1, verás que para la base he utilizado un modelo de Thingiverse. Una vez que tengas el modelo 3D impres
Ojos de Animatronic y Wii Nunchuck

Ojos de Animatronic y Wii Nunchuck

Encontré este archivo de 3D en Thingiverse por Micropuller. Rápidamente me di cuenta de que el archivo crea una unidad de gran tamaño ojo. Pero todavía quería explorar la creación de una cara de animatronic que pude controlar con un Arduino.Cuanto má
Pleo de Control remoto con Wii Nunchuck

Pleo de Control remoto con Wii Nunchuck

describe este instructable cómo mando a distancia-Pleo (un amigable dinosaurio robótico: http://www.pleoworld.com) con gestos usando una configuración de tamaño de bolsillo. Puede ampliar más piezas de este instructable para controlar otros tipos de
Wii nunchuck auricular caso

Wii nunchuck auricular caso

permite decir compraste un wii nunchuck para algún otro proyecto y no desea utilizar el caso original o tal vez su nunchuck de wii sólo se rompió pero no quiere simplemente tirarlo lejos.Aquí es algo que puedes hacer: hacer un caso para su audífonoco
Matriz de LED Arduino con el Wii Nunchuck Control

Matriz de LED Arduino con el Wii Nunchuck Control

vídeo principal:Documentación