Go Down

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

fred60

Dans l'ordre je vais voir pour :

Trouver les composants pour pas cher,

Sinon j'achèterai une Leonardo (j'ai pas mal de projets en tête donc ne sera pas perdue pour plus tard)

Et si je lutte trop avec la programmation et/ou pris par le temps je bidouillerai un clavier.

Merci !

Artouste



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:

oui je sais bien  :smiley-mr-green:
mais si c'est juste pour recuperer l'appui simulé de la touche enter, perso je n'hesiterais pas
a "decapsuler" un clavier usb (je dois même déjà avoir fait ça , juste pour "jouer", je regarderais ce soir "à la cave"  8) )
en recup , ça ne coute rien et en neuf à moins de 10€ il y a du choix

Geeker

J'ai moi même essayé de faire un truc comme ça (pour jouer à des jeux coder avec mon arduino et sans clavier :smiley-zipper:) mais j'ai vite butté: c'est pas possible avec une UNO . J'ai donc essayé LUFA, et j'ai même pas compris les tutos en FR ...
Après le problème avec Vusb, c'est qu'il y a une partie hardware, et que mes pins sont presque tous pris ... Et surtout, j'ai pas de prise USB en stock ... J'irai voir dans celui de mon grand-père (je suis sur de trouver ... avec 3 ordis démontés !), et j'en profiterai pour prendre des résistances . (y'en a plein ... On va pas pleurer pour 4 résistances !)

PS: pour ceux veulent, j'utilise pour l'instant un programme en Lua qui reçois les ordres via le port série, mais qui n'émule pas (encore) le clavier. Le voici:
Code: [Select]

print(" ~ Arduino Lua listen ~ ")
print("     Built for COM3      \n")

arduino = io.open("COM3", "w+b")

print("Create derivation?")
if io.read() == "yes" then
local socket = require("socket")
tcp = socket.tcp(25565)
tcp:bind('*', 25565)
tcp:listen()
client = tcp:accept()
end

if not arduino then
print("No arduino on 'COM3'.")
os.execute("sleep 5")
os.exit(-1)
end

less = true --set to true for infinite message
baud = 9600 --set the bauds number

ordre = ""
i = 0
while true do
if 1/baud > 0 then
  os.execute("sleep "..tostring(1/baud))
end
receive = arduino:read()
if receive then
   print(tostring(receive))
   if string.find(receive, "wait") then
    os.execute("sleep "..tostring(1/baud))
    arduino:write("go")
   end
   if client then
    client:send(receive)
   end
end
end

arduino:close()
arduino = nil
ordre = nil
receive = nil
i = nil
less = nil
pas = nil


Merci d vos commentaires ;)

Artouste

bonsoir
pour exemple
"decapsuler" un clavier usb , reperer le X/Y de la touche enter et cabler un contact "en bidouille"
30 minutes avec les coups de fils  :smiley-mr-green:
http://cjoint.com/13av/CDpqCbxrpZB_push.jpg
http://cjoint.com/13av/CDpqCXrWUw7.htm

skywodd


J'ai moi même essayé de faire un truc comme ça mais j'ai vite butté: c'est pas possible avec une UNO .

Avant d'affirmer des choses comme ça il est bon de citer ses sources et de donner toutes ses informations ;)

Qu'est ce qui est impossible ?
-> Émuler un périphérique USB device avec une carte arduino UNO ?
-> Créer un contrôleur usb host avec l'arduino UNO ?

Émuler un périphérique USB device avec une UNO est possible de deux facon :
- avec v-usb
- avec l'ATmega16u2 qui gère le port série et la libraire LUFA (ou carrément en code bas niveau)

Créer un port usb host : ça c'est pas possible, il faut un contrôleur usb dédié.


J'ai donc essayé LUFA, et j'ai même pas compris les tutos en FR ...

LUFA est un le plus gros projet de driver USB embarqué que tu puisses trouver ...
Déjà que les documentations en anglais font plusieurs centaines de pages faut pas rêver pour avoir une version FR en format tutoriel ;)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Geeker

Bon ben je vais essayer la première option: Vusb ! Mais bon, avant que j'ai les composant ...
Sinon, je trouve une lib Lua qui fait le boulot et c'est bon ! Plus qu'a adapter mon code, je pourrais même l'utiliser avec un émulateur NES/GB (8 bouttons, c'est pas mal !) . En gros, c'est le PC qui fait le boulot, pas la carte . (et c'est beaucoup plus lite ...)

Bubblegom

J'ai regardé tout les liens qui ont été donné.

En gros, pour faire ma manette, je peut utiliser une arduino leonardo avec la Keyboard Serial :  http://arduino.cc/en/Tutorial/KeyboardSerial

Si j'ai bien compris, cela est également possible avec une arduino uno + vusb. Mais je n'ai aucune idée de ce que'est vusb. J'ai essayer de chercher sur internet et ce mot revient souvent : "Firmeware". Mais c'est quoi au juste ?

fred60

Hello,

Je vais tester Vusb sous peu avec une Uno. Je dois recevoir les composants d'ici ce we je pense et j'ai compilé mon petit code avec la librairie  Vsub (en espérant avoir la bonne version) sans erreurs donc je croise les doigts pour que ça fonctionne.

Si ça marche bien je vous tiens au courant et vous mettrai tout en ligne.

alessiocavalieri

Si vous voulez prendre comme exemple mon projet USBDiggerJoystick:

http://opentech.altervista.org/dokuwiki/doku.php?id=start:hardware:usbdiggerjoystick

émule un clavier USB via un ATmega328, le programme a été écrit et compilé en utilisant Arduino, puis j'ai fait une carte autonome.

Le téléchargement inclut le sketch pour Arduino, mais aussi le bibliothèques V-USB. Il ne fonctionne que sur Arduino Uno / Duemilanove avec Atmega328 à une limitation des bibliothèques incluses avec mon projet v-usb.

Pardonnez mon français, ne pas écrire pendant de nombreuses années :)

skywodd


Si j'ai bien compris, cela est également possible avec une arduino uno + vusb. Mais je n'ai aucune idée de ce que'est vusb. J'ai essayer de chercher sur internet et ce mot revient souvent : "Firmeware". Mais c'est quoi au juste ?

"Firmware" (pas de e) c'est le logiciel que tu met dans le microcontrôleur ;)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Geeker

Sinon, tu fais un programme sur cette base: http://www.xtreamlua.com/forums/viewtopic.php?f=70&t=7033 et tu fait en sorte qu'il communique avec ton Arduino ;) . J'ai pas encore testé, parce que j'ai pas de compilateur C, mais ça devrai marcher . Bonne adaptation !

Go Up