Aide-mémoire
Introduction
Vous trouverez ici un récapitulatif des principales fonctions utilisables dans les langages Arduino et MicroPython. Ainsi, vous pourrez vous y référer sans avoir à parcourir tout le livre.
Langage Arduino

Langage Arduino
1. Structure d’un sketch
Un programme Arduino valide doit au moins intégrer les fonctions setup et loop. Tous les autres éléments sont facultatifs, mais doivent être placés au bon endroit.
Voilà un exemple de programme Arduino :
#include <mabibliotheque.h> //Déclaration des bibliothèques
const int CONSTANTE1 = 10; //Déclaration des constantes
int variableglobale1 = 1; //Déclaration des variables globales
void setup() { // S'exécute une seule fois
Serial.begin(9600); // Initialise le moniteur série
pinMode(9, OUTPUT); // Définition des entrées/sorties
}
void loop() { // Boucle infinie
int variablelocale1 = 2; //Déclaration d'une variable locale
Instruction1; // Instructions
fonction1(); // Appel de la fonction1
}
void fonction1() { // Définition des fonctions
int variablelocale2 = 5; //Déclaration d'une variable locale
Instruction2; // Instructions de la fonction1
Instruction3;
}
Point-virgule
Chaque instruction doit être suivie d’un point-virgule (à part quelques exceptions). Si vous oubliez un point-virgule, cela entraîne une erreur de compilation. Le texte d’erreur peut être évident et se référer au point-virgule manquant, ou être un peu plus obscur. En cas d’erreur de compilation, la première chose à vérifier est une absence de point-virgule aux alentours de la ligne indiquée par le compilateur.
int x = x + 2;
Accolades
Les accolades sont utilisées dans les fonctions, les boucles et les conditions. Une accolade ouvrante « { » doit toujours être accompagnée d’une accolade fermante « } ». Si vous ne respectez pas cette règle, vous obtiendrez une erreur lors de la compilation (c’est certainement la deuxième erreur la plus fréquente, juste après le point-virgule).
L’IDE Arduino possède une fonctionnalité très utile pour vérifier que cette règle est respectée. Sélectionnez simplement une accolade (ou cliquez sur le point d’insertion juste après) et l’autre accolade apparaîtra en surbrillance.
Pour éviter les erreurs, il est conseillé d’ajouter l’accolade de fermeture immédiatement après une accolade d’ouverture. Insérez ensuite quelques sauts de lignes entre les deux et commencez à ajouter les instructions.
Commentaires
Ils sont très utiles pour expliquer le code. C’est certainement le seul endroit où les accents sont autorisés. Ils sont aussi utilisés pour désactiver certaines parties du code lors de la recherche de bugs (débogage).
// Commentaire sur une seule ligne
/*
Les commentaires multilignes sont utilisés lorsque les commentaires nécessitent
plusieurs lignes.
*/
Généralement, l’instruction return est utilisée pour envoyer le résultat d’une fonction. Mais comme elle arrête la fonction en cours, elle peut aussi être utilisée sans valeur pour désactiver une partie du code. Dans cet exemple, l’instruction Instruction2 est ignorée.
void loop(){
Instruction1; //Cette instruction est exécutée
return;
Instruction2; //Cette instruction est ignorée
}
#define
Il s’agit d’une commande en langage C qui permet de créer une constante. Sa syntaxe est légèrement différente des instructions habituelles (pas de point-virgule ou de signe égal et elle est précédée du signe #).
#define MACONSTANTE 12
Cette commande peut parfois poser quelques problèmes, il est donc conseillé de la remplacer par l’instruction suivante :
const int MACONSTANTE = 12;
#include
Cette commande (qui utilise la même syntaxe que define) doit être utilisée en début de sketch pour pouvoir faire appel aux fonctions supplémentaires contenues dans une bibliothèque. Il faut évidemment avoir installé la bibliothèque dans l’IDE Arduino avant de pouvoir l’utiliser.
#include <mabibliotheque> // Permet d'utiliser une bibliothèque
2. Moniteur série
Le moniteur série permet de transmettre des informations à l’ordinateur lorsqu’il est relié à l’Arduino. Pour l’ouvrir, allez dans Outils - Moniteur série ou cliquez sur la loupe en haut à droite. Il faut éviter les caractères accentués, qui ne sont pas forcément bien supportés, et éviter d’utiliser (sur certains modèles d’Arduino) les pins 0 et 1 en même temps, car elles sont employées par la communication série.
void setup() {
Serial.begin(9600); // initialisation et vitesse de transmission
}
void loop() {
Serial.print("Salut les amis"); //Sans saut de ligne
Serial.println("Salut les amis"); // Avec saut de ligne
}
3. Fonctions
a. Fonctions de base
Un sketch Arduino doit obligatoirement comporter ces deux fonctions :
void setup() { // S'exécute une seule fois
}
void loop() { // Boucle infinie
}
b. Fonctions personnalisées
Vous pouvez créer vos propres fonctions pour éviter de répéter plusieurs fois le même code.
Fonctions sans arguments - void
// ------------------ S'exécute une seule fois --------
void setup() {
}
// ------------------ Boucle infinie ------------------
void loop() {
fonction1(); // Appel de la fonction1
fonction2();...MicroPython

Langage MicroPython
1. Structure d’un programme
Modules (ou bibliothèques)
Au début du programme, il faut appeler le (ou les) module(s) dont vous aurez besoin. Mais il est possible d’importer seulement les fonctions nécessaires.
# Importation du module "time"
import time
# Importation de la fonction "pin" du module "machine"
from machine import Pin
Indentation
En MicroPython, l’indentation est obligatoire. Elle sert à différencier les instructions contenues dans les conditions, les boucles ou les fonctions.
while True:
# En MicroPython, l'indentation est obligatoire
Commentaires
Une ligne de code commençant par # (dièse) est un commentaire.
# Les commentaires sont ignorés par le programme
Caractères spéciaux
# Les caractères spéciaux ou accentués sont seulement
# acceptés dans les commentaires
Casse
# Attention à la casse "Micropython" et "MicroPython"
# sont des mots complètement différents.
Fonctions
# Les structures de contrôle, les boucles et les fonctions
# personnalisées comportent 2 points ":" à la fin de la
# 1ère ligne (avant indentation)
Point virgule
Contrairement au langage Arduino, il n’y a pas de point-virgule à la fin d’une ligne.
2. Console
Vous pouvez saisir des commandes directement dans la console ou l’utiliser pour afficher des informations, comme avec le moniteur série de l’IDE Arduino.
Par exemple :
print('Hello, MicroPython!')
lumLED = 100
print("Luminosité de la LED: ",lumLED)
3. Données
a. variables
Les variables contiennent généralement du texte (chaînes de caractères) ou des nombres, mais il existe d’autres types de données moins courantes (booléenne, vide...). Pour créer une variable, il suffit de la déclarer. Le langage MicroPython détermine automatiquement le type de donnée, mais il est possible de le définir manuellement.
# Nombre entier (pas de guillemets)
variable1 = 2
# Nombre à virgule flottante
variable2 = 1.0
# Chaîne de caractères (guillemets)
variable3 = "Hello World"
variable4 = "123"
# Chaîne de caractères (apostrophes)
variable5 = 'Salut les amis'
# Booléenne (Attention à la majuscule)
variable6 = True
variable7 = False
b. Portée des variables
La portée d’une variable est la partie du programme où elle est reconnue. Cela dépend de l’endroit où elle a été créée. Si c’est à l’intérieur d’une fonction, la variable est locale.
Pour créer une variable globale, il faut la déclarer au début du programme. Ensuite, si vous souhaitez l’utiliser à l’intérieur d’une fonction, vous devez le préciser au début de la fonction, en utilisant l’instruction global).
# Importation des fonctions
from machine import Pin
from time import sleep
var01 = 45
def fonction():
global var01
var01 = 12
Il est préférable, dans la mesure du possible, de privilégier les variables locales. Elles occupent moins de place en mémoire car elles sont créées seulement lorsque le programme en a besoin, et sont ensuite effacées.
c. Liste
La liste permet de stocker de nombreuses variables en fonction d’un index (numéro) commençant toujours à zéro. Elle peut contenir les mêmes types de données que les variables et il est même possible qu’une liste en contienne plusieurs types. Les listes sont souvent utilisées avec des boucles qui permettent d’énumérer facilement les différents éléments.
# création d'une liste
liste = []
# création d'une liste en définissant trois éléments
liste = [123,"Hello",True]
# Ajout d'un élément à la fin
liste.append(458)
# Utilisation d'un élément (index 0, le 1er élément)
variable1 = liste[0]
# Connaître le nombre d'éléments de la liste
nbElements = len(liste)
En langage Arduino, la liste s’appelle un tableau.
d. Types de données
Vous pouvez convertir un nombre en chaîne de caractères ou inversement.
# Conversion en chaîne de caractère
variable1 = 147
variable1 = str(variable1)
# Conversion en nombre
variable2 = "25"
variable2 = int(variable2)
|
Nom |
Type de donnée |
|
int |
Nombre entier |
|
float |
Nombre à virgule flottante. Attention, le séparateur est un point ! |
|
str |
Chaîne de caractères |
|
bool |
Valeur booléenne True ou False |
|
list |
Liste |
|
complex |
Nombres complexes |
|
type |
Permet de connaître le type de donnée d’une variable |
4. Fonctions
Les fonctions permettent de créer de nouvelles instructions. Elles sont très utiles pour éviter de répéter des blocs de code, ce qui peut être source d’erreur et complique les modifications du programme.
a. Sans paramètres
Les parenthèses sont quand même nécessaires mais elles sont vides.
from machine import Pin, PWM
from time import sleep
def rose():
led_rougePWM.duty(0)
led_vertePWM.duty(1023)
led_bleuePWM.duty(600)
sleep(1)
while True:
rose()
b. Avec paramètres
Il est possible d’indiquer un ou plusieurs paramètres (séparés par une virgule et une espace).
from machine import Pin, PWM
from time import sleep
def led_rgb(rouge,vert,bleu,duree):
led_rougePWM.duty(rouge)
led_vertePWM.duty(vert)
led_bleuePWM.duty(bleu)
sleep(duree)
while...