Modifications

Sauter à la navigation Sauter à la recherche
6 875 octets ajoutés ,  13 avril 2015 à 20:29
aucun résumé de modification
Ligne 1 : Ligne 1 :  
{{MicroPython-Hack-Prepare-NAV}}
 
{{MicroPython-Hack-Prepare-NAV}}
   −
{{Traduction}}
+
== Transformer votre PyBoard en souris ==
 +
{{bloc-etroit|text=La carte pyboard est un périphérique USB et peut être configurée pour agir comme une souris à la place du lecteur Flash USB que vous connaissez déjà.
    +
Pour transformer votre PyBoard en périphérique souris, vous devez d'abord editer le fichier {{fname|boot.py}} et y changer la configuration USB. Si vous n'avez pas encore modifié votre fichier {{fname|boot.py}} il devrait ressembler à quelque-chose comme ceci:}}
 +
 +
<nowiki># boot.py -- run on boot-up
 +
# can run arbitrary Python, but best to keep it minimal
 +
 +
import pyb
 +
#pyb.main('main.py') # main script to run after this one
 +
#pyb.usb_mode('CDC+MSC') # act as a serial and a storage device
 +
#pyb.usb_mode('CDC+HID') # act as a serial device and a mouse</nowiki>
 +
 +
{{bloc-etroit|text=Vous trouverez ci-dessous une version du même fichier avec une traduction des commentaire pour vous aider à en comprendre le contenu.}}
 +
 +
<nowiki># boot.py -- executé au démarrage
 +
# Peut exécuter un script Python arbitraire, mais le mieux est de le garder aussi minimaliste que possible
 +
 +
import pyb
 +
#pyb.main('main.py') # Le script principal à exécuter après celui-ci.
 +
#pyb.usb_mode('CDC+MSC') # agit comme périphérique série et de stockage
 +
#pyb.usb_mode('CDC+HID') # agit comme périphérique série et souris</nowiki>
 +
 +
{{bloc-etroit|text=Pour activer le mode souris, il faut décommenter la dernière ligne du fichier.
 +
 +
Cette ligne du fichier doit alors ressembler à ceci:}}
 +
 +
<nowiki>pyb.usb_mode('CDC+HID') # act as a serial device and a mouse</nowiki>
 +
 +
{{bloc-etroit|text=Si vous avez déjà modifié votre fichier {{fname|boot.py}} alors le code minimum pour fonctionner est celui-ci:}}
 +
 +
<nowiki>import pyb
 +
pyb.usb_mode('CDC+HID')</nowiki>
 +
 +
Cela informe le pyboard de se configurer son USB comme un CDC (port série) et HID (interface Homme-Machine dite "''human interface device''", dans notre cas, c'est une souris) au moment du boot.
 +
 +
Ejectez/démonter le lecteur USB/Flash de votre carte Pyboard et réinitialisez votre carte en pressant le bouton RST. Votre PC détectera maintenant puboard comme une souris!
 +
 +
== Envoyer des événements souris ==
 +
Pour que notre souris-python fasse des choses, il faut que le programme envoie des événements souris à notre PC. Pour commencer, nous allons faire cela manuellement avec une invite de commande REPL (''voyez les précédents tutoriels''). Connectez-vous sur votre PyBoard à l'aide de votre logiciel terminal favoris et tapez la commande suivante:
 +
 +
<nowiki>>>> pyb.hid((0, 10, 0, 0))</nowiki>
 +
 +
Votre souris devrait se déplacer de 10 pixels sur la droite!
 +
 +
La commande ci-dessus envoi 4 informations: l'état du bouton, x, y et défilement (''scroll'' en anglais). Le numéro 10 indique à notre ordinateur qu'il y a un déplacement de 10 pixels (10 points) dans la direction x.
 +
 +
Faisons osciller notre souris de gauche à droit:
 +
 +
<nowiki>>>> import math
 +
>>> def osc(n, d):
 +
...  for i in range(n):
 +
...    pyb.hid((0, int(20 * math.sin(i / 10)), 0, 0))
 +
...    pyb.delay(d)
 +
...
 +
>>> osc(100, 50)</nowiki>
 +
 +
Le premier argument de la fonction {{fname|osc}} est le nombre d'événement souris à envoyer. Le second argument est le délais (en millisecondse) entre les événements. Testez la fonction avec différentes valeurs numériques.
 +
 +
=== Exercice ===
 +
Une petit exercice amusant est de faire dessiner un cercle à la souris.
 +
 +
== Transformer l'accéléromètre en souris ==
 +
Maintenant, faisons bouger la souris en fonction de l'angle de la carte PyBoard, ceci est rendu possible grâce à l'accéléromètre. Le code suivant peut être tapé directement sur sur l'invite de commande REPL ou placé dans le fichier {{fname|main.py}}. Ici, nous le plaçons dans {{fname|main.py}} parce que nous allons également apprendre comment passer en "Safe Mode".
 +
 +
Pour le moment, la carte PyBoard agit comme un périphérique USB série et un périphérique HID (une souris). Par conséquent, cela empêche d'accéder au système de fichier pour éditer le fichier {{fname|main.py}}.
 +
 +
De même vous ne pouvez pas modifier votre fichier {{fname|boot.py}} pour sortir du mode HID et revenir au mode normal (lecteur USB)...
 +
 +
Pour y arriver, vous avez besoin de passer en "Safe Mode". Cela est décrit en détail dans le [[MicroPython-Hack-safemode|tutoriel sur le Safe-Mode]] mais vous pouvez répéter les opérations ci-dessous:
 +
 +
# Maintenez le bouton USR enfoncé.
 +
# Pendant que vous maintenez le bouton USR enfoncé: pressez et relachez le bouton RST (''Reset'') pour réinitialiser le votre carte PyBoard.
 +
# Les LEDs vont alors cycler de Vert à orange à vert+orange (et inversement).
 +
# Maintenez le bouton USR enfoncé jusqu'à ce que le LED orange soit allumée, et relachez alors le bouton USR.
 +
# La LED orange va clignoter 4 fois rapidement PUIS s'éteindre.
 +
# Vous êtes en Safe Mode.
 +
 +
En "Safe Mode", les fichiers {{fname|boot.py}} et {{fname|main.py}} ne sont pas exécutés et la carte PyBoard démarre avec ses paramètres par défaut. Cela signifie que, maintenant, vous pouvez accéder au système de fichier (le lecteur USB devrait apparaître).
 +
Il est alors possible d'éditer {{fname|main.py}}. (Laissez le fichier {{fname|boot.py}} tel-quel parce nous voulons toujours revenir dans le mode HID après avoir terminé les modifications dans le fichier {{fname|main.py}}.)
 +
 +
Placez le code suivant dans le fichier {{fname|main.py}}:
 +
 +
<nowiki>import pyb
 +
 +
switch = pyb.Switch()
 +
accel = pyb.Accel()
 +
 +
while not switch():
 +
    pyb.hid((0, accel.x(), accel.y(), 0))
 +
    pyb.delay(20)</nowiki>
 +
 +
Sauvez votre fichier, éjectez/démontez le lecteur de la carte PyBoard puis réinitialisez votre carte avec le bouton RST. La carte devrait maintenant agir comme une souris et l'angle de la carte bougera la souris. Essayez ce programme et voyez comment vous pouvez immobiliser la souris!
 +
 +
Pressez le bouton '''USR''' pour arrêter les déplacements de la souris.
 +
 +
Vous remarquerez que l'axe-Y est inversé. C'est vraiment facile à corrigé: placez juste un signe moins devant la coordonnée-y de la ligne {{fname|pyb.hid()}} (ci dessus).
 +
 +
== Restaurer l'état normal de la PyBoard ==
 +
Si vous laissez la carte PyBoard tel quelle, elle agira comme une souris à chaque fois que vous la brancherez.
 +
 +
Vous voudrez certainement revenir au fonctionnement normale. Pour y arriver, vous aurez d'abord besoin d'entrer en "Safe Mode" (vois ci-dessus) pour pouvoir éditer le fichier boot.py. Dans le fichier {{fname|boot.py}}, commentez la ligne (en plaçant un # en début de ligne) qui contient la configuration {{fname|CDC+HID}}. De sorte, la ligne doit ressembler à ceci:
 +
 +
<nowiki>#pyb.usb_mode('CDC+HID') # act as a serial device and a mouse</nowiki>
 +
 +
Savez votre fichier, éjectez/démontez le lecteur et réinitialisez votre carte PyBoard (en pressant le bouton reset). Elle fonctionnera maintenant en mode normal.
    
{{MicroPython-Hack-Souris-TRAILER}}
 
{{MicroPython-Hack-Souris-TRAILER}}
29 879

modifications

Menu de navigation