Arduino
Applications avancées
Avant-propos
IX
1 Arduino, environnement de développement
1
1.1 Les nouveaux Arduino et leurs particularités
1
1.1.1 L'Arduino Uno révision 32
1.1.2 L'Arduino Mega 2560 révision 35
1.1.3 Le petit dernier : l'Arduino Leonardo8
1.2 Les nouveautés de l'environnement de développement
12
2 Claviers tactiles et afficheurs graphiques
15
2.1 Clavier à effleurement
15
2.1.1 Le MPR121 de Freescale16
2.1.2 Le Touch Shield de Sparkfun17
2.1.3 Logiciel d'exploitation18
2.2 Multiplexage et Charlieplexage
21
2.2.1 Principe du Charlieplexage23
2.2.2 Le shield LOL ou shield à LED Charlieplexées27
2.2.3 Bibliothèque de Charlieplexage29
2.3 Affichage LCD graphique couleur
32
2.3.1 Le 2.8" TFT Touch Shield d'Adafruit32
2.3.2 Bibliothèques et programmes de démonstration35
3 Réseau, Internet et Power Over Ethernet (PoE)
37
3.1 Les shields Ethernet
37
3.1.1 Ethernet, Internet, adresse IP et adresse MAC41
3.1.2 Noyau de base commun à tous les programmes42
3.1.3 Affichage de l'état des entrées dans le navigateur Internet44
3.1.4 Commande de l'état des sorties depuis le navigateur Internet46
3.1.5 Entrées et sorties simultanées depuis le navigateur Internet52
3.1.6 Comment passer au travers du routeur ou de la «box» Internet ?54
3.2 Alimentation par le réseau ou PoE
56
3.2.1 Shield Ethernet PoE compatible IEEE 802.3af57
3.2.2 Le PoE passif ou PoE «du pauvre»58
4 Enregistrement de données sur cartes mémoires
61
4.1 Ce qu'il faut savoir des cartes mémoires
61
4.1.1 Les particularités de la carte SD63
4.1.2 Interface pour carte SD64
4.2 Les shields à carte SD ou micro SD
65
4.2.1 Le plus simple des shields micro SD65
4.2.2 Les shields SD à horloge temps réel66
4.2.3 La bibliothèque de gestion des cartes SD69
4.2.4 La bibliothèque de gestion de l'horloge temps réel72
4.2.5 Enregistrement de données horodatées74
5 Arduino sans fil grâce à XBee
81
5.1 WiFi et Arduino : un choix aujourd'hui discutable
81
5.2 XBee ou le sans fil facile
83
5.2.1 Quelques rappels sur les modems83
5.2.2 Les modules XBee ou les modems radio à la portée de tous86
5.3 L'Arduino sans fil grâce aux modules XBee
88
5.3.1 Attention au conflit de port série88
5.3.2 Les shields XBee89
5.3.3 Exemple d'utilisation93
5.3.4 Paramétrage des modules XBee96
6 Arduino et GPS
103
6.1 GPS et trames NMEA
103
6.1.1 Le récepteur GPS EM-406a de GlobalSat104
6.1.2 La norme NMEA appliquée aux GPS106
6.2 Exploiter un GPS avec l'Arduino
108
6.2.1 Les shields GPS109
6.2.2 Utilisation sans bibliothèque spécialisée113
6.2.3 La bibliothèque TinyGPS115
7 À l'écoute des fichiers WAV, MP3 et de la radio AM/FM
119
7.1 Lecture des fichiers MP3
119
7.1.1 Quelques rappels concernant le format MP3120
7.1.2 Le VS1053b de VLSI Solution121
7.1.3 Le shield MP3 Player123
7.1.4 Une bibliothèque sur mesure125
7.1.5 Exemple d'utilisation128
7.1.6 Ajout d'un amplificateur audio131
7.2 Lecture des fichiers WAV
133
7.2.1 Quelques rappels concernant le «format» WAV133
7.2.2 Le Wave Shield d'Adafruit134
7.3 Recevoir la radio avec l'Arduino
137
7.3.1 Le circuit Si4735 de Silicon Labs137
7.3.2 Le shield SI4735 AM & FM Receiver138
7.3.3 Bibliothèque et exemple de programme143
7.3.4 Un exemple de réalisation remarquable146
8 Arduino et la reconnaissance vocale
147
8.1 Le module EasyVR de Veear
147
8.2 Le shield EasyVR Arduino
150
8.3 Le logiciel EasyVR Commander
154
8.4 Un Arduino qui obéit à votre voix
158
9 Arduino et la reconnaissance d'image
167
9.1 Présentation de la CMUcam4
167
9.1.1 Généralités168
9.1.2 Aperçu des commandes169
9.1.3 Le «shield» CMUcam4172
9.2 Utilisation de la CMUcam4
176
9.2.1 Autotest de la CMUcam4176
9.2.2 Comment tester son futur programme avec un PC177
9.2.3 Une bibliothèque embryonnaire et pas nécessairement utile182
10 De l'Arduino aux microcontrôleurs AVR
185
10.1 Mise en oeuvre d'un microcontrôleur AVR d'Atmel
185
10.1.1 L'alimentation186
10.1.2 L'horloge187
10.1.3 Le circuit de reset188
10.2 Bootloader et programmation ISP
190
10.2.1 Qu'est-ce qu'un bootloader ?190
10.2.2 La programmation ISP ou programmation en circuit191
10.2.3 Utilisez un Arduino en guise de programmateur193
10.2.4 Le recours à un «vrai» programmateur198
Webographie
201
Index
203