Ant.b vient de faire partager un de ses projets où il utilise une astuce pour transformer le kit Arduino en Joystick USB. Il utilise pour cela les LUFA firmwares qu’il intègre dans le circuit AtMega8U2 du kit Arduino UNO.

arudino uno usb joystick atmega 8u2 Utiliser le kit Arduino UNO comme un périphérique USB à part entière

Lors de la sortie du kit Arduino UNO, nous vous faisions remarquer que la liaison USB était dorénavant gérer par un ATMega8U2, au détriment du circuit FTDI classique. Cette évolution permet donc de faire évoluer la connectivité USB du kit Arduino à souhait en programmant le circuit ATMega8U avec la connectivité USB que l’on souhaite.

LUFA Utiliser le kit Arduino UNO comme un périphérique USB à part entière

Pour cela ant.b a donc utilisé la bibliothèque LUFA, Lightweigh USB Framework for AVRs (ancien myUSB). Il sagit d’une slution open source pour intégrer une pile USB compatible avec les circuit Atmel AT90USBxxxx et les micro-contrôleurs ATMegaxxUx.

Actuellement la bibliothèque LUFA les piles USB pour émuler les périphériques de type :

  • Audio In Device
  • Audio Out Device
  • Dual Virtual Serial Device
  • Generic HID Device
  • Generic HID Host
  • Joystick Device
  • Joystick Host
  • Keyboard Device
  • Keyboard/Mouse Device
  • Keyboard Host
  • Keyboard Host/Device Dual Mode
  • Mass Storage Device
  • Mass Storage/Keyboard Device
  • Mass Storage Host
  • MIDI Device
  • MIDI Host
  • Mouse Device
  • Mouse Host
  • Printer Host
  • RNDIS (CDC) Ethernet Device
  • RNDIS (CDC) Ethernet Host
  • Still Image Host
  • Virtual Serial Device
  • Virtual Serial/Mouse Device
  • Virtual Serial Host

Ant.b a doc utilisé cette technique pour transformer son kit Arduino UNO en réel Joystick USB. Il a d’abord du modifier la carte pour ajouter les fonction reset et HWB pour le 8U2.


UNO DFU Utiliser le kit Arduino UNO comme un périphérique USB à part entière

Ensuite, il a programmé le ATMega328 avec un programme transmettant l’état d’un joystick, sous la forme d’une liaison série vers le circuit 8u2. Il a ensuite programmé le circuit 8u2 avec un firmware LUFA pour émuler le joystick à travers les bonnes piles USB.

Attention, une fois le 8u2, il est impossible de reprogrammer le ATMega328 sans remettre le firmware initial dans 8u2.

Bref tous cela pour dire que le circuit ATmel 8u2 présent sur le kit Arduino UNO ouvre vraiment de nouvelles portes au niveau de la connectivité USB, ne limitant plus le kit Arduino à dialoguer au travers d’une liaison série virtuelle.

Je sent bien que ce kit Arduino UNO nous réserve de belles surprises en USB.

Vous pouvez retrouver le détail de la technique de ant.b sur : arduino.cc

via : arduino.cc