Modifications

Sauter à la navigation Sauter à la recherche
1 807 octets ajoutés ,  20 octobre 2015 à 19:15
aucun résumé de modification
Ligne 1 : Ligne 1 :  
{{RASP-SENSE-HAT-ASTRO-PI-NAV}}
 
{{RASP-SENSE-HAT-ASTRO-PI-NAV}}
  −
{{traduction}}
      
== Le joystick ==
 
== Le joystick ==
{{bloc-etroit|text=The Sense HAT joystick is mapped to the four keyboard cursor keys, with the joystick middle-click being mapped to the Return key. This means that moving the joystick has exactly the same effect as pressing those keys on the keyboard. Remember that the down direction is with the HDMI port facing downwards.}}
+
{{bloc-etroit|text=Le joystick du Sense Hat est mis en correspondance (ont dit "''map''" en anglais) avec les 4 touches de déplacement du curseur, le click du joystick presse la touche "retour clavier" (dite "''Return''" ou "''Enter''" en anglais). Le joystick du Hat Sense se ''comporte'' donc comme ''un clavier''. Rappelez vous que la direction 'vers le bas' se trouve face au port HDMI.}}
    
[[fichier:RASP-SENSE-HAT-ASTRO-PI-Joystick-01.jpg]]
 
[[fichier:RASP-SENSE-HAT-ASTRO-PI-Joystick-01.jpg]]
Ligne 10 : Ligne 8 :  
== Keyboard Mapping ==
 
== Keyboard Mapping ==
 
{{bloc-etroit|text=
 
{{bloc-etroit|text=
"Keyboard Mapping" que nous traduirons par "mappage clavier" qui est pris en charge par un pilote et transforme l'utilisation du joystick en simulation d'activation sur le clavier du PC.
+
"Keyboard Mapping" que nous traduirons par "mappage clavier" (''correspondance clavier'') est pris en charge par un pilote et transforme l'utilisation du joystick en simulation d'activation sur le clavier du PC.
    
L'utilisation d'un pilote et du "Keyboard Mapping" est plus que pratique, votre programme n'a pas besoin de savoir comment lire l'état du joystick... il a juste besoin de détecter les touches pressées sur le clavier (et cela, tous les programmes savent le faire).   
 
L'utilisation d'un pilote et du "Keyboard Mapping" est plus que pratique, votre programme n'a pas besoin de savoir comment lire l'état du joystick... il a juste besoin de détecter les touches pressées sur le clavier (et cela, tous les programmes savent le faire).   
 
}}
 
}}
   −
'''1.''' Open '''Python 3''' from a terminal window as {{fname|sudo}} by typing:
+
'''1.''' Ouvrez '''Python 3''' depuis une fenêtre terminal et utilisez la commande suivante avec {{fname|sudo}}:
    
  <nowiki>sudo idle3 &</nowiki>
 
  <nowiki>sudo idle3 &</nowiki>
   −
'''2.''' A Python Shell window will now appear.
+
'''2.''' Une fenêtre de commande Python va apparaître.
   −
'''3.''' Select {{fname|File > New Window}}.
+
'''3.''' Sélectionnez l'option {{fname|File > New Window}} (Fichier > Nouvelle fenêtre).
    
'''4.''' Et tapez le code suivant:
 
'''4.''' Et tapez le code suivant:
Ligne 44 : Ligne 42 :  
             print("AU REVOIR")</nowiki>
 
             print("AU REVOIR")</nowiki>
   −
'''5.''' Select {{fname|File > Save}} and choose a file name for your program.
+
'''5.''' Sélectionnez {{fname|File > Save}} (pour "Fichier > Sauver") et choissisez un nom pour votre programme.
   −
'''6.''' Then select {{fname|Run > Run module}}.<br /><br />Note that we are using the {{underline|pygame}} Python module to detect the key presses.
+
'''6.''' Sélectionnez ensuite {{fname|Run > Run module}} (pour "Executer > Exécutez module").<br /><br />Notez que nous utilisons le module Python {{underline|pygame}} pour détecter les touches pressées.
   −
'''7.''' A blank window will appear. Use the mouse to move it to one side of your screen so that the Python Shell window is also visible.
+
'''7.''' Une fenêtre va apparaître. Utilisez la souris pour bouger cette fenêtre sur le côté de votre bureau de façon à pouvoir voir la fenêtre du Shell Python.
   −
'''8.''' Keep the blank window selected but move the mouse over it, press and release some keys on the keyboard and waggle the Sense HAT joystick. Try pressing and holding a key for a moment and then releasing it a few seconds later. You should notice that two events occur when you do this: one for the key going down, and another for the key being released. For this program you will only use the '''KEY DOWN''' event.<small><br />KEY DOWN signifie FLECHE BAS</small>
+
'''8.''' Gardez le nouvelle fenêtre sélectionnée et bougez la souris au dessus de celle-ci, pressez et relachez des touches sur le clavier et jouez avec le joystick du Sense Hat. Essayez de presser et maintenir une touche enfoncé pendant un moment puis la relâcher quelques secondes. Vous pouvez noter que deux événements ("''EVENT'' en anglais) se passent durant ce temps: un événement lorsque la touche est enfoncée, et un autre événement lorsque la touche est relâchée. Dans ce programme vous allez uniquement utiliser l'événement '''KEY DOWN'''.<small><br />KEY DOWN signifie FLECHE BAS</small>
   −
'''9.''' Click the {{fname|x}} in the corner of the blank pygame window. You should see the {{fname|AU REVOIR}} message appear in the Python Shell window but the blank window does not close.
+
'''9.''' Cliquez sur le {{fname|x}} dans coin supérieur droit de la fenêtre Pygame (dans laquelle nous n'affichons rien). Vous devriez voir le message {{fname|AU REVOIR}} apparâitre dans la fenêtre Shell Python Shell (mais la fenêtre vide ne se ferme pas).
   −
We're consuming the pygame event queue using the {{fname|for event in pygame.event.get():}} syntax. This will loop through all keyboard and mouse events that occur. Inside the loop, we display what the event was by using {{fname|print(event)}} and then test to see if the event type is {{fname|QUIT}}. If it is, we set {{fname|running}} to {{fname|False}} which causes the {{fname|while}} loop to end and the program to finish. The program should print a line of text in the Python Shell window whenever we move the mouse, click the mouse, and press or release a keyboard key.
+
Nous utilisons le fil d'événements de PyGame avec la syntaxe {{fname|for event in pygame.event.get():}}. Les termes anglais d'application sont "Event Queue" (queue d'événement) et pour être précis, nous "consommons" (''Consume'' en anglais) ces événements.<br />Cela boucle au travers de tous les événements provenant du clavier et de la souris.<br />Les événements sont affichés à l'aide de l'instruction {{fname|print(event)}}. Après l'affichage, nous faisons un test pour détecter l'événement {{fname|QUIT}}. Si c'est le cas, nous modifions la valeur de la variable {{fname|running}} à {{fname|False}}. Une fois la variable  {{fname|running}} à False, la boucle {{fname|while}} termine sont exécution et le programme se termine.<br />Le programme devrait afficher une ligne de texte dans le Shell Python lorsque nous déplaçons la souris, et pressez ou/ou relâcher une touche au clavier.
    
== Détecter les mouvements du joystick ==
 
== Détecter les mouvements du joystick ==
 +
Voyons comment un joystick fonctionne, nous pouvons utiliser la matrice LED pour nous aider à le comprendre.
   −
Consider how a joystick might work. You can use the LED matrix to help you think about it. Let's make a pixel white and use the joystick to move the pixel around the 8x8 matrix. To do this you can use an event to detect a key press. For example, if a key is pressed DOWN what steps need to happen to move the pixel?
+
Nous allons utiliser un point blanc (un pixel) et utiliser le joystick pour le déplacer sur la matrice 8x8. Pour réaliser ce tâche, nous pouvons utiliser un événement qui détecte la pression d'une touche. Par exemple, si la touche BAS (''DOWN'' en anglais) est pressée, nous allons déplacer le point allumé vers le bas.<br />A votre avis, comment allons nous gérer cela?  
   −
<nowiki>- Turn OFF the LED using current `x` and `y`
+
Lorsqu'un événement touche enfoncée est détecté?
- If DOWN then add 1 to `y`
+
* Eteindre la LED située à la position 'x' et 'y' actuelle
- If UP then subtract 1 from `y`
+
* Si '''DOWN''' (''bas'') est détecté alors ajouter 1 à 'y'
- If RIGHT then add 1 to `x`
+
* Si '''UP''' (''haut'') est détecté alors soustraire 1 à 'y'
- If LEFT then subtract 1 from `x`
+
* Si '''RIGHT''' (''droite'') est détecté alors ajouter 1 à 'x'
- Turn ON the LED using updated `x` and `y`</nowiki>
+
* Si '''LEFT''' (''gauche'') est détecté alors soustraire 1 à 'x'
 +
* Allumer la LED sur la nouvelle coordonnée 'x' et 'y' que nous venons de calculer
   −
 
+
'''1.''' Commençons par ajouter le code prennant en charge la touche vers le bas ('''DOWN'''). Effacez la ligne {{fname|print(event)}} que nous avons utilisé dans la section précédente et insérez le code ci-dessous au même niveau d'indentation:
'''1.''' Start by just adding the code for the DOWN key. Delete the {{fname|print(event)}} command that you used in the previous section and insert the code below at the same indentation level:
      
  <nowiki>if event.type == KEYDOWN:
 
  <nowiki>if event.type == KEYDOWN:
     sense.set_pixel(x, y, 0, 0, 0)  # Black 0,0,0 means OFF
+
     sense.set_pixel(x, y, 0, 0, 0)  # Noir = 0,0,0 - ce qui éteind la LED
    
     if event.key == K_DOWN:
 
     if event.key == K_DOWN:
Ligne 78 : Ligne 77 :  
         sense.set_pixel(x, y, 255, 255, 255)</nowiki>
 
         sense.set_pixel(x, y, 255, 255, 255)</nowiki>
   −
'''2.''' Save and run the code. You should be able to move the pixel point down using the {{fname|DOWN}} key or the joystick. If you keep going, you'll eventually see this error:
+
'''2.''' Sauvez et exécutez le code. Vous devriez être capable de déplacer un pixel vers le bas en utilisant la touche {{fname|DOWN}} (''flèche vers le bas'') ou le joystick. Si vous continuez, vous rencontrez éventuellement cette erreur:
    
  <nowiki>ValueError: Y position must be between 0 and 7</nowiki>
 
  <nowiki>ValueError: Y position must be between 0 and 7</nowiki>
   −
'''3.''' Our {{fname|y}} value can only be between 0-7, otherwise it's off the edge of the matrix and into empty space! So that's why the error happens; the Sense HAT doesn't understand values outside this range. Our code just keeps adding 1 to {{fname|y}} every time the DOWN key is pressed, so we need to stop {{fname|y}} going above 7.
+
Signifiant que la valeur pour la position Y doit être comprise entre 0 et 7.
 +
 
 +
'''3.''' Notre valeur {{fname|y}} peut uniquement avoir une valeur entre 0 et 7, sinon nous dépassons les limites de la matrice (hors de l'espace d'affichage)! C'est pour cette raison que l'erreur survient; La HAT Sense ne ''comprend'' pas ces valeurs hors de cette gamme. Notre code se contente d'ajouter la valeur 1 à {{fname|y}} chaque fois que la touche vers le bas (''DOWN'') est pressée, nous devons donc empêcher la valeur de {{fname|y}} d'aller au-delà de 7.
   −
We can achieve this by adding the syntax {{fname|and y < 7}} (and {{fname|y}} is less than 7) to the key direction test:
+
Nous pouvons facilement atteindre ce but en modifiant la syntaxe {{fname|and y < 7}} (signifiant ''et {{fname|y}} plus petit que 7'') dans le test des touches de direction:
    
  <nowiki>if event.key == K_DOWN and y < 7:
 
  <nowiki>if event.key == K_DOWN and y < 7:
 
     y = y + 1</nowiki>
 
     y = y + 1</nowiki>
   −
'''4.''' Save and run the code again; this time, the code should not allow the point to go beyond the edge of the screen.
+
'''4.''' Sauvez et exécutez votre programme une nouvelle fois; Cette fois, le code ne ne devrait pas laisser le point sortie de l'écran.
   −
'''5.''' Now that this works, you will need to add the other directions for the joystick. Where you have {{fname|1=if event.key == K_DOWN:}} in your code, you can also use:
+
'''5.''' Maintenant que cela fonctionne pour pour une direction du joystick, nous allons faire de même avec les autres directions. A l'endroit où nous avons le code {{fname|1=if event.key == K_DOWN:}}, nous pouvons également utiliser:
 
* {{fname|K_UP}} - Touche vers le haut
 
* {{fname|K_UP}} - Touche vers le haut
 
* {{fname|K_DOWN}} - Touche vers le bas
 
* {{fname|K_DOWN}} - Touche vers le bas
Ligne 98 : Ligne 99 :  
* {{fname|K_RETURN}} - Touche "''retour clavier''" ou "''entrée''".
 
* {{fname|K_RETURN}} - Touche "''retour clavier''" ou "''entrée''".
   −
'''6.''' We can add a section for each direction to complete your code:
+
'''6.''' Nous pouvons ajouter une section pour chaque direction à tester... et compléter notre code:
    
  <nowiki>import pygame
 
  <nowiki>import pygame
Ligne 120 : Ligne 121 :  
     for event in pygame.event.get():
 
     for event in pygame.event.get():
 
         if event.type == KEYDOWN:
 
         if event.type == KEYDOWN:
             sense.set_pixel(x, y, 0, 0, 0)  # Black 0,0,0 means OFF
+
             sense.set_pixel(x, y, 0, 0, 0)  # Noir 0,0,0 - signifiant éteint
    
             if event.key == K_DOWN and y < 7:
 
             if event.key == K_DOWN and y < 7:
Ligne 136 : Ligne 137 :  
             print("BYE")</nowiki>
 
             print("BYE")</nowiki>
   −
'''7.''' When you run your code, you should now be able to move the pixel point anywhere on the matrix.
+
'''7.''' Lorsque vous exécutez votre code, vous devriez être capable de déplacer le pixel partout sur la matrice sans jamais en sortir.
    
{{RASP-SENSE-HAT-ASTRO-PI-TRAILER}}
 
{{RASP-SENSE-HAT-ASTRO-PI-TRAILER}}
29 918

modifications

Menu de navigation