• Aucun résultat trouvé

[PDF] Formation accélérée Arduino en PDF | Cours Arduino

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Formation accélérée Arduino en PDF | Cours Arduino"

Copied!
38
0
0

Texte intégral

(1)

Les systèmes Embarqués (SE)

(2)

2

Vous souhaitez créer votre premier robot à moindre coût ? De

nombreux kits à base d’une carte Arduino sont disponibles sur le Net!

Ce petit robot roulant à vocation pédagogique possède deux roues indépendantes motorisées et peut être équipé de multiples capteurs pour détecter des obstacles, suivre une ligne au sol, etc.

(3)

Introduction

ARDUINO: carte à microcontrôleur + outil de développement +

communauté active.

(4)

Introduction

Une équipe de développeurs composée de Massimo Banzi, David

Cuartielles, Tom Igoe, Gianluca Martino, David Mellis et Nicholas Zambetti a imaginé un projet répondant au doux nom de Arduino et

mettant en œuvre une petite carte électronique programmable et un logiciel multiplateforme, qui puisse être accessible à tout un chacun dans le but de créer facilement des systèmes électroniques. Étant donné qu’il y a des débutants parmi nous, commençons par voir un peu le vocabulaire commun propre au domaine de l’électronique et de l’informatique.

Une carte électronique est un support plan, flexible ou rigide, généralement composé d’epoxy ou de fibre de verre. Elle possède des pistes électriques disposées sur une, deux ou plusieurs couches (en surface et/ou en interne) qui permettent la mise en relation électrique des composants électroniques. Chaque piste relie tel composant à tel autre, de façon à créer un système électronique qui fonctionne et qui réalise les opérations demandées.

(5)

Introduction

LES SYSTÈMES EMBARQUÉS ARDUINO

Les fondateurs de Arduino Présentation de Arduino par Massimo Banzi dans la conférence TED (Technology

(6)

Arduino

Pas cher!

Environnement de programmation clair et simple.

multiplateforme: tournes sous Windows, Macintosh, Linux.

Nombreuses librairies disponibles avec diverses fonctions

implémentées.

Logiciel et matériel open source et extensible.

Nombreux conseils, tutoriaux et exemples en ligne (forums, site perso …).

Existence de « shield »: ce sont des cartes supplémentaires qui se connectent sur le module arduino pour augmenter les possibilités comme par exemple: afficheur graphique couleur, interface Ethernet, GPS, …

Par sa simplicité d’utilisation, arduino est utilisé dans beaucoup d’applications comme l’électronique industrielle et embarquée, le modélisme, la domotique mais aussi dans des domaines différents comme l’art contemporain ou le spectacle!

(7)

Arduino

Voici quelques exemples d’utilisation possible :

Simuler le fonctionnement des portes logiques,

Permettre l’utilisation de différents capteurs,

Mettre en œuvre et faciliter la compréhension d’un réseau

informatique,

Se servir d’Arduino pour créer des maquettes animées

montrant le fonctionnement des collisions entres les plaques de

la croute terrestre, par exemple,

Donner un exemple concret d’utilisation des matrices avec un

clavier alphanumérique,

Être la base pour des étudiants ayant un PEF à faire,

(8)

Types de carte Arduino

8 • Arduino UNO • Arduino UNO R3 • Arduino LEONARDO • Arduino DUE • Arduino pro • Arduino Mini

et bien d’autres platines …

• Arduino Mega 2560

(9)

Caractéristiques de la carte Arduino UNO

(53 mm x 68 mm )

Microcontrôleur ATmega328

Tension de fonctionnement 5V

Tension d’alimentation (recommandée) 7-12V

Tension d’alimentation (limites) 6-20V

Broches E/S numériques 14 (dont 6 disposent d’une sortie PWM)

Broches d’entrées analogiques 6

Intensité maxi disponible par broche E/S (5V) 40 mA Intensité maxi disponible par broche E/S (3.3V) 50 mA

Mémoire Programme Flash 16 KB (ATmega168) or 32 KB (ATmega328) dont 2 KB sont utilisés par le bootloader

Mémoire SRAM (mémoire volatile) 1 KB (ATmega168) ou 2 KB (ATmega328) Mémoire EEPROM (mémoire non volatile) 512 bytes (ATmega168) ou 1 KB (ATmega328)

(10)

Caractéristiques de la carte Arduino MEGA

(53 mm x 101 mm )

10

Microcontrôleur ATmega2560

Tension de fonctionnement 5V

Tension d’alimentation (recommandée) 7-12V

Tension d’alimentation (limites) 6-20V

Broches E/S numériques 54 (dont 15 disposent d'une sortie PWM) Broches d’entrées analogiques 16

Intensité maxi disponible par broche E/S (5V) 40 mA

Intensité maxi disponible par broche E/S (3.3V) 50 mA

Mémoire Programme Flash 256 KB dont 8 KB sont utilisés par le bootloader Mémoire SRAM (mémoire volatile) 8 KB

Mémoire EEPROM (mémoire non volatile) 4 KB

(11)

Caractéristiques de la carte Arduino DUE

(53 mm x 101 mm )

Microcontrôleur AT91SAM3X8E

Tension de fonctionnement 3.3 V

Tension d'alimentation (recommandée) 7-12V

Tension d'alimentation (limites) 6-20V

Broches E/S numériques 54 (dont 12 disposent d'une sortie PWM) Broches d'entrées analogiques 12

Intensité maxi disponible toutes broche I/O 130 mA

Intensité maxi disponible par broche E/S (3.3V) 800 mA

Mémoire Programme Flash 512 KB (application) Mémoire SRAM (mémoire volatile) 96 KB

(12)

Description la carte Arduino UNO

12 Entrées / sorties digital D0 – D13

Entrées Analogiques A0 – A5 Alimentation

Entrée DC 7-12 v 2,1 mm Port USB de programmation et permet d’alimenter l’Arduino. Max 500ma

SPI :Interface Série pour périphérique D10 : /SS D11 : MOSI D12 : MISO et D13 : SCLK.

(13)

Carte Arduino UNO

ATMEGA 328

(14)

Description la carte Arduino MEGA

14 Entrées / sorties digital

D0 – D13

Entrées Analogiques A0 – A11 Alimentation

Entrée DC 7-12 v 2,1 mm

Port USB de programmation et permet d’alimenter l’Arduino. Max 500ma

SPI :Interface Série pour périphérique D10 : /SS D11 : MOSI D12 : MISO et D13 : SCLK.

I2C : A20 (SDA), A21 (SCL)

Entrées / sorties digital D22 – D53

(15)

Les Shields Arduino

Il existe de nombreux shields que l’on traduit parfois dans les

documentations par « boucliers » (extension).

Un « shield » Arduino est une petite carte qui se connecte sur

une carte Arduino pour augmenter ses fonctionnalités.

Quelques exemples de shields:

Afficheur graphique

Ethernet et carte SD

GPS

Carte de prototypage

(16)

Exemples de shield

16

(17)

Développement d’un projet

Le développent sur Arduino est très simple:

On code l’application: le langage Arduino est basé sur les

langages C/C++, avec des fonctions et des librairies

spécifiques à Arduino (gestion des E/S),

On relie la carte Arduino au PC et on transfert le programme

sur la carte,

On peut utiliser le circuit!

Le logiciel de programmation des modules Arduino est une

application java multiplateformes, servant d’éditeur de code et

compilateur, et qui peut transférer le firmware au travers de la

liaison.

(18)

18

Ardublock

Il existe différents outils qui puissent être utilisé avec Arduino.

Ardublock est un outil qui se greffe au logiciel Arduino et qui permet de programmer avec des blocs. Chaque

bloc est une instruction. On peut aisément faire des programmes avec cet outil et mêmes des plutôt complexes. Cela permet par exemple de se concentrer sur ce que l’on doit faire avec Arduino et non se concentrer sur Arduino pour ensuite ce que l’on doit comprendre avec.

(19)

Logiciel de la carte Arduino

Le logiciel va vous permettre de programmer la carte Arduino, par la prise USB,

De créer des sketchs.

Le logiciel gratuit est disponible à cette adresse:

En français :

www.mon-club-elec.fr/mes_telechargements/arduino -0018-fr.zip

Page officielle (En Anglais) : v 023 http://arduino.cc/en/Main/Software

(20)

20

(21)
(22)

22

Programmation Arduino

Deux fonctions sont importantes :

setup() est appelée une seule fois lorsque le programme commence.

Donc, dans cette fonction que l’on va écrire le code qui n’a besoin d’être exécuté une seule fois. qui permet d’initialiser le programme. On appelle cette fonction : "fonction d’initialisation".

Une fois que l’on a initialisé le programme il faut ensuite créer son "cœur", autrement dit le programme en lui même.

Dans la fonction loop() où l’on va écrire le contenu du programme. Il faut savoir que cette fonction est appelée en permanence, c’est-à-dire qu’elle est exécutée une fois, puis lorsque son exécution est terminée, on la ré-exécute encore et encore. On parle de boucle infinie.

Setup (){

….

}

loop () {

}

(23)

Programmation Arduino

Coloration syntaxique:

En

orange

,

apparaissent

les

mots-clés

reconnus

par

le langage Arduino comme des fonctions existantes.

En

bleu

,

apparaissent

les

mots-clés

reconnus

par

le langage Arduino comme des constantes.

En

gris

, apparaissent les commentaires qui ne seront pas

exécutés

dans

le

programme.

L’on

peut

déclarer

un

commentaire de deux manières différentes :

• Dans une ligne de code, tout ce qui se trouve après « // » sera

un commentaire.

(24)

24

Type Quel nombre il

stocke ?

Valeurs maximales

du nombre stocké Nombre sur X bits Nombre d'octets

int entier -32 768 à +32 767 16 bits 2 octets

long entier -2 147 483 648 à +2

147 483 647 32 bits 4 octets

char entier -128 à +127 8 bits 1 octets

float décimale -3.4 x 10^{38}à +3.4 x 10^{38} 32 bits 4 octets double décimale -3.4 x 10^{38}à +3.4 x 10^{38} 32 bits 4 octets

Programmation Arduino

Arduino - Reference.htm

(25)

Programmation Arduino

Exemple de programme:

1

(26)

26

Programmation Arduino

Le programme est envoyé dans la carte lorsque vous cliquez sur

le bouton . Le logiciel Arduino va alors vérifier si le programme

ne contient pas d’erreur et ensuite le compiler (le traduire) pour

l’envoyer dans la carte :

(27)

Programmation Arduino

Le programme rentre donc dans la carte en passant en premier par le connecteur USB de celle-ci. Il va alors subir une petite transformation qui permet d’adapter le signal électrique correspondant au programme vers un signal plus approprié pour le microcontrôleur. On passe ainsi d’un signal codé pour la norme USB à un signal codé pour une simple voie série. Puis ce “nouveau” signal est alors intercepté par le microcontrôleur.

(28)

28

Programmation Arduino

Voici un petit synoptique qui vous montre un peu l’intérieur du microcontrôleur:

Lorsque le microcontrôleur démarre, il va commencer par lancé un bout de code particulier : le bootloader. C’est ce dernier qui va surveiller si un nouveau programme arrive sur la voie USB et s’il faut donc changer l’ancien en mémoire par le nouveau. Si rien n’arrive, il donne la main à votre programme, celui que vous avez créé. Ce dernier va alors défiler, instruction par instruction. Chaque fois qu’une nouvelle variable sera nécessaire, elle sera mise en RAM pour qu’on ai une mémoire de cette dernière (et supprimer lorsqu’elle n’est plus nécessaire). Sinon, les instructions vont se suivre une par une, dans l’ordre que vous les avez écrites.

(29)

Programmation Arduino

Dans un programme, les lignes sont souvent très nombreuses. Il devient alors impératif de séparer le programme en petits bouts afin d’améliorer la lisibilité de celui-ci, en plus d’améliorer le fonctionnement et de faciliter le débogage.

On appelle fonction un sous-programme qui permet d’effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal.

Les fonctions permettent d’exécuter dans plusieurs parties du programme une série d’instructions, cela permet une simplicité du code et donc une taille de programme minimale. D’autre part, une fonction peut faire appel à elle-même, on parle alors de fonction récursive (il ne faut pas oublier de mettre une condition de sortie au risque sinon de ne pas pouvoir arrêter le programme...).

(30)

30

Les libraires

Pour faciliter l’élaboration d’une application, il existe des

librairies

pour

chaque

interface.

Ce

sont

des

micros

programmes.

La librairie pour lire ou écrire sur une carte SD.

//Include all the libraries necessary for FAT32 #include <byteordering.h> #include <fat.h> #include <FAT16.h> #include <fat_config.h> #include <partition.h> #include <partition_config.h> #include <sd-reader_config.h> #include <sd_raw.h> #include <sd_raw_config.h>

Ces librairies se déclarent en début de programme, elles doivent

êtres téléchargées depuis le net et copiées au paravent dans le

dossier …/arduino/libraries/

(31)

Interruption

Une interruption est en fait un déclenchement qui arrête l’exécution du programme pour faire une tâche demandée.

Par exemple, imaginons que le programme compte jusqu’à l’infinie. Moi, programmeur, je veux que le programme arrête de compter lorsque j’appuie sur un bouton. Or, il s’avère que la fonction qui compte est une boucle for(), dont on ne peut sortir sans avoir atteint l’infinie (autrement dit jamais, en théorie).

Nous allons donc nous tourner vers les interruptions qui, dès que le bouton sera appuyé, interromprons le programme pour lui dire : Arrête de compter, c’est l’utilisateur qui le demande !

(32)

32

Interruption

Dans le cas d’une carte Arduino UNO, on trouve deux broches

pour gérer des interruptions externes, la 2 et la 3. Pour

déclencher une interruption, plusieurs cas de figure sont

possibles :

LOW : Passage à l’état bas de la broche,

FALLING : Détection d’un front descendant,

RISING : Détection d’un front montant,

CHANGE : Changement d’état de la broche.

Autrement dit, s’il y a un changement d’un type énuméré

au-dessus, alors le programme sera interrompu pour effectuer une

action.

(33)

Interruption

Créer une nouvelle interruption

• Comme d’habitude, nous allons commencer par faire des réglages dans la fonction setup ().

• La fonction importante à utiliser est attachInterrupt(interrupt, function,

mode).

• Elle accepte trois paramètres :

interrupt: qui est le numéro de la broche utilisée pour l’interruption (0 pour

la broche 2 et 1 pour la broche 3)

function : qui est le nom de la fonction à appeler lorsque l’interruption est

déclenchée

mode : qui est le type de déclenchement (cf. ci-dessus)

• Si l’on veut appeler une fonction nommée Reagir () lorsque l’utilisateur appuie sur un bouton branché sur la broche 2 on fera :

attachInterrupt(0, Reagir, FALLING);

(34)

34

Interruption

(35)
(36)
(37)
(38)

Références

Documents relatifs

Bien que plus marginales, différentes formes d'association (CUMA intégrales, groupements d'employeurs, assolements en commun, EARL ou GAEC entre tiers) sont également conçues par

Conclusion – La condition des faisant fonction est donc ambivalente : autorisée à faire plus, surclassée, mais dans des conditions qui, comparées à celles des

C’est dans cette dynamique régionale de reconstruction et de construction d’églises que s’inscrit le projet des époux Leclercq, industriels fortunés de la filière textile,

Vue générale de la section des funérailles avec trois stèles et un cippe ainsi que, sur la gauche, la stèle expérimentale en couleurs créée de toutes pièces pour

Elle était une vieille danse, sûrement, et elle avait beaucoup servi, mais il lui semblait qu’elle avait aussi sa place dans cette danse du moment.. Ca marchait, parfois, et

Résumé : Cette communication analyse les mutations de l’industrie des médias dans un contexte de convergence qui favorise l’expansion des groupes des médias mais

In this paper, we develop a new constant size thresh- old Attribute Based Signcryption Scheme (t-ABSC) as a novel security mechanism for the access control, data encryption, and

L’article propose d’étudier la conduite des politiques de lutte contre la pauvreté (LCP) à destination des personnes sans-abri sur le territoire de la Région de