Détecteur de Boss

Nous avons tous fait cette expérience un peu gênante : on est au boulot en train de regarder des photos personnelles et un collègue entre dans le bureau et tombe sur les photos en question. Rien de bien méchant, mais bon..

Une idée amusante m’est venue l’autre jour : si j’arrivais à connecter un détecteur de mouvement à mon PC, je pourrais surfer sans craindre qu’un collègue ne voie mon écran… Le radar permettrait de détecter l’arrivée du collègue et se chargerait de passer sur un bureau Linux clean 🙂

Première bonne nouvelle : il existe une commande sous Linux, wmctrl, qui permet de gérer plein d’aspects du bureau. Un petit mannous indique:

wmctrl -s <DESK> Switch to the desktop <DESK>

Deuxième bonne nouvelle, j’achète un radar et je sors la carte électronique : la carte est très simple, est alimentée en 4,5V et possède une sortie LED. C’est ce signal qui m’intéresse et que je vais envoyer sur le port parallèle du PC. Les 4.5V, quand à eux, seront générés depuis le 5V USB grâce à un petit LDO.

Voici la carte d’origine, à laquelle on a adjoint une petite extension contenant le LDO (LM1117 datasheet).

 

 

 

 

 

 

 

Voilà enfin, le produit terminé :

 

 

 

 

 

 

 

 

Voici le programme python. Il utilise principalement la bibliothèque pyparallel pour détecter le signal de LED et la présence de l’alimentation, et la bibliothèque système pour lancer la commande wmctrl.

Attention à bien placer les permissions sur le port parallele, comme expliqué sur la doc de pyparallel. J’utilise personnellement : sudo rmmod lp; sudo modprobe ppdev; sudo chown user:user /dev/parport0

Quelques mots concernant le schéma :

– Voir le pinout du connecteur parallèle. J’ai utilisé les pins 12 (pour le signal LED) et 13 (test de présence de l’alimentation).

– Voilà le pinout du connecteur USB femelle. Pour récupérer une alimentation 5V.

– Le régulateur est donné pour un dropout de 1V. Je l’ai réglé pour générer 4V (au lieu de 4,5V), ce qui convient à la carte.

– Remarque : le module USB <-> RS232 MM232R (FTDI) est supposé pouvoir fournir 4 GPIO. Cette solution tout-USB aurait été beaucoup plus élégante, mais aucune bibliothèque python (pyusb, py-ftdi, d2xx) n’a fonctionné pour moi.

Vous aimerez aussi...