Changes between Version 1 and Version 2 of IOC_T05
- Timestamp:
- Mar 26, 2021, 8:40:27 AM (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
IOC_T05
v1 v2 6 6 L'application finale contiendra toutes les tâches. 7 7 8 = Préambule 9 10 Vous devez utiliser la version d'arduino qui se trouve (je vous conseille d'ajouter le chemin `/opt/arduino-1.6.8` dans la variable PATH dans le `.bashrc`. 11 {{{#!bash 12 > /opt/arduino-1.6.8/arduino 13 }}} 14 15 Les documents nécessaires se trouvent : 8 Vous allez devoir installer l'IDE Arduino et installer les bibliothèques permettant d'utiliser l'ESP32. 9 10 Puis vous aller : 11 - Utiliser la LED présente sur le module. 12 - Utiliser le port série qui relie le module et le PC. 13 - Utiliser l'écran OLED 14 - Utiliser la photorésistance 15 - Ecrire une application affichant la température ou la luminosité chaque seconde sur l'écran OLED, tout en faisant clignoter la LED avec un ON/OFF par le bouton poussoir. 16 - Vous pouvez tester le composant ESP32 en exécutant quelques exemples de tutoriaux (décrivez ce que vous avez fait dans le CR) 17 18 Les documents utiles se trouvent : 19 - [https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/ Tutoriel pour l'installation des bibliothèque ESP32] 16 20 - [https://github.com/adafruit/Adafruit_SSD1306 Repository API Ecran OLED] 17 21 - [https://github.com/adafruit/Adafruit-GFX-Library Repository API Graphique] 18 22 - [http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.ReferenceMaxi Langage Arduino] 19 23 20 Lors de cette séance, nous allons programmer sur Arduino en utilisant : 21 - La LED présente sur le module. 22 - Le port série qui relie le module et le PC. 23 - L'écran OLED 24 - La photorésistance 24 Pour les machine du laboratoire, vous devez utiliser la version d'arduino qui se trouve dans `/opt/arduino-1.8.8/`. Je vous conseille d'ajouter le chemin `/opt/arduino-1.8.8` dans la variable PATH dans le `.bashrc`. 25 {{{#!bash 26 Dans le .bashrc : 27 export PATH=/opt/arduino-1.8.8:$PATH 28 }}} 29 Sinon, vous pouvez appeler arduino directement : 30 {{{#!bash 31 > /opt/arduino-1.8.8/arduino 32 }}} 33 34 = Installation ESP32 / Arduino sur votre ordinateur personnel 35 36 37 38 * Ouvrir un navigateur web et se rendre à l'adresse : `https://www.arduino.cc/en/Main/Software` 39 * Cliquer sur l'archive qui correspond à votre système. 40 * Cliquer sur `JUST DOWNLOAD` 41 * Cliquer sur `Télécharger` 42 43 == Installation sur Mac OS 44 45 * l'archive se décompresse et est enregistrée dans le répertoire `Downloads` (sur ma machine en tout cas). 46 * Déplacer l'application `Arduino` qui apparaît dans le répertoir `Downloads` dans le répertoire `Applications`. 47 48 == Installation sur Linux 49 50 à compléter... 51 52 == Installation sur Windows 53 54 * Cliquer sur la fenêtre popup `Ouvrir Microsoft Store` 55 * Cliquer sur `Installer` 56 * A la demande `Utiliser sur l'ensemble de vos appareils`, répondre `Non merci` 57 * Attendre le téléchargement (ça peut être long...) 58 * Cliquer sur `lancer` Quand le bouton apparaît 59 * Arduino se lance, et demande éventuellement une mise-à-jour, ne pas la faire 60 61 == Installation des librairies ESP32 62 63 Procédure à suivre pour ajouter les gestionnaires de cartes à base d'ESP32 : 64 65 * Lancer `Arduino` (si ce n'est pas déjà fait à l'étape précédente) 66 * Cliquer sur `Fichier > Préférences` 67 * Dans `URL de gestionnaire de cartes supplémentaires`, écrire :[[BR]] 68 `https://dl.espressif.com/dl/package_esp32_index.json` 69 * Cliquer sur `ok` 70 * Cliquer sur `Outils > Type de carte... > Gestionnaire de carte` 71 * Écrire dans la fenêtre de recherche : `esp32`` 72 * Cliquer sur `Installer` 73 * Attendre l'installation (ça peut être long). 74 * Cliquer sur `Fermer` 25 75 26 76 … … 29 79 Pour s'assurer que le module Arduino et la chaîne de compilation sont fonctionnels, vous pouvez reprendre l'exemple `blink`` 30 80 - Brancher le module Arduino avec le câble USB 31 - lancer : `/opt/arduino-1.6.8/arduino &` 32 - Sélectionner : `Tools -> Boards -> Arduino Nano` 33 - Sélectionner : `Tools -> Processor -> ATmega328` 34 - Sélectionner : `Tools -> Ports -> /dev/ttyUSB0 ou /dev/ttyUSB1` 81 - lancer : `/opt/arduino-1.8.8/arduino &` 82 - Sélectionner : `Tools -> Boards -> TTGO-Lora-OLED V1` 83 - Sélectionner : `Tools -> Ports -> /dev/ttyUSB0 ou /dev/ttyUSB1` 35 84 - Charger le programme Blink : `File -> Exemples -> 0.1 Basics -> Blink` 36 85 - Vous pouvez changer la fréquence en modifiant les délais … … 45 94 46 95 Il est possible de programmer des applications multi-tâches coopératives dans l'environnement Arduino sans pour autant dispose des services d'un OS. Le principe a été volontairement simplifié à l'extrême. Ici, toute l'application sera dans un seul fichier et nous n'allons pas utiliser la programmation objet pour ne pas complexifier. 47 Pour les dessins, je vous incite à revoir le [htdocs:cours/IOC20_C04_Protocoles_filaires_base_Arduino.pdf cours] à partir du slides 3148 96 49 97 Chaque tâche est représentée par … … 249 297 250 298 - Dans le texte précédent, quel est le nom de la boîte à lettre et comment est-elle initialisée ? 251 - Ajouter une tâche nommée `lum` qui lit toutes les 0,5 seconde le port analogique A1(par `analogRead()`) sur lequel se299 - Ajouter une tâche nommée `lum` qui lit toutes les 0,5 seconde le port analogique [...] (par `analogRead()`) sur lequel se 252 300 trouve la photo-résistance et qui sort sa valeur dans une boite à lettre. Cette boite à lettre sera connectée à la tâche `oled`. Vous afficher la valeur en pourcentage de 0% à 100% en utilisant la fonction map() 253 301 - Mofifier la tâche Led pour que la fréquence de clignotement soit inversement proportionnel à la lumière reçue … … 258 306 Les périphériques peuvent lever des signaux d'interruption pour informer d'un événement sur un périphérique. 259 307 Avec Arduino, il est très simple d'attacher une routine d'interruption (ISR) à un signal d'interruption. 260 C'est la fonction `attachInterrupt(num, ISR, type)`. Pour l' Arduino nano`num` est égal à `0` ou `1`, ce qui correspond aux pins `2`et `3` qui sont des entrées de signaux d'interruptions. Il existe d'autres sources d'interruption comme le changement d'état d'une pins ou la réception d'une données depuis un bus par exemple.308 C'est la fonction `attachInterrupt(num, ISR, type)`. Pour l'ESP32 `num` est égal à `0` ou `1`, ce qui correspond aux pins `2`et `3` qui sont des entrées de signaux d'interruptions. Il existe d'autres sources d'interruption comme le changement d'état d'une pins ou la réception d'une données depuis un bus par exemple. 261 309 Ici, il faut créer une fonction `SerialEvent()` qui sera invoqué lors de la réception d'un caractère par le port série. 262 310