Control de Arduino con Gamepad (4 / 5 paso)

Paso 4: Unir piezas

Si usted entiende completamente todos los materiales en pasos anteriores, debe ser capaz de escribir una interfaz de controlador a UART de XBox o implementar la comunicación PC-Arduino en sus los propios.

Como un último ejemplo que voy a utilizar un artilugio muy simple: un Arduino con pocos LEDs y el zumbador.

Originalmente quería construir un pequeño coche de RC, pero debido a los largos retrasos en la entrega de piezas no será capaz de hacer por lo menos por otra semana o así... Si tienes un par de tableros EasyDriver pudo conectar patillas de dirección en vez de LED amarillo y motor paso en lugar de LEDs rojos (ver esquema anterior). Un zumbador piezoeléctrico conectado al pin D3 reacciona en oprimir cualquier botón de su mando.

La descripción funcional completa se reduce a esto:

  1. Leer el estado del controlador de XBox y convertirlo en una cadena corta, pero bien definida.
    En mi caso sólo envío velocidades de motor, dirección y estado de botón, por lo que el mensaje tiene este aspecto:
    RRR LLL D BBBB
    donde LLL es la velocidad del Motor izquierda RRR es la velocidad del Motor derecho y BBBB representa estado de botón.
    D es una dirección del motor, que tiene sólo dos valores: 1 para adelante y 0 para atrás.
    LLL y RRR se normalizó para zonas inactivas y escalados a valores más pequeños (menos 255)

    Alternativamente puede enviar datos XINPUT para arduino y procesar en el microcontrolador sí mismo.

  2. A continuación, enviamos este mensaje sobre UART para Arduino
  3. Establecen todas las velocidades de motor en valores adquiridos y compruebe el estado del botón para determinar acciones adicionales
  4. Enviar datos a PC (sólo envío velocidades motor de depuración)
  5. Datos adquiridos se transforma en alguna representación visual. Usarlo que gustes, ya sea una salida de texto en la ventana de la consola, o salida basada en GUI, como barras de progreso, gráficas, diagramas de flujo o incluso representación de OpenGL.

Ya hemos aprendido a leer los mensajes UART utilizando eventos, así que realmente no necesita preocuparse por tiempo adecuado. Código del lado del PC puede mejorarse aún más con cosas tan frescos, como multi-threading y asincrónica de comunicación, pero que no se haciendo hoy en día.

Por lo tanto, vamos a empezar con Arduino.

Hay un boceto simple de nuestro coche RC. Nada especial, sólo establecer velocidades de motor dependiendo de la posición del Stick.

sqrt(LX*LX+ly*ly) establece la magnitud de la velocidad del motor

LY sign(-or +) controla la dirección del movimiento (hacia adelante / hacia atrás).

Basado en el valor de LX establecemos la diferencia entre la velocidad del motor izquierdo y derecho. Si LX es positivo, entonces la izquierda motor es valor de velocidad actual y a la derecha motor uses(128-LX). Si LX es negativo, asignamos valores a la manera opuesta.

En el lado de la PC he creado una pequeña clase, llamada XBoxUart, que combina todas las cosas que hemos aprendido anteriormente en un solo programa.

Por favor, utilice enlaces de abajo para descargar el código fuente para el lado de la PC y Arduino.

En primer lugar, subir el sketch de arduino. Puede probar si funciona abriendo a un Monitor serie a 115200 bod y envío de datos manualmente. Mensaje por ejemplo "100 100 1 0" es un equivalente de 100 pasos hacia adelantados (motores izquierdos y derecho) sin pulsar los botones de movimiento. En respuesta debe obtener cadenas, que se muestra en la imagen superior.

Nota: No olvide cambiar el nombre del puerto COM a lo que el CDC de Arduino. Si tienes un módulo de HC-05, puede conectar directamente a los pines de Arduino RX y TX, si quieres probarlo sin necesidad de cables.

Ahora puede compilar el código de C++ en Visual Studio, iniciar su controlador XBox, ejecutar el programa en tu PC y ver cómo LEDs (o motores) cambian su comportamiento con el movimiento del Stick! Pulsando cualquier botón se activará el zumbador. La salida en la ventana de la consola será similar a lo que se ve en la última captura de pantalla.

Artículos Relacionados

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
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
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 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!
Control de Arduino con su teléfono.

Control de Arduino con su teléfono.

En este Instructable te voy a mostrar cómo controlar tus cosas con tu teléfono y la placa arduino. Yo he controlado todo desde máquinas de humo también luz de la Navidad de este programa.Video:lo siento el video es un poco extraño porque mi cámara es
Control de arduino con Blynk USB

Control de arduino con Blynk USB

Este es mi segundo instructable. En este instructivo se muestra cómo controlar LED usando Blynk.Blynk es la aplicación que nos ofrece el tablero de instrumentos, así como conectividad. que se puede descargar desde google play store (para Android). &
Control de arduino con visual studio a través de bluetooth

Control de arduino con visual studio a través de bluetooth

Hola todo el mundo,Aquí controlaremos uno condujo vía bluetooth con tu pc por un programa wirtten con visual studiolo que necesitas es:1) Arduino (alguno)2) módulo Bluetooth (hc05 o hc 06)3) led4) 2 resistencias (10ko 15ko)y puede hacerlo ;)todos los
Control de Arduino Uno con Javascript!

Control de Arduino Uno con Javascript!

Yo últimamente he estado aprendiendo Javascript y me gusta mucho la lengua. Naturalmente, pensé que es una manera de programar las placas Arduino con Javascript!Una rápida búsqueda encontró cinco johnny biblioteca en Javascript que utiliza el protoco
Control de Motor con Arduino

Control de Motor con Arduino

Control de motores con Arduino puede ser complicado.En primer lugar, los motores necesitan más actual que la producción de qué Arduino pueden suministrar pernos. También motores pueden generar su propia corriente a través de un proceso llamado inducc
Sistema de seguridad y Control de acceso con Arduino y RFID

Sistema de seguridad y Control de acceso con Arduino y RFID

sistema de seguridad y Control de acceso con Arduino y RFIDEste proyecto es un evolotuin de mi primer proyecto llamado "Arduino – sistema de seguridad y acceso Control"Como se puede ver en el http://arduinobymyself.blogspot.com.br/2012/03/arduin
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
Arduino con visual basic 6.0 de control

Arduino con visual basic 6.0 de control

este instructable es parte de mi libro Arduino + visual basic 6.0 (poner su propio software de control arduino Robot.Visual basic 6.0 es una versión muy vieja, algunas personas pueden preguntar por qué queremos utilizar visual basic 6.0. visual basic
Control de Arduino Board inalámbricamente con iPhone, iPad o iPod iArduino de uso de la aplicación y Ethernet Shield

Control de Arduino Board inalámbricamente con iPhone, iPad o iPod iArduino de uso de la aplicación y Ethernet Shield

este tutorial te guiará a cómo hacer la configuración entera a tu Arduino Board con iArduino aplicación de control. Para entender, de usar Led y se cambiará lo encendido y apagado con la ayuda de la aplicación iArduino. De esto usted conseguirá la id
Arduino Nano y Visuino: Control de Servos con Joystick

Arduino Nano y Visuino: Control de Servos con Joystick

Controlando Servos conectado a Arduino con Joystick es muy común. Con la ayuda de Visuino, un entorno de desarrollo gráfico fácil de usar para Arduino, lograr esto nunca ha sido tan fácil!Tenga en cuenta que la anotación en algunas de las fotos en es