Mathématiques & Arduino
Pierre Dusart, 12/03/2020
Le but est d’utiliser cet « écosystème » pour autre chose que des mesures physiques et sans
s’embêter avec des soudures. Une fois programmé, le système peut être autonome c’est-à-dire
sans la connexion au PC (mais avec une alimentation externe).
Trois temps :
- Montage Arduino
- Choix et chargement d’un programme déjà fait
- Création d’un programme simple (affichage LCD d’un indice de boucle, réglage
luminosité écran, clignotement Diode 13, communication Série…)
Etape 1 : Description du matériel
Arduino Uno (officiel 20 euros ; copie chinoise 7 euros)
LCD Keypad Shield Module 1602 with buttons (chinois 3 euros)
Module infrarouge avec télécommande : (chinois 1 euro)
Un ordinateur PC ou Mac avec le logiciel Arduino (téléchargé sur [Link])
Etape 2 : Connexions
Monter l’écran LCD sur l’Arduino en faisant attention à ne pas tordre les petites broches.
Il y a un sens !
Relier le PC à l’Arduino par un Câble USB.
Optionnellement, on peut brancher en plus le Module infrarouge.
Avec le câble fourni (câble dupont) avec ce module, connecter la broche
marquée « + » à la broche n°2 (Haut-Gauche) de la partie ICSP, la broche
marquée « - » à la broche n°6 (Haut-Droit) de la partie ICSP, et enfin la
broche « S » à la borne n°4 de l’ICSP (Haut-Milieu).
Version finale et version équivalente vue sur internet (si vous arrivez à vous repérer !)
Etape 3 : Logiciel
Le logiciel est « le Software Arduino IDE » téléchargé sur [Link] (version 1.8.12).
Le programme (appelé Sketch) contient deux parties principales : une fonction appelée setup()
lancée 1 fois au démarrage de l’Arduino et une fonction appelée loop() lancée juste après setup()
mais indéfiniment. Un fois créé ou recopié, le code est vérifié (compilation) avec la touche
Vérifier.
On choisira le type d’Arduino (Uno, Mega, …) dans le Menu Outils/Type de Carte et le port
USB utilisé (Outils/Port). Le programme sera ensuite transmis à l’Arduino avec la touche
Téléverser (icône flèche).
L’Arduino exécute alors indéfiniment ce programme (tant qu’il est sous tension).
Les programmes utilisent des fonctions liées aux composants électroniques qui ont été enfichés.
Il faut donc installer également leurs fonctions internes (appelée librairies) avant la compilation
(celles-ci sont indiquées par #include ). Nous aurons à installer les librairies <LiquidCrystal>
(pour l’écran LCD) et <IRremote> (pour le Module Infrarouge). Il faut aller dans le menu
Outils/Gérer les bibliothèques du logiciel Arduino.
Description générale d’un programme :
L’ensemble du programme est un code source dont le nom sera terminé par suffixe « .ino ». Il
y a au début une partie déclarative qui dit à l’arduino quelles broches sont connectées. Il y a des
broches numériques (à valeur 0 ou 1) en entrée ou sortie et des broches analogiques (à valeurs
entre 0 et 255).
Ensuite il y a différentes fonctions qui gèrent les événements (une entrée passe de 0 à 1, …) et
les actions à faire (afficher quelque chose, allumer un moteur, …)
void setup() {
// put your setup code here, to run once:
void loop() {
// put your main code here, to run repeatedly:
}
Pour étudier l’avancement ou le comportement du programme, on peut faire communiquer
l’Arduino grâce à l‘émulation d’une sortie série (intructions [Link] (9600) ; puis
[Link]()), ce qui est assez utile pour savoir ce qui ne fonctionne pas.
Etape 4 : Tester des programmes déjà faits
+ +
Programme 1 : Multiplication entre deux nombres plus petits que 10
Il s’agit de faire tester les connaissances à partir du CE2 des tables de multiplication. Le
programme dispose également des multiplications « à trous » pour préparer l’élève à la
division.
Programme 2 : Rapidité de convergence vers le nombre Pi
Trois versions d’algorithme sont proposées :
- Formule de Leibniz: 4*(1/1-1/3+1/5-1/7+1/9-…)
- Algorithme d'Al Kashi
- Variante Salamin/Brent
Et de comprendre les limites des ordinateurs…
Programme 3 : Programme GF256
Comprendre les algorithmes de multiplications rapides
Programme 4 : Fractales
Calcul d’une fractale et affichage sur la sortie série
Programme 5 : Pongduino
Célèbre jeu Pong adapté à l’Arduino (version pour LCD Keypad)
Programme 6 : Jeu Tuto
Jeu d’arcade : [Link]
Etape 5 : A vous de jouer… avec quelques liens internet
LED 13 : Il s’agit de faire clignoter une LED intégrée dans l’Arduino
[Link]
arduino/3285131-creez-votre-premier-programme-sur-arduino
Communication Série : imprimer quelque chose sur la sortie série
[Link]
arduino/3285146-faites-des-boucles-et-des-calculs
affichage LCD d’un indice de boucle : adapter Exercice sur Pi
+
Luminosité écran : Réglage de l’intensité du rétroéclairage de l’écran LCD par programme
[Link]
arduino-genuino-et-la-bibliotheque-liquidcrystal/
+
Etape 5 : Discussions, Variantes/Evolutions possibles
Voici quelques idées de programmes à réaliser :
Niveau CE2 :
Calcul multiplication à trou aléatoire : 3*2=? , 3*?=15, ...
Niveau Terminale :
Tirages aléatoires :
Jeu de roulette/ Dé : tirage uniforme
Distribution binomiale
Vitesse de convergence d'un algorithme : Convergence vers Pi
Suite récurrente linéaire, application LFSR
Calcul sur des nombres complexes :
addition, multiplication, inversion, représentation Moivre
Vérification code INSEE
Fractales
Jeux :
Simons
Recherche nombre entre 0 et 100 : Plus petit/ Plus grand.
Pong
Utilitaires :
Testeur de pile 0-5V : Mesurer le voltage à l’aide de l’une des entrées analogiques
Télécommande TV de remplacement