Simulation de touche de clavier avec le Raspsberry Pico

Objectif :
Au moment du branchement du Raspberry Pico à l’ordinateur, le Raspberry Pico simule des appuis de touches de clavier et/ou des mouvements de souris permettant ainsi d’interagir avec le bureau et/ou des applications.

Il faut utiliser le firmware Circuit Python est basé sur Micro-Python et développé par Adafruit Industries.
Ce micro-logiciel intègre plusieurs librairies dont la librairie HID (USB Human Interface Device) qui permet donc de simuler le clavier et la souris.

Distribution de travail : Lubuntu 22.04

Pour en savoir plus :
https://circuitpython.org/
https://github.com/adafruit/Adafruit_CircuitPython_HID

1/ Télécharger la dernière version du micro-logiciel Circuit-Python pour Raspberry Pico, soit :
https://downloads.circuitpython.org/bin/raspberry_pi_pico/fr/adafruit-circuitpython-raspberry_pi_pico-fr-7.3.3.uf2

2/ Transférer le fichier ‘adafruit-circuitpython-raspberry_pi_pico-fr-7.3.3.uf2‘ dans la mémoire du Raspberry Pico en suivant le didacticiel ‘Introduction au Raspberry Pico‘ :
https://www.hacklab.fr/?p=1352

3/ Installer la librairie ‘CircuitPython_HID_Keyboard‘ :

– Créer le répertoire de travail :

util01@station40:~$ mkdir -p RASPICO/CircuitPython/hid
util01@station40:~$ cd RASPICO/CircuitPython/hid/
util01@station40:~/RASPICO/CircuitPython/hid$

– Télécharger la librairie :

util01@station40:~/RASPICO/CircuitPython/hid$ links https://learn.adafruit.com/pages/11907/elements/2985262/download?type=zip

– Décompresser l’archive :

util01@station40:~/RASPICO/CircuitPython/hid$ unzip CircuitPython_HID_Keyboard.zip

– Copier le librairie spécifique à la version de Circuit Python, ici ‘7.3.3’, soit ‘7.x’ :

util01@station40:~/RASPICO/CircuitPython/hid$ cp -r CircuitPython_Essentials/CircuitPython_HID_Keyboard/CircuitPython\ 7.x/* .

4/ Création d’un exemple Python pour écrire au clavier : clavier.py

Par défaut, la librairie est configuré avec une disposition de touche en ‘QWERTY’, soit anglaise.

Ainsi, ayant un clavier en ‘AZERTY‘ (clavier français), pour afficher la lettre ‘a‘ en minuscule, on simule les actions suivantes :
Taper sur la touche ‘Q‘ du clavier et relâcher la touche ‘Q‘ :

kbd.send(Keycode.Q)

Pour afficher la lettre ‘A’ en majuscule, soit : A
On simule l’appuie de la touche ‘Shift‘ et en même temps de la touche ‘Q‘ et on relâche tout :

kbd.send(Keycode.SHIFT, Keycode.Q)

Pour taper le mot : hacklab

layout.write('Hqcklqb\n')

5/ Soit l’exemple de code Python suivant :

import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
import time

# Attendre 10 secondes avant de poursuivre le programme
time.sleep(10)

# Configuration du clavier
kbd = Keyboard(usb_hid.devices)
layout = KeyboardLayoutUS(kbd)


kbd.send(Keycode.Q)
kbd.send(Keycode.SHIFT, Keycode.Q)
layout.write('Hqcklqb\n')


# Release all keys.
kbd.release_all()

6/ Sauvegarder le ficher dans le répertoire : /RASPICO/CircuitPython/hid/
Soit au même niveau que le répertoire de la librairie ‘HID Keyboard‘ : lib/

7/ Via l’éditeur Thonny, copier le fichier ‘clavier.py‘ et le répertoire ‘lib‘ dans le Raspberry Pico.

8/ Pour tester le code, lancer tout d’abord un éditeur de texte, par exemple ‘gedit‘, puis exécuter le code Python sous Thonny, sélectionner la fenêtre ‘gedit‘ (Vous avez une 10aine de seconde pour effectuer cette action).

Au bout des 10 secondes, Raspberry Pico écriera :

aQHqcklqb

Les commentaires sont fermés