Modifications

Sauter à la navigation Sauter à la recherche
3 633 octets supprimés ,  20 février 2016 à 16:14
Contenu remplacé par « {{MicroPython-Hack-Prepare-NAV}} {{MicroPython-Hack-8LEDS-core}} {{MicroPython-Hack-MCH-TRAILER}} »
Ligne 1 : Ligne 1 :  
{{MicroPython-Hack-Prepare-NAV}}
 
{{MicroPython-Hack-Prepare-NAV}}
   −
{{traduction}}
+
{{MicroPython-Hack-8LEDS-core}}
   −
== Ce que nous faisons ==
+
{{MicroPython-Hack-MCH-TRAILER}}
{{bloc-etroit|text=Jusque là, nous avons fait clignoter une LED, il est maintenant temps d'augmenter les enjeux. Connectons donc huit LEDs. Nous allons aussi avoir l'opportunité de tirer le maximum de notre Pyboard en créant différentes séquences lumineuses.
  −
Ce circuit est aussi un bon point de départ pour commencer à faire vos expériences en écrivant vos propres programmes et pour essayer de comprendre comment fonctionne votre PyBoard.
  −
 
  −
En même temps que contrôler les LEDs, nous allons aussi nous intéresser à quelques méthodes de programmation rudimentaires permettant de garder des programmes petites tailles.
  −
La boucle {{fname|for}} est utilisée lorsque qu'il est nécessaire d'exécuter un morceau de code plusieurs fois.
  −
 
  −
Une liste {{fname|leds}} sera utilisée pour gérer les variables plus facilement (cette liste représentera une liste de variables).
  −
}}
  −
 
  −
== Matériel nécessaire ==
  −
{{bloc-etroit|text=
  −
 
  −
{{ARDX-composant-begin}}
  −
 
  −
{{ARDX-composant
  −
  |label=Fils
  −
  |label2=
  −
  |img=ARDX-fils.png
  −
  |pl=34
  −
}}
  −
 
  −
{{ARDX-composant
  −
  |label=Résistance de 1 KOhms (brun-noir-rouge)
  −
  |label2=x8
  −
  |img=ARDX-R1K.png
  −
  |pl=43
  −
}}
  −
 
  −
{{ARDX-composant
  −
  |label=LEDs (ou DELs)
  −
  |label2=x8
  −
  |img=ARDX-LED-verte.png
  −
  |pl=66
  −
}}
  −
 
  −
{{ARDX-composant-end}}
  −
}}
  −
 
  −
== Schéma ==
  −
 
  −
[[Fichier:Hack-8LEDs-schema.png]]
  −
 
  −
 
  −
== Montage ==
  −
[[Fichier:Hack-8LEDs-montage.jpg]]
  −
 
  −
== Le code ==
  −
Voici le code permettant de tester votre montage
  −
<nowiki># declaration des broches
  −
names = ['X1','X2', 'X3', 'X4', 'X5', 'X6', 'X7', 'X8' ]
  −
 
  −
# créer les objets Pin configuré en sortie (OUT_PP)
  −
pins = []
  −
for name in names:
  −
  pins.append( pyb.Pin( name, pyb.Pin.OUT_PP ) )
  −
 
  −
while True:
  −
  for pin in pins:
  −
    pin.high()
  −
    pyb.delay(100)
  −
    pin.low()
  −
    pyb.delay(100)</nowiki>
  −
 
  −
Nous commençons par créer une liste {{fname|names}} qui contient les noms des broches utilisées sur notre PyBoard.
  −
 
  −
Nous avons scrupuleusement respecté l'ordre des broches dans cette liste.
  −
 
  −
L'instruction {{fname|1=pins = []}} crée une liste vide. Nous la remplirons avec les objets de type {{fname|Pin}} que nous allons créer.
  −
Ces objets {{fname|Pin}} nous permettrons de contrôler directement l'état des broches.
  −
 
  −
Ensuite, nous utilisons une boucle {{fname|for}} pour créer les objets {{fname|Pin}} et les ajouter à la liste {{fname|pins}}.
  −
 
  −
Dans cette première version du programme, nous allons contrôler directement chacune des LEDs.
  −
 
  −
== Faire encore mieux ==
  −
=== Animer avec une boucle FOR ===
  −
Dans cette version du programme, nous allons utiliser deux boucle for:
  −
* Une boucle for pou remplacer le contenu de la boucle {{fname|while True}} pour raccourcir le programme.
  −
 
  −
Comme vous pourrez ce constater ci-dessous, l'usage d'une boucle {{fname|for}} permet de réduire le programme à quelques lignes.
  −
 
  −
<nowiki># declaration des broches
  −
names = ['X1','X2', 'X3', 'X4', 'X5', 'X6', 'X7', 'X8' ]
  −
 
  −
# créer les objets Pin configuré en sortie (OUT_PP)
  −
pins = []
  −
for name in names:
  −
  pins.append( pyb.Pin( name, pyb.Pin.OUT_PP ) )
  −
 
  −
while True:
  −
  for pin in pins:
  −
    pin.high()
  −
    pyb.delay(100)
  −
    pin.low()
  −
    pyb.delay(100)</nowiki>
  −
 
  −
La deuxième boucle {{fname|for}} allume et éteint chacune des LEDs à tour de rôle.
  −
 
  −
=== Utiliser une Comprehension List ===
  −
La [http://domeu.blogspot.be/search?q=comprehension Comprehension List] est une structure/syntaxe super-puissante en Python. Un peu déroutante au début, c'est un allier d'une grande puissance.
  −
 
  −
Dans cette version du code, la création de la liste {{fname|pins}} est assuré par une compréhension list.... en une seule ligne de code.
  −
 
  −
<nowiki></nowiki>   
  −
{{MicroPython-Hack-Prepare-TRAILER}}
 
29 880

modifications

Menu de navigation