Initiation à Arduino

Un peu d'histoire

Arduino est né... dans la petite ville d'Arduino en Italie !

Arduino

  • Prix: 5~10 euros

  • Langage: Dérivé du C++

  • Communauté: ENOOORME

Une infinité de capteurs

IDE

Un IDE, c'est un environnement de développement ! C'est comme un éditeur de texte, mais avec plein d'outils en plus intégrés pour aider les développeurs :)

Faire clignoter des leds

On va utiliser des fonctions pour faire marcher notre code.

 

Une fonction, c'est comme une boîte dans laquelle on va ranger toutes nos instructions et dire à notre carte et nos capteurs ce qu'ils doivent faire.

Plutôt que de réécrire le code plein de fois, on va juste faire appel au tiroir et le tour est joué ! Par exemple, je veux démarrer ma voiture :

 

fonction demarrer_la_voiture {

   prendre la clef ;

   la mettre dans le contact ;

   tourner ;

}

 

Maintenant, quand je veux démarrer la voiture j'ai juste à faire appel à la fonction "demarrer_la-voiture" !

Ouvrez l'IDE Arduino, vous verrez deux fonctions déjà pré-écrites et prêtes à être remplies

La fonction "setup()" est exécuté une seule fois au démarrage

Elle nous sert à déclarer quelles pins on va utiliser et comment

La fonction "loop()" est exécuté en boucle

C'est là où on va mettre toutes nos instructions, consignes, bref tout ce qu'on va demander à notre carte d'exécuter !

Digitale

Analogique

Pour récupérer ou envoyer une information binaire.

Exemple, la porte est ouverte ou elle est fermée.

Pour récupérer ou envoyer une information complexe.

Exemple, il fait X degrés aujourd'hui

Les petits trous noirs sur la carte s'appellent des pins. On y branche des fils, qu'on va reliés à des capteurs. Il existe deux sortes de pins :

Digital ou analogique?

On veut savoir si l'ampoule est allumée. Pins digitales ou analogiques ?

On veut savoir si l'ampoule est allumée, on utilise des pins digitales ou analogiques ?

Digital ou analogique?

On veut savoir le poids mesuré par la balance. On utilise des pins digitales ou analogiques ?

Exercice 1 :

Allumer 1 led

Pins digital

Dans quel sens ça se lit une led ?

Breadboard / Arduino

Cathode

Anode

 

GND

13

 

INPUT           OUTPUT

J'ouvre le courant ou je ferme le courant

Je veux savoir si le courant est ouvert ou fermé

Je récupère une information

Je fais une action

pinMode(pinNumber*, OUTPUT);

Initialisation du programme (dans setup):

*pinNumber : remplacer ce terme par le numéro de la pin que vous allez utiliser

Faire une pause

delay(delayInMilliseconds*);

Faire passer du courant

digitalWrite(pinNumber, HIGH);

Couper le courant

digitalWrite(pinNumber, LOW);

*delayInMilliseconds : faire une pause de X millisecondes entre deux actions.

1000 millisecondes = 1 seconde

Les actions du programme (dans loop):

Vous avez tout ce qu'il vous faut pour faire votre programme : à vous d'essayer ! :)

 

Faîtes le tous seuls, et quand vous pensez avoir fini les enfants de la Lego League vous montreront comment mettre le code sur la carte !

 

Au moindre souci, hésitez pas à faire appel à Léo :)

Et voici le code final !

Vous avez réussi à trouver ? :)

Exercice 2 :

Faire un chenillard de leds

Breadboard / Arduino

-

+

+

+

+

GND

13

12

11

10

Faire une pause

delay(delayInMilliseconds);

Faire passer du courant

digitalWrite(pinNumber, HIGH);

Couper le courant

digitalWrite(pinNumber, LOW);

Et si on complexifiait tout ça ?

Et si on parlait en Morse ?

Sur votre table, vous avez une clef USB. Mettez la dans l'ordinateur et ouvrez le fichier "morse_code.ino"

De quoi vous aurez besoin ?

Breadboard / Arduino

-

+

+

+

GND

13

12

11

 

Les branchements sont faits ?

Passons à la programmation !

Les branchements sont faits ?

Passons à la programmation !

 

Déchiffrons ensemble le code

Étape 1 : déclarer nos variables

Étape 2 : déclarer notre setup

*Serial Begin : déclarer la vitesse de communication entre le moniteur et la carte Arduino

Étape 3 : initier nos actions

On explique à Arduino qu'il doit lire ce que lui envoie le moniteur, le ranger dans la variable "input" et selon ce qu'il reçoit d'afficher les différentes lettres, en minuscule ou majuscule...

Étape 3 : initier nos actions

mais aussi avec les chiffres et la barre espace, pour pouvoir séparer les mots/nombre !

Étape 4 : afficher dans le moniteur

On demande à Arduino d'afficher les lettres qu'on a sauvegardé dans la variable "input"

Étape 5 : faire clignoter les leds

On créé une fonction pour chaque lettre, qui indiquera à la led comment clignoter

Étape 6 : on déclare les fonctions liées aux leds

Comme ça on sait combien de temps dure un point, un trait et les différents espaces (entre les lettres et entre les mots)

Vous avez tout compris ?

Maintenant à vous de jouer !

Vous devez compléter le code qui manque :)

Faire une pause

delay(delayInMilliseconds);

Faire passer du courant

digitalWrite(pinNumber, HIGH);

Couper le courant

digitalWrite(pinNumber, LOW);

Vous ne pouvez utiliser que ces morceaux de code.

A vous de les remettre dans l'ordre !

Fonction point

dot();

Fonction trait

dash();

Fonction shortspace

shortspace();

Place à la restitution !

Initiation à Arduino - Code Morse

By juliegarnier

Initiation à Arduino - Code Morse

  • 1,055