Programmer l arduino avec mblock 2 ème approche

Documents pareils
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Prise en main rapide

Centrale d alarme DA996

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Manuel d'utilisation de la maquette

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Projet Robot Centaure

Système à enseigner : Robot M.I.M.I. MultipodeIntelligent à Mobilité Interactive. Version 1.0

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Alarme intrusion filaire AEI HA zones

Bien commencer avec un LaunchPad MSP430G et un Breadboard


Baccalauréat ES/L Amérique du Sud 21 novembre 2013

M55 HD. Manuel Utilisateur

UGVL : HOMOLOGATION PS ZAC du bois Chaland 6 rue des Pyrénées LISES EVRY Cedex FRANCE Tel Fax

Objet : Alimentation pour ordinateur portable et autre. Alimentation Schéma 1

Cours 1 : Qu est-ce que la programmation?

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Représentation des Nombres

Indications pour une progression au CM1 et au CM2

COMMUNICATION ENTRE DEUX ORDINATEURS PAR LASER MODULE EN CODE MORSE OU BINAIRE.

ScoopFone. Prise en main rapide

Logiciel Libre Cours 3 Fondements: Génie Logiciel

NOTRE OFFRE GLOBALE STAGES INTER-ENTREPRISES

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

MANUEL D INSTRUCTION

Algorithmique avec Algobox

Visio Kit. Mode d'emploi

Atelier Arduino. Initiation à la mise en oeuvre matérielle et logicielle de l Arduino. novembre 2006

Initiation à LabView : Les exemples d applications :

Robot de Téléprésence

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

FICHE 17 : CREER UN SITE WEB

uc : Cas d utilisation Top-Chair [Utilisation normale] Fauteuil Top-Chair Déplacer le fauteuil sur tous chemins «include» «include» «extend»

Prototypage électronique

Atelier Arduino. Initiation à la mise en oeuvre matérielle et logicielle de l Arduino. novembre 2006

Conférence sur les microcontroleurs.

Guide de l Utilisateur

Introduction à MATLAB R

fullprotect inside EOLE SPEie RS E-SPEie V-0.6A-RS 1.0 revision Protection environnement Datasheet édition française

STAGE IREM 0- Premiers pas en Python

Activité initiation Arduino

INVERSIO. N Azur Service consommateur Castorama BP Templemars. réf. R

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

OPTION SCIENCES BELLE-ISLE-EN-TERRE

Modules d automatismes simples

Tableaux d alarme sonores

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

UE Programmation Impérative Licence 2ème Année

Système d automation TROVIS 6400 Régulateur compact TROVIS 6493

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Introduction à l algorithmique et à la programmation (Info 2)

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE)

Rappel sur les bases de données

CONSOLE D ALARME AUTONOME POWERGUARD 2000

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Créer le schéma relationnel d une base de données ACCESS

Logiciel PICAXE Programming Editor

COURS WINDEV NUMERO 3

Cours Informatique Master STEP

Guide de l utilisateur. Calibreur de Courant / Voltage Modèle A

Module Relais de temporisation DC V, programmable

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Notice d installation de la Centrale VIGIK DGM1

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

NOTICE D'UTILISATION DU TABLEAU D ALARMES TECHNIQUES SAT

Informatique Générale

Organigramme / Algorigramme Dossier élève 1 SI

Formation Excel. Introduction Les Bases du Logiciel Le comportement des cellules. Calculs élaborés. Les feuilles de calculs élaborées

SIRENE SANS FIL SOLAIRE 433MHz 30/80m SSFS = SG-1100T

Equipement. électronique

Logiciel EV3 LEGO MINDSTORMS Education

Notice d utilisation de l alarme EMATRONIC

Tableaux d alarme incendie de type 4-230V~ - 1 boucle / 2 boucles /62

CRR. Notice technique 01_ACCES_NT004_carte relais radio_rév A1. Carte relais radio murale pour DAAF, type 4 et DM radio CARTE RELAIS RADIO MURALE

Bedienungsanleitung Spezialtelefon. Operation Instructions Special telephone. Gebruiksaanwijzing Speciale telefoon

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Traceur GPS Antivol. Le traceur est conforme aux normes européennes 95/56 E27

Mode d emploi abrégé COMBOX basic et pro pour réseau f ixe et mobile.

Les petits pas. Pour favoriser mon écoute. Où le placer dans la classe? Procédurier. Adapter les directives. Référentiel Présentation des travaux

Informatique et sciences du numérique

Conventions d écriture et outils de mise au point

CAR ALARM. Le tableau suivant décrit les séquences de la mémoire d alarme:

SOMMAIRE MONTAGE DU COMPTEUR ET CAPTEURS...3 LE MOT DU CHEF DE PRODUIT...5 L ORGANISATION DE L ECRAN...5 LES PICTOGRAMMES UTILISES...5 LES BOUTONS...

Manuel d aide à la pose

C f tracée ci- contre est la représentation graphique d une

Système de contrôle d accès Codelock avec clavier de codage CL12

Programmation C++ (débutant)/instructions for, while et do...while

NUGELEC. NOTICE D'UTILISATION DU B.A.A.S. du type Ma - STI / MaME - STI. pages. 1 introduction 2. 2 encombrement 3 fixation

JUPITER /20/27/61m. Contact NF, 50mA à 24v max. avec R50 Ohms en série

User guide Conference phone Konftel 100

PetPorte.de Seul mon animal peut entrer! La chatière avec lecteur de puce électronique. Mode d emploi. Guide d installation

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Caractéristiques techniques

Transcription:

Programmer l arduino avec mblock 2 ème approche Ce support a été complété des résultats de l atelier arduino du 5 février 2017 http://www.planete-sciences.org/iledefrance/index.php/robotique/60- aller-plus-loin-en-robotique http://learn.makeblock.com/getting-started-programming-withmblock/?utm_source=software&utm_medium=mblock&utm_campaign=mblocktorumeng http://download.makeblock.com/mblock/mblock_extension_guide.pdf

Présentation de mblock La programmation visuelle par blocs est un atout majeur dans l apprentissage de l algorithmique et du codage d applications Historiquement, le MIT a développé un atelier très pédagogique : Scratch, quipermet decréer des applications et d interagiravec elles Plus tard, avec le développement de l Arduino, une version adaptée permettant de piloter un microcontrôleur, S4A (Scratch for Arduino) a été mise au point par une équipe de chercheurs espagnols. Toutefois, le contrôle de l Arduino nécessite une liaison constante avec l environnement Scratch L environnement mblock constitue un nouveau développement qui permet de réaliser des programmes avec Scratch et d en dériver une variante téléversable dans l Arduino, qui fonctionne alors de façon autonome 2

En mode Scratch : un environnement visuel et ludique avec une convivialité qui n est plus à démontrer La logique du «glisser-déposer» est la même et des fonctions supplémentaires permettent des interactions et de nombreux effets visuels et sonores. Il est possible de programmer des jeux et même de participer à des concours ou de mettre en commun ses programmes (scripts) Scratch 3

En mode Arduino : un environnement de programmation qui fait bonne figure La logique est simple : les instructions sont sélectionnées dans le cadre de gauche et combinées par glisser-déposer sur la page centrale. Le code généré pour l arduino s affiche dans le cadre de droite. Il n y a plus d erreur de syntaxe et le progammeur se concentre sur son algorithme 4

En mode Arduino : la programmation visuelle 4 familles de blocks sont utilisables pour la programmation : - Blocs et variables : définir des variables, paramètre et procédures - Contrôle : les structures usuelles de contrôle du code - Opérateurs : arithmétiques et autres - Pilotage : gère les interactions avec l Arduino Les instructions peuvent être complétées par des extensions correspondant aux primitives de commande des modules mblot ou des shields arduino ou encore des capteurs et actionneurs personnalisés Le guide de démarrage de mblock est disponible à l adresse http://learn.makeblock.com/getting-startedprogramming-withmblock/?utm_source=software&utm_mediu m=mblock&utm_campaign=mblocktorumeng Le guide de développement des extensions est disponible sur le site http://download.makeblock.com/mblock/mbl ock_extension_guide.pdf 5

En mode Arduino : les familles de blocks Les contrôles Elle comprend les structures de contrôles basiques en algorithmique : - La répétition jusqu à ce qu une condition soit remplie - l alternative «si alors sinon» Ainsi que l équivalent des instructions delay() = attendre n secondes et loop() = répéter indéfiniment Les blocs et variables Elle comprend un bouton qui permet de créer une variable et des blocs qui permettre de lui affecter une valeur, de l incrémenter (ou de la décrémenter par une valeur négative) et deux blocs qui permettent de montrer ou de cacher une variable mais qui ne sont pas utilisables avec l arduino Elle comprend un bouton qui permet de créer des blocs en tant que fonction ou de procédure 6

En mode Arduino : les familles de blocks Les opérateurs Elle comprend les opérateurs arithmétiques et logiques basiques ainsi que les fonctions mathématiques courantes Il y a également un générateur de nombre aléatoire et des fonctions de traitement de tableaux de caractères Les opérateurs sont utilisés dans les conditions Le pilotage Elle comprend un en-tête de bloc qui permet de passer en mode de génération de code et les opérations de manipulation de port A noter : l apport inestimable de la getsion d un servomoteur par une instruction unique ainsi que la récupération directe d une distance mesurée par un capteur à ultrasons et la simplicité d écriture des messages sur le moniteur série 7

APPLICATION Quelques exemples ià partir des fiches Planète Sciences

Faire clignoter une LED Pour faire clignoter une LED avec Arduino, on se souvient qu il suffit : 1. De mettre le PIN de la LED à l état haut 2. D attendre un certain temps (que l on fixe) 3. De mettre le PIN de la LED à l état bas 4. D attendre encore un certain temps (que l on fixe) 5. De recommencer On relie l anode (patte longue de la LED au PIN 13) Il n est plus nécessaire de définir ni d initialiser les PIN Le code Arduino est généré automatiquement 9

Faire clignoter une LED version PRO Bien évidemment, cette version du «Hello World» des programmeurs du monde entier n est pas une avancée majeure de l algorithmique mais elle mérite quelquesaméliorations : - Si on veut que la LED ne soit pas systématiquement sur le PIN 13, on peut utiliser une variable qui définira le PIN en début de programme et la modifier (la personnaliser) à un seul endroit (portabilité) - Si on veut modifier simplement le clignotement, on peut mettre le délai d attente en variable pour n avoir à le changer qu à un seul endroit ou le faire varier par le programme, par exemple, plus un objet est proche et plus le clignotement estrapide On crée 2 variables On leur affecte une valeur On les utilise ensuite dans le programme Le code Arduino devient un peu plus «verbeux» 10

Contrôler un servomoteur On se souvient que la bibliothèque «servo» d Arduino permet de commander un servomoteur en ne lui donnant que la valeur de l angle à laquelle il devait se positionner mblock a simplifié considérablement la gestion des servomoteurs : 1 seul bloc suffit Pour un servomoteur à rotation continue, cette valeur d angle conditionnait le sens et la vitesse de sa rotation (0 = à gauche, 90 = arrêt, 180 = à droite) Si on veut ou si l on doit utiliser plusieurs fois, ce bloc, on peut le variabiliser Onsesouvient également qu il fallait déclarer un objet servo, «l attacher» à un PIN préalablement déclaré lui aussi 11

Contrôler un servomoteur : les classiques Le balayage progressif* des angles par le servomoteur dans un sens puis dans l autre La séquence de bascule d un bac à l appui d un bouton poussoir : rotation à 90, pause, rotation inverse Notez la condition de test de la valeur lue sur le PIN du bouton qui sera relié à GND lors de l appui (on détecte un passage à l état 0 ou LOW) (*) A noter : pour obtenir un mouvement progressif et Les commentaires permettent de garder la trace des bonnes idées non saccadé d un servomoteur, on peut utiliser une 12 boucle répétitive

Mesurer une distance On se souvient que l utilisation d un sonar (capteur à ultrasons) n était pas évidente au premier abord mblock a également simplifié considérablement la gestion du module «sonar»: 1 seul bloc et une variable «cible» suffisent 13

Mesurer une distance et asservir un servomoteur Comme on sait mesurer une distance et positionner un servomoteur à un angle précis avec mblock, on sait réaliser un asservissement d un servomoteur Par exemple, pour ajuster un angle de tir ou de lancer de quelque chose à une distance mesurée, ce qui peut être utile comme actionde jeu Mais il manque encore des blocs permettant de gérer des tableaux afin de faire une correspondance entre la valeur de distance mesurée et la valeur d angle correspondante Toutefois, on peut faire une approximation par une cascade d alternatives «si alors sinon» ou par une fonction 14

Contrôler la puissance avec le PWM Le principe : certains ports de l Arduino peuvent moduler le signal en sortie selon la la méthode du PWM (voir la fiche F3 sur le site de Planète Sciences) avec l instruction analogwrite() Des valeurs sont prédéfinies mais on peut mettre une valeur personnalisée dans la mesure où elle se situe dans l intervalle [0 ; 255 ] l exemple ci-contre faire croître puis décroître la puissance d une LED 15

Contrôler la puissance avec le PWM Applications : moduler la puissance d un groupe de LED ou d une LED RGB pour avoir une lumière particulière ou des effets lumineux Faire varier la puissance d un moteur électrique en rotation dans un seul sens avec un potentiomètre (pour changer de sens, utiliser un pont en H) ATTENTION : il faut penser à mettre une diode en parallèle du moteur pour éviter un courant retour qui risque d endommager le circuit Pour gérer l alimentation en courant fort, on utilise un transistor de puissance http://arduino103.blogspot.fr/2011/05/co ntrole-moteur-dc-via-transistor-pwm.html 16

Contrôler la puissance avec le PWM Le script Un potentiomètre réglable par vis (trimmer) permet d ajuster une valeur pour la conserver Ne pas oublier la diode anti-retour! La taille du transistor dépend de la puissance du courant utilisé par le moteur Un potentiomètre est utilisé pour donner une valeur de PWM, cette valeur est lue sur port A0 de l Arduino et un signal PWM correspondant à la valeur lue est envoyé sur la base du transistor qui module l alimentation du moteur en conséquence 17

Contrôler un moteur avec un pont en H La fiche F3 explique le principe du pont en H pour contrôler le sens de rotation et la puissance d un moteur électrique à courant continu On se base sur la table de vérité du circuit qui implémente le pont en H pour envoyer les signaux de commande par 3 PIN pour chaque moteur Par exemple pour faire tourner le moteur à droite à mi-vitesse, les blocs correspondant à la première ligne du tableau seraient les suivants L algorithme est plus clair et plus sûr en déclarant des variables correspondants aux PIN d l Arduino à utiliser (PWM pour EN) EN 1A (3A) 2A (4A) Fonction HIGH LOW HIGH Tourne à droite HIGH HIGH LOW Tourne à gauche HIGH LOW LOW Arrêt rapide HIGH HIGH HIGH Arrêt rapide LOW Indifférent Indifférent Arrêt La vitesse est modulée par l envoi de sa valeur via l instruction analogwrite(pin, valeur), ce qui est pratique pour contrôler la vitesse par un joystick 18

Contrôler un moteur avec un pont en H Le script réalisé par Nicolas : le joystick donne une valeur entre 0 et 1023 et de 512 au point de repos. Le script lit cette valeur et la convertit en une valeur de PWM puis l analyse pour déterminer le sens de rotation ou une consigne d arrêt Le montage utilise un circuit pont en H à base de L298 et un moteur alimenté par une pile 9V. IL NE FAUT PAS OUBLIER DE RELIER LA MASSE DE L ARDUINO AVEC LA MASSE DU CIRCUIT sous peine d interférence. Avec mblock, la réalisation (et la mise au point) du montage et du script a pris une heure Le montage 19

Fin