Go Down

Topic: Simuler l'appuie d'une touche (Read 3066 times) previous topic - next topic

Bonjour a tous

J'ai découvert par pur hasard la carte arduino il ya une semaine de cela. Et j'ai commencé a lire les tutoriels/

Je me demandais, est il possible de simuler l'appuie d'une touche sur le clavier avec la carte. Ce que j'aimerais savoir si c'est possible de simuler l'appuie de la touche. C'est a dire, si je suis entrain de jouer a un jeux vidéo par exemple, j'aimerais que lorsque j'appuie sur mon bouton poussoir, cela simule l'appuie de la touche directionnelle haut. Et que donc mon personnage avancera. Le problème c'est que je ne sais pas trop ou chercher :/

Par exemple, serait il possible de programmer une manette de jeu pour pc avec arduino ? Je ne me rends absolument pas compte des capacités de cette carte.

Si jamais cela est possible, est ce difficile ? Sachant que j'ai déja programmer en C et j'ai un niveau honorable en pyhton jr ne suis donc pas totalement débutant en prog. Mais je n'ai jamais couplé la prog et l'éléc.

En cherchant un peu, j'ai remarqué que ce lien (http://www.practicalarduino.com/projects/virtual-usb-keyboard) revenait souvent donc je vais chercher avec cela. Mais si vous avez d'autres liens ou des infos, je suis preneur :)

Merci d'avance de vos réponses qui je l'espère seront nombreuses

skywodd

Bonjour,

C'est tout à fait faisable ;)

Quelques pistes :
- Arduino UNO + vusb (équivalent de ton lien)
- Teensy++
- Arduino leonardo

Et sur mon blog :
http://skyduino.wordpress.com/2012/05/29/teensy-arduino-clavier-usb-avec-macro-diy/
http://skyduino.wordpress.com/2012/06/28/test-olimexino-32u4-arduino-leonardo-compatible-et-arduino-1-0-1/
http://skyduino.wordpress.com/2012/07/07/hack-utiliser-teensyduino-avec-une-carte-arduino-leonardo-ou-compatible-leonardo/
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

-Standby

En gros tu veut faire une manette, le Python est encore une bonne fois utile pour l'interprétation coté Pc. 
The Mind is like a parachute it works best when opened.

fred60

Hello,

Moi je recherche exactement la même chose mais pour simuler l'appui du bouton Enter pour déclencher un logiciel photobooth.

Je viens d'acheter une UNO en prévoyant de l'utiliser avec le logiciel AAC Keys sur l'ordi (pour reconnaître la commande émise par l'Arduino) mais ça ne fonctionne pas ! AAC Keys est un logiciel assez vieux et je suspecte une incompatibilité avec les Windows 7 et cpie. J'ai même essayé la version Mac et ne marche pas non plus alors que sur le moniteur série je vois bien la commande Enter qui arrive.

Je suis débutant alors passer par du Python va être trop long à apprendre, je pense donc que je vais racheter une Leonardo, je n'aurai rien à toucher sur l'ordi et mon programme sera pratiquement le même sauf remplacer "serial.write" par "keyboard.write".


Le python tu dis ? Et par quel moyen ? Je suis beaucoup plus a l'aise avec le python qu'avec le C.

Je n'ai a ma disposition qu'une carte arduino uno. Je vais donc cherchez avec le vusb en espérant comprendre. Le but étant clairement d'arriver à simuler une manette. 4 bouton pour les touches directionelles et 2 boutons pour les touches d'actions. Et je veut que mon programme marche partout. C'est a dire que si je suis sur internet et que j'appuie sur mon bouton objectif (qui simulera la touche entrée par exemple), cela fera l'équivalent de si j'appuyais sur la touche entrée. C'est à dire que cela lancera la recherche.

Après, la plus grosse difficulté va être l'anglais. je n'ai trouvé aucun tuto en français.

skywodd


Le python tu dis ? Et par quel moyen ? Je suis beaucoup plus a l'aise avec le python qu'avec le C.

Sous windows c'est possible avec l'API win32 native :
http://win32com.goermezer.de/content/view/136/254/


Je n'ai a ma disposition qu'une carte arduino uno. Je vais donc cherchez avec le vusb en espérant comprendre. Le but étant clairement d'arriver à simuler une manette. 4 bouton pour les touches directionelles et 2 boutons pour les touches d'actions. Et je veut que mon programme marche partout. C'est a dire que si je suis sur internet et que j'appuie sur mon bouton objectif (qui simulera la touche entrée par exemple), cela fera l'équivalent de si j'appuyais sur la touche entrée. C'est à dire que cela lancera la recherche.

Essaye de regarder les projets d'exemples de v-usb, il sont plutôt bien fait.
Le plus dure est de concevoir une table de descripteurs USB fonctionnelle et de respecter le format de rapport d'un joystick.

Par contre je te préviens tout de suite v-usb est une librairie AVR-C classique faite pour être compilé avec avr-gcc et un makefile.
On peut compiler cette librairie avec l'ide arduino mais c'est pas triviale.

Tu as un exemple d'adaptation pour arduino ici :
http://code.google.com/p/vusb-for-arduino/
Mais c'est une très vielle version ...

Bien faire attention au fichier de configuration avec les brochages (voir "atmega328p arduino pinmap" sur google pour les correspondances arduino -> broche/port AVR).


Après, la plus grosse difficulté va être l'anglais. je n'ai trouvé aucun tuto en français.

V-usb c'est typiquement le genre de truc qui évolue h24, même les tuto en anglais sont périmés assez rapidement.
Ça demande des connaissances générales du protocole USB, du C pour AVR et de la compilation avr-gcc/makefile ;)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

fred60

Bonjour,

Je n'ai pas encore essayé le montage mais je viens de compiler le code selon lien suivant avec la librairie v-usb et ça s'est bien passé. Je vais transférer ça dans l'ARduino (Uno) dès que j'aurais les composants mais d'après vous la compilation sans erreur ne suffit pas pour savoir si la librairie est la bonne ???

Pour le code j'ai pris :

https://github.com/practicalarduino/VirtualUsbKeyboard/blob/master/VirtualUsbKeyboard.pde

Librairie :

http://vusb-for-arduino.googlecode.com/files/vusb-for-arduino-005.zip

Et pour le montage :

http://www.practicalarduino.com/projects/virtual-usb-keyboard

skywodd

Tu doit pouvoir retrouver sur le forum une version bien plus récente de vusb-for-arduino avec un patch pour la partie clavier.
Je l'avais fait pour un autre membre, je viens tout juste de m'en rappeler :smiley-zipper:
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

fred60

Ok mais tu as une idée de la version que je dois trouver ?

En fait je suis assez pressé par le temps car c'est pour faire un photobooth pour mon mariage et je dois encore fabriquer tout le coffre pour accueillir l'ecran etc. et si la commande par bouton+arduino ne fonctionne pas tout tombe à l'eau.

Si utiliser Vusb n'est pas évident, je me demandais si racheter une Leonardo ne serait pas plus faible. Vous en pensez quoi ?

Merci pour votre aide

skywodd


En fait je suis assez pressé par le temps car c'est pour faire un photobooth pour mon mariage et je dois encore fabriquer tout le coffre pour accueillir l'ecran etc. et si la commande par bouton+arduino ne fonctionne pas tout tombe à l'eau.

La version dans le tuto marche, elle est vieille mais elle marche.
Après pour une utilisation dans un vrai projet sur plusieurs jours par exemple je serait pas catégorique ...


Si utiliser Vusb n'est pas évident, je me demandais si racheter une Leonardo ne serait pas plus faible. Vous en pensez quoi ?

Avec la librairie UsbKeyboard qui est fourni avec ça revient en gros à faire comme avec une carte Leonardo.
Du reste le code que j'avais posté sur le forum permettait d'avoir exactement les même fonctions que la leonardo.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

fred60

ok je vais voir pour essayer ça alors. Par contre la galère est que je n'ai pas encore les composants (commande on-line + frais de port+quantités imposées) et j'ai regardé les commander me revient presque aussi cher qu'une Leonardo...

Merci !

Artouste

#11
Apr 15, 2013, 01:32 pm Last Edit: Apr 15, 2013, 01:41 pm by Artouste Reason: 1
bonjour
j'ai lu un peu en diagonale, mais si j'ai bien compris tu veux simuler l'appui d'une (une seule ? ) touche d'un clavier
pourquoi pas tout simplement "decapsuler'" un clavier usb à , le circuit d'interface est une matrice assez facile à retrouver
et simuler l'appui d'une touche (ou quelques unes) par un arduino de base n'est pas tres compliqué
et peut etre meme qu'il n'y a pas besoin d'arduino  :smiley-mr-green:

exemple ici
http://www.instructables.com/id/Hacking-a-USB-Keyboard/

fred60

Oui j'ai vu la solution du clavier mais je trouvais l'Arduino plus "propre" et plus intéressant intellectuellement.

Il est sûr que si je n'y arrive pas avec cette solution je pourrai toujours me rabattre sur le clavier. De plus je ne sais pas si c'est possible mais plutôt que de démonter le clavier, retrouver les bons contacts je peux aussi virer la touche entrée et venir repiquer (en soudant) 2 fils avec un interrupteurs pour simuler l'appui sur la touche. Ce n'est pas très clean mais si je planque tout dans un coffre ce n'est pas grave et l'essentiel est que ça fonctionne.

Artouste


Oui j'ai vu la solution du clavier mais je trouvais l'Arduino plus "propre" et plus intéressant intellectuellement.

Il est sûr que si je n'y arrive pas avec cette solution je pourrai toujours me rabattre sur le clavier. De plus je ne sais pas si c'est possible mais plutôt que de démonter le clavier, retrouver les bons contacts je peux aussi virer la touche entrée et venir repiquer (en soudant) 2 fils avec un interrupteurs pour simuler l'appui sur la touche. Ce n'est pas très clean mais si je planque tout dans un coffre ce n'est pas grave et l'essentiel est que ça fonctionne.

oui je comprend bien, mais quelquefois il faut aller au plus simple, sans chercher l'exploit intellectuel  :smiley-mr-green:
sinon tu a la solution :
arduino+servo qui appuie sur la touche enter d'un clavier apres appui sur un bouton
(qui c'est qui a dit au fond de la salle "usine à gaz" ?   :smiley-mr-green: )
avantage pas de modif , ni d'intervention sur l'electronique/mecanique du clavier
tu peux meme utiliser un clavier sans fil  :smiley-mr-green:

skywodd


arduino+servo qui appuie sur la touche enter d'un clavier apres appui sur un bouton
(qui c'est qui a dit au fond de la salle "usine à gaz" ?   :smiley-mr-green: )
avantage pas de modif , ni d'intervention sur l'electronique/mecanique du clavier
tu peux meme utiliser un clavier sans fil  :smiley-mr-green:

Heu, une carte leonardo ce serait quand même plus simple :smiley-sweat:
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Go Up