Qu'est ce qu'Arduino IDE ? Comment l'utiliser ? Comment Programmer sur Arduino ?

Introduction

L’environnement de développement intégré Arduino est un logicel de programation qui va faire l’interface entre votre carte Arduino et le programme. Le logiciel Arduino IDE possède un compilateur qui va transformer votre programme en langage machine compréhensible par la carte Arduino.

L’Arduino IDE est un dérivé du logiciel Processing. C’est un logiciel Open Source et il peut-être utilisé pour programmer des cartes autres qu’Arduino.

Vous avez deux manières de créer votre programme pour votre carte Arduino :

La programation par bloc, c’est à dire que vous placez des éléments sur un diagramme qui corresponds à des éléments de votre programme, comme un bloc boucle for ou bloc variable. 

Ceci fonctionne avec un module sur Arduino IDE appelé Ardublock.

La programation par ligne de code, qui est ce que l’on va faire ici.

Cela veut dire que vous allez directement écrire vous même les lignes en langage Arduino pour faire votre programme sans aide graphique.

Ou le télécharger ?

Vous pouvez télécharger le logiciel Arduino IDE sur le site Arduino. Il est disponlble sur Windows, Mac et Linux et open Source.

Vous pouvez aussi le retrouver sur store de votre système en tapant Arduino sur le Microsoft Store, Apple Store et Linux App store.

Découverte d'Arduino IDE

Le logiciel Arduino IDE possède plusieurs fonctionnalité qui vont vous être utile pour faire vos programmes.

I. Le menu

On va maintenant voir les fonctions les plus utiles du menu d’Arduino IDE.

  •  Fichier  : contient des exemples de programme déjà fait. On peut aussi changer la police du texte dans les préférences, ou imprimer notre programme.
  • Editer : On peut copier notre programme pour le mettre directement sur le forum Arduino, ou en html. Vous pouvez aussi trouver un mot dans votre programme, augmenter la taille de la police.
  • Croquis : Ce menu regroupe les mêmes fonctions que les boutons en dessous : vérification, téléversement. Vous avez en plus de quoi ajouter un fichier à votre projet et de gérer les librairies.
  • Outils : La partie outils contient le manageur de librairie, le moniteur série, les différentes carte Arduino que vous devez choisir pour téléverser.
  • Help : Contient toute les informations sur la version du logiciel et comment utiliser celui-ci.

II. Les boutons

On va maintenant voir les boutons les plus utiles d’Arduino IDE.

a) Bouton Vérifier

Le bouton vérifier permet au logiciel de compiler votre programme, c’est à dire le transformer en langage machine.

Celui-ci va vérifier si toute la syntaxe est correcte,c’est à dire que  vous n’avez pas oublié de point virgule ou de parenthèse par exemple. Si vous avez un problème de compilation, vous pouvez regader notre cours dessus.

b) Bouton Transférer

Le bouton transférer permet d’envoyer votre programme vers votre Carte Arduino.

Le logiciel va d’abord vérifier votre programme comme avec la fonction vérifier, vous aurez donc aussi les problèmes de syntaxe s’affichant.

 Puis ce programme sera envoyé par un câble sur la carte Arduino. Si vous avez des problèmes de téléversement vous pouvez regarder notre cours dessus.

c) Bouton  Nouveau Projet

Ce bouton va vous permettre de créer un nouveau programme. Le logiciel va ouvrir un second onglet donc vous ne perdrez pas votre premier projet.

d) Bouton Open

Ce Bouton permet d’ouvrir un programme déjà existant. Le programme va s’ouvrir dans une nouvelle page.

e) Bouton Sauvegarder

Il permet de sauvergarder votre programme.

Programmer sur Arduino

Le langage Arduino est dérivée du langage C et C++ qui à été simplifié. Ces deux langages sont très utilisés pour programmer des cartes électronique, c’est donc logiquement que le langage Arduino s’en inspire. En ouvrant un nouveau programme vous verrez deux fonctions,  void setup et void loop, on va voir comment cela fonctionne.

a) void setup ()

La fonction void setup se lance une seule fois au début du programme.

Elle permet d’assigner une valeur à une variable, d’associer un composant à une broche et d’intialiser une librairie ou le moniteur série.

b) void loop ()

Le fonction void loop va s’exécuter en boucle dans votre programme.

Cette fonction contient l’ensemble des actions de votre programme. C’est ici que vous allez allumer une led, contrôler un moteur

Comment est structuré un programme ? 

On va maintenant voir comment un programme est structuré pour que vous ayez une idée de ce qu’il vous faut pour contrôler vos composants. 

Il y a deux règles importantes pour commencer à coder en langage Arduino : 

  • Toute actions écrites doivent être terminé par un point virgule pour que la carte arduino comprennent que l’action est terminé.
  • Toute fonction commence et termine par des crochets, pour que la carte arduino comprenne quand commence et termine la fonction. 

 Ce sont deux choses que l’on oublie souvent quand on écrit notre programme et qui va poser problème lors de la vérification de celui-ci. 

Maintenant passons au programme.

Voici un exemple de programme que l’on va détailler :

 

const int Led = 2; // On déclare la Led
void setup() { //fonction d'initialisation 
   pinMode(Led, OUTPUT); //Led est assigné en broche de sortie
}
void loop() { //fonction principale qui s'exécute à l'infini
   digitalWrite(Led, HIGH); //allumer Led
}

I) Déclaration des variables

La première partie se situe avant le void setup. C’est ici que vous allez déclarer les variables de votre programme.  

A quoi servent les variables ? 

Les variables sont super utiles dans un programme car elles vont représenter le composant que vous voulez contrôler. C’est en changeant d’etat la variable que votre led va s’allumer ou s’éteindre. 

Donc si vous voulez allumé une led, vous pouvez declarer une variable LED. 

Avant le void setup vous pouvez aussi appeler des libraires dont vous aurez besoin pour piloter votre composant.  Pour cela vous devez appeler votre libraire avec des crochets.

On va voir quelques commandes clé souvent utile avant le void setup :

#include "Arduino Factory.h" // On inclue la librairie dont on va avoir besoin
const int pin_INTERRUPTEUR = 2; // L’interrupteur est attaché au pin 2

II. Dans le void setup

Le void setup est une fonction qui va s’exécuter qu’une seule fois au début du programme. Elle permet d’assigner une valeur à une variable, d’associer un composant à une broche et d’intialiser une librairie ou le moniteur série.

On va voir quelques commandes clé souvent utile dans un void setup :

void setup(){
  Serial.begin(9600); // Initialisation du moniteur série à 9600 bit/s ou bauds.
  Serial.println("IR Receiver Button Decode"); // On écrit un message dans le moniteur série au début du programme et une fois
  pinMode(2, OUTPUT); // Initialise la pin 2 en sortie
}

III. Dans Void Loop

Le fonction void loop va s’exécuter en boucle dans votre programme. Cette fonction contient l’ensemble des actions de votre programme. C’est ici que vous allez allumer une led, contrôler un moteur…

On va voir quelques commandes clé souvent utile dans un void loop :

void loop () {
  boolean etatBouton = digitalRead(pin_INTERRUPTEUR) ; // Récupère l’état du bouton branché sur un pin digital
  analogWrite(led_Broche, HIGH); // On envoie la valeur vers la LED branché en analogique
  scanf("%d", &value); // On demande à l'utilisateur d'entrée un nombre
  delay(30); // On attend avant de reposer la question 
}

Des notions de code importante

On va maintenant voir différente fonction que vous allez revoir souvent dans les programmes.

a) Boucle for

L’instruction for est utilisé pour répéter un bloc d’instruction contenu dans les accolades. C’est un compteur d’incrémentation qui va s’arrête une fois le compteur arrivé à la fin de son incrémentation. Il est utilisé pour des opérations répétitives.

for (int i = 0; i <= 255; i++) {
    //chose que vous voulez faire
  }

Ici la boucle for commence à 0 et s’incrémente jusqu’à 255. Cela veut dire que le bloc d’instruction va s’éxécuter 255 fois.

b) L’instruction Si

L’instruction if vérifie une instruction et exécute le bloc d’instruction dans l’accolade si la condition est vrai

int x=150;
if (x > 120) {
 // Code que vous voulez exécuter
}

Ici on peut voir que le code s’execute que si x est supérieur à 120.

c) Boucle while

Une boucle while va s’exécuter indéfiniment juqu’à ce qu’il y a dans la parenthèse deviennent faux.

var = 0;
while (var < 200) {
  // On fait quelque chose qui va se répéter 200 fois.
  var++;
}

Ici la boucle while va s’exécuter juqu’à ce que la variable var soit supérieur à 200.

d) les pauses

Dans beaucoup de programme, vous verrez des pauses au milieu de l’éxécution, pour par exemple que l’utilisateur puisse voir la valeur retourné par le capteur. Ceci fonctionne avec la fonction delay() qui est en milliseconde :

  delay(1000); // On attends une seconde

Des programmes déjà fait

Sur Arduino IDE, vous avez des codes déjà pré-fait. Ils peuvent vous être utile pour voir comment un composant fonctionnne et pour le tester rapidement.  On va retrouver ces codes dans fichier puis examples.

La partie exemple possède énormément de code qui vont vous être utile que vous soyez débutant ou expert. Il peut vous servir de code de base pour vos projets et il restera à le modifier pour qu’il s’adapte à ce que vous voulez !

Pour finir… Tester votre programme !

Une fois votre programme terminée, il est temps de vérifier qu’il est fonctionnel. Pour cela vous devez cliquer sur le bouton vérification que l’on a vu précédement.

 S’il y a écrit “Done compiling” alors votre code est correcte. Cela ne va pas dire qu’il va faire ce que vous voulez mais qu’il n’y a pas d’erreur de syntaxe.

Si vous avez une ligne en rouge c’est que vous avez surement fait une erreur de syntaxe…

Des problèmes pour compiler votre programme ?

Si vous avez des problèmes en cliquant sur vérifier le programme, c’est qu’il y a une erreur de syntaxe dans votre code. Pour cela vous pouvez aller voir notre cours sur les problèmes de compilation qui vous aidera à résoudre cette erreur.

Bonus : Comment fonctionne les librairies sur Arduino IDE ?

Pour faire fonctionner certain composant, une librairie va parfois être nécessaire.

Les librairies (ou bibliothèques) sont un ensemble de fonctions permettant de simplifier l’utilisation d’un capteur ou d’une fonctionnalité.

Dès qu’un programme Arduino contient une ligne commence par #include alors, il appelle une librairie.

Arduino IDE permet d’installer et de gérer des librairies en .zip ou depuis le manageur de bibliothèque. Pour cela on vous conseille notre cours sur les librairies pour en apprendre plus dessus !

Comment uploader son programme ?

Une fois le programme vérifié et terminé, il est temps de le téléverser sur la carte. Pour cela vous devez brancher votre carte Arduino sur votre ordinateur.

I. Choisir le bon type de carte

Le logiciel Arduino IDE ne va pas téléverser le programme de la même manière si c’est une carte Arduino Uno ou Nano, car le microprocesseur à l’intérieur n’est pas le même. On doit donc lui spécifier dans le board manager qu’elle carte on a choisit :

Si vous ne trouvez pas votre carte dans liste, vous pouvez cliquer sur Board Manager et télécharger le module correspondant à votre carte.

II. Choisir le Port COM

On va maintenant choisir le Port COM sur lequel est branché la carte Arduino. Souvent, le logiciel Arduino IDE vous le propose directement, comme ceci :

Il vous reste plus qu’à téléverser  le programme avec le bouton que l’on a vu plus tôt. si vous avez erreur c’est que vous avez une problème de téléversement.

Des problèmes pour téléverser votre programme ?

En téléversant votre programme, il se peut que vous rencontrez des problèmes, comme un carte Arduino non reconnue par exemple. Vous pouvez aller voir notre cours sur les problèmes de téléversement qui regroupe la plupart des soucis.

Le moniteur série

Le moniteur série est une interface entre l’utilisateur et la carte Arduino qui va recevoir des informations de la carte Arduino et les afficher sur Arduino IDE. Ces informations peuvent-être la température en degré donné par un capteur ou bien l’angle d’un servomoteur.

Le moniteur série peut s’ouvrir seulement quand la carte Arduino est connecté et que le programme est téléversé dessus. On peut l’ouvrir avec le bouton à gauche.

capteur de distance moniteur série

L’utilisateur peut aussi entrer des valeurs depuis le moniteur série pour contrôler un servomoteur par exemple.

Pour avoir des valeurs sur le moniteur série, vous devez le paramétrer dans votre code :

void setup() {
    Serial.begin(9600) ; // Initialisation de la communication avec le moniteur série (9600 bits/s)
}
void loop() {
    Serial.print("Distance en cm :"); // Permet d'afficher sur le moniteur série sur la même ligne
    Serial.println(distanceSensor.measureDistanceCm()); // Permet de sauter une ligne après le texte
}

Le moniteur série doit être déclarer avec un nombre précis de bit/s, ici 9600. Ceci va être utile pour capter les informations depuis le moniteur série. Il faut que le moniteur série et la valeur que vous avez donné sur la carte Arduino soit la même. Vous pouvez laissé par défaut 9600 bit/s si vous n’avez pas de projet qui nécéssite d’avoir une valeur précise.

Pour aller plus loin...

Arduino IDE est un environnement de programation parmis d’autre. L’Arduino est un monde open source avec de nombreuse solution pour programmer votre carte. Il existe notamment des environnements de programation par blocs, des environnements pour programmer votre carte en python…

a) Ardublock

Ardublock est un module que l’on ajoute sur Arduino IDE.

 Il permet de programmer sous forme de block. Vous pouvez créer des variables, des boucles, et contrôler vos composants. Une fois votre code terminé celui-ci s’affiche directement sous forme de programme dans Arduino IDE.

b) Pyfirmata

logo python

Vous avez toujours voulu contrôler votre carte Arduino depuis votre ordinateur en utilisant python et non le langage Arduino ? Vous avez Pyfirmata, une librairie Python basé sur le protocol Firmata.

c) Processing

Processing est un logiciel de programation qui permet de coder notre carte Arduino avec un environnment visuel artistique.

Processing utilise Java comme langage de programation. En plus de pouvoir coder votre carte comme sur Arduino IDE, vous allez aussi pouvoir travailler avec des animations artistique et les contrôler depuis votre carte Arduino à l’aide d’un joystick par exmeple.