Arduino: Apprentissage Ludique
Arduino: Apprentissage Ludique
Theorical Training
Une approche par la théorie, même si elle reste possible, serait contre-
productive. La meilleure preuve que l’Arduino est parfaitement adapté aux
élèves et étudiants est qu’en quelques leçons, ils sont déjà prêts à réaliser
des projets concrets.
Arduino Versus Ordinateur
En général, on dit qu’un être humain est constitué d’un corps et d’une âme,
donc d’une pensée. Si tu n’avais pas de corps, tu ne pourrais sans doute pas
te rendre compte que tu penses, donc tu ne pourrais sans doute pas penser.
» un processeur pour traiter les données et faire les calculs (la CPU*);
» un espace de stockage mémoire pour les instructions à exécuter et les données
qu’il manipule ;
» des moyens pour communiquer avec l’extérieur, qui sont ses ports d’entrée et
ses ports de sortie.
Arduino Nano : Une version compacte d'Arduino, le Nano est souvent utilisé dans des projets où
l'espace est limité. Il conserve la plupart des fonctionnalités de l'Arduino Uno.
Arduino Mega : L'Arduino Mega offre plus de broches d'entrées/sorties que l'Arduino Uno, ce qui le
rend adapté à des projets plus complexes nécessitant un grand nombre de connexions.
Arduino Due : Basé sur une architecture ARM, l'Arduino Due offre une puissance de traitement plus
élevée que les modèles basés sur AVR comme l'Arduino Uno. Il est souvent utilisé pour des projets
nécessitant des calculs plus intensifs.
Arduino Leonardo : L'Arduino Leonardo utilise un microcontrôleur différent de l'Arduino Uno,
offrant des fonctionnalités telles que l'émulation de périphériques USB, ce qui le rend adapté à
certaines applications spécifiques.
Arduino Pro Mini : Une version minimaliste conçue pour être intégrée dans des projets où l'espace
est critique. Il ne dispose pas d'un convertisseur USB-série embarqué comme l'Arduino Uno.
Arduino MKR Series : La série MKR d'Arduino est conçue pour les projets IoT (Internet des Objets) et
offre une connectivité intégrée telle que le Wi-Fi, le Bluetooth ou la communication LoRa.
Arduino Nano Every : Une version mise à jour du Nano avec un microcontrôleur ATmega4809,
offrant une meilleure performance et des fonctionnalités supplémentaires.
Pourquoi Arduino Uno?
L'Arduino Uno est souvent privilégié dans le cadre de l'enseignement et de la pédagogie pour
plusieurs raisons :
Simplicité d'utilisation : L'Arduino Uno est conçu de manière intuitive, avec une interface
simple et des fonctionnalités de base, ce qui le rend idéal pour les débutants. Son schéma de
broches facile à comprendre facilite la connexion des composants.
Documentation Abondante : En raison de sa popularité, l'Arduino Uno dispose d'une
abondance de ressources pédagogiques en ligne, y compris des tutoriels, des exemples de
code, et des forums de discussion. Cela facilite l'apprentissage pour les étudiants et les
enseignants.
Polyvalence : Bien que simple, l'Arduino Uno est suffisamment polyvalent pour être utilisé
dans une grande variété de projets. Cela permet aux étudiants d'explorer différents aspects
de l'électronique et de la programmation.
Communauté Active : L'Arduino Uno fait partie d'une communauté active d'utilisateurs, de
développeurs et d'éducateurs. Cette
communauté offre un soutien en ligne, des forums de discussion, et
encourage le partage de projets, ce qui enrichit l'expérience d'apprentissage.
Matériel Abordable : L'Arduino Uno est relativement abordable par rapport à
certaines autres plates-formes matérielles. Cela le rend accessible aux
établissements d'enseignement avec des budgets limités.
Compatibilité avec l'Environnement de Développement Arduino (IDE) :
L'Arduino Uno est compatible avec l'environnement de développement
Arduino (IDE), qui est convivial et adapté aux débutants. L'IDE facilite
l'écriture, la téléversement et le débogage du code.
Standardisation : En raison de sa position dominante dans le domaine de
l'éducation et de l'apprentissage, l'Arduino Uno est souvent choisi pour
maintenir une certaine standardisation dans les programmes éducatifs.
Schéma d'une platine Arduino Uno
Le microcontrôleur
D’un point de vue utilisation, il n’y a pas de différence entre les deux types
de microcontrôleurs. Les couleurs de l'Arduino peuvent varier du bleu au bleu-
vert, en fonction des modèles et années de production.
Arduino Uno avec Microcontrôleur DIP :
DIP (Dual In-line Package) : C'est un boîtier classique de composant électronique
qui a des broches traversantes, ce qui signifie que les broches du microcontrôleur
traversent la carte et sont soudées de l'autre côté.
Remplacement Facile : Si le microcontrôleur doit être remplacé ou mis à niveau,
cela peut être fait assez facilement en retirant le microcontrôleur DIP et en
soudant un nouveau composant à sa place.
Arduino Uno avec Microcontrôleur SMD :
SMD (Surface Mounted Device) : Dans cette variante, le microcontrôleur est
monté directement sur la surface de la carte, sans traverser les trous. Les soudures
sont appliquées sur la surface de la carte.
Espace Réduit : Ce type de montage est souvent utilisé pour économiser de
l'espace sur la carte, ce qui peut être particulièrement important pour les
conceptions compactes.
je vous propose de plonger d’abord dans la puce du microcontrôleur, le roi de
la carte. Nous verrons sa « cour » , les composants qui l’entourent, dans un
second temps.
Notre microcontrôleur est un ATmega328
1. Opérations arithmétiques
Lorsque tu veux réaliser une recette de cuisine, tu suis dans l’ordre les étapes
numérotées. Il n’y aurait aucun intérêt à sauter de l’étape 1 à l’étape 4 puis
à remonter vers les étapes 2 puis 3.
Le fonctionnement est linéaire : tu vas du début à la fin. Dans certaines
recettes, tu laisses reposer une partie de ce que tu prépares pour
confectionner, par exemple, une sauce qui sera ajoutée au plat. C’est une
sous recette. Quand la sauce est prête, tu reprends la suite de la recette
principale.
Un programme dans un processeur est lui aussi constitué d’instructions qui se
suivent. Le processeur les exécute l’une après l’autre au rythme d’une
horloge (qui donne le tempo pour passer à l’instruction suivante).
Cependant, tu peux décider avec une instruction de branchement de sauter
certaines instructions pour continuer l’exécution un peu plus loin puis revenir,
ce qui donne une souplesse infinie.
5. Opérations de test.
C’est cette dernière catégorie d’instructions que tu combines avec la
précédente pour décider de changer le comportement du programme en
fonction d’une valeur qui peut être comparée à 0, ou à une autre valeur pour
savoir si elle est égale, inférieure ou supérieure, etc.
Il existe une dernière catégorie d’instructions : celles qui servent à manipuler
les signaux électriques bit par bit.
Les résultats de ces traitements peuvent être rendus disponibles sur des
broches de sortie de la puce ATmega qui sont disponibles sur les connexions
marquées DIGITAL de ta carte Arduino. Sur chacune des broches de sortie, il
peut y avoir soit une tension de 5 volts, soit pas de tension (0 volt).
Lorsqu’il exécute des instructions, le processeur Atmel ATmega328 consomme
environ 10 mA, soit 0,05 watts alors qu’un processeur de milieu de gamme
actuel consomme environ 1 000 fois plus (50 watts).
Mieux encore, lorsque le processeur ATmega bascule en veille, c’est-à-dire au
repos (mais prêt à se réveiller s’il arrive quelque chose sur une broche
d’entrée), la consommation descend à 0,1 µA (micro-ampère, encore 100 000
fois moins).
C’est ce qui permet d’utiliser des cartes Arduino pour toutes sortes de
montages sur piles en domotique, en électronique de loisirs, dans les
voitures, l’électroménager, les jouets, etc.
L’alimentation
Les connexions entre les composants sont réalisées par des jumpers, sortes de
petits câbles
Une alimentation non stabilisée, aussi appelée alimentation non régulée, est une
source d'alimentation électrique qui fournit une tension sans régulation active. Cela
signifie que la tension fournie peut varier en fonction des fluctuations de la tension
d'entrée, de la charge connectée et d'autres facteurs externes.
La platine d’expérimentation
Le logiciel Arduino IDE fonctionne sur Mac, Windows et Linux. C'est grâce à ce
logiciel que nous allons créer, tester et envoyer les programmes sur l'Arduino.
Règle 1:
L’électricité statique tue les microprocesseur ! Une mise en garde : en
fonction des habits que tu portes, il est possible que tu accumules sans le
savoir de l’électricité statique. Tu as peut-être déjà reçu une décharge en
enlevant un pull ou un T-shirt.
Pour éviter de détruire ta carte avant même d’avoir joué avec, touche par
exemple un radiateur ou une poignée de porte, puis sors-la de son emballage.
Dans tous les cas, ne touche pas inutilement les contacts sur le dessous du
circuit.
Règle 2:
Avant de commencer à programmer la tête baissée, il faut, avant toutes
choses, tester le bon fonctionnement de la carte. Car ce serait idiot de
programmer la carte et chercher les erreurs dans le programme alors que le
problème vient de la carte !
Ouvrir un programme Nous allons choisir un exemple tout simple qui consiste
à faire clignoter une LED.
Avant d'envoyer le programme Blink vers la carte, il faut dire au logiciel quel
est le nom de la carte et sur quel port elle est branchée.
Choisir la carte que l'on va programmer. Ce n'est pas très compliqué, le nom
de votre carte est indiqué sur elle. Pour nous, il s'agit de la carte "Uno".
Allez dans le menu "Tools" ("outils" en français) puis dans "Board" ("carte" en
français). Vérifiez que c'est bien le nom "Arduin Uno" qui est coché. Si ce n'est
pas le cas, cochez-le.
3ème étape
Choisissez le port de connexion de la carte. Allez dans le menu Tools, puis
Serial port. Là, vous choisissez le port COMX, X étant le numéro du port qui
est affiché. Ne choisissez pas COM1 car il n'est quasiment jamais connecté à
la carte.
Dernière étape
Très bien. Maintenant, il va falloir envoyer le programme dans la carte. Pour
ce faire, il suffit de cliquer sur le bouton Upload (ou "Télécharger" en
Français), en jaune-orangé sur la photo :
En bas dans l'image, vous voyez le texte : "Uploading to I/O Board...", cela
signifie que le logiciel est en train d'envoyer le programme dans la carte. Une
fois qu'il a fini, il affiche un autre message :
Le message afficher : "Done uploading" signale que le programme à bien été
chargé dans la carte. Si votre matériel fonctionne, vous devriez avoir une LED
sur la carte qui clignote : Si vous n'obtenez pas ce message mais plutôt un
truc en rouge, pas d'inquiétude, le matériel n'est pas forcément défectueux!
En effet, plusieurs erreurs sont possibles.
Toutes ces étapes, vous devrez les faire avant d’utiliser la carte pour vérifier
son bon fonctionnement. C’est très important !
Pour pouvoir programmer notre carte, il nous faut trois choses :
Un ordinateur
Une carte Arduino
Et connaitre le langage Arduino
C’est ce dernier point qu’il nous faut acquérir!!
Le but même de cette présentation est de vous apprendre à programmer avec
le langage Arduino.
Cependant, ce n’est qu’un cours que vous pourrez parcourir lorsque vous
devrez programmer tout seul votre carte. En effet, c’est en manipulant que
l’on apprend.
Le code minimal Avec Arduino, nous devons utiliser un code minimal lorsque
l'on crée un programme. Ce code permet de diviser le programme que nous
allons créer en deux grosses parties.
Vous avez donc devant vous le code minimal qu'il faut insérer dans votre
programme. Mais que peut-il bien signifier pour quelqu'un qui n'a jamais
programmé ?
La fonction
Dans ce code se trouvent deux fonctions. Les fonctions sont en fait des portions de
code.
Cette fonction setup() est appelée une seule fois lorsque le programme
commence. C'est pourquoi c'est dans cette fonction que l'on va écrire le code qui
n'a besoin d'être exécuté une seule fois. On appelle cette fonction : "fonction
d'initialisation". On y retrouvera la mise en place des différentes sorties et
quelques autres réglages. C'est un peu le check-up de démarrage. Imaginez un
pilote d'avion dans sa cabine qui fait l'inventaire :
A titre informatif, on n'est pas obligé d'écrire quelque chose dans ces deux
fonctions. En revanche, il est obligatoire de les écrire, même si elles ne
contiennent aucun code !
Les instructions
Les points virgules ( ; ) sont synonymes d'erreurs car il arrive très souvent de
les oublier à la fin des instructions. Par conséquent le code ne marche pas et
la recherche de l'erreur peut nous prendre un temps conséquent ! Donc faites
bien attention.
Les accolades sont les "conteneurs" du code du programme. Elles sont propres
aux fonctions, aux conditions et aux boucles.
Les instructions du programme sont écrites à l'intérieur de ces accolades.
Parfois elles ne sont pas obligatoires dans les conditions, mais je recommande
de les mettre tout le temps ! Cela rendra plus lisible votre programme.
Les commentaires
Pour finir, on va voir ce qu'est un commentaire.
Ce sont des lignes de codes qui seront ignorées par le programme. Elles ne
servent en rien lors de l'exécution du programme
Mais alors c’est inutile!!
NONNNNNN .. car cela va nous permettre à nous et aux programmeurs qui
lirons votre code de savoir ce que signifie la ligne de code que vous avez
écrite. C'est très important de mettre des commentaires et cela permet aussi
de reprendre un programme laissé dans l'oubli plus facilement !
Si par exemple vous connaissez mal une instruction que vous avez écrite dans
votre programme, vous mettez une ligne de commentaire pour vous rappeler
la prochaine fois que vous lirez votre programme ce que la ligne signifie.
Ligne unique de commentaire :
Imaginons que vous avez connecté un bouton poussoir sur une broche de votre
carte Arduino. Comment allez-vous stocker l'état du bouton (appuyé ou
éteint) ? Une variable, qu'est ce que c'est ?
Une variable est un nombre. Ce nombre est stocké dans un espace de la
mémoire vive (RAM) du microcontrôleur. La manière qui permet de les stocker
est semblable à celle utilisée pour ranger des chaussures : dans un casier
numéroté.
Une variable est un nombre, c'est tout ?
Ce nombre a la particularité de changer de valeur. Etrange n'est-ce pas ? Et
bien pas tant que ça, car une variable est en fait le conteneur du nombre en
question. Et ce conteneur va être stocké dans une case de la mémoire.
Si on matérialise cette explication par un schéma, cela donnerait :
nombre => variable => mémoire
Code 1: faire clignoter une LED sur la
broche 13
Observations:
Ce code permet de faire clignoter la LED D1 située sur la broche 13. Une LED,
soudée sur l'Arduino et reliée à la broche 13 clignote elle aussi. La résistante
R1 de 220Ω sert à abaisser la tension et éviter que la LED ne grille.
Le résultat est donc que la LED s'allume pendant ½ seconde, puis s'éteint
Le résultat est donc que la LED s'allume pendant une ½ seconde puis s'allume
pendant ½ seconde... elle clignote donc.
Que signifie le terme Output?
Il s’agit de préciser si la broche est une entrée ou une sortie. En effet, le
microcontrôleur a la capacité d'utiliser certaines de ses broches en entrée
(INPUT) ou en sortie (OUTPUT).
Il suffit simplement d’interchanger une ligne de code pour dire qu'il faut
utiliser une broche en entrée (récupération de données) ou en sortie (envoi
de données). Cette ligne de code doit se trouver dans la fonction setup(). La
fonction est pinMode(), comme dans l'exemple ci-dessous:
Astuce: Comme il y a déjà une résistance et une LED soudée à la l'Arduino et
branchées sur la broche 13, il est possible d'installer directement une LED
entre la broche et la terre (GND).
Exemple 2: faire clignoter 4 LEDs
Voici le montage à réaliser. Les LEDs sont connectées aux broches 10 à 13.
Liste des composants
4 LEDs
4 résistances de 220 à 470Ω
6 câbles
Ce code fait clignoter 4 Leds
Quelques alternatives et solutions
couramment utilisées dans l'industrie pour
remplacer ou compléter Arduino :
Raspberry Pi : Bien que le Raspberry Pi soit souvent utilisé dans des projets similaires à
Arduino, il offre une puissance de calcul plus importante et peut être utilisé pour des
applications plus avancées, telles que des systèmes embarqués et des applications de
traitement de données.
Microcontrôleurs Industriels : Des microcontrôleurs spécifiquement conçus pour des
applications industrielles peuvent être utilisés. Des entreprises proposent des
microcontrôleurs industriels qui offrent une robustesse, une fiabilité et des fonctionnalités
adaptées aux environnements industriels.
PLC (Automate Programmable Industriel) : Dans l'industrie, les automates programmables
industriels (PLC) sont couramment utilisés pour le contrôle et l'automatisation des processus.
Ils sont conçus pour une utilisation industrielle et offrent des fonctionnalités avancées.
Cartes de Développement Propriétaires : Certaines entreprises développent leurs propres
cartes de développement ou plates-formes matérielles spécifiques pour répondre à leurs
besoins particuliers en matière de contrôle et d'automatisation.
Arduino Industriel (Arduino-compatible) : Il existe également des versions d'Arduino conçues
pour des applications industrielles. Ces versions peuvent être adaptées pour répondre à des
exigences plus strictes en matière de fiabilité et de durabilité.
Arduino et Raspberry Pi sont deux plates-formes populaires utilisées dans le domaine de
l'électronique et de l'informatique embarquée, mais elles diffèrent par leurs conceptions,
leurs fonctionnalités et leurs applications typiques. Voici quelques différences clés entre
Arduino et Raspberry Pi :
Fonction Principale :
Arduino : Il s'agit d'une plate-forme de prototypage électronique basée sur des
microcontrôleurs. Arduino est principalement utilisé pour des projets qui nécessitent le
contrôle d'entrées/sorties (E/S) et l'interaction avec des capteurs et des actionneurs.
Raspberry Pi : C'est un petit ordinateur monocarte qui peut exécuter un système d'exploitation
complet. Raspberry Pi est capable d'exécuter des applications plus complexes, y compris des
logiciels, des serveurs, et même des projets liés à l'intelligence artificielle.
Matériel :
Arduino : Il utilise des microcontrôleurs dédiés avec des E/S (Entrées/Sorties) pour la
connexion à des composants électroniques.
Raspberry Pi : Il intègre un processeur, de la mémoire, des ports USB, HDMI, Ethernet, etc.,
offrant une expérience informatique complète.
Arduino VS Rasberry
Système d'Exploitation :
Arduino : Il n'utilise pas un système d'exploitation traditionnel. Les programmes
sont téléchargés directement sur le microcontrôleur et s'exécutent de manière
séquentielle.
Raspberry Pi : Il fonctionne avec un système d'exploitation complet, généralement
une distribution Linux, comme Raspbian. Cela permet l'exécution de plusieurs
tâches simultanées et l'utilisation de logiciels plus complexes.
Utilisations Typiques :
Arduino : Il est souvent utilisé pour des projets embarqués, des objets connectés,
des systèmes de contrôle et d'automatisation simples.
Raspberry Pi : Il convient à une gamme plus large d'applications, y compris les
serveurs web, les médias centers, les projets de robotique plus avancés,
l'apprentissage machine, et d'autres applications informatiques.
Flexibilité et Facilité d'Utilisation :
Arduino : Plus simple et orienté vers les débutants en électronique, il est souvent
utilisé dans des projets pédagogiques.
Raspberry Pi : Plus puissant et flexible en termes de capacités informatiques, il
nécessite une certaine connaissance en informatique.
En résumé, Arduino est idéal pour des projets électroniques simples et des
tâches de contrôle, tandis que Raspberry Pi est plus adapté pour des projets
informatiques plus complexes et des applications nécessitant un système
d'exploitation complet. Le choix entre les deux dépend des besoins
spécifiques du projet.