Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
issue104:tutoriel1 [2016/01/11 22:45] – [7] fredphil91 | issue104:tutoriel1 [2016/01/12 14:22] (Version actuelle) – andre_domenech |
---|
You might want to get yourself a copy from their website (http://fritzing.org/home/). Not only can you keep copies of our projects locally, you also can have some fun designing your own circuits.** | You might want to get yourself a copy from their website (http://fritzing.org/home/). Not only can you keep copies of our projects locally, you also can have some fun designing your own circuits.** |
| |
Au moment où vous lirez ces lignes, ce ne sera probablement plus une nouveauté qu'un nouveau Rasperry Pi est sorti le 26 Novembre 2015. Il s'agit du Raspberry Pi Zéro, au prix incroyable de 5$ US ou 4₤ ou encore moins de 5€. Je n'ai pas réussi à trouver ses dimensions réelles, mais il paraît qu'il est de la taille d'un chewing-gum. Donc, si vous étiez freiné par le prix pour acheter votre nouveau Pi, vous n'avez maintenant plus d'excuse. Nous discuterons du Pi Zero dans de prochains articles. | Au moment où vous lirez ces lignes, ce ne sera probablement plus d'actualité qu'un nouveau Rasperry Pi est sorti le 26 novembre 2015. Il s'agit du Raspberry Pi Zéro, au prix incroyable de 5$ US ou 4₤ ou encore moins de 5€. Je n'ai pas réussi à trouver ses dimensions réelles, mais il paraît qu'il est de la taille d'un chewing-gum. Donc, si vous étiez freiné par le prix pour acheter votre nouveau Pi, vous n'avez maintenant plus d'excuse. Nous discuterons du Pi Zero dans de prochains articles. |
| |
Maintenant, revenons à ma série de programmation physique. Cette fois, nous allons commencer à réellement contrôler les choses. J'espère que vous avez été en mesure de vous procurer des LED, des résistances, des interrupteurs, des cavaliers et une plaque à trous.**FIXME : est-ce bien le bon terme pour ce genre de "carte" ?** | Maintenant, revenons à ma série de programmation dans le monde réel. Cette fois-ci, nous allons commencer à vraiment contrôler les choses. J'espère que vous avez été en mesure de vous procurer des LED, des résistances, des interrupteurs, des cavaliers et une plaque à trous. |
| |
Durant cette série d'articles, je vais utiliser un outil de conception gratuit appelé Fritzing pour fournir une représentation visuelle de ce à quoi le câblage du projet devrait ressembler. | Durant cette série d'articles, je vais utiliser un outil de conception gratuit appelé Fritzing pour fournir une représentation visuelle de ce à quoi le câblage du projet devrait ressembler. |
| |
Vous pouvez vous procurer une copie sur leur site Web (http://fritzing.org/home/). Cela vous permettra non seulement de conserver localement des copies de nos projets, et vous pourrez aussi prendre du plaisir à concevoir vos propres circuits. | Vous pouvez vous procurer un exemplaire sur leur site Web (http://fritzing.org/home/). Cela vous permettra non seulement de conserver localement des copies de nos projets, mais vous pourrez aussi vous amuser à concevoir vos propres circuits. |
| |
====== 2 ====== | ====== 2 ====== |
Petit tour de nos composants | Petit tour de nos composants |
| |
Une dernière chose avant de commencer : une discussion rapide sur certains des composants électroniques que nous utiliserons cette fois : résistances, LEDs et interrupteurs. | Une dernière chose avant de commencer : une discussion rapide sur certains des composants électroniques que nous utiliserons cette fois, des résistances, des LED et des interrupteurs. |
| |
Résistances | Résistances |
| |
Une résistance est un dispositif qui « résiste » plus ou moins à la circulation de l'électricité. Cela nous permettra de limiter la quantité d'électricité qui circule dans un circuit ou une partie de circuit. Dans le cas des projets avec des LED, nous utiliserons des résistances pour réduire la quantité d'électricité qui passe à travers la LED (et la broche GPIO [Ndt: [[https://fr.wikipedia.org/wiki/General_Purpose_Input/Output|pour les entrées/sorties]]]), pour l'empêcher de brûler. | Une résistance est un dispositif qui « résiste » plus ou moins à la circulation de l'électricité. Cela nous permettra de limiter la quantité d'électricité qui circule dans un circuit ou une partie de circuit. Dans le cas des projets avec des LED, nous utiliserons des résistances pour réduire la quantité d'électricité qui passe à travers la LED (et la broche GPIO [Ndt : [[https://fr.wikipedia.org/wiki/General_Purpose_Input/Output|pour les entrées/sorties]]]), pour l'empêcher de brûler. |
| |
Pour une explication plus détaillée sur les résistances, vous pouvez regarder ici : https://learn.sparkfun.com/tutorials/resistors. | Pour une explication plus détaillée sur les résistances, vous pouvez regarder ici : https://learn.sparkfun.com/tutorials/resistors. |
Les LED sont des diodes électroluminescentes et sont les remplaçantes « standard » pour les ampoules de toutes sortes. En étant attentifs dans la conception, elles dureront presque éternellement. Une LED a deux bornes/fils appelés anode et cathode. L'anode est le côté positif et la cathode est le côté négatif. | Les LED sont des diodes électroluminescentes et sont les remplaçantes « standard » pour les ampoules de toutes sortes. En étant attentifs dans la conception, elles dureront presque éternellement. Une LED a deux bornes/fils appelés anode et cathode. L'anode est le côté positif et la cathode est le côté négatif. |
| |
Si vous sortez une nouvelle LED de sa boite, vous remarquerez que l'un des fils est plus long que l'autre. C'est l'anode ou le côté positif. Si les deux fils sur une LED neuve sont de la même longueur (ou si vous recyclez des pièces d'un ancien circuit), chercher le côté plat. Ce sera toujours le côté de la cathode ou côté négatif. | Si vous sortez une nouvelle LED de sa boîte, vous remarquerez que l'un des fils est plus long que l'autre. C'est l'anode ou le côté positif. Si les deux fils sur une LED neuve ont la même longueur (ou si vous recyclez des composants d'un ancien circuit), cherchez le côté plat. Ce sera toujours le côté de la cathode ou côté négatif. |
====== 3 ====== | ====== 3 ====== |
| |
Interrupteurs | Interrupteurs |
| |
L'interrupteur que j'ai choisi d'utiliser pour ce projet est un modèle qui se monte facilement dans la plaque à trous ou sur un circuit imprimé. Il est tout simplement carré avec un petit bouton rond sur le dessus. Il a également 4 broches. L'astuce est de trouver les deux broches dont nous avons besoin. Vous pourriez prendre un ohm-mètre et essayer toutes les combinaisons de broches jusqu'à trouver un couple qui fonctionne, ou vous pouvez simplement regarder la disposition des broches qui le relient à la plaque à trous. Les deux broches à utiliser doivent s'accrocher à la plaque en se faisant face. Vous avez seulement besoin d'un couple de broches, choisissez celui que vous souhaitez. | L'interrupteur que j'ai choisi pour ce projet est un modèle qui se monte facilement dans la plaque à trous ou sur un circuit imprimé. Il est tout simplement carré avec un petit bouton rond sur le dessus. Il a également 4 broches. L'astuce est de trouver les deux broches dont nous avons besoin. Vous pourriez prendre un ohmmètre et essayer toutes les combinaisons de broches jusqu'à trouver un couple qui fonctionne, ou vous pouvez simplement regarder la disposition des broches qui le relient à la plaque à trous. Les deux broches à utiliser doivent s'insérer dans la plaque en se faisant face. Vous avez seulement besoin d'un couple de broches, choisissez celui que vous souhaitez. |
| |
Notre premier projet... | Notre premier projet... |
À droite se trouve le schéma exact avec lequel nous allons travailler. | À droite se trouve le schéma exact avec lequel nous allons travailler. |
| |
Nous avons donc un interrupteur connecté entre la terre et la broche 17 du GPIO, qui est la broche physique 11. Nous avons aussi une LED connectée par sa cathode à la broche 18 du GPIO (broche physique 12) et dont l'anode est reliée à une résistance qui se connecte à la broche 3,3 V sur le Pi. C'est là que vous devez prendre une décision. Allez-vous référencer les broches par leur position sur la carte, ou les numéros GPIO. Nous y reviendrons dans une minute. En attendant, voici le schéma de câblage… | Nous avons donc un interrupteur connecté entre la terre et la broche 17 du GPIO, qui est la broche physique 11. Nous avons aussi une LED connectée par sa cathode à la broche 18 du GPIO (broche physique 12) et dont l'anode est reliée à une résistance qui se connecte à la broche 3,3 V sur le Pi. C'est ici que vous devez prendre une décision. Allez-vous référencer les broches par leur position sur la carte ou par les numéros GPIO ? Nous y reviendrons dans une minute. En attendant, voici le schéma de câblage... |
| |
====== 4 ====== | ====== 4 ====== |
There is a short jumper going from the top ground bus to one side of the switch and the other side of the switch connects to physical pin 11 on the RPi (or GPIO pin 17). As for the LED, the Cathode is connected to the physical pin 12 on the RPi (GPIO 18) and the Anode is connected to the resistor, which in turn is connected to the lower 3.3 volt bus. Also notice that the wiring is colour coded. Red will ALWAYS (in my diagrams) be a positive voltage, Black is for ground. Any other colors will mean interconnections for data.** | There is a short jumper going from the top ground bus to one side of the switch and the other side of the switch connects to physical pin 11 on the RPi (or GPIO pin 17). As for the LED, the Cathode is connected to the physical pin 12 on the RPi (GPIO 18) and the Anode is connected to the resistor, which in turn is connected to the lower 3.3 volt bus. Also notice that the wiring is colour coded. Red will ALWAYS (in my diagrams) be a positive voltage, Black is for ground. Any other colors will mean interconnections for data.** |
| |
Vous pouvez voir sur la plaque les trois composants... l'interrupteur, la LED et la résistance. La première broche sur le RPi est en haut à droite. Cette broche fournit les 3,3 V dont nous avons besoin pour alimenter notre projet. La broche en-dessous est la broche n°2. La broche n°6 est une broche de terre. Notez que ces deux broches sont connectées aux longs bus horizontaux sur la plaque à trous. Certaines plaques ont un « + » et un « - » sur le bus d'alimentation pour vous aider à savoir quel bus est quoi. J'ai aussi un long cavalier qui va du bus 3,3 V en haut de la plaque au bus du bas. Cela n'a vraiment pas d'importance d'utiliser l'un ou l'autre bus pour l'alimentation, tant que vous êtes cohérent. | Vous pouvez voir sur la plaque les trois composants : l'interrupteur, la LED et la résistance. La première broche sur le RPi est en haut à droite. Cette broche fournit les 3,3 V dont nous avons besoin pour alimenter notre projet. La broche en-dessous est la broche n° 2. La broche n° 6 est une broche de terre. Notez que ces deux broches sont connectées aux longs bus horizontaux sur la plaque à trous. Certaines plaques ont un « + » et un « - » sur le bus d'alimentation pour vous aider à les distinguer. J'ai aussi un long cavalier qui va du bus 3,3 V en haut de la plaque au bus du bas. Entre les deux, le bus que vous utilisez pour l'alimentation n'a vraiment pas d'importance, tant que vous êtes cohérent. |
| |
Il y a un cavalier court allant du bus de masse du haut à un côté de l'interrupteur, et l'autre côté de l'interrupteur est connecté à la broche physique 11 sur le RPi (ou broche 17 GPIO). Quant à la LED, la cathode est connectée à la broche physique 12 sur le RPi (18 du GPIO) et l'anode est connectée à la résistance, qui est à son tour reliée au bus 3,3 V inférieur. Notez également que le câblage est codé en couleur. Le rouge sera TOUJOURS (dans mes schémas) une tension positive, le noir étant pour la masse. Toutes les autres couleurs signifieront des interconnexions pour les données. | Il y a un cavalier court allant du bus de masse du haut à un côté de l'interrupteur, et l'autre côté de l'interrupteur est connecté à la broche physique 11 sur le RPi (ou broche 17 GPIO). Quant à la LED, la cathode est connectée à la broche physique 12 sur le RPi (18 du GPIO) et l'anode est connectée à la résistance, qui est à son tour reliée au bus 3,3 V inférieur. Notez également que le câblage est codé en couleur. Le rouge sera TOUJOURS (dans mes schémas) une tension positive, le noir étant pour la masse. Toutes les autres couleurs signifieront des interconnexions pour les données. |
Notice that the first line is commented out since I will be using the board numbering in this example, but it's there to show you how to make the call.** | Notice that the first line is commented out since I will be using the board numbering in this example, but it's there to show you how to make the call.** |
| |
Si vous avez suivi jusqu'à présent, vous remarquerez que je donne à la fois le numéro de broche physique et le numéro de broche BCM GPIO. Le « BCM » signifie Broadcom, et, dans notre code, nous devrons indiquer à la bibliothèque RPi.GPIO si nous utilisons la numérotation physique ou BCM. D'où la décision dont je parlais plus tôt. Dans notre code, nous devrons être cohérents avec un système de numérotation ou l'autre. Dans le code que nous allons regarder, je fournis les deux, et vous pouvez commenter celui que vous ne voulez pas utiliser. Ma préférence personnelle est d'utiliser les numéros BCM GPIO, mais pour ce projet je vais rester sur les numéros physiques de broches. Maintenant, entrons dans le code. | Si vous avez suivi jusqu'à présent, vous remarquerez que je donne à la fois le numéro de broche physique et le numéro de broche BCM GPIO. Le « BCM » signifie Broadcom, et, dans notre code, nous devrons indiquer à la bibliothèque RPi.GPIO la numérotation nous utilisons, physique ou BCM. D'où la décision dont je parlais plus tôt. Dans notre code, nous devrons être cohérents avec l'un ou l'autre système de numérotation. Dans le code que nous allons regarder, je fournis les deux, et vous pouvez commenter celui que vous ne voulez pas utiliser. Ma préférence personnelle est d'utiliser les numéros BCM GPIO, mais, pour ce projet, je vais rester sur les numéros physiques de broches. Maintenant, entrons dans le code. |
| |
Comme toujours, je vais découper le code en morceaux et expliquer chacun. D'abord (en haut à droite) nous devons importer la bibliothèque RPi.GPIO, et nous allons créer un alias « GPIO » pour rendre les choses plus facile à saisir. Ensuite, nous définissons deux variables ; LedPin et BtnPin correspondant au schéma de numérotation des broches nous souhaitons utiliser. Ici, je me suis décidé à utiliser la numérotation de broche physique, car vous n'avez probablement pas encore de nappe de connexion. J'ai trouvé celle de SparkFun très agréable, mais elle indique seulement le numéro BCM des broches. Notre prochain bout de code (ci-dessous) sera une fonction appelée « setup », dans laquelle nous réglons les informations sur la bibliothèque à utiliser. | Comme toujours, je vais découper le code en morceaux et expliquer chacun. D'abord (en haut à droite) nous devons importer la bibliothèque RPi.GPIO, et nous allons créer un alias « GPIO » pour rendre les choses plus faciles à saisir. Ensuite, nous définissons deux variables, LedPin et BtnPin, correspondant au schéma de numérotation des broches que nous souhaitons utiliser. Ici, je me suis décidé à utiliser la numérotation de broche physique, car vous n'avez probablement pas encore de nappe de connexion. J'ai trouvé celle de SparkFun très agréable, mais elle indique seulement le numéro BCM des broches. Notre prochain bout de code (ci-dessous) sera une fonction appelée « setup », dans laquelle nous réglons les informations sur la bibliothèque à utiliser. |
| |
Notez que la première ligne est commentée puisque je vais utiliser la numérotation de la carte dans cet exemple, mais elle est là pour vous montrer comment faire l'appel. | Notez que la première ligne est commentée puisque je vais utiliser la numérotation de la carte dans cet exemple, mais elle est là pour vous montrer comment indiquer votre choix. |
| |
====== 6 ====== | ====== 6 ====== |
Finally, we use the “main loop” (shown bottom) to call the routines in the proper order and to allow us an easy way to break out of the loop by pressing the Ctrl-C key sequence.** | Finally, we use the “main loop” (shown bottom) to call the routines in the proper order and to allow us an easy way to break out of the loop by pressing the Ctrl-C key sequence.** |
| |
Les lignes 3 et 4 montrent comment définir le rôle des broches, entrée ou sortie, et si nous utilisons les résistances de rappel internes, intégrées sur le RPi, ou pas. Cette partie du code dit donc simplement d'utiliser les numéros physiques des broches comme références, et définit quelle broche de sortie pilotera la LED et par quelle broche le signal du bouton arrivera. Notez également que nous réglons la broche du bouton pour qu'elle ait une résistance de rappel. Cela signifie que le signal nominal sera à 3,3 V et lorsque le bouton est pressé, il sera ramené vers la terre. | Les lignes 3 et 4 montrent comment définir le rôle des broches, entrée ou sortie, et si nous utilisons les résistances de rappel internes, intégrées sur le RPi, ou pas. Cette partie du code dit donc simplement d'utiliser les numéros physiques des broches comme références, et définit quelle broche de sortie pilotera la LED et par quelle broche le signal du bouton arrivera. Notez également que nous réglons la broche du bouton pour qu'elle ait une résistance de rappel. Cela signifie que le signal nominal sera à 3,3 V et que, lorsque le bouton est pressé, il sera ramené vers la terre. |
| |
Notre prochaine fonction (page suivante, en haut à droite) est appelée « loop » [NdT : boucle], et comme son nom l'indique, nous faisons simplement une boucle, pour vérifier si le signal sur la broche d'entrée du bouton a diminué. Si oui, alors nous allumons la LED, sinon nous relevons le ledPin. Cela peut sembler contre-intuitif, mais rappelez-vous que nous avons l'anode connecté au bus de 3,3 V à travers la résistance. Cela signifie que pour allumer la LED, nous devons ramener la cathode à la masse (0 V) pour permettre à la LED de s'allumer. | Notre prochaine fonction (page suivante, en haut à droite) est appelée « loop » [Ndt : boucle] et, comme son nom l'indique, nous faisons simplement une boucle, pour vérifier si le signal sur la broche d'entrée du bouton a diminué. Si oui, alors nous allumons la LED, sinon nous relevons le LedPin. Cela peut sembler contre-intuitif, mais rappelez-vous que nous avons l'anode connectée au bus de 3,3 V à travers la résistance. Cela signifie que pour allumer la LED, nous devons ramener la cathode à la masse (0 V) pour permettre à la LED de s'allumer. |
| |
La fonction « destroy » (ci-dessous) nettoie simplement les états des broches, afin de ne pas recevoir d'erreurs la prochaine fois que nous allons les utiliser. | La fonction « destroy » (ci-dessous) nettoie simplement les états des broches, afin de ne pas recevoir d'erreurs la prochaine fois que nous allons les utiliser. |
Voilà, chargez le programme dans votre RPi et exécutez-le. Vous remarquerez que le texte "... LED Off" se répète à l'écran jusqu'à ce que vous appuyiez sur le bouton. Cela est dû au fait que notre routine « loop » lit le niveau ou le statut de la broche du bouton, et une fois que la tension baisse, elle dit « oh... l'entrée du bouton est basse, donc je dois allumer la LED ». | Voilà, chargez le programme dans votre RPi et exécutez-le. Vous remarquerez que le texte "... LED Off" se répète à l'écran jusqu'à ce que vous appuyiez sur le bouton. Cela est dû au fait que notre routine « loop » lit le niveau ou le statut de la broche du bouton, et une fois que la tension baisse, elle dit « oh... l'entrée du bouton est basse, donc je dois allumer la LED ». |
| |
Une autre chose à noter est que nos première et deuxième routines sont nommées « setup » et « boucle ». C'est une bonne chose à garder ce format, car quand nous arriverons à la programmation Arduino, ces deux routines seront obligatoires. | Une autre chose à noter est que nos première et deuxième routines sont nommées « setup » et « loop ». C'est une bonne chose de garder ce format, car, quand nous arriverons à la programmation de l'Arduino, ces deux routines seront obligatoires. |
| |
Nous allons nous arrêter ici pour ce mois. Je veux laisser de la place aux autres auteurs pour leurs articles. Gardez tout à portée de main, car nous allons utiliser la même configuration matérielle la prochaine fois. | Nous allons nous arrêter ici pour ce mois-ci, car je veux laisser de la place pour les articles d'autres auteurs. Gardez tout à portée de main, car nous allons utiliser la même configuration matérielle la prochaine fois. |
| |
Amusez-vous bien et je vous revois le mois prochain. | Amusez-vous bien et je vous revois le mois prochain. |
| |