IOT - TP 1 : L'environnement Arduino

Thomas S.

2016-2024

IOT - TP 1 : L'environnement Arduino

Sommaire

  • Blink
  • Interruption
  • Serial

Important

Pour mieux suivre ce cours, voici un support sous forme de mémo

IOT - TP 1 : L'environnement Arduino

Base de l'Arduino

2 fonctions essentiels :

  • void setup(); : Fonction permettant d'initialiser l'Arduino;
  • void loop(); : Fonction appelé automatiquement en boucle, après setup, actions sur l'Arduino.

Blink

Faire clignoter la LED du PIN 13

Zéro branchement

Fonctions :

  • pinMode( pin, INPUT/OUTPUT );
  • delay( microseconds ); : Équivalent à usleep(); (Ne sert à rien dans les interruptions);
  • digitalWrite( pin, LOW/HIGH );

Blink

Faire clignoter la LED du PIN 13

Blink

Faire clignoter une LED sur un autre pin

Blink

Faire clignoter une LED sur un autre pin

Blink

Fade Blink (PWM ou ~ pin)

analogWrite( pin, value ); : Permet d'envoyer une puissance de 0 à 5V (ou 3.3V) en mettant value de 0 à 255.

Blink

Fade Blink (PWM ou ~ pin)

Blink

Fade Blink (PWM ou ~ pin)

Pimp My R... ARDUINO : Avec une LED 3 couleurs, faire un fade mélangeant le rouge et bleu, le bleu et le vert et enfin le vert et le rouge. Et tout ça en boucle.

Blink

Interrupteur : Pourquoi une résistance relié au GND ?

  • Gauche : Les interférences envoient des faux positifs à l'Arduino;
  • Droite : Les interférences ne sont pas assez puissantes face au 0V.

Dans l'absolu il faudrait un condensateur autour de l'interrupteur pour éviter les rebonds (faux positifs mécaniques).

Blink

Interrupteur

bool isOn = digitalRead( pin ); : Permet de lire une valeur numérique sur une pinoche.

Objectif: Allumer la LED 13 si l'interrupteur est appuyé. Mettre un delay(2500); dans le loop.
On voit que l'on doit rester appuyé sur l'interrupteur 2.5s.

Serial

Exemple Arduino

Blink

Blink et interruption

Nécessite la 13 et un interrupteur.
Objectif : Allumer la LED 1 seconde après avoir interrompu le programme. (Voir diapo suivantes).

Blink

Blink et interruption

L'interruption mais en pause la fonction loop(). Elle doit être très courte.

attachInterrupt(digitalPinToInterrupt( pin ), fonction, type );

  • pin : Pins digitaux, voir détails sur le site officiel d'Arduino;
  • fonction : Lien une fonction de type void fonction();, il suffit juste de mettre fonction en paramètre;
  • type : HIGH, LOW, RISING ou FALLING

Une fonction partagée entre l'interruption et le reste doit être déclarée volatile, exemple volatile bool isPressed;

Blink

Blink et interruption

Serial

Serial

Débugger, il faut utiliser 2 méthodes (au moins) :

  • Dans le setup : Serial.begin( 9600 );
  • Où vous voulez : Serial.print( VAR ); Serial.println( VAR )
    VAR est un "texte" ou une variable.

Dans l'IDE Arduino, vous avez en haut à droite: Le monitor et serial plotter.

Serial

Serial

Lire le Serial depuis le PC (par l'USB) :

Serial

Exemple JS et Arduino

Pour fonctionner, on utilsera une librairie NodeJS capable de lire le port série.

Serial

Exemple JS

Capteur analogue

Capteur analogue

Nécessite un capteur de mesure (LUX, db, hPa, ...).

Capteur analogue

Lecture d'une valeur analogue

Petit projet

Juste à temps ! (1/2)

Avec l'écran 7 segments de 4 chiffres faire un compteur de temps, objectif, appuyé sur l'interrupteur au bon moment.

Ajouter des LEDs pour indiquer la réussite du joueur ou non.

Envoyer des infos sur le port série.

Lire les données sur le port série de l'ordinateur.

Faire une petite IHM (page web, soft, ...) pour rendre le résultat plus sympa.

Petit projet

Juste à temps ! (2/2) - Règles

Faire un projet sur la forge, me rajouter en tant que membres. Mettre un schéma (Thinkercad), un README et le code source.

NE PAS APPELER LE PROJET docker_iot_... .

Dernière maj : Voir Github 🐻 1 /
Précédent
Suivant