Outils pour utilisateurs

Outils du site


issue117:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue117:python [2017/02/08 07:48] d52frissue117:python [2017/02/08 15:04] (Version actuelle) andre_domenech
Ligne 9: Ligne 9:
  
 Ravi de vous retrouver, ou, pour les nouveaux arrivants, bienvenue. Ce mois-ci, nous réaliserons trois projets pilotant jusqu'à neuf LED. Ce seront : Ravi de vous retrouver, ou, pour les nouveaux arrivants, bienvenue. Ce mois-ci, nous réaliserons trois projets pilotant jusqu'à neuf LED. Ce seront :
-• Deux LED clignotantes +• deux LED clignotantes, 
-• Les lumières des Cylons +• les lumières des Cylons, 
-• Un barre-graphe+• un barre-graphe.
  
-Le projet d'origine (le barre-graphe) vient d'un livre dont j'ai fait la critique il y a quelques mois : Arduino Project Handbook (Manuel des projets Arduino) par Mark Geddes (No Starch Press). J'avais vraiment bien aimé le livre ; aussi, je voulais utiliser au moins sur un de ses projets.+Le projet d'origine (le barre-graphe) vient d'un livre dont j'ai fait la critique il y a quelques mois : Arduino Project Handbook (Manuel des projets Arduino) par Mark Geddes (No Starch Press). J'ai vraiment bien aimé le livre ; aussi, je voulais utiliser au moins un de ses projets.
  
 Commençons par détailler la liste de composants et voir la disposition du matériel. Commençons par détailler la liste de composants et voir la disposition du matériel.
Ligne 30: Ligne 30:
  
 Pour les projets d'aujourd'hui, nous aurons besoin de : Pour les projets d'aujourd'hui, nous aurons besoin de :
-• Un Arduino Uno ou Mega +• un Arduino Uno ou Mega, 
-• 9 LED (de préférence, 3 rouges, 3 jaunes et 3 vertes) +• 9 LED (de préférence, 3 rouges, 3 jaunes et 3 vertes), 
-• 9 résistances de 220 Ω +• 9 résistances de 220 Ω, 
-• Un potentiomètre de 10 kΩ +• un potentiomètre de 10 kΩ, 
-• Une plaque d'essai +• une plaque d'essai, 
-• Des cavaliers+• des cavaliers.
  
 **The Hardware Layout **The Hardware Layout
Ligne 57: Ligne 57:
 This first project is really simple in both logic and implementation. The idea is to alternately turn on and off two LEDs. In this case the LEDs are the ones connected to Arduino pins 2 and 3. We’ll use the potentiometer to send a value between 0 and 1023 for the delay through Arduino analogue pin A0. The higher the value the longer the delay. Since a delay value below 30 can cause the LEDs to blink so fast that you can’t tell they are blinking, we will check the value and if it is less than 30, we’ll force it to 30.** This first project is really simple in both logic and implementation. The idea is to alternately turn on and off two LEDs. In this case the LEDs are the ones connected to Arduino pins 2 and 3. We’ll use the potentiometer to send a value between 0 and 1023 for the delay through Arduino analogue pin A0. The higher the value the longer the delay. Since a delay value below 30 can cause the LEDs to blink so fast that you can’t tell they are blinking, we will check the value and if it is less than 30, we’ll force it to 30.**
  
-Projet 1 - deux LED clignotantes+Projet 1 - Deux LED clignotantes
  
-Le premier projet est vraiment simple à comprendre comme à réaliser. L'idée est d'allumer et d'éteindre deux LED alternativement. Dans ce cas, les deux LED sont celles connectées aux picots 2 et 3 de l'Arduino. Nous utiliserons le potentiomètre pour transmettre une valeur de durée entre 0 et 1023 à la broche analogique A0 de l'Arduino. Plus la valeur sera grande, plus la durée sera longue. Comme une valeur inférieure à 30 entraîne un clignotement tellement rapide des LED que vous ne pouvez pas dire qu'elles clignotent, nous analyserons la valeur et si elle est inférieure à 30, nous la forcerons à 30.+Le premier projet est vraiment simple à comprendre et à réaliser. L'idée est d'allumer et d'éteindre deux LED alternativement. Dans ce cas, les deux LED sont celles connectées aux picots 2 et 3 de l'Arduino. Nous utiliserons le potentiomètre pour transmettre une valeur de durée entre 0 et 1023 à la broche analogique A0 de l'Arduino. Plus la valeur sera grande, plus la durée sera longue. Puisqu'une valeur inférieure à 30 entraîne un clignotement tellement rapide des LED que vous ne pouvez pas dire qu'elles clignotent, nous analyserons la valeur etsi elle est inférieure à 30, nous la forcerons à 30.
  
 **The Code **The Code
Ligne 97: Ligne 97:
 } }
  
-Dans la routine setup, nous démarrons le moniteur série pour transmettre à 9600 baud et les deux broches numériques en bornes de sortie.+Dans la routine setup, nous démarrons le moniteur série pour transmettre à 9600 bauds et les deux broches numériques en bornes de sortie.
  
 void loop() { void loop() {
Ligne 129: Ligne 129:
 } }
  
-Enfin, nous affichons la valeur du potentiomètre sur le moniteur série, allumons la première LED, attendons une durée égale à la valeur du potentiomètre, éteignons la LED, puisnous allumons la suivante, attendons et l'éteignons et, ensuite, nous répétons le processus complet.+Enfin, nous affichons la valeur du potentiomètre sur le moniteur série, allumons la première LED, attendons une durée égale à la valeur du potentiomètre, éteignons la LED, puis nous allumons la suivante, attendons et l'éteignons et, ensuite, nous répétons le processus complet.
  
-Voyez-vous comme c'est simple ?+Vous voyez comme c'est simple ?
  
 **Project 2 - Cylon Lights **Project 2 - Cylon Lights
Ligne 141: Ligne 141:
 Projet 2 - Les lumières des Cylons Projet 2 - Les lumières des Cylons
  
-Dans ce projet, nous allumerons les LED par une variation douce (de 0 à 8 et de 8 à 0), à droite et à gauche, en réminiscence des Cylons de la série télé Battlestar Galactica de 1978. (J'ai montré le projet en fonctionnement à un ami et sa réponse a été que ça ressemblait aux lumières d'une voiture de police. J'espère que c'est juste une question de point de vue.) C'est encore un projet TRÉS simple. Nous utiliserons les neuf LED dans ce projet. Comme j'ai commencé par le projet de barre-graphe, j'ai juste modifié le code pour créer celui-ci.+Dans ce projet, nous allumerons les LED par une variation douce (de 0 à 8 et de 8 à 0), à droite et à gauche, pour rappeler les Cylons de la série télé Battlestar Galactica de 1978. (J'ai montré le projet en fonctionnement à un ami et sa réponse a été que ça ressemblait aux lumières d'une voiture de police. C'est juste une question de point de vue.) C'est encore un projet TRÉS simple. Nous utiliserons les neuf LED dans ce projet. Comme j'ai commencé par le projet de barre-graphe, j'ai juste modifié le code pour créer celui-ci.
  
 Nous utilisons des simples boucles for pour allumer et éteindre les LED dans l'ordre, en commençant par le picot 2 de l'Arduino, jusqu'au picot 10, puis retour jusqu'au picot 2. Nous utilisons des simples boucles for pour allumer et éteindre les LED dans l'ordre, en commençant par le picot 2 de l'Arduino, jusqu'au picot 10, puis retour jusqu'au picot 2.
Ligne 177: Ligne 177:
 Dans la routine setup (ci-dessous), nous utilisons une boucle for pour définir chacun des picots du tableau comme sorties. Dans la routine setup (ci-dessous), nous utilisons une boucle for pour définir chacun des picots du tableau comme sorties.
  
-C'est dans la routine loop (page suivante) que la « magie » s'opère. Une fois encore, nous utilisons une simple boucle for pour, dans l'ordre, allumer la LED pendant 90 millisecondes, puis nous l'éteignons avant de passer au picot suivant. Une fois que nous avons traité une première fois les neuf LED, nous avons une autre boucle, cette fois allant en sens inverse dans la liste des LED. Notez, cependant, que nous sautons la neuvième LED dans le décompte.+C'est dans la routine loop (page suivante) que la « magie » s'opère. Une fois encore, nous utilisons une simple boucle for pour, dans l'ordre, allumer la LED pendant 90 millisecondes, puis nous l'éteignons avant de passer au picot suivant. Une fois que nous avons traité une première fois les neuf LED, nous avons une autre boucle, allant cette fois en sens inverse dans la liste des LED. Notez, cependant, que nous sautons la neuvième LED dans le décompte.
  
-Comme vous pouvez le voir (page suivante, en haut à droite), la boucle for en C fonctionne comme ceci+Comme vous pouvez le voir (page suivante, en haut à droite), la boucle for en C fonctionne comme ceci...
  
-      for (valeur basse du compteur, valeur haute du compteur, quantité à incrémenter ou décrémenter)+      for (valeur basse du compteur, valeur haute du compteur, quantité à incrémenter ou décrémenter).
              
-Maintenant, il devrait être simple pour vous de déchiffrer le tout.+À ce stade, il devrait être simple pour vous de déchiffrer le tout.
  
 **Project 3 - Bar Graph **Project 3 - Bar Graph
Ligne 193: Ligne 193:
 Projet 3 - Le barre-graphe Projet 3 - Le barre-graphe
  
-Comme je l'ai dit plus haut, ce projet vient du livre Arduino Project Handbook de Mark Geddes. C'est un code projet très facile et intelligent.+Comme je l'ai dit plus haut, ce projet vient du livre Arduino Project Handbook de Mark Geddes. C'est un projet très facile du point de vue du code.
  
-Dans celui-ci, nous utiliserons tout le matériel. L'idée est de donner une représentation « graphique » de la valeur de la tension du potentiomètre en utilisant les neuf LED. Plus la tension est basse sur la borne A0, moins il y aura de LED éclairées. Plus la tension sera élevée, plus il y en aura d'allumées. La langage C de l'Arduino nous procure une merveilleuse fonction appelée MAP qui simplifie beaucoup cela. Cependant, elle peut être une peu déconcertante au début.+Dans celui-ci, nous utiliserons tout le matériel. L'idée est de donner une représentation « graphique » de la valeur de la tension du potentiomètre en utilisant les neuf LED. Plus la tension est basse sur la borne A0, moins il y aura de LED éclairées. Plus la tension sera élevée, plus il y en aura d'allumées. Le langage C de l'Arduino nous fournit une merveilleuse fonction appelée MAP qui simplifie beaucoup cela. Cependant, elle peut être une peu déconcertante au début.
  
 **The Map function **The Map function
Ligne 212: Ligne 212:
 La fonction MAP La fonction MAP
  
-La fonction map prend une valeur, l'étendue des valeurs de l'entrée et l'étendue des valeurs sur laquelle la sortie devra être convertie. Notre code est le suivant+La fonction map prend une valeur, l'étendue des valeurs de l'entrée et l'étendue des valeurs sur laquelle la sortie devra être convertie. Notre code est le suivant :
  
 int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
  
-• ledLevel est la sortie convertie. +• ledLevel est la sortie convertie, 
-• sensorReading est le niveau d'entrée sur le picot d'entrée analogique.+• sensorReading est le niveau d'entrée sur le picot d'entrée analogique,
 • les valeurs 0 et 1023 sont les limites de la plage des valeurs qui peuvent être attendues sur l'entrée analogique. • les valeurs 0 et 1023 sont les limites de la plage des valeurs qui peuvent être attendues sur l'entrée analogique.
 • Les valeurs 0 et 9 (ledCount) sont les bornes des valeurs qui peuvent être attendues à la sortie. Il y a un peu de magie mathématique à l'intérieur de la fonction qui réalise la conversion en sortie. La table ci-contre, Entrées versus Sorties, la présente. • Les valeurs 0 et 9 (ledCount) sont les bornes des valeurs qui peuvent être attendues à la sortie. Il y a un peu de magie mathématique à l'intérieur de la fonction qui réalise la conversion en sortie. La table ci-contre, Entrées versus Sorties, la présente.
  
-Ainsi, vous pouvez voir que chaque fois que la tension d'entrée sur la borne A0 est, par exemple, entre 455 et 568, la sortie sera un 4, et, dans ce cas, les quatre premières LED seront allumées.+Ainsi, vous pouvez voir quechaque fois que la tension d'entrée sur la borne A0 est, par exemple, entre 455 et 568, la sortie sera un 4, et, dans ce cas, les quatre premières LED seront allumées.
  
 **The Code **The Code
Ligne 237: Ligne 237:
 Et voilà. Vous en savez beaucoup maintenant sur le langage de l'Arduino et sur le pilotage des LED. Et voilà. Vous en savez beaucoup maintenant sur le langage de l'Arduino et sur le pilotage des LED.
  
-La prochaine fois, nous travaillerons avec les moteurs que nous avons utilisés quand nous apprenions le RPi ; aussi, dépoussiérez-les et soyez prêts. Jusque là, amusez-vous bien !+La prochaine fois, nous travaillerons avec les moteurs que nous avons utilisés quand nous apprenions le RPi ; aussi, dépoussiérez-les et soyez prêts. Jusque-là, amusez-vous bien !
issue117/python.1486536490.txt.gz · Dernière modification : 2017/02/08 07:48 de d52fr