Code Arduino & Aperçu de la syntaxe
Comme vous l’avez appris dans le module 01, IDE signifie environnement de développement intégré. Une consonance plutôt fantaisiste, et qui devrait vous faire sentir intelligent à chaque fois que vous l’utilisez. L’IDE est un programme de type éditeur de texte qui vous permet d’écrire du code Arduino.
Lorsque vous ouvrez le programme Arduino, vous ouvrez l’IDE. Il est intentionnellement rationalisé pour garder les choses aussi simples et directes que possible. Lorsque vous enregistrez un fichier dans Arduino, ce fichier s’appelle un sketch – un sketch est l’endroit où vous enregistrez le code informatique que vous avez écrit.
Le langage de codage qu’utilise Arduino ressemble beaucoup au C++ ( » voir plus plus « ), qui est un langage courant dans le monde de l’informatique. Le code que vous apprenez à écrire pour Arduino sera très similaire au code que vous écrivez dans n’importe quel autre langage informatique – tous les concepts de base restent les mêmes – il s’agit juste d’apprendre un nouveau dialecte si vous poursuivez d’autres langages de programmation.
Si vous aimez ce tutoriel, cliquez ici pour consulter le cours Arduino vidéo GRATUIT – des milliers de personnes l’ont vraiment apprécié.
Le code que vous écrivez est « lisible par l’homme », c’est-à-dire qu’il aura du sens pour vous (parfois), et sera organisé pour qu’un humain puisse le suivre. Une partie du travail de l’IDE consiste à prendre le code lisible par l’homme et à le traduire en code lisible par la machine pour être exécuté par l’Arduino. Ce processus est appelé la compilation.
Le processus de compilation est transparent pour l’utilisateur. Tout ce que vous avez à faire est d’appuyer sur un bouton. Si vous avez des erreurs dans votre code informatique, le compilateur affichera un message d’erreur au bas de l’IDE et mettra en évidence la ligne de code qui semble être le problème. Le message d’erreur a pour but de vous aider à identifier ce que vous avez pu faire de mal – parfois le message est très explicite, comme dire » Hé – vous oubliez un point-virgule « , parfois le message d’erreur est vague.
Pourquoi se préoccuper d’un point-virgule vous demandez ? Un point-virgule fait partie de la syntaxe du langage Arduino, des règles qui régissent la façon dont le code est écrit. C’est comme la grammaire dans l’écriture. Si, par exemple, nous n’utilisions pas de points lorsque nous écrivons, tout le monde aurait beaucoup de mal à comprendre quand les phrases commencent et se terminent. Ou si nous n’employions pas la virgule, comment ferions-nous passer une pause dramatique au lecteur ?
Et laissez-moi vous dire que si vous avez déjà eu un professeur d’anglais avec un stylo rouge hyperactif, le compilateur est dix fois pire. En fait – vos programmes NE COMPILERONT PAS sans une syntaxe parfaite. Cela peut vous rendre fou au début, car il est très naturel d’oublier la syntaxe. Au fur et à mesure que vous acquerrez de l’expérience en programmation, vous apprendrez à être assidu à la grammaire du codage.
Mettons les mains dans le cambouis et introduisons un peu de syntaxe.
Le point-virgule ;
Un point-virgule doit suivre chaque déclaration écrite dans le langage de programmation Arduino. Par exemple…
int LEDpin = 9;
Dans cette déclaration, j’affecte une valeur à une variable entière (nous couvrirons cela plus tard), remarquez le point-virgule à la fin. Cela indique au compilateur que vous avez terminé un morceau de code et que vous passez à la pièce suivante. Un point-virgule est au code Arduino, comme un point est à une phrase. Il signifie une déclaration complète.
La double barre oblique avant pour les commentaires à ligne unique //
//When you type a double backslash all the text that follows on the same line will be grayed out
Les commentaires sont ce que vous utilisez pour annoter le code. Un bon code est bien commenté. Les commentaires sont destinés à vous informer, ainsi que toute autre personne qui pourrait tomber sur votre code, de ce à quoi vous pensiez lorsque vous l’avez écrit. Un bon commentaire serait quelque chose comme ceci…
//This is the pin on the Arduino that the LED is plugged intoint LEDpin = 9
Maintenant, dans 3 mois quand je reverrai ce programme, je sais où coller ma DEL.
Les commentaires seront ignorés par le compilateur – vous pouvez donc y écrire ce que vous voulez. Si vous avez beaucoup de choses à expliquer, vous pouvez utiliser un commentaire de plusieurs lignes, illustré ci-dessous…
/* The multi-line comment opens with a single backslash followed by an asterisk. Everything that follows is grayed out and will be ignored by the compiler, until you close the comment using first an asterisk and then a backslash like so */
Les commentaires sont comme les notes de bas de page du code, sauf qu’ils sont beaucoup plus répandus et qu’ils ne se trouvent pas en bas de page.
Les accolades { }
Les accolades sont utilisées pour enfermer les instructions supplémentaires exécutées par une fonction (nous parlons des fonctions ensuite). Il y a toujours une accolade ouvrante et une accolade fermante. Si vous oubliez de fermer une accolade, le compilateur n’appréciera pas et lancera un code d’erreur.
void loop() { //this curly brace opens//way cool program here} //this curly brace closes
Rappellez-vous – aucune accolade ne peut rester non fermée !
Fonctions ( )
Changeons un peu de vitesse et parlons des fonctions.
Les fonctions sont des morceaux de code qui sont utilisés si souvent qu’ils sont encapsulés dans certains mots-clés afin que vous puissiez les utiliser plus facilement. Par exemple, une fonction pourrait être l’ensemble d’instructions suivant…
Wash Dog1. Get a bucket2. Fill it with water3. Add soap4. Find dog5. Lather dog6. Wash dog7. Rinse dog8. Dry dog9. Put away bucket
Cet ensemble d’instructions simples pourrait être encapsulé dans une fonction que nous appelons WashDog. Chaque fois que nous voulons exécuter toutes ces instructions, il suffit de taper WashDog et voilà – toutes les instructions sont exécutées.
Dans Arduino, il y a certaines fonctions qui sont utilisées si souvent qu’elles ont été intégrées dans l’IDE. Lorsque vous les tapez, le nom de la fonction apparaît en orange. La fonction pinMode(), par exemple, est une fonction courante utilisée pour désigner le mode d’une broche Arduino.
Qu’en est-il des parenthèses qui suivent la fonction pinMode ? De nombreuses fonctions ont besoin d’arguments pour fonctionner. Un argument est une information que la fonction utilise lors de son exécution.
Pour notre fonction WashDog, les arguments pourraient être le nom du chien et le type de savon, ou la température et la taille du seau.
pinMode(13, OUTPUT);//Sets the mode of an Arduino pin
L’argument 13 fait référence à la broche 13, et OUTPUT est le mode dans lequel vous voulez que la broche fonctionne. Lorsque vous saisissez ces arguments, la terminologie est appelée passing. Vous transmettez les informations nécessaires aux fonctions. Toutes les fonctions ne requièrent pas d’arguments, mais les parenthèses ouvrantes et fermantes resteront sans tenir compte du fait qu’elles sont vides.
millis( );//Retrieves the length of time in milliseconds that the Arduino has been running
Notez que le mot OUTPUT est bleu. Il y a certains mots-clés dans Arduino qui sont utilisés fréquemment et la couleur bleue aide à les identifier. L’IDE les colore en bleu automatiquement.
Nous n’allons pas en parler ici, mais vous pouvez facilement créer vos propres fonctions dans Arduino, et vous pouvez même demander à l’IDE de les colorier pour vous.
Nous allons cependant parler des deux fonctions utilisées dans presque TOUS les programmes Arduino.
Value setup ( )
La fonction, setup(), comme son nom l’indique, est utilisée pour configurer la carte Arduino. L’Arduino exécute tout le code qui est contenu entre les accolades de setup() une seule fois. Les choses typiques qui se produisent dans setup() sont le réglage des modes des broches, le démarrage
void setup( ) { //the code between the curly braces is only run once for setup()
Vous vous demandez peut-être ce que signifie void devant la fonction setup(). Void signifie que la fonction ne renvoie pas d’information.
Certaines fonctions renvoient des valeurs – notre fonction DogWash pourrait renvoyer le nombre de seaux dont elle a eu besoin pour nettoyer le chien. La fonction analogRead() renvoie une valeur entière comprise entre 0 et 1023. Si cela vous semble un peu étrange maintenant, ne vous inquiétez pas car nous couvrirons chaque fonction Arduino commune en profondeur au fur et à mesure que nous poursuivrons le cours.
Revoyons deux ou trois choses que vous devez savoir sur setup()…
1. setup() ne s’exécute qu’une fois.
2. setup() doit être la première fonction de votre sketch Arduino.
3. setup() doit avoir des accolades ouvrantes et fermantes.
void loop( )
Il faut aimer les développeurs Arduino car les noms des fonctions sont tellement parlants. Comme son nom l’indique, tout le code entre les accolades dans loop() est répété encore et encore – dans une boucle. La fonction loop() est l’endroit où résidera le corps de votre programme.
Comme pour setup(), la fonction loop() ne renvoie aucune valeur, c’est pourquoi le mot void la précède.
void loop( ) { //whatever code you put here is executed over and over
Est-ce que cela vous semble bizarre que le code s’exécute en une seule grande boucle ? Cette apparente absence de variation est une illusion. La plupart de votre code aura des conditions spécifiques en attente qui déclencheront de nouvelles actions.
Si vous avez un capteur de température connecté à votre Arduino par exemple, alors lorsque la température atteint un seuil prédéfini, vous pourriez faire en sorte qu’un ventilateur se mette en marche. Le code en boucle vérifie constamment la température en attendant de déclencher le ventilateur. Ainsi, même si le code boucle encore et encore, chaque morceau du code ne sera pas exécuté à chaque itération de la boucle.
Essayez par vous-même
Ce cours est basé sur les exemples de sketches fournis avec l’IDE Arduino. Ouvrez votre IDE Arduino et allez dans le fichier > Exemple > 01.Basics et ouvrez trois sketches différents. Identifiez la syntaxe et les fonctions suivantes que vous trouvez dans les sketches :
- ; point-virgule
- // commentaires à une ligne
- /* */ multilignes
- { } accolades ouvrantes et fermantes
- ( ) parenthèses
- void setup() – identifiez les accolades ouvrantes et fermantes
- void loop() – identifiez les accolades ouvrantes et fermantes
- quelques mots-clés bleus comme OUTPUT ou INPUT
0 commentaire