103
Chapitre 1 Internet Of Things (IoT) L'internet des objets © JMF (Tous droits réservés) 1

Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Chapitre 1

Internet Of Things (IoT)

L'internet des objets

© JMF (Tous droits réservés) 1

Page 2: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Plan du chapitre 1

Historique : du M2M à l'IoT

IoT = ?

IoT et embedded systems

Architecture d'un embedded systems

Les composants d'un microcontrôleur

Exemples de microcontrôleur

© JMF (Tous droits réservés) 2

Page 3: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Le M2M

M2M = machine to machine = communication entre machines = technologie donnant des moyens à des objets "intelligents" (= doués de possibilités de calcul) d'obtenir des informations et d'(inter)agir sans intervention humaine

Domaines proches : les réseaux sans fil (Wi-Fi 802.11abg, Bluetooth, Zigbee)

les technologies sans contact (RFID, NFC)

QR Code

Exemple : système de freinage anti-bloquant, régulateur de vitesse des automobiles, temps d'attente des transports en commun, télésurveillance de lieu

© JMF (Tous droits réservés) 3

Page 4: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Du M2M à l'IoT

IoT = Internet Of Things = Internet des objets

= lorsque M2M utilise le réseau internet (TCP/IP)

L'objet devient un acteur de l'internet

Domaines proches : la programmation

l'intelligence artificielle

le big data

le cloud

Le terme IoT supplante le terme M2M

© JMF (Tous droits réservés) 4

Page 5: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Technologies proches pour

IoT

Pour l'identification : RFID, URI, coordonnées GPS

Capteurs : luxmètre, thermomètre, hydromètre, accéléromètre, gyroscope

Connexion réseau : Bluetooth, RFID, NFC (= Near Field Communication = Communication en champ proche, Wi-Fi, ZigBee), SMS, réseau téléphonique, ethernet, TCP/IP

Intégration de données : domaine des middlewares, des systèmes décisionnels, entrepôt de données

© JMF (Tous droits réservés) 5

Page 6: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Un chouette exemple : les

étiquettes virtuelles

= Pas d'étiquette physique

Une URL (URI) est associé à un ensemble de coordonnées GPS et une zone centrée en ces coordonnées

Lorsqu'un smartphone équipé de GPS entre dans une zone, il affiche ces URLs (URIs)

=> messages entre touristes

© JMF (Tous droits réservés) 6

Page 7: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Lier un objet à l'internet

Car un objet n'est pas déjà numérisé

Processus plus complexe que lier une page web à l'internet (par son URL)

Nécessite : une étiquette physique

une technique pour lire ces étiquettes

un appareil de transmission de cette information (par exemple smartphone)

un réseau (UMTS, 2G, 3G, 4G, etc.)

un lieu de dépot d'informations sur le produit

un affichage de ces infos

© JMF (Tous droits réservés) 7

Page 8: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Les contraintes

technologiques

On rencontre souvent des contraintes technologiques comme :

Consommer peu d'énergie => peu de puissance électrique surtout si l'objet est mobile

De petite taille (miniaturisation)

D'IHM très réduit (souvent sans clavier ni écran)

Fait un travail très simple et communique ses résultats par le réseau => nécessite une bonne couche réseau, du cache, un protocole de service de sauvegarde, parfois crypté

© JMF (Tous droits réservés) 8

Page 9: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

IoT : une présentation

Internet des objets =

des objets (un réfrigérateur, un vêtement, une montre, …)

+ de "l'intelligence". Euh un organe de calcul = un "minuscule" ordinateur pouvant exécuter un "logiciel"= un microcontrôleur

+ un connexion réseau vers l'internet

Exemple :

+ +

© JMF (Tous droits réservés) 9

Page 10: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

IoT, et donc

L'objet fait son travail (refroidir, protéger un corps humain, donner l'heure) avec des fonctionnalités (de calcul) supplémentaires pouvant être transmise vers l'internet et pouvant recevoir des informations du réseau

D'aspect, un organe d'internet des choses ressemble à une "chose" pas à un ordinateur (portable, tour, serveur ou autre)

Un IoT device a une fonction principale qui n'est pas une fonctionnalité d'ordinateur

© JMF (Tous droits réservés) 10

Page 11: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Un chose (device)

"intelligente"

On ajoute donc des fonctionnalités à l'objet. Par exemple :

Un réfrigérateur conserve les aliments au froid

Un réfrigérateur intelligent : indique si la porte est entre-ouverte (bip)

indique si le filtre d'eau doit être changé (autre bip)

détecte les aliments qu'il possède,

s'il manque certains aliments importants

les recettes pouvant être faites avec ces aliments

qu'il y a trop d'aliment favorisant le cholestérol (euh :-) )

cf. projet IHM UE NSY110 du CNAM Paris 1998, le réfrigérateur intelligent

Il n'y a pas de réseau et d'internet ici

© JMF (Tous droits réservés) 11

Page 12: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

L'IoT réfrigérateur

Avertit le smartphone d'acheter des aliments

Commande un filtre à eau, recherche les meilleurs prix

Compare sa consommation avec d'autres réfrigérateurs

Commande les denrées fondamentales lui-même

Suggère certains travaux à faire au smartphone de l'utilisateur

Nécessite donc une connexion (à l'internet)

© JMF (Tous droits réservés) 12

Page 13: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

IoT devices vs. ordinateur

Un appareil destiné à une fonctionnalité la fait très bien : une caméra filme très bien, une chaîne Hi-Fi restitue très bien la musique, etc.

Mais n'est destiné qu'à une certaine fonctionnalité

Un ordinateur peut réaliser beaucoup de fonctionnalités, généralement moins bien qu'un appareil dédié

© JMF (Tous droits réservés) 13

Page 14: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

IoT partout ?

"Un environnement pervasif (ou environnement ubiquitaire) correspond à un fonctionnement global de la communication où une informatique diffuse permet à des objets communicants de se reconnaitre entre eux et de se localiser automatiquement."

source : https://fr.wikipedia.org/wiki/Environnement_pervasive

IoT peut être pervasif

IoT peut être mis dans une télévision, des jeux, contrôler l'électroménager, déceler une présence par des capteurs (=> allumer une pièce suivant la luminosité, etc.), détecter des entrées par tag RFID (cf. produit dans le réfrigérateur intelligent)

IoT peut être utile pour la santé des gens : pacemakers, pompe à insuline, etc.

IoT pour la surveillance du trafic routier

© JMF (Tous droits réservés) 14

Page 15: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

IoT pervasif : un exemple

Les "smart home"

Arroser la pelouse, allumer/éteindre les lumières, régler les thermostats, fermer fenêtres et rideaux tout cela automatiquement et judicieusement

Contrôler l'accès à la maison partout où on est

Réguler la température, la ventilation, la climatisation (air conditionné) = HVAC = heating, ventilation, and air conditioning

© JMF (Tous droits réservés) 15

Page 16: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Une smart home

https://www.homecontrols.com/automate-your-home

© JMF (Tous droits réservés) 16

Page 17: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

IoT devices vs. embedded

systemssystème embarqué = traduction maladroite de embedded systems

embedded system = système incorporé, intégré, enfoui

En français embarqué suggère la mobilité

Exemple d'embedded systems : panneau d’affichage urbain, pompe à essence, une télévision en plus d'une caméra digitale, d'une voiture, bref ces objets récents

Finalement embedded system = objet remplissant une ou plusieurs fonctionnalités dont certaines sont aidées par un petit système informatique

Euh, semble être un IoT device (= équipement connecté à l'internet = objet connecté = smart objet)

Les IoT devices sont des embedded systems

La grande différence est que les IoT devices doivent avoir une connexion au réseau (à l'internet ?)

© JMF (Tous droits réservés) 17

Page 18: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Remarque sur les

embedded systems

Le logiciel et le matériel sont souvent conçus en même temps

=> on doit avoir des compétences dans les deux domaines (logiciel et matériel)

Comme on sera amené à le faire ;-)

© JMF (Tous droits réservés) 18

Page 19: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Architecture d'un

embedded system (1/4)capteur (sensor) = organe d'entrée. Par exemple, capteur de

température , de luminosité (= photo résistance)

microphone, capteur d'onde radio, etc.

source : Coursera Ian Harris Introduction to the Internet of Things and Embedded Systems, Embedded Systems Week2, Lecture 1_3 Generic Embedded Systems Structure

© JMF (Tous droits réservés) 19

capteurs ADC

reçoit des infos du monde extérieur

DAC actuateurs

informe le monde extérieur

microcontrôleur

IP FPGA

Page 20: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Architecture d'un

embedded system (2/4)

actuateur (actuator) = organe de sortie. Par exemple haut parleur, buzzer , led , petit écran LCD , etc.

LED = light-emitting diode = diode électroluminescente = DEL

LCD = Liquid Crystal Display = écran à cristaux liquides = ACL pour Affichage à Cristaux Liquides

© JMF (Tous droits réservés) 20

Page 21: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Conversion analogique

numérique= convertir du continu (ensemble R des nombres réels) en discret

(ensemble N des nombres entiers naturels) (et réciproquement)

Certaines données sont continues (luminosité, chaleur, son, etc.)

Il va falloir faire des conversions analogique vers numérique (Analog to Digital Conversion = ADC) et des conversions numérique vers analogique (Digital to Analog Conversion = DAC)

Souvent les conversions analogique vers numérique doivent être faites pour les entrées (luminosité, chaleur, son en valeur entière), pas toujours (bouton)

Souvent les conversions numérique vers analogique doivent être faites pour les sorties (haut parleur, etc.)

biblio : https://www.newbiehack.com/MicrocontrollersIntroductiontoADCAnalogtoDigitalConversion.aspx

© JMF (Tous droits réservés) 21

Page 22: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Architecture d'un

embedded system (3/4)

IP = Intellectual Property Core = circuit intégré dédié à une fonctionnalité

Par exemple : controleur réseau : ethernet, bus CAN (= Controller Area Network) dans les

automobiles

audio : CODEC (codage-décodage, code-decode en anglais) codant et décodant un flux audio. Idem pour vidéo

video : VGA controleur

© JMF (Tous droits réservés) 22

Page 23: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Architecture d'un

embedded system (4/4)

FPGA = Field Programmable Gate Array

= circuit logique programmable = un circuit intégré logique qui peut être reprogrammé après sa fabrication

~ PROM pouvant chargé de nombreuses applications connues

en fait reconfigurable plutôt que reprogrammable

biblio : https://fr.wikipedia.org/wiki/Circuit_logique_programmable

source : Coursera Ian Harris Introduction to the Internet of Things and Embedded Systems, Embedded Systems Week2, Lecture 1_3 Generic Embedded Systems Structure

© JMF (Tous droits réservés) 23

Page 24: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

La mémoire

Il y plusieurs types de mémoire. Elles sont de taille nettement plus

importantes que les registres

mémoire cache (en taille limitée, plus chère que la RAM, mais plus

rapide)

mémoire vive = RAM (Random Access Memory) = "mémoire à

accès aléatoire" = mémoire principale

= mémoire informatique dans laquelle un ordinateur place les

données et le programme lors de son exécution

La RAM est volatile (le contenu est perdu dès que l'ordinateur cesse

d'être alimenté en électricité) alors que la mémoire flash ne l'est pas

=> la mémoire flash va contenir le programme téléversé

© JMF (Tous droits réservés) 24

Page 25: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Un microcontrôleur =

Un circuit intégré avec processeur et essentiellement, de la mémoire morte (= ROM = Read Only Memory = mémoire non volatile), mémoire vive (= RAM = Random Access Memory = mémoire volatile)

Très faible consommation électrique, petite taille (7,4 cm x 5,3 cm pour Arduino), très bon marché (~ quelques dizaines d'euro),

Très peu cher

© JMF (Tous droits réservés) 25

Page 26: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

microcontrôleur vs.

microprocesseur source :

http://www.engineersgarage.com/tutorials/difference-between-microprocessor-and-microcontroller

"Microprocessor is an IC which has only the CPU inside them i.e. only the processing powers such as Intel’s Pentium, core 2 duo, i3, i5 etc. These microprocessors don’t have RAM, ROM, and other peripheral on the chip. A system designer has to add them externally to make them functional. Application of microprocessor includes Desktop PC’s, Laptops, etc.

Microcontroller has a CPU in addition with a fixed amount of RAM, ROM and other peripherals all embedded on a single chip. At times it is also termed as a mini computer or a computer on a single chip. Today different manufacturers produce microcontrollers with a wide range of features available in different versions. Some manufacturers are ATMEL, Microchip, TI, Freescale, Philips, Motorola etc"

IC = Integrated Circuit

Bref microprocesseur = micro processeur, micro controleur = mini ordinateur © JMF (Tous droits réservés) 26

Page 27: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Composants d'un

microcontrôleur

Un microcontrôleur intègre sur un seul circuit intégré = sur un seule carte :

un processeur (CPU)

un bus (chemin) de transfert d'informations données

Une ROM sous forme de EPROM (Erasable Programmable Read Only Memory), EEPROM (Electrically-erasable programmable read-only memory), mémoire flash (la plus récente)

une horloge pour cadencer l'exécution d'instructions

des convertisseurs analogiques-numériques (CAN), et numériques-analogiques (CNA)

des contrôleurs de bus de communication (UART, CAN, USB, Ethernet, etc.)

© JMF (Tous droits réservés) 27

Page 28: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Utilisation d'un

microcontrôleur

possède un microprocesseur (16 à 500 Mhz) (cf. un PC portable 2,60 Ghz), connecté à d'autres composants (cf. entrées-sorties), reçoit des données, envoie des commandes

Peut être programmé (en langage C, C++, Python, etc.). Le programme est chargé en mémoire

Le code est construit sur une machine de développement et téléchargé dans le microcontrôleur (sa mémoire flash non volatile) par cable USB

Le code pourra être exécuté en amenant de l'électricité (pile ou par la machine de développement par le cable USB)

© JMF (Tous droits réservés) 28

Page 29: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Des microcontrôleurs

Il y a énormément de microcontrôleurs

Pas seulement Arduino (Uno, Due, etc.) ou Raspberry Pi

Voir par exemple à Texas Intruments (http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-bit/overview.page ), Atmel (http://www.atmel.com/ ), etc. Voir aussi à https://fr.wikipedia.org/wiki/Microcontr%C3%B4leur

Un microcontrôleur possède des registres rapides d'accès, en nombre réduit (au plus 32 ?)

Les registres indiquent la taille du processor (registres de 32 bits => architecture 32 bits)

© JMF (Tous droits réservés) 29

Page 30: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Les pins

= fiche, trou, épingle, broche

Certaines pins sont "digital" (= discrètes), 0 ou 5 volts

D'autres pins sont "analog" (analogiques, continues)

© JMF (Tous droits réservés) 30

Page 31: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Autres parties d'un

microcontrôleur

L'horloge cadence les instructions à exécuter. En Mhz (8 Mhz, 512 Mhz, …)

Il n'y a pas toujours de convertisseurs analogique numérique

Des protocoles de communication avec d'autres composants électroniques

© JMF (Tous droits réservés) 31

Page 32: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

MANET : un réseau pour

loT

MANET = Mobile Ad Hoc Network

réseau autoconfigurable : les élements y accèdent où se retirent librement

peut permettre d'accéder à internet

Exemple : Bluetooth Low Energy (BLE)

© JMF (Tous droits réservés) 32

Page 33: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Bibliographie pour ce

chapitre

Coursera : Introduction to the Internet of Things and Embedded

Systems ; Ian Harris, Université de Californie Irvine à

https://www.coursera.org/learn/iot/

Sur les microcontrôleurs :

http://whatis.techtarget.com/glossary/Microprocessors ,

https://fr.wikipedia.org/wiki/Microcontr%C3%B4leur

© JMF (Tous droits réservés) 33

Page 34: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Chapitre 2

Découvrir Arduino

34© JMF (Tous droits réservés)

Page 35: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Plan du chapitre 1

Le microcontrôleur Arduino

L'environnement de développement pour Arduino

Un site émulateur

35© JMF (Tous droits réservés)

Page 36: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Arduino UNO : le

microcontrôleur

microcontrôleur 8 bits

interface USB

pins d'entrées sorties

Voir à https://www.arduino.cc/en/Main/ArduinoBoardUno

Possibilité d'ajouter des cartes supplémentaires pour des fonctionnalités supplémentaires (communication Wi-Fi, etc.)

Hamburger shield

Il existe beaucoup de cartes supplémentaires : voir à https://store.arduino.cc/category/68

36© JMF (Tous droits réservés)

Page 37: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Les connecteurs

bouton reset(relance le programme)

connecteur USB

connecteur pour alimentation électrique(si non USB)

pins d'alimentation électrique

37© JMF (Tous droits réservés)

Page 38: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Les processeurs

ATmega16U2 (pour la connexion USB)

ATmega328 : le processeur qui reçoitnotre programme

38© JMF (Tous droits réservés)

Page 39: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

La partie amorce

(bootloader)

Les constructeurs d'Arduino ont conçu une couche amorce (bootloader)

permettant au programmeur :

- de programmer la mémoire flash et EEPROM

- de gérer la communication USB et le téléversement de programmes par

USB

On peut reprogrammer l'amorce non pas par la communication USB, mais

par communication série (ICSP) In-Circuit Serial Programming et utiliser une

PIN dédiée

Sur la carte Arduino il y a deux ports

ICSP : une pour chaque processeur

39© JMF (Tous droits réservés)

Page 40: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Les schémas électriques

Montre les branchements entre composants

ATTENTION : ne montre pas un plan géométrique : la disposition,

l'échelle est souvent non respectée. La lisibilité électrique est

privilégiée

Exemple : schéma de la

carte Arduino :

cf. taille, emplacement

des microprocesseurs,

des ICSP

40© JMF (Tous droits réservés)

Page 41: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Les pins

= fiche, trou, épingle, broche

Certaines pins sont "digital" (= discrètes), 0 ou 5 volts. Elles peuvent être des pins d'entrées (= en lecture) ou de sorties (en écriture)

D'autres pins sont "analog" (analogiques, continues). Elles ne peuvent être qu'en lecture : c'est marqué dessus (!) ANALOG IN. Aucune pin analogique est en écriture

41© JMF (Tous droits réservés)

Page 42: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Arduino : le matériel

Ce n'est pas gratuit :-(

Mais très bon marché :-)

Une carte Arduino Uno seule coûte ~20€

Euh, il faut quelques composants (capteurs, actuateurs, cables, etc.)

Un bon compromis : le Arduino Starter Kit, contenant une carte Arduino Uno, des composants et cables, un tutorial (avec 15 projets). Est disponible en français pour ~ 90€

42© JMF (Tous droits réservés)

Page 43: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Caractéristiques du

microcontrôleur ATmega328

processeur : 8 bits

alimentation : 6-20 V max

microcontrôleur : ATmega328

broches d'entrée/sortie numériques : 14 (dont 6 peuvent servir d'entrées analogiques PWM)

40 mA CC par broche E/S, 50 mA CC par broche 3.3 V

entrées analogiques : 6

mémoire flash : 32 ko (ATmega328) dont 0,5 ko utilisé par l'amorce

SRAM : 2 ko (ATmega328)

EEPROM : 1 ko (ATmega328)

vitesse d'horloge : 16 MHz

43© JMF (Tous droits réservés)

Page 44: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Chapitre 3

Arduino

44© JMF (Tous droits réservés)

Page 45: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Plan du chapitre 2

Electronique, électricité, automatique

L'environnement de développement pour Arduino

Un site émulateur

Le langage C

Codage de circuits

45© JMF (Tous droits réservés)

Page 46: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Electronique et électricité

: définitions"L'électronique est une branche de la physique appliquée, traitant de

la mise en forme et de la gestion de signaux électriques, permettant de transmettre ou recevoir des informations." Elle traite plutôt les courants faibles

source : https://fr.wikipedia.org/wiki/%C3%89lectronique

"L’électricité est l'effet du déplacement de particules chargées, à l’intérieur d'un "conducteur", sous l'effet d'une différence de potentiel aux extrémités de ce conducteur"

source : https://fr.wikipedia.org/wiki/%C3%89lectricit%C3%A9

Bref électricité = le phénomène physique dynamique, électronique = les conséquences de ce phénomène

46© JMF (Tous droits réservés)

Page 47: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Un circuit électrique

L'électricité est le déplacement d'électrons

~ un courant d'eau est un déplacement d'eau

=> courant électrique

Un générateur d'électricité récupère les électrons qu'il a envoyés => les électrons tournent dans un circuit !

Le point du générateur dit source électrique est noté + (et est, en fait, le point où les électrons reviennent dans le générateur !)

Le point du générateur noté - est appelé la terre

Ceci pour le courant continu (qui est celui utilisé par Arduino)

47© JMF (Tous droits réservés)

Page 48: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Intensité d'un courant

L'intensité du courant est la "quantité d'électricité" traversant une section de circuit pendant une seconde. C'est le débit de quantité d'électricité

Elle se mesure en ampères notés A

~ débit de l'eau d'un torrent, d'un fleuve

48© JMF (Tous droits réservés)

Page 49: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Courant continu et

alternatif (DC, AC)

Le courant continu ou CC (DC pour direct current en anglais) est un courant électrique dont l'intensité est indépendante du temps (constante)

Le courant alternatif ou CA (AC pour alternating current en anglais) est un courant électrique périodique qui change de sens deux fois par période et qui transporte des quantités d'électricité alternativement égales dans un sens et dans l'autre. Un courant alternatif a donc une composante continue (valeur moyenne) nulle

49© JMF (Tous droits réservés)

Page 50: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Voltage, différence de

potentiel

~ différence d'altitude pour un courant d'eau

Figure : cascade du morel, aigueblanche savoie

La différence de potentiel est mesurée en volts et est appelée aussi tension

le sol = la terre

80 mètres~ 5 volts

50© JMF (Tous droits réservés)

Page 51: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Résistance

~ ce qui peut ralentir le débit de l'électricité, ~ un obstacle dans le courrant

~ ce qui résiste au courant

Exemples et symbole :

N'a pas de sens d'utilisation

Est mesuré en Ohm (Ω)

51© JMF (Tous droits réservés)

Page 52: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Valeur d'une résistance

sous la forme (mantisse, exposant)

Plus précisément mantisse x 10exposant

Les valeurs des chiffres de 0 à 9 sont indiqués par les valeurs sous forme des couleurs :

Moyen mnémotechnique : "Big brown rabbits often yield great big vocal groans when gingerly snapped." (de gros lapins bruns gémissent fortement quand ils sont ???)

52© JMF (Tous droits réservés)

Page 53: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Valeur d'une résistance

Et en français (merci Frédéric)

Ne Mangez Rien Ou Jeunez, Voilà Bien Votre Grande Bétise

= Noir, Marron, Rouge, Orange, Jaune, Vert, Bleu, Violet, Gris, Blanc

= 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

53© JMF (Tous droits réservés)

Page 54: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Pour lire une valeur de

résistance

Orienter la résistance en mettant la précision (or ou argent) à droite

Le site http://www.digikey.fr/fr/resources/conversion-calculators/conversion-calculator-resistor-color-code-4-band peut être fort utile

54© JMF (Tous droits réservés)

Page 55: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Loi d'Ohm et

conséquences

U = RI

U en volts, R en Ohm, I en ampère

Arduino ne doit pas dépasser 40 mA => on utilise les résistances

Souvent pour une LED, une résistance de 10 kΩ soit au plus 0,5 mA

55© JMF (Tous droits réservés)

Page 56: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Câblage en série

On dit que des composants électriques (résistances, LED, etc.) sont en série, si ils sont les uns à la suite des autres. Le câblage est dit en série

Lorsque plusieurs composants sont reliés et câblés en série, si l'un d'entre eux est détruit, cela ouvre le branchement et le courant électrique ne passe plus dans ce branchement

Dans un câblage en série, tous les composants de ce câblage sont traversés par la même intensité (en ampère)

Dans un câblage en série, la somme des différences de potentiels (en volts) traversant chaque composant est égale à la différence de potentiel entre l'entrée du premier et la sortie du dernier composant

Pour une connexion de résistances en série, la résistance totale est égale à la somme des résistances

56© JMF (Tous droits réservés)

Page 57: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Câblage en parallèle

On dit que des composants électriques (ou des groupes de composants) sont en parallèle, si leurs extrémités sont réunis (dans un même nœud). Le câblage est dit en parallèle

Exemple : deux résistances en parallèle

=> il existe plusieurs chemins par lesquels le courant peut passer

Dans un branchement en parallèle, les branches sont soumises à la même tension (en volt)

Dans un branchement en parallèle, l'intensité n'est pas obligatoirement la même dans chaque branche

Avec n branches, on a la relation :Inoeud = I1 + …+ In où Ij est le courant qui traverse la branche j

57© JMF (Tous droits réservés)

Page 58: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Diode et LED

~ valve unidirectionnelle

Le courant ne passe que dans un sens pour le faible voltage d'Arduino. Il faut un voltage énorme pour faire passer le courant dans l'autre sens => une diode a un sens d'utilisation

Symbole :

LED = light-emitting diode = diode électroluminescente : émet de la lumière au passage du courant

Symbole :

58© JMF (Tous droits réservés)

Page 59: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Remarque sur les LEDs

Les led sont des diodes (le D de LED)

Elles sont donc orientés

La partie liée au potentiel le plus fort (le +) correspond à la branche la plus grande : c'est l'anode

La partie liée au potentiel le plus faible (le -), en général la terre, correspond à la branche la plus petite : c'est la cathode

59© JMF (Tous droits réservés)

Page 60: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Interrupteur

= Switch = Button, PushButton

Lors d'un appui sur le bouton, les broches d'un même coté sont connectées. Pas les broches en face à face !

60© JMF (Tous droits réservés)

Page 61: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

La "planche à pain"

(breadboard)

Permet de connecter des composants entre eux …

… sans soudure !

61© JMF (Tous droits réservés)

Page 62: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Les lignes de contact du

breadboard

62© JMF (Tous droits réservés)

Page 63: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Electronique et électricité

: pour commencer

Comment lire un schéma électrique : How to Read a Schematic: https://learn.sparkfun.com/tutorials/how-to-read-a-schematic

La "planche à pain" = Breadboard = https://learn.sparkfun.com/tutorials/how-to-use-a-breadboard

Les résistances = Résistance = https://learn.sparkfun.com/tutorials/resistors

Diode = https://learn.sparkfun.com/tutorials/diodes

Light-emitting Diodes (LEDs) = https://learn.sparkfun.com/tutorials/light-emitting-diodes-leds

63© JMF (Tous droits réservés)

Page 64: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Retour sur la carte Arduino

Deux pins terre (en vert), deux pins de potentiel (3,3 volts et 5 volts). On utilise généralement le 5 volts

Conseil : à relier au lignes "horizontales" de pins du breadboard

64© JMF (Tous droits réservés)

Page 65: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Arduino : l'environnement

de développement

Voir à https://www.arduino.cc/en/Main/Software

Le télécharger, c'est gratuit ! et l'installer

65© JMF (Tous droits réservés)

Page 66: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Lancement de l'IDE

ArduinoIDE = Integrated Development Environment = Environnement de

développement intégré

Au lancement on a :

Editeur de texte pourrédiger le programme

66© JMF (Tous droits réservés)

Page 67: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Emulateur de carte

Arduino

"If you do not have an Arduino, you can use the web-based Arduino simulator at https://circuits.io/lab . You will need to create

a free account. There are instructional videos on that website that will teach you how to use the simulator."

Bref on peut avoir un émulateur de cartes et de composants pour Arduino à partir du site https://circuits.io/lab . Il suffit de

se créer un compte gratuit. On peut ainsi garder (dans le cloud) ses (ces) développements

67© JMF (Tous droits réservés)

Page 68: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

La chaine de traitement

par l'IDE

première ligne obtenu en cliquant sur Vérifier, seconde ligne en cliquant sur Téléverser

Combine & Transform = le préprocesseur + mise en un seul fichier

68© JMF (Tous droits réservés)

Page 69: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Arduino : la

programmation

On programme en langage C (euh plutôt en C++)

Voir un bon tutorial pour le langage C à partir de : http://www.cprogramming.com/tutorial/c/lesson1.html

69© JMF (Tous droits réservés)

Page 70: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Le langage C

Le grand langage des années 70-80

Mais aussi encore aujourd'hui !

Car proche de la machine

Un macro assembleur (accès indirect post incrémenté) structuré (boucles, tests, fonctions, …)

Très utilisé dorénavant pour l'informatique embarquée (microcontrôleurs), les jeux, pour les calculs et algorithmes performants, les systèmes d'exploitation, bref modules où la rapidité de traitement est importante

La syntaxe du langage C a inspiré énormément de langages de programmation : C++, Java, JavaScript, PHP, C#, ...

Le langage C est un des langages les plus utilisés

source : http://fr.wikipedia.org/wiki/Langage_C

© JMF (Tous droits réservés) 70

Page 71: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Un premier programme (1/2)

#include <stdio.h> inclut l'en-tête standard <stdio.h> ,

contenant les déclarations des fonctions d'entrée-sortie de la bibliothèque standard de C (entre autre la fonction printfutilisée)

main est le nom de la fonction principale, aussi appelée point

d'entrée du programme

int est le type renvoyé par la fonction main

Le mot clé void entre les parenthèses signifie que la fonctionmain ne prend aucun paramètre

#include <stdio.h>

int main(void)

printf("Bon courage\n");return 0;

© JMF (Tous droits réservés) 71

Page 72: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Un premier programme (2/2)

Les accolades et entourent les instructions constituant le corps de la fonction main

printf est une fonction d'écriture dans la sortie standard (la console par défaut)

Le caractère " délimite une chaîne de caractères. Dans ce cas, c'est la

chaîne à afficher

Un point-virgule ; termine toute instruction (symbole de fin d'instruction)

L'instruction return 0; indique que la fonction main retourne la valeur 0(non utilisé ici)

#include <stdio.h>

int main(void)

printf("Bon courage\n");return 0;

© JMF (Tous droits réservés) 72

Page 73: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Compilation et exécution

Le langage C est un langage compilé

Après avoir édité le programme précédent, il faut le compiler = le traduire en langage exécutable

Il existe de nombreux compilateurs ... gratuits comme gcc

Si le fichier source est sauvegardé dans courage.c , la compilation est : gcc courage.c

Il est alors créé un fichier exécutable. Avec Arduino, l'environnementde développement lance la compilation par le bouton Vérifier :

Pour exécuter, il faut téléverser sur la carte Arduino : bouton Téléverser

© JMF (Tous droits réservés) 73

Page 74: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

La compilation pour

Arduino

Le compilateur est avr-gcc . Le résultat sera exécuté sur une

plateforme AVR pas Intel

Le code généré est un .hex

Les programmes Arduino sont appelés des croquis (sketchs). Pourquoi ? Je ne sais pas !

Ils ont écrits en C++ même si on utilise essentiellement du C

74© JMF (Tous droits réservés)

Page 75: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Un premier exemple : Blink

Charger, dans l'IDE Arduino, l'exemple Blink à partir Fichier | Exemples | 01.Basics | Blink

Compiler cet exemple

Faire le branchement de la carte Arduino avec l'ordinateur avec le cable USB

Téléverser ce croquis

La "led 13" devient un clignotant !

Remarque : Blink est le "Hello, world" des systèmes embarqués

75© JMF (Tous droits réservés)

Page 76: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Arduino : si pb lors du

téléversement sous Win (1/2)

Si pb car l'item port est grisé, il faut installer

le pilote Arduino

Pour cela, clic droit sur icône Ordinateur,

puis Gérer | Gestionnaire de périphériques

Clic droit sur le périphérique fautif item "Mettre à jour le pilote..."

76© JMF (Tous droits réservés)

Page 77: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Arduino : si pb lors du

téléversement sous Win (2/2)

Rechercher le pilote sous le répertoire d'installation Arduino. Cliquer

Installer

L'item port n'est plus

grisé. Il propose un menu où

apparaît la carte Arduino :

COM3 (Arduino/Genuino Uno)

sous windows

biblio : https://www.youtube.com/watch?v=CdE72XUYC7k

77© JMF (Tous droits réservés)

Page 78: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Arduino : si pb lors du

téléversement sous Unix

Sous Unix, il faut sélectionner la bonne carte. Par exemple : Outils | Type de carte: "Arduino/Genuino Uno" | Arduino/Genuino Uno

Mais aussi le bon port. Par exemple Outils | Port ... | /dev/ttyACM0 (Arduino/Genuino Uno)

78© JMF (Tous droits réservés)

Page 79: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Structure d'un croquis

(sketch)

Un croquis n'a pas de … main() !

Le main() est déjà codé dans le microcontrôleur. Il lance certaines

fonctions que le programmeur a codées

En fait, le microcontrôleur possède déjà le programme :

et ajoute notre code

Dans certains microcontrôleurs (mais pas pour Arduino), il faut écrire ce code

int main() setup();while (1)

loop();

79© JMF (Tous droits réservés)

Page 80: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Structure d'un croquis

(sketch)

En général, le programmeur écrit la fonction

setup() est lancée une et une seule fois au début du programme,

euh du croquis ;-)

En général, le programmeur écrit la fonction

loop() est exécutée après setup() . Ce qui est écrit dans loop()est exécuté en … boucle (eh oui) infinie. Cela peut paraître currieux mais est naturel (obligatoire ?) dans les systèmes embarqués

Ces deux fonctions ne retournent rien (void ) et n'ont pas

d'arguments

void setup()...

void loop()...

80© JMF (Tous droits réservés)

Page 81: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

La fiche 13 et sa LED

associée

La fiche 13 peut être utilisée comme tout autre fiche digitale

Mais elle a de plus, une LED associée sur la carte Arduino

=> Si la fiche 13 a une tension électrique, la LED s'allume

81© JMF (Tous droits réservés)

Page 82: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Le code de Blink

Le code du programme Blink est :

Dans setup() est indiqué que la pin 13 va fournir des tensions électriques.

Derrière cette pin 13, il y a la "diode 13" de la carte

Le microcontrôleur envoie (écrit) la tension maximale (HIGH) sur cette diode (digitalWrite(13, HIGH); )

On attend 1 seconde (delay(1000); )

Le microcontrôleur envoie (écrit) la tension minimale (LOW) sur cette diode (digitalWrite(13, LOW); ) = éteint la diode

On attend 1 seconde (delay(1000); )

Ces quatre instructions seront exécutées en boucle (fonction loop() )

void setup() pinMode(13, OUTPUT);

void loop()

digitalWrite(13, HIGH);delay(1000);digitalWrite(13, LOW);delay(1000);

82© JMF (Tous droits réservés)

Page 83: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Chapitre 4 (suite)

Arduino

83© JMF (Tous droits réservés)

Page 84: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Liaison fiches

microcontrôleur

Les fiches sont reliées au microcontrôleur

qui va leur envoyer des potentiels électriques

en suivant le croquis qu'on lui a écrit

=> fiches = interface du microcontrôleur

84© JMF (Tous droits réservés)

Page 85: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Fiches d'entrée et de

sortie

Pins de sortie :

Pin d'entrée :

Le microcontrôleur

(le croquis) envoie

des potentiels

électriques

Le microcontrôleur

(le croquis) reçoit

des potentiels

électriques

85© JMF (Tous droits réservés)

Page 86: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Entrées sorties d'une fiche

Si on veut utiliser une pin en entrée ou sortie, il faut l'indiquer

Souvent (mais pas obligatoirement) dans la fonction setup()

La fonction pour cela est void pinMode(pin, mode) avec : pin : le numéro de la fiche

mode : de valeur INPUT, OUTPUT

configure la fiche spécifiée pour fonctionner comme une entrée ou une sortie

biblio : https://www.arduino.cc/en/Reference/PinMode

pin peut valoir :

0 à 13 pour les pins digitales

A0 à A5 (de type int ) pour les pins analogiques (en entrée seulement)

Remarque : on écrit directement A0 comment argument (#define…)

86© JMF (Tous droits réservés)

Page 87: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Lecture et écriture digitale

La fonction int digitalRead(pin) avec : pin : le numéro de la fiche

retourne l'état d'un fiche. Ce peut être LOW(0 volt) ou HIGH (5

volts sur une Arduino UNO)

biblio : https://www.arduino.cc/en/Reference/DigitalRead

La fonction void digitalWrite(pin, value) avec : pin : le numéro de la fiche

value : de valeur LOWou HIGH

affectue la valeur LOW(0 volt) ou HIGH à la fiche pin

Remarque : les pins analogiques peuvent servir de pins de sorties … digitales c'est à dire on peut écrire digitalWrite(A0, HIGH);

biblio : https://www.arduino.cc/en/Reference/DigitalWrite

87© JMF (Tous droits réservés)

Page 88: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Lecture d'une fiche

analogique

La fonction int analogRead(pin) avec : pin : le numéro de la fiche. Celle-ci doit être une pin analogique (A0 à A5)

retourne l'état d'un fiche analogique. C'est un entier de valeur 0(pour 0 volt) à 1023 (pour 5 volts)

Par exemple :

biblio : https://www.arduino.cc/en/Reference/AnalogRead

int pinVal;pinVal = analogRead(A3);

88© JMF (Tous droits réservés)

Page 89: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

La fonction de pause

La fonction void delay(msec) avec : msec : nombre de millisecondes

fait une pause à l'exécution du croquis de msec millisecondes

Par exemple, le code :

permet d'envoyer 5 volts sur la pin 3 pendant 1 seconde

biblio : https://www.arduino.cc/en/Reference/Delay

digitalWrite(3, HIGH);delay(1000);digitalWrite(3, LOW);

89© JMF (Tous droits réservés)

Page 90: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Arduino : pour commencer

La doc de référence d'Arduino : https://www.arduino.cc/en/Reference/HomePage

https://www.arduino.cc/en/Hacking/BuildProcess

https://www.arduino.cc/en/Reference/Setup

https://www.arduino.cc/en/Reference/Loop

https://www.arduino.cc/en/Reference/PinMode

https://www.arduino.cc/en/Reference/DigitalWrite

https://www.arduino.cc/en/Reference/DigitalRead

https://www.arduino.cc/en/Reference/AnalogRead

90© JMF (Tous droits réservés)

Page 91: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Le "moniteur série"

Lorsque la carte Arduino est connectée au PC, ils peuvent communiquer entre eux (par le protocole série UART)

Dans l'IDE cliquer sur le bouton Moniteur série

Une fenêtre pour la communication est alors ouverte :

91© JMF (Tous droits réservés)

Page 92: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Communication grâce au

moniteur série

Avec la fenêtre :

des données envoyées par la carte Arduino peuvent être affichées

on peut envoyer des données à la carte Arduino par l'intermédiaire du clavier du PC

Cela peut servir à déboguer

92© JMF (Tous droits réservés)

Page 93: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Communication carte

Arduino vers PCL'émetteur et le récepteur doit connaître la vitesse de transfert =

durée pour transmettre un bit qui restera à 0 (potentiel 0) ou 1 (potentiel n volts) pendant cette durée

Serial.begin(9600) dans setup()

9600 baud => 104 microsecondes pour transmettre un bit

Serial.print(texte) ou Serial.println(texte) écrit dans

la console Moniteur série du texte (et revient à la ligne pour println() ). Par exemple :

Pour faire imprimer un int , utiliser Serial.write(unEntier) . Par exemple : , idem pour un float ou un double

Serial.println("entrée du while");

int n = 43;Serial.write(n);

93© JMF (Tous droits réservés)

Page 94: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Communication PC vers

carte Arduino (1/2)

Des données peuvent être envoyées du PC vers la carte à l'aide de la zone de texte en haut du moniteur série et cliquer le bouton Envoyer

En fait les envois du PC vers la carte sont bufferisés

La carte Arduino lit les valeurs envoyées par la fonction int Serial.read()

Cette fonction retourne un octet (codé en int ) si un octet est disponible, -1 sinon

On a donc : int unOctetLu = Serial.read();

94© JMF (Tous droits réservés)

Page 95: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Communication PC vers

carte Arduino (2/2)

On peut lire plusieurs octets en les déposant dans un tableau de caractères par :

Dans le croquis, avant de faire des lectures, il bon d'écrire Serial.available() pour savoir si le buffer a des données

char buffer[16];Serial.readBytes(buffer, 16);

95© JMF (Tous droits réservés)

Page 96: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Fonctions statiques de

classes

En fait, les appels Serial.XXX(…) sont des appels de fonctions(méthodes) statiques de la classe Serial

Les notions de classes, fonctions statiques (= de classes) sont des notions du langage C++

Elles sont utilisées de la même manière qu'une fonction quelconque

Mais appartiennent à la classe (~= au module) Serial

96© JMF (Tous droits réservés)

Page 97: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Obtenir des infos par la

carte

Les microcontrôleurs sont sensibles aux tensions électriques

Les capteurs convertissent leurs informations (chaleur, flexion, humidité, luminosité, etc.) en potentiels électriques (parfois indirectement cf. potentiomètre)

Ces tensions sont amenées dans les fiches par des câbles

Lire une tension de la fiche digitale pin est obtenu par int digitalRead(pin)

La valeur retournée est HIGH ou LOW

Lire une tension de la fiche analogique pin est obtenu par int analogRead(pin)

La valeur retournée est un int entre 0 et 1023

97© JMF (Tous droits réservés)

Page 98: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Capteur (sensor)

= détecteur

pour les entrées

Ce sont souvent des capteurs résistifs : ils changent leur résistance suivant certaines informations : ~ potentiomètre

Photorésistance, thermomètre, flex resistor ~ potentiomètre

98© JMF (Tous droits réservés)

Page 99: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

La photorésistance

Quand la luminosité augmente, sa résistance diminue

Une photorésistance :

Si on fait le circuit :

Quand la luminosité augmente la fiche Pin aura un potentiel plus grand, n'est ce pas ?(U = RI dans chaque portion du circuit et U + U' = constant = 5 volts)

99© JMF (Tous droits réservés)

Page 100: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Pulse Width Modulation

(PWM)

Les potentiels qui sortent d'un microcontrôleur sont soit hauts (5 ou 3,3 volts) soit 0

Comment faire des valeurs continues sur un seul signal ?

La solution : faire varier le temps pendant lequel le signal est haut

Définition : le duty cycle est le pourcentage du temps pendant lequel le signal est haut sur une période

Accroitre le duty cycle augmente la tension finale

Cette technique est la Pulse Width Modulation (PWM)

100© JMF (Tous droits réservés)

Page 101: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Fonction d'écriture

analogiquevoid analogWrite(pin, value) génère un signal PWM

Peut être utilisé pour faire varier la luminosité d'une LED, la vitesse d'un moteur, etc.

La fiche pin va générer un signal rectangulaire avec un duty cycle adapté à value (jusqu'au prochain appel à analogWrite() , digitalRead() ou digitalWrite() sur la même fiche)

value doit avoir une valeur entre 0 et 255 (0 pour 0% de duty cycle, 255= 100% de duty cycle)

Cette fonction fonctionne sur les fiches 3, 5, 6, 9 et 11 de la carte Arduino. Voir le symbole ~, coté DIGITAL (PWM~)

On n'a pas besoin d'appeler pinMode() sur une fiche en sortie qui utilise analogWrite()

La fonction analogWrite() n'a rien a voir avec les fiches analogiques ou avec la fonction analogRead()

biblio : https://www.arduino.cc/en/Reference/AnalogWrite101© JMF (Tous droits réservés)

Page 102: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Fonction d'écriture

analogique : un exemple

led est un numéro de pin relié à une led

Que fait cet exemple ?

int brillance = 0;int increment = 5;

void loop()analogWrite(led, brillance);brillance += increment;if (brillance == 0 || brillance == 255)

increment = - increment;delay(30);

Boucle sur allume et éteint progressivement une led

102© JMF (Tous droits réservés)

Page 103: Chapitre 1 Internet Of Things (IoT) L'internet des objetscedric.cnam.fr/~farinone/NSY014/coursIotArduino.pdf · 2018. 4. 3. · embedded system (1/4) capteur (sensor) = organe d'entrée

Fin

103© JMF (Tous droits réservés)