Technologies numériques/Arduino/Arduino- Débutant/Introduction à la syntaxe et à la conceptualisation de la programmation

De Wiki CGEC
Aller à la navigation Aller à la recherche

Comme mentionné précédemment, un IDE est utilisé pour compiler et exécuter le code utilisé dans un microcontrôleur. Il existe de nombreux IDE différents qui peuvent être utilisés pour divers types de microcontrôleurs et pour chaque objectif, il existe des cartes plus appropriées qui peuvent être utilisées. Pour programmer un Arduino, il faut avoir téléchargé l'IDE Arduino (voir Connexion d'un Arduino). L'Arduino IDE fournit aux utilisateurs un éditeur de programmation ainsi qu'un moyen de télécharger et de compiler facilement des programmes sur la carte Arduino. Les programmes dans l'IDE Arduino sont appelés sketches, et sont normalement enregistrés avec l'extension .ino. Le langage utilisé pour programmer la carte Arduino est basé sur le langage C++, qui est un langage orienté objet d'usage général. Comme tout langage courant, pour commencer à coder, il faut connaître les règles de grammaire et le vocabulaire utilisé. Un mot important que l'on rencontrera souvent est une "fonction", qui est un bloc de code qui prend une entrée, traite l'entrée, puis renvoie une sortie.

Programme Blink : Un exemple

L'IDE Arduino fournit aux créateurs une pléthore de programmes écrits qui sont entièrement prêts à fonctionner sur une carte Arduino. Ils sont situés dans le dossier Files>Examples. Parmi les plus basiques, on trouve le programme "Blink", qui peut être utilisé non seulement pour se familiariser avec les fonctions de base du logiciel et du matériel, mais aussi pour tester la connectivité entre la carte Arduino et l'ordinateur de l'utilisateur. Ce programme est situé dans Fichiers>Exemples>01.Basics>Blink.  

Vous trouverez ci-dessous un aperçu des différentes fonctions utilisées dans ce programme :

Code Arduino
Tableau 2 : Aperçu des fonctions utilisées dans le programme Blink
Fonction Description
Setup() Effectue toutes les actions qui sont initialement nécessaires pour exécuter le reste du programme, comme l'initialisation des composants périphériques et le réglage de la fréquence de communication entre l'Arduino et le PC.
Loop() La fonction loop agit comme le pilote du programme, elle s'exécute sur une boucle continue et spécifie l'ordre des opérations que le microcontrôleur va effectuer. L'exécution commence au début, parcourt le contenu de la boucle, puis reprend l'exécution au début. Cette procédure est répétée à l'infini.
pinMode (numéro de la broche, INPUT ou Output) Configure la broche pour qu'elle se comporte comme un INPUT ou un OUTPUT.
digitalWrite (numéro de la broche, HIGH ou LOW) Ecrit une valeur HIGH ou LOW sur une broche numérique. Si la broche a été configurée comme une SORTIE, alors le signal envoyé (c'est-à-dire la tension) sera défini comme 5 V (HIGH) ou 0 V (LOW). Pour les cartes à sortie 3,3 V, la valeur haute sera fixée à 3,3 V, tandis que la valeur basse est la même que celle de la carte 5 V, c'est-à-dire 0 V.
Délai (temps en millisecondes) Met le programme en pause pendant la durée spécifiée dans le paramètre.

Initialisation d'une broche en tant qu'entrée ou sortie

Lorsque vous utilisez des composants, vous devrez souvent initialiser la broche à laquelle ils sont connectés en tant qu'entrée ou sortie ! La syntaxe de cette opération varie en fonction du composant et du type de broche auquel il est connecté.

Entrée/sortie analogique

Lorsque vous essayez de manipuler les données d'une broche analogique, les lignes de code suivantes sont utilisées pour lire les données de celle-ci :

int variable = analogRead(insérer le numéro de la broche); //ici une variable est définie pour contenir la valeur lue sur la broche.

Lorsque vous voulez écrire des données sur la broche, la syntaxe suivante est utilisée :

int variable = analogWrite(insérer le numéro de la broche) ; //ici une variable est définie pour contenir la valeur lue sur la broche.

Entrée/sortie numérique

Si vous souhaitez utiliser une broche numérique, vous devez la déclarer comme entrée ou sortie dans le paramètre Void () comme suit :

pinMode(LED1, OUTPUT); //Par exemple, si vous avez une broche appelée LED1

Si vous voulez écrire une valeur à LED1, vous devez utiliser la syntaxe suivante :

digitalWrite(LED1, HIGH); //Ici, HIGH ou LOW indique si vous souhaitez que la led s'allume - pour l'allumer, réglez HIGH, et LOW sinon.

Quelques autres considérations de base :

Tableau 3 : Aperçu de quelques éléments de base de la programmation
Symbol Description
Supports {....} Commence et termine une fonction ou est utilisé pour regrouper différentes déclarations.
Barres de commentaires /* ….*/ ou // Permet aux codeurs d'ajouter des commentaires à leur code afin de le rendre plus lisible pour les autres humains. Il est important de noter que tous les commentaires ne sont pas exécutés par le programme et ne modifient donc pas le programme !
Point-virgule ...; Ce caractère termine une instruction de programme et indique au compilateur la "fin de la ligne/de l'instruction en cours".

Il est également important de savoir que l'éditeur Arduino est sensible à la casse, ce qui signifie que les mots "DOOR" et "Door" ne sont pas compris comme étant le même mot par le compilateur. En outre, pour rendre l'écriture et l'édition du code plus conviviales, l'IDE Arduino attribue un code couleur aux fonctions importantes, aux commentaires, etc. Nous verrons cela plus tard dans cette section.

Comme on peut le voir ci-dessous, certaines fonctions préexistantes dans l'IDE Arduino seront souvent d'une certaine couleur. C'est un bon indicateur pour savoir si vous avez écrit la fonction correctement ou non.

Arduino blink

Pseudocode et organigrammes

Au fur et à mesure que la complexité de vos projets progresse, il sera probablement de plus en plus difficile de garder la trace de toutes les différentes fonctions. Parmi les outils souvent utilisés pour aider à créer une présentation de l'objectif des programmes figurent le pseudocode et l'organigramme. Ils aident tous deux à visualiser et à décrire la logique de votre code, la différence entre les deux étant que les organigrammes sont plus visuels et que le pseudo-code est une description dactylographiée du code [voir les exemples ci-dessous].

Exemple de pseudocode
Exemple d'organigramme

Cela permet au concepteur (vous) de travailler sur la logique du code avant de le créer, ce qui facilite grandement le processus de conception.