Paso 1: Configurar el entorno de Arduino
Por desgracia el Arduino no soporta Gamepads USB, sólo es compatible con teclados y ratones. Así que tenemos que editar los archivos de base de Arduino para apoyar Gamepads. En lugar de empezar a jugar con los archivos podemos definir un nuevo tipo de tablero que utiliza un conjunto diferente de archivos principales.
Empiece por navegar a C:\Program Files (x86) \Arduino\hardware\arduino\avr y abrir el archivo boards.txt. Encontrar las definiciones para el Leonardo del tablero y copiar todos ellos. Luego en la parte inferior del archivo pegar. Luego cambiar el nombre de leonardo en cada línea a leonardon64. Cambiar las líneas:
leonardon64.name=Arduino Leonard leonardon64.build.core=arduino
Para:
leonardon64.name=Leonardo N64leonardon64.build.core=leonardon64
El producto final debe ser:
##############################################################leonardon64.name=Leonardo N64 leonardon64.vid.0=0x2341 leonardon64.pid.0=0x0036 leonardon64.vid.1=0x2341 leonardon64.pid.1=0x8036 leonardon64.vid.2=0x2A03 leonardon64.pid.2=0x0036 leonardon64.vid.3=0x2A03 leonardon64.pid.3=0x8036 leonardon64.upload.tool=avrdude leonardon64.upload.protocol=avr109 leonardon64.upload.maximum_size=28672 leonardon64.upload.maximum_data_size=2560 leonardon64.upload.speed=57600 leonardon64.upload.disable_flushing=true leonardon64.upload.use_1200bps_touch=true leonardon64.upload.wait_for_upload_port=true leonardon64.bootloader.tool=avrdude leonardon64.bootloader.low_fuses=0xff leonardon64.bootloader.high_fuses=0xd8 leonardon64.bootloader.extended_fuses=0xcb leonardon64.bootloader.file=caterina/Caterina-Leonardo.hex leonardon64.bootloader.unlock_bits=0x3F leonardon64.bootloader.lock_bits=0x2F leonardon64.build.mcu=atmega32u4 leonardon64.build.f_cpu=16000000L leonardon64.build.vid=0x2341 leonardon64.build.pid=0x8036 leonardon64.build.usb_product="Arduino Leonardo" leonardon64.build.board=AVR_LEONARDO leonardon64.build.core=leonardon64 leonardon64.build.variant=leonardo leonardon64.build.extra_flags={build.usb_flags}
Finalmente entrar en la carpeta 'núcleos' y copiar la carpeta 'arduino' y pega ahí cambiar el nombre a 'leonardon64'. Luego dentro de esta carpeta eliminar los archivos 'HID.cpp' y 'USBAPI.h' y reemplazarlos con los archivos del mismo nombre abajo.
Estos archivos efectivamente definen la forma en que leonardo crea el gamepad. Para obtener más información sobre cómo crear estos dos archivos se puede encontrar en un Foro de freetronics por drake250.