Hola, tengo el arduino Mega y ya he hecho varios proyectos con el satisfactoriamente, ahora me he propuesto crear un panel de control (cockpit) para el flight simulator X es decir una serie de interruptores fisicos que puedan controlar por ejemplo las luces de los aviones, ruedas, etc.
He conectado un interruptor que da un 1 o un 0 a una de las entradas de arduino y lo he programado de manera que para un 1 escriba la letra 'A' y para un 0 escriba 'B' mediante el USB al PC con la funcion Serial.print().
Cuando lo pones en marcha y abres el "serial monitor" de arduino funciona perfectamente, cuando pulso el interruptor salen las letras indicadas, pero lo que no se como hacer es que esas letras que llegan al USB windows lo reconozca como un dispositivo con botones como un joystick, gamepad o teclado, para luego poder usarlo en el flight simulator, he probado el ppjoy pero no reconoce lo que envio con arduino, con el fsuipc tampoco me rastrea los datos que envio desde el USB. Ya no se como hacerlo he estado googleando varios dias y no encuentro nada al respecto.
Resumiendo mi pregunta: una vez envias los datos mediante Serial.print(); que hay que hacer para usarlos como palanca de juegos o mando con botones o teclado o cualquier cosa que pueda usar en juegos como flight simulator?
Mi idea era: interruptor encendido envia la letra A mediante el usb y desde el juego configuro que la tecla A sea por ejemplo encender luces mediante el fsuipc.
Cualquier orientacion que me podais dar la agradeceré enormemente aunque no sea usando arduino, el problema es siempre el mismo como hacer que se reconozca lo que envias por USB de la manera que sea.
Gracias realmente estaba bastante perdido almenos con esto ya puedo hacer algunas pruebas más sino tocará comprar paneles USB ya hechos que también los hay XD realmente me extraña que haya tan poca información del tema de crear gamepads y joysticks con arduino para controlar juegos, ya que creo que es un tema bastante interesante el poder crearte a medida el controlador idoneo para cada juego.
El chip FTDI es CDC (o sea que la PC lo va a ver como un puerto serie virtual). Para utilizar otros tipo de dispositivos de USB, o bien podés usar un chip específico, o bien podés armarte algo con un micro con USB, que también puede ser un AVR. Por ejemplo, podés usar un Mega32U4, 16U4 o un 32U2, o algo de eso. El 32U2 no tiene ADC, pero el 32U4 es bastante parecido al 328, sólo que con más pines, un poco más de RAM y USB integrado.
Para programar esas cosas, lo mejor es utilizar LUFA:
Antes de mediados de octubre, seguramente estaremos subiendo un core arduino + bootloader para el 32U4 y el 16U4, pero aún no están listos :-[.
Me olvidaba, otra posibilidad, y que se puede utilizar con un Arduino común, sin mayores complicaciones (con un mínimo de hardware externo, un par de diodos y unas resistencias) es VUSB. Esta librería permite utilizar al Mega328 como controlador de USB por software:
En las pruebas que le hemos hecho, siempre anduvo bien.
Gracias por los links, aunque he encontrado otra manera de hacerlo que quizas sea mejor ya que lo quiero dedicar exclusivamente para flight simulator y crearme un cockpit. Se trata de unas targetas con entradas y salidas de datos a las que puedes añadirles cualquier interruptor, led, display, encoder, servo, motor, etc y mediante un software que hay funciona todo con el flight simulator. Sin programar ni nada solo configurar las entradas y salidas y punto. No pongo el nombre por si acaso es competencia o algo asi.
Las encontré por casualidad navegando y creo que es lo que utilizaré. Eso sí, sin dejar de lado arduino ya que esas targetas que comento solo sirven para el simulador nada mas XD.