Formation Arduino Mblock 2023-12-16 11-56-9 950

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 18

Formation Arduino mBlock collège d’appui

1 Présentation de la carte Arduino UNO R3 :


Une carte Arduino est une petite (5,33 x 6,85 cm) carte electronique equipee d'un micro-contrôleur.
Le micro-contrôleur permet, à partir d'evenements detectes par des capteurs, de programmer et
commander des actionneurs ; la carte Arduino est donc une interface programmable.
Il y a 14 entrées/sorties Numériques ou logiques dont 6 digitales (PWM ou ~ (PWM = Pulse Width
Modulation ou Modulation de largeur d’impulsion)) et 6 entrées analogiques.
Une alimentation 5V et 3,3V, 3 bornes GND.

Les connecteurs ne peuvent fournir en sortie un courant supérieur à 40mA.


Vitesse d’horloge : 16MHz, Mémoire programme flash : 32kB, SRAM (volatile) : 2kB, EEPROM (non
volatile) : 1KB, donc elle n’est pas très rapide et n’a pas d’espace mémoire important.

1
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
2 Les trois signaux possibles :

3 Les entrées/sorties logiques (ou numériques ou digitales) :


Ceux sont des entrées binaires (tout ou rien) qui prennent donc le valeur 0 ou 1, etat haut ou état
bas, allumé ou éteint, marche ou arrêt,…

2
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
4 Les sorties PWM :
- Une sortie PWM sur une carte Arduino est une sortie Numrique dont les signaux ont toujours une
valeur LOW ou HIGH.
Mais le principe est de construire un signal qui est alternativement LOW et HIGH et de répéter très
vite cette alternance en faisant varier la fréquence du signal.
Dans le cas d'une DEL, elle est alternativement allumée et éteinte mais le cycle est tellement rapide
que la persistance rétinienne nous donne l’illusion d’une DEL allumée en permanence.
Prenons par exemple une période de 10ms, soit une fréquence de 100Hz. Si la DEL est allumée
pendant 5ms et éteinte pendant 5ms, comme sur la figure ci-dessous, l’impression sera une
luminosité de 50% de la luminosité maximum.

Si la DEL est allumée pendant 1ms et éteinte pendant 9ms, l’impression sera une luminosité de 10%
comme sur la figure ci-dessous.

Le pourcentage de temps passé à l’état HIGH sur la période du signal est appelé le rapport cyclique.
Il varie donc de 0%, le signal est tout le temps LOW, à 100%, le signal est tout le temps HIGH.

Dans le cas d'un moteur, c'est la vitesse de rotation qui sera variable en fonction de la fréquence
paramétrée…

- Sortie PWM sur une Arduino UNO : 3, 5, 6, 9, 10 et 11

- Tableau de correspondance :

3
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
5 Les entrés analogiques :
Les entrées analogiques A0 à A5.

Contrairement aux entrees/sorties numeriques qui ne peuvent prendre que deux etats HAUT et BAS,
ces six entrees peuvent admettre un millier de valeurs (1024 exactement) analogiques comprises
entre 0 et 5 Volts.

Nous pourrons donc avoir des valeurs de tension precises a 5 mV pres (≈ 5V/1024).

Soit la courbe analogique suivante (en noir) et le résultat de sa conversion numérique (en vert) :

Les entrées analogiques convertissent la valeur d'entrée (une tension entre 0 et 5V) en valeur
numérique sur 10 bits. Soit 1024 valeurs possibles de 0 à 1023.

4
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
6 Principe de câblage :
6.1 Acquisition ou entrée (Capteur, BP,…) :

Capteur R=10kΩ
+5V GND

A0ou D 1 Broche analogique ou logique

6.2 Actionneur ou sortie (éclairage,…) :


R=220Ω

3 GND
Broche LED
Etat haut : +5V
Etat bas : GND

7 Présentation du shiel GROVE :

7.1 Les capteurs à entrées logiques :


Bouton poussoir, Touche, Capteur de lumière, Détecteur de présence, Suiveur de ligne, …

7.2 Les capteurs sur entrées analogiques :


Potentiomètre, Joystick, Capteur de Température, ...

5
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
7.3 Actionneur sur sorties logiques :
DEL, Moteur (1sens), Relais, …

7.4 Le servomoteur :
Les servomoteurs sont des moteurs un peu particuliers, qui peuvent tourner avec une liberté
d'environ 180° et garder de manière relativement précise l'angle de rotation que l'on souhaite
obtenir.
Le moteur du servo entraîne un train d'engrenage qui lui permet de gagner en puissance de rotation.
L'axe qui sort du servo-moteur (celui qu'on utilise) tourne donc bien moins vite que celui du moteur
qui est à l'intérieur, en revanche son couple est plus important.
On utilise des servomoteurs couramment en modélisme pour contrôler des systèmes mécaniques
(gouverne d'avion, accélérateur de moteur thermique, etc.). Les servomoteurs sont aussi
couramment utilisés en robotique pour faire des mini-robots, des actionneurs ou des indicateurs
rotatifs.

6
Laurent DOUMAS
Formation Arduino mBlock collège d’appui

ou inversement (180° à la place de0°)


suivant les modèle

Exemple d’utilisation :

8 Plaque d’essai, Planche à pain ou Breadbord :


Les bornes – ou GND (bleues) sont reliée entre elles (On peut se connecter sur n’importe laquelle).
Les bornes + ou +V (rouges) sont reliée entre elles (On peut se connecter sur n’importe laquelle).
Les colonnes du haut (noires) sont reliée entre elles (On peut se connecter sur n’importe laquelle).
Les colonnes du haut (noires) sont reliée entre elles (On peut se connecter sur n’importe laquelle).

7
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
9 Résistance de pulldown ou de rappel :
À titre d’exemple, considérons la connexion d’un bouton poussoir à une entrée numérique de
l’Arduino. On pourrait penser qu’il suffit de connecter un poussoir comme suit :

Lorsque le bouton est pressé, l’entrée est à 5 V, mais lorsque le bouton n’est pas pressé, elle n’est
pas définie car elle est "en l’air". Les entrées du microcontrôleur équipant l’Arduino sont très
sensibles et elles réagissent à la tension qui leur est appliquée. En conséquence, l’entrée laissée en
l’air peut avoir n’importe quelle valeur comprise entre 0 et 5 V et être interprétée comme un LOW ou
un HIGH.

Résistance pull down :

Pour fixer la tension lorsque le bouton n’est pas pressé, on insère une résistance pull down
(résistance de tirage vers le bas) entre l’entrée et la masse (GND) dont le rôle est d’assurer que
l’entrée est à 0 V lorsque le poussoir n’est pas pressé.

Lorsque le poussoir est pressé, un courant égal à 5 V / R circule dans la résistance. Pour une
alimentation de 5 V, une bonne valeur pour R est d’au moins 4.7 Kilo-Ohm, le courant sera alors de
1.1 mA.

9.1 Description de la carte de commande du moteur :


The L293D motor driver allows to drive two DC motors or one stepper motor using Arduino kits. The
system allows you to adjust the direction and speed of rotation of the motors with a current
consumption of 600 mA and a voltage of from 4.5 V to 25 V.

8
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
10 Présentation de mBlock :
10.1 Téléchargement et installation :
Télécharger le logiciel ici: http://www.mblock.cc/download/.
Puis installer sur c:
Ouvrir mBlock. La fenêtre d’accueil apparait (elle ressemble à celle de Scratch).

Bibliotéque

Fenêtre graphique

Fenêtre de programmation

Eventuellement et si vous n’avaez jamais utilisé mBlock ni Arduino sur le PC :


Installer les pilotes Arduino pour reconnaître la carte:
Connecter > Installer les pilotes Arduino

10.2 Configuration :
10.2.1 Si besoin changer la langue :
Language>Français

9
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
10.2.2 Sélectionner la carte Arduino :
Choix de la carte > Arduino Uno

10.2.3 Sélectionner au minimum les extentions (bibliotéque) pour l’utilisation de la carte Arduino :
Choix d’une extention > Arduino et Communication :

Pour installer une extention supplmémentaire de base, sélectionner :


Gérer les extensions et sélectionner les extensions correspondantes à votre matériel.

Remarque :
Si on souhaite utiliser des capteurs ou des actionneurs spécifiques (non compris dans l’extension
Arduino et non présente dans les extensions disponibles), comme par exemple un lecteur RFID, un
écran LCD,… il faut installer voir même télécharger de nouvelles extensions (quelques sites :
https://www.mblock.cc/extensions/, https://github.com,
http://www.technozone51.fr/dokuwiki2/doku.php?id=documentation:extensions_tz51_pour_mbloc
k, ou taper sur un moteur de recherche librairie arduino pour « appareil que vous voulez utiliser »).

Télécharger l’extension souhaitée (fichier json ou zip) sur votre ordinateur, sélectionner :

10
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
Gérer les extensions> ajouter, rechercher l’extension que vous avez téléchargé puis cliker sur
« ouvrir ».

Cette nouvelle extension apparaitra dans « gérer les extensions ». Par exemple ci-dessous, on vient
d’installer technozone RFID et de nouveaux blocks apparaissent dans la section « pilotage » de
mBlock.

10.3 Connexion à la carte Arduino :


Connectez vous à la carte Arduino en sélectionnant connecter >par port série,

Validez ensuite le PORT COM correspondant à la connection de votre carte Arduino.

Si vous avez validé le bon port de communication, «Mettre à jour le microprogramme» ne doit plus
être gris mais noir.
La ligne en haut de la fenêtre indique également « connecté », la LED verte de la carte s’allume et
dans l’onglet « pilotage » un point vert apparait en face de « Arduino ».

11
Laurent DOUMAS
Formation Arduino mBlock collège d’appui

Vous pouvez alors commencer à programmer.

10.4 Programmation :
La programmation est similaire à celle de Scratch. On retrouve les mêmes instructions.

Les plus utilisés pour mBlock et la programmation Arduino sont :

Les « événements » : Le « Contrôle » : Les « opérateurs » :

Les « Bloccs & Variables » : et une nouvelle instruction : « Pilotage » (qui permet de piloter la carte
Arduino)

Pour programmer, il faut toujours commencer par mettre les instructions : Dans « pilotage »

et éventuellement dans « évènements » .

12
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
10.4.1 Les variables :
Pour créer une variable, il faut aller dans Blocks et variables>Créer une variable

La nommer, elle apparait alors dans « blocs et variables«

L’idéal est de toujours l’initialiser (soit à 0 soit à la valeur souhaitée) au début du programme.

Une variable est une donnée (information) associée à un nom. Elle est mémorisée et elle peut
changer dans le temps, lors de l'exécution du programme.

10.4.2 Les boucles :


Lorsque des instructions sont répétées, on utilise des boucles pour optimiser le programme.

Exemple de boucles : TANT QUE, JUSQU'À, REPETER …

Il est possible d'imbriquer plusieurs boucles les unes dans les autres pour répondre au problème. Les
boucles se trouvent dans l’onglet « contrôle ».

10.4.3 Déclenchement d’une action par un événement, instructions conditionnelles :


L'enchaînement des opérations et le déclenchement d'actions se fait toujours par un événement :
- interne au programme (début programme, variable, ...)
- externe au programme (capteur, touche du clavier, ...)
On écrit l'algorithme sous la forme de « blocs » :
SI ...
ALORS ...
SINON ...
13
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
Par exemple, pour le dépalcement du Panda :

Si on appuie sur la fléche droite, le Panda se déplace de


10 pas vers la droite,…

10.4.4 Sous-Programme et bloc :


Les sous-programmes sont des modules de programmation indépendants répondant à des
sous problèmes du programme principal.
 On peut l’appeler en envoyant un « message » :

 On peut créer un Bloc :


Blocs & variables> Créer un bloc personnalisé, le nommer. Le bloc apparait alors dans
l’onglet « Blocs & Variables » et dans l’écran de programmation :

14
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
Exemple du portail automatisé :

11 Utilisation avec une carte Arduino UNO et Grove :


La procédure est la même que pour la carte arduino seule sauf que dans le choix des extentions, il
faut choisir « UNO et Grove ».

15
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
Dans l’instruction « pilotage », on trouvera alors une partie « Aduino et Grove » :

En début de programmation, il faudra inclure :

12 Mode Arduino :
On peut programmer la carte Arduino directement en langage Arduino qui est très proche du langage
C/C#. Pour cela il suffit de sélectionner : Edition> mode Arduino

On obtient alors l’écran :

16
Laurent DOUMAS
Formation Arduino mBlock collège d’appui

Voici l’exemple du code pour faire clignoter une LED :

#include <Arduino.h>
Chargement des bibliotéques
#include <Wire.h>
2 #include <SoftwareSerial.h>
3
4 double angle_rad = PI/180.0;
5 double angle_deg = 180.0/PI;
6
7 void setup(){ Définition des
8 pinMode(9,OUTPUT); entrées/sorties
9}
10
11 void loop(){ Programme :
12 digitalWrite(9,1);
13 _delay(1);
On met la broche 9 à l’état haut
14 digitalWrite(9,0); On attend 1 seconde
15 _delay(1); On met la broche 9 à l’état bas
16 _loop(); On attend 1 seconde
17 }
18
19 void _delay(float seconds){
20 long endTime = millis() + seconds * 1000; Définition de la fonction
21 while(millis() < endTime)_loop();
22 } delay
23
24 void _loop(){
25 }
26

13 Téléchargement du programme dans la mémoire de la carte :


Pour pouvoir travailler de façon autonome, sans que la carte soit relièe à l’ordinateur (par exemple
pour faire fonctionner un robot), il faut télécharger le programme dans la mémoire de la carte
Arduino.

Pour cela il suffit de se connecter à la carte et de sélectionner :


Connecter> téléverser le microprogramme de communication
Pour un fonctionnement idéal en mode déconnecté, il faut passer par le mode Arduino et téléverser
le programme dans l’Arduino (téléverser dans l’arduino).

17
Laurent DOUMAS
Formation Arduino mBlock collège d’appui

Une fois le téléversement effectué, on peut travailler hors connection.

14 Conseils de programmation :

Toujours commencer par mettre et .

Toujours initialiser les variables en début de programme (éteindre les LED, arrêter le moteur, mettre
à l’état bas les boutons,…) car parfois les broches de la carte Arduino restent à l’état haut.

Tester chaque capteur, bouton poussoir,… indépendament, en créant une variable, afin d’être sur de
l’état renvoyé par celui-ci.

15 Travaux pratiques :
Je vous propose, en travaux pratiques plusieurs exemples, plus ou moins difficile :

- TP 1 Faire clignoter un LED,


- TP 2 Allumer une LED en fonction de la luminosité (utilisation broche analogique et variable,
capteur de luminosité ou photoresistanceou LDR (light dependent resistor),…),
- TP 3 Exercice sur la résistance de Pull-down,
- TP 4 Gestion d’un feu tricolore,
- TP 5 Commande du sens de rotation et de la vitesse d’un moteur à courant continu (carte
commande moteur, sortie PWM,…),
- TP 6 Commande d’un servomoteur,
- TP 7 Instrument de musique sans contact (détecteur ultrason et LED RGB)
- TP 8 Portail coulissant (Moteur 2 sens, BP, FDC, gyrophare, comptage des véhicules, écriture
port série,…)
- TP 9 Volet roulant (moteur 2 sens, capteurs de pluie, éolienne pour simuler le capteur de
vent, capteur de luminosité, variables, blocs, entrée analogique,…)
- TP 10 Cuisine arduino 3D GROVE
- TP 11 détecteur de mouvement (détecteur PIR, relais, lampe 230V)
- TP 12 mini serre (détecteur température, humidité du sol, pompe, relais)
- TP 13 Aspirateur autonome (RobUno)

En prenant différentes parties dans ces TP, on peut réaliser de nombreux projets assez complexes
comme des robots (moteurs, servomoteurs, détecteur de distance ultrason, suivie de ligne

16 Liste du matériel :
Voir pages jointes
18
Laurent DOUMAS

Vous aimerez peut-être aussi