Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
issue116:python [2017/01/10 23:11] – d52fr | issue116:python [2017/01/11 17:28] (Version actuelle) – andre_domenech |
---|
Le microcontrôleur Arduino | Le microcontrôleur Arduino |
| |
L'Arduino (selon le site web arduino.cc) est une plateforme électronique Open Source basée sur un matériel et un logiciel facile à utiliser. Il est livré comme étant un matériel et un logiciel Open Source, ce qui veut dire que les plans et les listes de pièces sont publiés pour que vous puissiez faire votre propre Arduino de zéro. | L'Arduino (selon le site Web arduino.cc) est une plateforme électronique Open Source basée sur un matériel et un logiciel faciles à utiliser. Il est livré comme étant un matériel et un logiciel Open Source, ce qui veut dire que les plans et les listes de pièces sont publiés pour que vous puissiez faire votre propre Arduino de zéro. |
| |
En fait, cela vous permet de lire sur les broches d'entrée et de contrôler les broches de sortie sur la carte, de manière similaire aux broches standards GPIO du Raspberry Pi. | Essentiellement, cela vous permet de lire sur les broches d'entrée et de contrôler les broches de sortie sur la carte, de manière similaire aux broches standards GPIO du Raspberry Pi. |
| |
Vous pouvez vous procurer des cartes Arduino authentiques pour environ 35$, mais il y a aussi de bonnes répliques (surtout la Sparkfun Red Board) pour environ 20$. | Vous pouvez vous procurer des cartes Arduino authentiques pour environ 35 $, mais il y a aussi de bonnes répliques (surtout la Sparkfun Red Board) pour environ 20 $. |
| |
Je vous suggère deux cartes pour nos projets. La UNO et la MEGA. Voir-ci contre. | Je vous suggère deux cartes pour nos projets. La UNO et la MEGA. Voir en haut à droite pour un descriptif des deux. |
| |
Si vous désirez aller plus loin que nos projets de base, considérez l'achat d'une carte Mega. | Si vous désirez aller plus loin que nos projets de base, vous pourrez envisager l'achat d'une carte Mega. |
| |
En bas à droite, la photo d'une carte Arduino Uno «standard» (quoiqu'un peu sale). | En bas à droite, la photo d'une carte Arduino Uno « standard » (quoique un peu sale). |
| |
==== 2 ==== | ==== 2 ==== |
** | ** |
| |
Ouvrez l'EDI de l'Arduino et parcourrez le menu File | Examples | 01.Basics | Blink (Fichiers > Exemples > 01. Bases > Clignoter). Une autre fenêtre va s'ouvrir avec le nouveau code source. Je l'ai recopié ici (page suivante) pour pouvoir discuter de ce projet très simple. | Ouvrez l'EDI de l'Arduino et sélectionnez File | Examples | 01.Basics | Blink (Fichiers > Exemples > 01. Bases > Clignoter). Une autre fenêtre s'ouvrira avec le nouveau code source. Je l'ai recopié ici (page suivante) pour pouvoir discuter de ce projet très simple. |
| |
Évidemment, la première chose à remarquer est que le code source est en Langage C. Ne vous inquiétez pas, c'est vraiment simple pour ce que l'on va faire. | Évidemment, la première chose à remarquer est que le code source est en langage C. Ne vous inquiétez pas, c'est vraiment simple pour ce que l'on va faire. |
| |
La partie du haut est un bloc de commentaires qui commence avec un «/*» et se termine avec un «*/». Comme pour Python, le compilateur C ignore ces blocs de commentaires. Les lignes qui commencent par «//» sont des lignes de commentaires simples et peuvent être mises n'importe où dans le code. Mais une fois que le compilateur voit un «//», tout ce qui reste derrière sur cette ligne est ignoré. | La partie du haut est un bloc de commentaires qui commence avec un « /* » et se termine avec un « */ ». Comme pour Python, le compilateur C ignore ces blocs de commentaires. Les lignes qui commencent par « // » sont des lignes de commentaires simples et peuvent être mises n'importe où dans le code. Mais une fois que le compilateur voit un « // », tout ce qui reste derrière sur cette ligne est ignoré. |
| |
Il y a deux fonctions qui doivent être incluses dans chaque projet... la fonction de démarrage et la fonction de boucle. Vous pouvez écrire les vôtres, mais il doit y avoir les deux. La fonction de démarrage est lancée à chaque fois que la carte est allumée, ou que le bouton reset est pressé. Une fois qu'elle est terminée, la fonction de boucle est appelée (au moins dans cet exemple) et elle tourne continuellement en faisant toutes les étapes qu'elle contient. | Il y a deux fonctions qui doivent être incluses dans chaque projet : la fonction de démarrage et la fonction de boucle. Vous pouvez écrire les vôtres, mais il doit y avoir les deux. La fonction de démarrage est lancée à chaque fois que la carte est allumée ou que l'on appuie sur le bouton reset. Une fois qu'elle est terminée, la fonction de boucle est appelée (au moins dans cet exemple) et elle tourne continuellement en faisant toutes les étapes qu'elle contient. |
| |
Dans cette fonction de démarrage, nous avons seulement à dire à la carte que la broche n°13 fonctionnera comme une sortie. Sur la Uno et la Mega, il y a une DEL qui est connectée à la broche 13, nous pourrons ainsi la contrôler, au même titre que la broche elle-même, et n'aurons pas à nous préoccuper de composants externes pour l'instant. Dans la fonction de boucle, nous envoyons, par la fonction digitalWrite, un signal Haut pour allumer la DEL, attendre 1 seconde (avec la fonction delay), renvoyer un signal Bas pour éteindre la DEL, attendre un autre seconde, puis recommencer le processus. | Dans cette fonction de démarrage, nous devons seulement dire à la carte que la broche n° 13 fonctionnera comme une sortie. Sur la Uno et la Mega, il y a une LED qui est connectée à la broche 13, nous pourrons ainsi la contrôler, au même titre que la broche elle-même, et n'aurons pas à nous préoccuper de composants externes pour l'instant. Dans la fonction de boucle, nous allons envoyer, par la fonction digitalWrite, un signal Haut pour allumer la LED, attendre 1 seconde (avec la fonction delay), renvoyer un signal Bas pour éteindre la LED, attendre une autre seconde, puis recommencer le processus. |
| |
** | ** |
** | ** |
| |
Branchez votre carte Arduino sur le port USB de votre ordinateur et cliquez sur le bouton à cocher rond pour compiler et vérifier votre code. Une fois qu'elle dit avoir terminé la compilation avec succès, cliquez sur le bouton d'à côté (celui avec la flèche vers la droite) pour charger votre code sur la carte Arduino. Dans quelques instants, si tout va bien, vous devriez voir la DEL de l'Arduino commencer à clignoter à chaque seconde. | Branchez votre carte Arduino sur le port USB de votre ordinateur et cliquez sur le bouton à cocher rond pour compiler et vérifier votre code. Une fois qu'elle indique avoir terminé la compilation avec succès, cliquez sur le bouton d'à côté (celui avec la flèche vers la droite) pour charger votre code sur la carte Arduino. Dans quelques instants, si tout va bien, vous devriez voir la LED de l'Arduino commencer à clignoter chaque seconde de façon cyclique. |
| |
Si vous avez des messages au moment du chargement, vérifiez le paramétrage grâce au menu Tools. La carte a besoin d'être paramétrée avec le type de carte que vous utilisez, le Port doit être celui connecté à l'Arduino (ce qui est NORMALEMENT votre cas). | Si vous avez des messages d'erreur au moment du chargement, vérifiez le paramétrage grâce au menu Tools. La carte doit être paramétrée avec le type de carte que vous utilisez, le Port doit être celui connecté à l'Arduino (ce qui est NORMALEMENT votre cas). |
| |
Maintenant amusons-nous un peu à modifier ce code. La fonction delay prend un argument, le nombre de millisecondes à attendre. Dans notre cas nous attendons 1000 millisecondes, c'est à dire une seconde. Changeons les deux délais à 250 millisecondes et voyons ce qui se passe. | Maintenant amusons-nous un peu à modifier ce code. La fonction delay prend un argument, le nombre de millisecondes à attendre. Dans notre cas nous attendons 1000 millisecondes, c'est-à-dire une seconde. Changeons les deux délais à 250 millisecondes et voyons ce qui se passe. |
| |
** | ** |
delay(250); | delay(250); |
| |
N'oubliez pas de terminer la ligne par un point virgule. Cliquez sur bouton de vérification (re-compilation) et chargez le code sur la carte. | N'oubliez pas de terminer la ligne par un point virgule. Cliquez sur le bouton à cocher (re-compilation) et chargez le code sur la carte. |
| |
Normalement, elle clignote deux fois par seconde. | Normalement, elle clignote deux fois par seconde. |
| |
Soyons un peu plus créatifs. Faisons en sorte que la carte envoie le code morse S.O.S. C'est à dire trois clignotements courts, un petit delai, trois clignotements longs, un petit délai, et trois courts de plus. Je ne vais pas essayer de faire le malin pour cette étape, mais vais simplement copier/coller d'autres appels à digitalWrite et delay avec les durées correspondantes. Voici la fonction boucle modifiée. | Soyons un peu plus créatifs. Faisons en sorte que la carte envoie le code morse S.O.S. C'est à dire trois clignotements courts, un petit delai, trois clignotements longs, un petit délai, et trois courts de plus. Je ne vais pas essayer de faire le malin pour cette étape, mais simplement copier/coller d'autres appels digitalWrite et delay avec les durées correspondantes. Voici la fonction boucle modifiée. |
| |
Compilez et chargez le code. | Compilez et chargez le code. |
| |
La prochaine fois, nous commencerons à travailler avec des composants que nous avons utilisés précédemment dans nos projets Raspberry Pi ; soyez prêts en ramenant des DEL et des résistances de vos placards. | La prochaine fois, nous commencerons à travailler avec des composants que nous avons utilisés précédemment dans nos projets Raspberry Pi ; soyez prêts en ramenant des LED et des résistances de vos placards. |
| |
En attendant, jouez avec quelques-uns des exemples de projets que vous trouverez dans l'EDI d'Arduino et amusez-vous bien. | En attendant, jouez avec quelques-uns des exemples de projets que vous trouverez dans l'EDI d'Arduino et amusez-vous bien. |
| |