Un des outils les plus utilisés pour se former à la programmation ou à l’électronique est la technologie Arduino. Ce tutoriel explique comment installer et utiliser le logiciel de programmation d’Arduino (IDE).
Matériel
- Ordinateur
- Carte Arduino
- Câble USB pour connecter l’Arduino à l’ordinateur
Installation du logiciel
Téléchargez la dernière version d’Arduino https://www.arduino.cc/en/Main/Software
Cliquez sur « I Agree »
Cliquez sur « Next > »
Cliquez sur « Install »
Le logiciel vous propose ensuite d’installer les drivers des cartes Arduino. Cliquez sur « Installer » les deux fois.
Attendez la fin de l’installation
Le logiciel Arduino est maintenant prêt à être utilisé.
Installation du driver CH340
Certains microcontrôleurs compatibles avec Arduino nécessite l’installation d’un driver supplémentaire: le driver CH340G. Pour cela vous pouvez télécharger l’installateur du driver CH340. Lancer le fichier .EXE, ainsi obtenu, et cliquer sur “install” lorsque cela vous est proposé.
Code de base
Le fichier .INO , créé par le logiciel Arduino et permettant la programmation des cartes, est basé sur les langages C et C++ et doit respecter une certaine architecture.
Le code contenu dans la fonction setup() sera exécuté une seule fois au lancement du programme. Elle sert généralement à l’initialisation des variables et des états du microcontrôleur.
La fonction loop() est la fonction principale du programme. Elle tourne en boucle après l’exécution de la fonction setup() et ce jusqu’à la mise hors tension du microcontrôleur.
C’est le minimum nécessaire pour que le code Arduino puisse compiler.
Par la suite des variables, des paramètres, des constantes, des sous-fonctions ainsi que des librairies peuvent être ajoutés
Charger le code sur la carte
Pour programmer la carte Arduino, il vous faut compiler le programme et le charger sur la carte. Ceci est possible grâce au logiciel Arduino.
Pour compiler et charger le programme, commencez par connecter la carte au PC. Dans le menu du logiciel, sous l’onglet “Outils”, à “Type de carte: “Arduino/Genuino UNO” > “, sélectionnez la carte à utiliser.
Ensuite, sous l’onglet “Outils”, à “Port >”, sélectionnez le port série utilisé par la carte.
Enfin, téléversez le programme en utilisant le bouton ou dans le menu “Croquis” à “Téléverser” ou encore en utilisant le raccourci clavier Ctrl+U.
Les LEDs RX/TX de la carte devraient se mettre à clignoter puis s’arrêter signe que le programme a bien été transféré.
Utiliser le moniteur série
Lorsque la carte est connecté à l’ordinateur, une fonctionnalité intéressante est d’utiliser le moniteur série pour pouvoir afficher des résultats provenant de la carte Arduino. Cela permet de vérifier le code plus simplement.
Pour tester votre carte, écrivez le code suivant:
void setup(){ Serial.begin(9600); Serial.println("Board is initilized with the setup function"); } void loop(){ Serial.println("The loop function is executed!"); delay(5000); }
Charger le code dans la carte.
Pour ouvrir le moniteur série, il suffit de cliquer sur le bouton en haut à droite de l’interface.
Note sur le langage de programmation
Déclaration des constantes
Le mot clé #define permet de déclarer des constantes. Ainsi, on leur donne un nom et leur valeur ne peut être changée lors de l’exécution du programme.
Deux avantages majeurs: elle permet de retrouver le sens d’une valeur rapidement à la lecture du code et elle prend moins de place en mémoire qu’une variable. Conventionnellement les noms de constante sont écrits en majuscule.
#define CONSTANT_NAME value
Variables et paramètres
Différent mots-clés existent pour définir des variables ou des paramètres. Afin de déclarer correctement une variable, il faut connaître son type
- int permet de déclarer des entiers (int a=3;)
- float des nombres réels (float a=3.5;)
- char des caractères (char a= «hello»;)
keyword nom_variable = intial_value;
Ou
keyword nom_variable;
Il est souvent conseiller de donner une valeur initiale pour maitriser ce qu’elle contient.
Vous pouvez aussi créer vos propres types de variable : ce sont des classes contenues dans des librairies.
N.B. : N’oubliez pas le point-virgule après chaque commande pour éviter les erreurs de compilation
Fonctions
Les fonctions sont généralement définies lorsqu’une partie du code est utilisé plusieurs fois dans le même programme. De la même manière que les variables, les fonctions sont définies avec un mot-clé car elles retournent un résultat dont le type doit être spécifié.
keyword function(keyword parameter){ return parameter; }
Toutefois, certaines fonctions ne retourneront aucun résultat dans ce cas on utilisera le mot-clé void.
Structure de condition
Une fois que les variables et fonctions sont déclarer, il faut dire au programme quoi faire avec. Pour cela, on utilise des structures de condition.
Les plus utilisées sont:
- if…else…
“Si j’ai cette condition, je fais ci; sinon, je fais ça”
Ex:
int valeur = 0; int a = 1; void setup(){ Serial.begin(9600); } void loop(){ if(valeur<=20){ Serial.println("Valeur est inferieure ou egale à 20"); a=1; } else if (valeur>100){ a=-10; } else { Serial.println("Valeur est superieure à 20"); a=5; } valeur+= a;//valeur=valeur+1; }
- for…
“Pour cette séquence de nombre je fais ça”
Ex:
void setup(){ Serial.begin(9600); } void loop(){ for(int i=0;i<20;i=i+1){ Serial.print("This iteration i = "); Serial.println(" i "); } }
- while…
“Tant que j’ai cette conditon, je fais ça”
Ex:
int valeur = 0; void setup(){ Serial.begin(9600); } void loop(){ while(valeur<10){ Serial.println("Code in the while loop is executed"); valeur+=1; } Serial.println("This code is executed after the while loop"); }
- switch…case…
“Dans tel ou tel cas, je fais ça”
Ex:
int valeur = 0; void setup(){ Serial.begin(9600); } void loop(){ switch(valeur){ case 1: Serial.println("Value is one"); valeur+=1; break; case 2: Serial.println("Value is two"); valeur+=1; break; default: Serial.println("Default value"); valeur+=1; break; }
- do…while
” Je fais ça, tant que j’ai cette conditon”
La différence avec le while est que le code est exécuté au moins une fois.
Ex:
int valeur = 0; void setup(){ Serial.begin(9600); } void loop(){ do{ Serial.println("Code in the dowhile loop is executed"); valeur+=1; }while(valeur<10); Serial.println("This code is executed after the dowhile loop"); }
Tableaux
Il est aussi possible de créer des tableaux qui contiennent plusieurs variables d’un même type. Ils sont déclarés de la même manière que les variables à la différence qu’il faut spécifier leurs dimensions, c’est à dire le nombre d’éléments contenu dans le tableau.
int integers[10];
Ou
char alph[5]={'a','b','c','d','e'};
Les tableaux peuvent être multidimensionnels. On peut donc définir des matrices par exemple.
int T[4][4]={{1,2,3},{4,5,6},{7,8,9}};
Pour modifier ou atteindre les éléments d’un tableau il est pratique d’utiliser une boucle for.
void setup(){ Serial.begin(9600); } void loop(){ for(int i=0;i<5;i++){ Serial.print("Value is : "); Serial.println(alph[i]); } for(int j=0;j<4;j++){ for (int k=0;k<4;k++){ Serial.print("Matrix element is : "); Serial.println(T[j][k]); if(T[j][k]%2==0){ T[j][k]=0; } } } }
Testez et combinez ces expressions pour obtenir les fonctionnalités que vous voulez.
Prochaines étapes
Sources
Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie