24
Introduction à l’algorithmique et à la programmation (Info b) Dixième cours: Introduction au microcontrôleur Arduino Matthieu Puigt Université du Littoral Côte d’Opale IUT de Saint-Omer Dunkerque DUT Génie Industriel et Maintenance [email protected] http://www-lisic.univ-littoral.fr/~puigt/ . Retrouvez ce document sur : http://www-lisic.univ-littoral.fr/~puigt/infob.html Année universitaire 2013–2014 M. Puigt Info b – Cours 10 2013–2014 1

Introduction à l'algorithmique et à la programmation …puigt/LectureNotes/Infob/2013-14/Cours... · programmation (Info b) Dixième cours: Introduction au microcontrôleur Arduino

Embed Size (px)

Citation preview

Introduction à l’algorithmique et à laprogrammation (Info b)

Dixième cours: Introduction au microcontrôleur Arduino

Matthieu Puigt

Université du Littoral Côte d’OpaleIUT de Saint-Omer Dunkerque

DUT Génie Industriel et [email protected]

http://www-lisic.univ-littoral.fr/~puigt/.

Retrouvez ce document sur :http://www-lisic.univ-littoral.fr/~puigt/infob.html

Année universitaire 2013–2014

M. Puigt Info b – Cours 10 2013–2014 1

Bibliographie

Ce cours est partiellement inspiré de :http://www.acm.uiuc.edu/sigbot/tutorials/2009-11-17-arduino-basics.pdf,des notes de cours disponibles surhttp://todbot.com/blog/spookyarduino/,des fonctions et bibliothèques surhttp://arduino.cc/fr/Main/ReferenceEtendue ethttp://arduino.cc/fr/Main/Librairies.

M. Puigt Info b – Cours 10 2013–2014 2

Un microcontrôleur (ou µc), qu’est-ce que c’est ?Definition (source Wikipedia)Circuit intégré qui rassemble les éléments essentiels d’un ordinateur :processeur, mémoires (morte et vive), unités périphériques et interfacesd’entrées-sorties.

Plus petits, moins performants (et donc moins consommateursd’énergie), moins chers qu’un PC (de moins en moins vrai : cfRaspberry PI ou Beaglebone Black par exemple)Application visée = systèmes embarqués (téléphones mobiles,baladeurs, récepteurs GPS, électroménager, automobile, systèmes detransports, etc)Généralement, l’utilisateur ne peut communiquer avec un µc en coursd’utilisation (pas d’interface homme-machine sur un injecteur parexemple)Mais environnement de développement intégré (IDE en anglais) pour leprogrammer initialement.La plupart des µc programmés en langage assembleur. D’autres (ex : lesarduino) compilent des langages de programmation (moins optimalmais plus facile)

M. Puigt Info b – Cours 10 2013–2014 3

Arduino ?

Start-up italienne lancée en 2005 (http://arduino.cc)Crée un microcontrôleur bas-coût (à partir de 20 e) avec un IDEpermettant de facilement le programmer, même par un débutant.Public visé : les artistes, les étudiants (université voire lycée), les"bidouilleurs" du dimanche, les experts pour certaines applications oudu développementOpen-source (sauf nom) : les plans sont en ligne et on peut doncreproduire, modifier et améliorer et vendre une telle carte. L’IDE estaussi open-source.

î Enorme communauté d’utilisateursCentaines de produits sur le marché (versions officielles, copies àl’identique à bas coût, versions améliorées). Chaque jour naît unnouveau produit "duino"Hardware open-source est une nouvelle révolution industrielle seloncertains experts (de nombreuses compagnies se sont lancées sur cemarché)

M. Puigt Info b – Cours 10 2013–2014 4

Modèle UNOQuelques caractéristiques :• 32 ko de ROM (dont

bootloader de 0.5 ko)• 2 ko de RAM, 1 ko

d’EEPROM• 16 MHz (Intel 8086 : de 5 à

10 MHz)

• 14 ports entrée/sortienumériques

(dont 6 MLI)

• 5 ports d’entrée analogique

M. Puigt Info b – Cours 10 2013–2014 5

Modèle UNOQuelques caractéristiques :• 32 ko de ROM (dont

bootloader de 0.5 ko)• 2 ko de RAM, 1 ko

d’EEPROM• 16 MHz (Intel 8086 : de 5 à

10 MHz)• 14 ports entrée/sortie

numériques

(dont 6 MLI)• 5 ports d’entrée analogique

Les E/S numériques (deux valeurs : ON/OFF) peuvent "lire" desinterrupteurs, des boutons, contrôler des DEL et l’activation de moteurs

Les entrées analogiques (une "infinité" de valeurs) peuvent lire despotentiomètres et autres capteurs à données variablesLes sorties analogiques peuvent être obtenues par des "modulations delargeur d’impulsion"

M. Puigt Info b – Cours 10 2013–2014 5

Modèle UNOQuelques caractéristiques :• 32 ko de ROM (dont

bootloader de 0.5 ko)• 2 ko de RAM, 1 ko

d’EEPROM• 16 MHz (Intel 8086 : de 5 à

10 MHz)• 14 ports entrée/sortie

numériques

(dont 6 MLI)

• 5 ports d’entrée analogique

Les E/S numériques (deux valeurs : ON/OFF) peuvent "lire" desinterrupteurs, des boutons, contrôler des DEL et l’activation de moteursLes entrées analogiques (une "infinité" de valeurs) peuvent lire despotentiomètres et autres capteurs à données variables

Les sorties analogiques peuvent être obtenues par des "modulations delargeur d’impulsion"

M. Puigt Info b – Cours 10 2013–2014 5

Modèle UNOQuelques caractéristiques :• 32 ko de ROM (dont

bootloader de 0.5 ko)• 2 ko de RAM, 1 ko

d’EEPROM• 16 MHz (Intel 8086 : de 5 à

10 MHz)• 14 ports entrée/sortie

numériques (dont 6 MLI)• 5 ports d’entrée analogique

Les E/S numériques (deux valeurs : ON/OFF) peuvent "lire" desinterrupteurs, des boutons, contrôler des DEL et l’activation de moteursLes entrées analogiques (une "infinité" de valeurs) peuvent lire despotentiomètres et autres capteurs à données variablesLes sorties analogiques peuvent être obtenues par des "modulations delargeur d’impulsion"

M. Puigt Info b – Cours 10 2013–2014 5

Modèle UNOQuelques caractéristiques :• 32 ko de ROM (dont

bootloader de 0.5 ko)• 2 ko de RAM, 1 ko

d’EEPROM• 16 MHz (Intel 8086 : de 5 à

10 MHz)• 14 ports entrée/sortie

numériques (dont 6 MLI)• 5 ports d’entrée analogique

Tension de fonctionnement : 5 VTension d’entrée (recommendée) : 7-12 VTension d’entrée (limites) : 6-20 VIntensité de courant par port E/S : 40 mAIntensité de courant par port E/S en 3.3 V : 50 mA

M. Puigt Info b – Cours 10 2013–2014 5

Que peut-on connecter à l’Arduino ?Quelques exemples

Des capteurs de température :

M. Puigt Info b – Cours 10 2013–2014 6

Que peut-on connecter à l’Arduino ?Quelques exemples

Des capteurs de pression/torsion :

M. Puigt Info b – Cours 10 2013–2014 6

Que peut-on connecter à l’Arduino ?Quelques exemples

Des moteurs :

M. Puigt Info b – Cours 10 2013–2014 6

Que peut-on connecter à l’Arduino ?Quelques exemples

Des écrans d’affichage :

M. Puigt Info b – Cours 10 2013–2014 6

Que peut-on connecter à l’Arduino ?Quelques exemples

Des relais :

M. Puigt Info b – Cours 10 2013–2014 6

Que peut-on connecter à l’Arduino ?Quelques exemples

Bref, tout type de capteur (http://itp.nyu.edu/physcomp/sensors/) ou d’actionneur.

M. Puigt Info b – Cours 10 2013–2014 6

Que peut-on connecter à l’Arduino ?Quelques exemples

Mais aussi des modules appelés "shields"

qu’on peut empiler :

Liste des shields : http://shieldlist.org/

M. Puigt Info b – Cours 10 2013–2014 6

Que peut-on connecter à l’Arduino ?Quelques exemples

Mais aussi des modules appelés "shields" qu’on peut empiler :

Liste des shields : http://shieldlist.org/

M. Puigt Info b – Cours 10 2013–2014 6

IDE

CompilerTransférer

Zone de statut

IDE téléchargeable sur http://arduino.ccUn programme s’appelle "sketch"

Compiler, remettre à zéro la carte (appuyer sur reset) et charger leprogramme

M. Puigt Info b – Cours 10 2013–2014 7

IDE Compiler

Transférer

Zone de statut

IDE téléchargeable sur http://arduino.ccUn programme s’appelle "sketch"

Compiler, remettre à zéro la carte (appuyer sur reset) et charger leprogramme

M. Puigt Info b – Cours 10 2013–2014 7

IDE CompilerTransférer

Zone de statut

IDE téléchargeable sur http://arduino.ccUn programme s’appelle "sketch"

Compiler, remettre à zéro la carte (appuyer sur reset) et charger leprogramme

M. Puigt Info b – Cours 10 2013–2014 7

IDE CompilerTransférer

Zone de statut

IDE téléchargeable sur http://arduino.ccUn programme s’appelle "sketch"Compiler, remettre à zéro la carte (appuyer sur reset) et charger leprogramme

M. Puigt Info b – Cours 10 2013–2014 7

Langage Arduino

Langage très proche du CBeaucoup de fonctions très simples

pinMode() – choisit un port comme entrée ou sortie (INPUT/OUTPUT)digitalWrite() – affecte à un port numérique la valeur haute oubasse (HIGH/LOW)digitalRead() – lit l’état du port numériqueanalogRead() – lit un port analogiqueanalogWrite() – écrit une valeur MLI "analogique"delay() – attend une durée de temps définie (en ms)millis() – fournit le temps épuisé (en ms) depuis le lancement duprogramme courant

Et beaucoup d’autres "bibliothèques" et "fonctions" (on en reparleraplus tard, en TD et TP)

M. Puigt Info b – Cours 10 2013–2014 8

Le squelette d’un programme

// Déclaration de variablesvoid setup(){// Initialisation des variables

}void loop(){// Cette fonction est appelée indéfiniment,// après le setup

}

M. Puigt Info b – Cours 10 2013–2014 9

Conclusion

Nous avons vu une rapide introduction à l’ArduinoBeaucoup de tutoriels en ligne peuvent vous aiderNous allons mieux l’étudier dans le cadre de TD/TP

M. Puigt Info b – Cours 10 2013–2014 10