Usar un Arduino con un control de N64 (4 / 5 paso)

Paso 4: Código de Arduino en profundidad

El protocolo de N64
Los bits enviaron a y desde el N64 controlador de la interfaz de un cable están codificadas en pulsos amplia 4 μs. Un '0' es 3 μs de baja y alta 1 μs. Un '1' es 1 μs de baja y alta 3 μs.

El código de Arduino en los métodos N64_send o N64_receive utilizar muy cuidadosamente programada Asamblea código escrito por Andrew Brown para bit-bang la línea de datos para comunicarse con el controlador. bloques de NOP sirven para esperar las cantidades apropiadas de μs antes de la línea de envío de datos de la interrogación.

En el inicio, 0 x 00 es enviada al controlador, y entonces después de el único comando utilizado es 0 x 01 a consulta de estado del controlador.

Codificación de datos
Cuando los datos se recibieron después de un 0 x 01, llega como 16 bits de información de botón y 16 bits de información del joystick analógico. Los datos se vería 44000000000000400044440044000444.

El formato de los bits es: A, B, Z, Start, Dup, Ddown, Dizquierdo, pues, 0, 0, L, R, taza, Cdown, hendidura, Cright + 16 bits de la posición del stick analógico.

El método translate_raw_data() pasa a través de los 32 bits, insertándolos en la estructura N64_status. Los primeros 16 bits son simples 1 o 0, pero el pasado 16 se traducen en un entero aproximadamente en el rango (-80, 80) por

para (i = 0; i < 8; i ++) {}
¿N64_status.stick_x | = N64_raw_dump [16 + i]? (0 x 80 >> i): 0;
}

Después de los datos en este formulario, es fácil hacer lo que quieras con él. En este caso, simplemente enviarlo por el puerto serie en el método loop() como una cadena de datos binarios con dos números enteros de x e y valores.

Los datos enviados por el puerto serie pueden parecerse: 0400000000000400 63-67 que significaría que se presionan dos botones y la palanca de control en el 63,-67.

Artículos Relacionados

Espectáculo de láser de Arduino con Control completo de XY

Espectáculo de láser de Arduino con Control completo de XY

Update! Ver 32 paso para saber cómo utilizar este proyecto con una laser verde! Comprobación también - el LaserTweet Instructable para hacer que este proyecto Mostrar datos desde Twitter:Este proyecto utiliza un Arduino y algunos altavoces baratos pa
Cómo usar Scratch Arduino para programar un mBot con Makeblock

Cómo usar Scratch Arduino para programar un mBot con Makeblock

Hace unos días hice un robot por Makeblock. Nosotros lo llamamos mBot---un robot mejor ajuste de la educación y uso en el hogar. Es fácil de usar y más asequibles. Creemos que este es el mejor producto robótico en su categoría.El mBot está diseñado e
Convertir un control de N64 en un Gamepad USB utilizando un Arduino Leonardo

Convertir un control de N64 en un Gamepad USB utilizando un Arduino Leonardo

La forma más fácil de convertir un control de N64 en un Gamepad USB es comprar un N64 controlador adaptador para alrededor £15. Sin embargo también puede hacer si usted tiene un Arduino Leonardo o cualquier otro tablero de Arduino con comunicación US
Conectar Bluetooth Universal de Arduino - Control tu Arduino con tu dispositivo Android

Conectar Bluetooth Universal de Arduino - Control tu Arduino con tu dispositivo Android

Siempre quise controlar fácilmente mi Arduino con mi Smartphone, pero nunca encontré la solución perfecta para hacerlo. No quiero decir que esto es perfecto, pero hace lo que quiero que do...well no totalmente pero estoy cerca... Creo.En este Instruc
Control de Arduino con Gamepad

Control de Arduino con Gamepad

Últimamente he sido curioso sobre amistad con Arduino o cualquier otro microcontrolador con un gamepad para poder tener interacción física con las cosas que hago, pero parecía que no rápido o barato a hacerlo.Mayoría de las soluciones implicadas:Comp
Control de Arduino con teléfono Android a través de Bluetooth

Control de Arduino con teléfono Android a través de Bluetooth

Hola gente, aquí pueden aprender a controlar Arduino con teléfono Android a través de Bluetooth. Puede utilizar tu smartphone como un control remoto para sistema de iluminación del hogar o se puede utilizar como un etc. remoto del abejón.Para realiza
Cómo usar cualquier relé con tu arduino la manera segura

Cómo usar cualquier relé con tu arduino la manera segura

Este instructable le mostrará cómo utilizar cualquier relé nuevo o usado con tu ARDUINO la manera correcta y segura, si compras una placa de relé de preasymbled para tu arduino con todos los componentes en él no es el tutorial que buscas. Este instru
Control de Arduino con python basado en web API (No php)

Control de Arduino con python basado en web API (No php)

En esta guía le mostrará cómo controlar el dispositivo arduino de una página web! Luego, te voy a mostrar cómo controlar tu arduino desde tu dispositivo móvil e incluso crear un API basado en web para controlar tu arduino desde su página web con otro
Cualquier circuito con un control remoto de la TV (y un Arduino) de control

Cualquier circuito con un control remoto de la TV (y un Arduino) de control

La mayoría de los botones de un mando nunca se utiliza. Así que por qué no usarlos para controlar electrodomésticos y otros aparatos electrónicos en su casa. En este proyecto, voy a mostrarle cómo utilizar un Arduino para decodificar la señal del con
Control de Servos en Internet a través de Arduino con Teleduino

Control de Servos en Internet a través de Arduino con Teleduino

Servos tienen muchos usos y puede ser muy divertido para jugar con. Algo que puede ser un montón de diversión es tomar el control de servos de hasta seis por internet! Solo imagine las posibilidades.Este proceso se hace realmente simple con el bosque
Control de Arduino con Blynk [USB] [principiantes] inalámbrico en cualquier lugar del mundo

Control de Arduino con Blynk [USB] [principiantes] inalámbrico en cualquier lugar del mundo

Aquí es cómo controlar arduino con blynk a través de USB desde cualquier lugar del mundo!!!!!!Paso 1: Aquí es cómo controlar arduino con blynk a través de USB desde cualquier lugar del mundo!!!!!!ver y disfrutar!
Temporizador de cuenta regresiva de Arduino con los botones de configuración

Temporizador de cuenta regresiva de Arduino con los botones de configuración

En esta guía de Instructables te mostrará cómo hacer su propio temporizador de cuenta regresiva de Arduino dos dígitos. Hice mi propio circuito utilizando el microcontrolador ATmega328 pero este es un paso opcional. En esta guía te ayudaré a hacer fá
Cerradura de la puerta con un control remoto??

Cerradura de la puerta con un control remoto??

Usted puede bloquear una puerta con un control remoto?? Bien, ahora puedes hacerlo en sólo 5 pasos!Paso 1: partes Se necesita:1 x Arduino (cualquier sabor)1 x Servo1 x Breadboard1 x receptor IR (el mío es el TSOP2238 de VISHAY. Puede utilizar uno de
Robot controlado con cualquier control de Tv

Robot controlado con cualquier control de Tv

La idea de este instructable es ensenar a controlar un robot con el control de cualquier televisor. Muchas veces creemos saludando materiales complicados para hacer un robot de, embargo de pecado, la realidad es con materiales sumamente populares, te