1 of 15

Arduino + mBlock

Les premiers pas - une base

Créé par : Marc-André Mercier (marc-andre.mercier@recitmst.qc.ca)

Adapté par Pierre Lachance (pierre.lachance@recitmst.qc.ca)

2 of 15

Arduino Uno

Entrées / Sorties

6 Entrées analogiques (0 - 1023)

DEL intégrée (broche 13)

  • 14 entrées/sorties numérique (0 V ou 5 V, max 40 mA)
  • Broches 3, 5, 6, 9, 10 et 11 PWM (0 à 255)

Voyant de mise en marche

Plus de détails sur les caractéristiques du Arduino Uno : http://recit.org/ul/qd4

Alimentation 7 V à 12 V

Mise à la terre (Ground)

Broche d’alimentation 3,3 V

Broche d’alimentation 5,0 V

Alimentation par câble USB

Alimentation directe (source 7 V à 12 V)

3 of 15

Arduino

Le matériel électronique

DEL

Le courant entre dans la broche longue (courbée sur TinkerCAD), soit l’anode.

Piezo ou buzzer

Pour émettre une note, on doit utiliser un bloc comme «Jouer la note» ou «Définir une tonalité»

Radar et autres capteurs

Plusieurs capteurs sont disponibles et compatibles Arduino. Fouiller sur le Web pour savoir comment les connecter et les programmer.

Piles ou sources de courant

La carte Arduino connecté sur le port USB offre du 5 V à faible intensité. D’autres sources devront être utilisées si on veut, entre autres, faire un bolide.

Platine d’expérimentation

Cet outil est très utile pour créer nos circuits sans avoir à souder. Le schéma ci-dessous représente les connexions entre les trous de la platine.

4 of 15

Arduino

Le matériel électronique

Pont en H

Contrôleur de moteurs. Permet de changer le sens de rotation d’un moteur DC.

  • Si S1 et S4 sont fermés, le moteur tourne d’un sens.
  • Si S4 et S2 sont fermés, le moteur tourne dans l’autre sens.

DEL : composante polarisée

5 of 15

Arduino

Quelques informations

Symboles

Quelques équivalences pour lire les schémas et le matériel.

Broches PWM (pulse width modulation)

  • Broches 3, 5, 6, 9, 10, 11 (avec un tilde ~ devant)
  • Permettent de «simuler» d’autres valeurs que du 5V (ex. : 3 V), ce qui peut être utile pour varier la vitesse d’un bolide par exemple.
  • Les valeurs possibles sont entre 0 et 255

6 of 15

Arduino - Activité 0

Les logiciels

Arduino IDE : https://www.arduino.cc/en/Main/Software

  • Le logiciel (pilotes) officiel de la carte Arduino à installer (Windows, Mac, Linux).
  • Programmation en mode texte.
  • Non nécessaire pour débuter, mais très utile si on veut exploiter des programmes fournis sur le Web (projets intermédiaires et avancés) ou seulement pour se dépanner/déboguer.
  • Vérifier la connexion de la carte : http://recit.org/ul/qf7

mBlock 5.1 : https://www.mblock.cc/en-us/download/

  • Logiciel de programmation par blocs (provenant de Scratch).
  • Version hors ligne à installer sur Windows, Mac.
  • Version en ligne pour Windows, Mac, Linux, Chromebook. On doit installer mLink qui permet d’envoyer les programmes vers la carte depuis le Web.

TinkerCAD : https://www.tinkercad.com/

  • Simulateur en ligne
  • Bon outil avant de sortir les fils et autres pièces électroniques

Autres logiciels

Ardublockly

  • Version hors ligne
  • Pas d’installation
  • Quelques petits bogues

Bitbloq

  • En ligne
  • Moins souple que mBlock

Blockly@rduino

  • En ligne
  • Pour se dépanner
  • 1er logiciel en bloc pour Arduino

7 of 15

Arduino - Activité 1

Simulateur : Faire allumer et clignoter une DEL

Défi 1 : Sur TinkerCAD, allumer une DEL à l’aide de la sortie 5V de la carte Arduino.

Défi 1 a : Faire clignoter une DEL connectée à la broche 6.

Voir un document d’appropriation de circuits simples avec une platine d’expérimentation : http://recit.org/ul/qf8

Voir un exemple : http://recit.org/ul/qf9

Résistor

On peut soit calculer sa valeur (code de couleur) ou la mesurer (ohmmètre)

Ci-contre le circuit série, DEL et résistance, permet de contrôler la DEL à l’aide de la broche 6 programmable.

Si on ne place pas de résistor dans ce circuit, la DEL pourra briser. Pourquoi?

8 of 15

Arduino - Activité 2

Simulateur : Faire allumer selon la valeur d’un capteur

Défi 2 : Sur TinkerCAD, allumer une DEL si la lecture du capteur d’intensité lumineuse dépasse une certaine valeur.

Défi 2 a : Utiliser 3 DEL, en allumer plus s’il fait plus sombre.

Voir un exemple : http://recit.org/ul/qfa

Photorésistor : sa valeur de résistance varie en fonction de la luminosité.

Indices

Dans le circuit ci-contre nous avons le photorésistor en série avec une résistance de 10 K. Nous utilisons l’entrée analogique (valeur de 0 à 1023) pour mesurer la tension (0 V à 5 V) au borne de la 10 K.

9 of 15

Arduino - Activité 3

On sort les fils !

Défi 3 : Refaire les circuits simulés aux activités 1 et 2 avec le matériel fourni.

Il est temps d’utiliser le logiciel mBlock pour programmer et téléverser votre programme dans la carte Arduino.

Matériel disponible

  • Arduino UNO et fil USB
  • Fils Dupont ou crocodiles
  • Platine d’expérimentation
  • DEL
  • Résistances
  • Photorésistor

Vous avez maintenant une base en Arduino qui vous permettra de réaliser des défis plus complexes, de comprendre la documentation de projets trouvée sur le Web.

Mettre en pratique ses nouvelles connaissances (voir les pages suivantes):

  • Défi du code morse
  • Défi des moteurs
  • Défi produire un son
  • Défi du servo moteur
  • Défi du radar

10 of 15

Arduino - Défi supplémentaire

Code morse S.O.S (Yvon Quemener)

Durée de chaque élément dans le code morse:

  • Point : 200 ms (DEL allumée)
  • Tiret : 600 ms (DEL allumée)
  • Entre deux éléments, point ou barre : 200 ms (DEL éteinte)
  • Fin d’une lettre : 600 ms (DEL éteinte)
  • Fin d’un mot : 1400 ms (DEL éteinte)

À remarquer qu’une fonction (un bloc) a été créé pour écrire la lettre S. Ce qui rend le code de droite plus clair dès que nous avons à créer des mots.

11 of 15

Arduino - Défi supplémentaire

Gérer les moteurs d’un bolide

À noter le fil de mise à la terre qui relie la carte Arduino et le pont en H.

Un pont en H est utilisé ici pour permettre de faire changer de sens le moteur DC.

La pile 9V alimente le moteur, la carte Arduino programme le mouvement du moteur.

Nous utilisons les broches PWM 6 et 9 pour contrôler le moteur (les broches 3 et 5 pourraient contrôler un 2e moteur).

Noter

12 of 15

Arduino - Défi supplémentaire

Produire un son

Servo moteur à 3 broches

  • Petit haut-parleur ou un «buzzer» (piezo)
  • Utiliser des fréquences

ROUGE (5V +)

BRUN (GND -)

ORANGE (signal)

13 of 15

Arduino - Défi supplémentaire

Mesurer une distance

  • S’assurer que la broche 11 est à 0 au début de la mesure
  • On envoie des ondes durant 0,01 s (10 millisecondes)
  • On place dans la variable «echo» la valeur du temps lu par la broche 12 (temps aller-retour des ondes)
  • On place dans la variable «cm» la division du temps par 58 (à vous de trouver pourquoi ce 58)
  • On envoie au port série la valeur de la distance.

  • Broche trig (envoie une onde sonore) : 11
  • Broche echo (écoute le retour de l’onde) : 12
  • Vitesse du son = 340 m/s ou 0.034 cm/µs

mBlock n’a pas de moniteur série, donc avec le programme ci-contre il faudra utiliser l’IDE Arduino pour lire la valeur (vitesse de 115200 bps). Voir la page suivante pour être en mesure de lire en direct la lecture du capteur.

14 of 15

mBlock - moniteur série

  • mBlock n’a pas de moniteur série. On doit donc utiliser un petit truc (voir page suivante pour un 2e truc).
  • Extension Google Chrome Serial monitor

On doit sélectionner le port où la carte Arduino Uno est connectée et la bonne vitesse de connexion. (Baud rate 115 200 bps)

Lorsque vous utilisez cette extension, vous devez en premier télécharger votre programme dans votre Arduino avec mBlock. Par la suite vous débrancher et rebrancher votre cable USB de votre ordinateur. ( Ceci permet de rendre le port de communication disponible pour l’extension.) Finalement, vous lancer l’application Serial moniteur. Vous devez refaire cette manipulation pour télécharger de nouveau votre programme avec mBlock

Ne pas oublier d’ajouter ce bloc pour envoyer l’information vers le port série

15 of 15

mBlock - truc lire une valeur

  • Au lieu de la fonction «Téléverser», on utilise la fonction «Vivre»
  • Ceci modifie les blocs accessibles
  • Une mise à jour du «Firmware» sera nécessaire. Ceci envoie un programme de communication dans la carte Arduino.

Programme pour Arduino

  • Créer une variable (pour tous les objets) (ex. A)
  • Placer la mesure de la broche A0 dans la variable

Programme pour Panda

  • Le Panda dira la valeur de la variable A

Ne pas oublier de connecter la carte au logiciel (bouton Connecter) pour pouvoir afficher la valeur du capteur!

Certains blocs ne sont pas disponibles lors de cette procédure. (Par exemple : capteur ultrason)