Contrôle des LEDs d'un clavier
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Contrôle des LEDs d'un clavier



  1. #1
    nonef12

    Contrôle des LEDs d'un clavier


    ------

    Bonjour,

    J'aimerais savoir si il existait un moyen de contrôler les LEDS du clavier dans le contexte suivant :
    - PC sous Linux, sans écran.

    Je suis capable de le faire quand le clavier est relié à un display via la librairie Xlib, mais je ne sais pas trop comment généraliser à un clavier non rélié à un display.
    Si, au passage, certains avaient un bon tuto comment gérer des communications USB en C / C++ / Java, je suis preneur

    Pour ceux qui se demandent pourquoi :
    J'ai un chauffage d'appoint que je souhaite pouvoir contrôler avec mon téléphone, mon PC, etc... Je pourrais utiliser une carte arduino, mais ça revient à chasser des mouches avec une carabine
    Donc je me suis dit que je pouvais faire ça avec un vieux clavier, en utilisant ses LEDs...

    Merci de votre aide !

    -----

  2. #2
    Jack
    Modérateur

    Re : Contrôle des LEDs d'un clavier

    un clavier, c'est gros pour juste utiliser une ou 2 E/S. Tu n'a pas dis de quel type de PC il s'agissait. Si c'est une tour, tu peux gérer simplement son port parallèle ou son port série. Les exemples sont nombreux.

    Sur le fond, commander un chauffage d'appoint à distance implique que le PC soit toujours allumé => consommation d'énergie non négligeable et non fonctionnement en cas de coupure d'électricité car le PC ne redémarrera pas tout seul. Puisque tu veux programmer sous linux en console, pourquoi ne pas utiliser une raspberry pi? Le prix est plus qu'abordable et tu disposes d'un connecteur d'extension qui ne demande qu'à commander ton radiateur.

    A+

  3. #3
    invite0f0afca1

    Re : Contrôle des LEDs d'un clavier

    Salut,

    S'il s'agit d'activer ou de désactiver MAJ/NUM, etc... Ca peut dépendre du type d'interface (USB, PS2,..). Historiquement, c'était géré directement par le bios (à une adresse mémoire fixe). Je ne sais pas si c'est valable pour des claviers USB, ni si ça a été maintenu depuis l'avènement des nouvelles interfaces /cartes mères. Ceci-dit, il y a forcement un moyen soft de le faire, puisque l'OS en est capable, mais ça ne veut pas dire que celui-ci expose une API. Malheureusement, la documentation sur ce sujet doit être difficile à trouver de nos jours

  4. #4
    invite0f0afca1

    Re : Contrôle des LEDs d'un clavier

    Après recherche, j'ai trouvé ça:

    40:17 byte Keyboard flag byte 0 (see KB FLAGS)

    |7|6|5|4|3|2|1|0| keyboard flag byte 0
    | | | | | | | `--- right shift key depressed
    | | | | | | `---- left shift key depressed
    | | | | | `----- CTRL key depressed
    | | | | `------ ALT key depressed
    | | | `------- scroll-lock is active
    | | `-------- num-lock is active
    | `--------- caps-lock is active
    `---------- insert is active

    http://stanislavs.org/helppc/bios_data_area.html

    (40:17) Je ne sais pas du tout si on peut mapper ça sur une carte mère récente.

  5. A voir en vidéo sur Futura
  6. #5
    invite0f1609d9

    Re : Contrôle des LEDs d'un clavier

    Oui bonjour,
    donc pour ces histoires de Led clavier. Sous Windows, il y a trois solutions: Émuler l'appui sur une touche, comme proposé, passer par une couche "hid" et envoyer les données sur l'usb, ou accéder aux ports de la machine. La troisième à l'avantage de donner un accès total. Le problème est qu'il faut travailler en Ring 0 en gros un driver sous windows --Voir un filter driver pour que le clavier continue d'envoyer les données à l'os-- (sous xp possible, vista 7 et autres sont plus vérouillés) ou un module kernel sous linux. Sous windows, cette technique est souvent assimilée a du root kiting (les anti-virii ont horreur de ça). Il y a des bons exemples de gestion du clavier dans un livre qui s'appelle "rootkits infiltration du noyau windows" aux éditions campus press. Sous Linux, la documentation est disponnible partout, et à partir du moment ou tu as les droits "su" tout est possible, tu peux modifier ton kernel, créer des modules... bref tout. C'est une question de patience et de lecture. Le plus simple c'est l’émulation en ring 3.
    Pour accéder en lecture/écriture aux ports usb, sous linux, je te conseille "libusb", mais pour un clavier je dirais que la lib "hidapi" est plus adaptée (elle encapsule des appels plus complexes à la libusb dans des api de plus haut niveau). Cela te donne accès en ring 3. Attention toutefois, comme tu seras obligé de détacher le clavier du kernel, ce sera à toi de tout gérer. Et puis dés qu'on attaque du matériel directement, le risque de casse n'est pas à exclure (ce qui entre nous fait le peau à un vieux mythe qui dit qu'un programme ne peux pas détruire du matériel... Bien sur que non, cela peut juste le mettre hors d'usage).

    Voilà dans tous les cas linux est ton ami.

    Pour le problème de l'énergie... Je propose le Rasberry Pi. Sur base ARM , sous debian, cette petite merveille est compatible avec les librairies dont je t'ai parlé. C'est d'un encombrement à peine plus important qu'une carte de crédit, et ca consomme vachement moins qu'un gros bousin. la version b à deux ports usb et un ethernet.

    Dans tous les cas je ne vois pas ce que le display vient faire là dedans. J'ai un ordi sous linux qui attaque directement du matos usb (materiel custom made in home) et il n'y a pas d'écran. Un écran n'a jamais été nécessaire sous linux. Au pire tu accèdes depuis une autre machine via ssh.

    Le port // est une bonne idée.

    L'arduino est une meilleure solution... Je ne vois pas en quoi c'est chasser des mouches avec une carabine. Un PC? N'est-ce pas écraser un escragot avec énorme un rouleau compresseur surdimensionné?


    Voilà.
    Bon courrage.
    J'espère que c'est pas trop nul pour mon premier message.

  7. #6
    polo974

    Re : Contrôle des LEDs d'un clavier

    Citation Envoyé par nonef12 Voir le message
    Bonjour,

    J'aimerais savoir si il existait un moyen de contrôler les LEDS du clavier dans le contexte suivant :
    - PC sous Linux, sans écran.
    ...
    Merci de votre aide !
    ton linux a-t-il des vt (1 à 6 en login et 7 en X d'habitude (quand X est là)) ?

    si oui:
    setleds +num </dev/tty0
    #allume le verrouillage num
    setleds -num </dev/tty0
    #éteint le verrouillage num
    #voir la doc:
    man setleds
    # ... setleds [-v] [-L] [-D] [-F] [{+|-}num] [{+|-}caps] [{+|-}scroll]

    sinon, si tu peux positionner pour un vt particulier, même s'il n'est pas actif (le 5 par ex):
    setleds +num </dev/tty5

    tu peux changer le vt actif (le 5 par ex):
    chvt 5

    Attention, si tu changes de vt, tu changes de contexte et donc les leds changent aussi.

    tu peux ouvrir un vt numéro 10 si tu veux:
    openvt 10
    setleds +num </dev/tty10
    setleds +caps </dev/tty10
    chvt 10

    Attention, setleds ne marche pas si un serveur X tourne sur le vt (mais ça ne te concerne pas).

    autres trucs sympas sur les vt:
    cat /dev/vcs
    #affiche le contenu de l'écran actif
    cat /dev/vcs3
    #affiche le contenu de l'écran du vt3

    writevt -t /dev/tty0 -T "blabla"
    # envoie blabla sur le terminal comme s'il avait été tapé au clavier.
    # (il faut envoyer '\r' pour un retour chariot)

    bref, c'est trop cool, et tout peux se faire en shell...

    ensuite, un clavier, c'est peut-être gros, mais le circuit imprimé qui s'y trouve est tout petit...

    ah, au fait, dans les man, il y a (presque) toujours une ligne "see also:" ...
    Jusqu'ici tout va bien...

Discussions similaires

  1. Contrôle clavier - souris 2.4Ghz
    Par batnon dans le forum Électronique
    Réponses: 7
    Dernier message: 20/04/2011, 16h34
  2. contrôle de plusieurs leds rgb avec pic 18f452
    Par mp3dux dans le forum Électronique
    Réponses: 60
    Dernier message: 25/07/2010, 21h29
  3. Contrôle d’un ensemble de LEDs
    Par invite353b7d5e dans le forum Électronique
    Réponses: 4
    Dernier message: 07/09/2009, 17h52
  4. transformer un clavier AZERTY en clavier mathématique besoin d'un lien!
    Par invite47e0ec41 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 24/03/2008, 16h31
  5. clavier...:( + logiciel de controle temp
    Par invite58ab5c05 dans le forum Matériel - Hardware
    Réponses: 7
    Dernier message: 18/11/2004, 22h42