Formation Arduino Mblock 2023-12-16 11-56-9 950
Formation Arduino Mblock 2023-12-16 11-56-9 950
Formation Arduino Mblock 2023-12-16 11-56-9 950
1
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
2 Les trois signaux possibles :
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…
- 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
3 GND
Broche LED
Etat haut : +5V
Etat bas : GND
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
Exemple d’utilisation :
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.
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.
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
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 :
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.
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
10.4 Programmation :
La programmation est similaire à celle de Scratch. On retrouve les mêmes instructions.
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 »
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
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.
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 ».
14
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
Exemple du portail automatisé :
15
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
Dans l’instruction « pilotage », on trouvera alors une partie « Aduino et Grove » :
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
16
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
#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
17
Laurent DOUMAS
Formation Arduino mBlock collège d’appui
14 Conseils de programmation :
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 :
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