Cours - 4ème - Découverte de la maquette Arduino
La maquette comprend, en plus de la carte Arduino, 4 capteurs et 5 actionneurs.
Ils sont branchés sur les broches suivantes (les lettres D ou A ne sont pas toujours utilisées en programmation) :
| Broche | Composant | Broche | Composant | broche | composant |
|---|---|---|---|---|---|
| D11 (S) | Ventilateur | D8 (S) | Led verte | D4 (E) | Inverseur |
| D10 (S) | Led rouge | D6 (E) | Bouton gauche | D3 (S) | Servomoteur |
| D9 (S) | Led orange | D5 (E) | Bouton droit | A0 (E) | Potentiomètre |
Pour programmer la maquette (et réaliser cette activité) nous utilisons le logiciel mBlock.
Il doit être configuré de la manière suivante :
Chaque fois que la maquette sera connectée à l'ordinateur, il faudra aussi :
Par défaut mBloc est configuré en “Mode Scratch”. Pour les activités réalisées avec les maquettes, il faut :
Nous allons comparer des activités réalisées avec SCRATCH sur l'ordinateur et avec Arduino sur la maquette. Elles vont utiliser des capteurs et des actionneurs de type analogique et numérique.
Faites preuve de bon sens pour comprendre les algorithmes et choisir les blocs correspondants.
En mode ARDUINO, le bloc chapeau “Arduino: générer le code” remplace son équivalent SRATCH “Quand drapeau est cliqué”. Il faut aussi cliquer sur “Téléverser dans l'Arduino”, après l'avoir connecté au port COM, pour y transférer le programme avant de pouvoir l'utiliser la 1ère fois.
A chaque activité, lorsque chacun des 2 programmes fonctionnent, il faut faire cocher la fiche de suivi du professeur.
Utiliser une information numérique (0 ou 1) pour réaliser une action numérique (0 ou 1)
SCRATCH
RÉPÉTER indéfiniment
SI touche espace pressée
FAIRE montrer lutin
SINON
FAIRE cacher lutin
ARDUINO
RÉPÉTER indéfiniment
SI l'état logique du bouton gauche (est appuyée)
METTRE l'état logique led rouge à allumée
SINON
METTRE l'état logique led rouge à éteinte
Utiliser une information numérique (0 ou 1) pour réaliser une action analogique (-200 à +200 ou 0 à 255)
SCRATCH
METTRE variable X à 0
FAIRE aller le lutin à variable X (Y sans importance)
RÉPÉTER indéfiniment
SI touche flèche droite pressée ET variable X < 200
FAIRE variable X à X + 1
SI touche flèche gauche pressée ET variable X > -200
FAIRE variable X à X - 1
FAIRE aller le lutin à variable X (Y sans importance)
ATTENDRE 0.2 seconde
ARDUINO
METTRE variable X à 0
FAIRE envoyer sur la broche PWM led rouge la valeur X
RÉPÉTER indéfiniment
SI l'état logique du bouton droit ET variable X < 255
FAIRE variable X à X + 1
SI l'état logique du bouton gauche ET variable X > 0
FAIRE variable X à X - 1
FAIRE envoyer sur la broche PWM led rouge la valeur X
ATTENDRE 0.2 seconde
Utiliser une information analogique (0 à 1023) pour réaliser une action analogique (0 à 180)
SCRATCH
Créer la variable X au type potentiomètre avec un mini de 0 et un maxi de 180
METTRE variable X à 90
RÉPÉTER indéfiniment
FAIRE orienter le lutin à X
Agir sur le potentiomètre de la variable
ARDUINO
RÉPÉTER indéfiniment
METTRE variable X à la valeur de la broche analogique potentiomètre
METTRE variable X à X / 1023 * 180
FAIRE orienter le servomoteur de la broche servomoteur à X
Utiliser une information analogique (0 à 1023) pour réaliser une action numérique (0 ou 1)
SCRATCH
Créer la variable X au type potentiomètre avec un mini de 0 et un maxi de 180
RÉPÉTER indéfiniment
SI X < 60
DIRE "Faible" 2 secondes
SINON
SI X < 120
DIRE "Moyen" 2 secondes
SINON
DIRE "Fort" 2 secondes
Agir sur le potentiomètre de la variable
ARDUINO
RÉPÉTER indéfiniment
METTRE variable X à la valeur de la broche analogique potentiomètre
SI variable X < 341
METTRE l'état logique verte à allumée
METTRE l'état logique orange à éteinte
METTRE l'état logique rouge à éteinte
SINON
SI variable X < 682
METTRE l'état logique verte à éteinte
METTRE l'état logique orange à allumée
METTRE l'état logique rouge à éteinte
SINON
METTRE l'état logique verte à éteinte
METTRE l'état logique orange à éteinte
METTRE l'état logique rouge à allumée
Extension Arduino
Le code textuel du programme Arduino apparait dans la fenêtre de droite. Il est dérivé du langage C.