Brancher un clavier a un arduino (Leonardo)

Bonjour. J'ai un probléme sur mon petit projet sur l'arduino.

Je souhaiterais avoir un arduino qui se comporte en récepteur et éméteur USB. En fait je souhaiterais que l'on puisse brancher un clavier sur l'arduino et que dans le même temps il se fasse lui même passer pour un clavier vis a vis d'un ordinateur.

Clavier --USB--> Arduino --USB--> Ordinateur

L'objectif étant de modifier matérielement les keycodes perçus par l'ordinateur.

Or si un Arduino Leonardo sais parfaitement se faire passer pour un clavier a la vue de l'ordinateur (d'ou le choix de ce modéle), je ne sais pas comment brancher dessus un clavier USB, et comment en récupérer les codes.

Merci d'avance de votre aide.

Cordialement S.B.

le port USB de l'arduino sert à la programmation par le PC, pas pour brancher des trucs dessus.

Tu peut te plonger dans les standards des claviers (tension vitesse type de data etc) te brocher un second port USB et te crée un petit driver pour clavier arduino, un jeux d'enfant.

c'est un peut compliqué mais faisable comme toujours :grin:

Si tu y arrive pense à partager ça servira toujours pour certain. :D

c'est plus facile avec un vieux clavier PS2 : c'est du série et le léonardo a en plus de l'usb un port série...

Christian_R: le port USB de l'arduino sert à la programmation par le PC, pas pour brancher des trucs dessus.

bonsoir Christian il semblerait que le "leonardo" propose concernant l'usb quelques specificités

The Leonardo differs from all preceding boards in that the ATmega32u4 has built-in USB communication, eliminating the need for a secondary processor. This allows the Leonardo to appear to a connected computer as a mouse and keyboard, in addition to a virtual (CDC) serial / COM port.

n'en ayant pas :grin: , je n'en sais pas plus

Il faut aller un peu plus loin que les descriptions "arduino" du µC... Déjà qu'en prog arduino, analogRead() inhibe totalement les possibilités d'utiliser les combinaisons différentielles des entrèes analogiques...

L'ATMEGA32U4 propose un port USB hard aussi bien esclave que maître, mais j'imagine qu'utiliser ce port pour deux communications en même temps relève de l'impossible : il n'y a pas de Rx/Tx en USB, mais de la liaison D+/D-... d'où ma proposition d'utiliser le Rx/Tx de l'USART pour lire un clavier en PS2 et l'USB pour envoyer tout ça à un PC...

Bonjour

Leonardo, comme les autres cartes à base de micro 32U4 , dispose d'un module USB DEVICE, pas HOST ni même OTG !! Dans l'environnement Arduino et avec les librairies' standards' cette carte peut se comporter en clavier USB QWERTY (il faut bidouiller un peu et se faire passer pour une carte Teensy + ajout Teensyduino pour avoir l'AZERTY....)

Dans ce contexte hard et soft Leonardo ne peut dialoguer avec un clavier USB Avec un shield Host additionnel ça devient peut être possible....(vérifier la compatibilité du shield avec Leonardo et la disponibilité du 'driver' clavier HID pour ce shield)

Super_Cinci mentionne la solution "clavier PS2 -> Leornardo -> USB -> PC" Une librairie Arduino PS2 adaptéé à Leonardo est indiquée içi : http://playground.arduino.cc/Main/PS2Keyboard

Il faudrait que j'essaye avec un clavier PS2, notamment pour valider le fonctionnement de mon idée, et l'exercer avec la programmation de l'Arduino (ce que j'ai encore peu fait).

Mais l'un des but est de faire un adaptateur matériel à brancher entre un clavier et un ordinateur quand on as pas assez d'accès au niveau logiciel. Donc, pour fonctionner avec du matériel récent il est nécessaire de supporter l'USB des deux côté.

Mais l'Arduino n'est peu être pas la carte idéale pour ce projet. Je m'était dirigé vers cette solution car elle est connue et que les dernières versions font nativement de l'USB device.

Si vous avez d'autres idées, n'hésitez pas a les proposer. De toute façon il faut que je trouve du temps avant de pouvoir y bricoler.