Changes between Version 16 and Version 17 of IOC_T05
- Timestamp:
- Feb 24, 2023, 7:04:25 AM (2 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
IOC_T05
v16 v17 4 4 }}} 5 5 6 Le [htdocs:files répertoire] contient package eps32.tgz et le json du package. 7 6 {{{#!protected 7 - Le [htdocs:files répertoire] contient package eps32.tgz et le json du package. 8 - Vous pouvez tester le composant ESP32 en exécutant quelques exemples de tutoriaux (décrivez succinctement ce que vous avez fait dans le CR). Les exemples sont accessibles 9 }}} 8 10 9 11 = Objectif de la séance … … 11 13 12 14 Le but de la séance est d'écrire une application multitâches Arduino utilisant plusieurs périphériques. 13 Vous allez écrire une application affichant par exemple la luminosité chaque seconde sur l'écran OLED, tout en faisant clignoter la LED avec un ON/OFF par le bouton poussoir et contrôler le buzzer en faisant dépendre sa fréquence de la lumière ou d'une action du bouton ou encore d'une valeur entrée au clavier du terminal. En conséquence, vous allez :15 Vous allez écrire une application affichant par exemple la luminosité chaque seconde sur l'écran OLED, tout en faisant clignoter la LED avec un ON/OFF par le bouton poussoir et contrôler le buzzer en faisant dépendre sa fréquence de la lumière (s'il y a un buzzer sur votre maquette) ou d'une action du bouton ou encore d'une valeur entrée au clavier du terminal. En conséquence, vous allez : 14 16 - Utiliser la LED présente sur le module. 15 17 - Utiliser le port série qui relie le module et le PC. … … 28 30 29 31 30 Si vous êtes sur votre ordinateur personnel, vous allez devoir installer l'IDE Arduino et installer les bibliothèques permettant d'utiliser l'ESP32. 31 32 Pour Arduino, vous devez vous rendre à l'adresse `https://www.arduino.cc/en/Main/Software` 32 Si vous êtes sur votre ordinateur personnel, vous allez devoir installer l'IDE Arduino et installer les bibliothèques permettant d'utiliser l'ESP32. Vous devez vous rendre à l'adresse `https://www.arduino.cc/en/Main/Software` 33 33 et suivre la procédure correspondant à votre OS (Linux, Windows ou MacOS). 34 34 35 Pour les machines du laboratoire, vous devez utiliser la version d'arduino qui se trouve dans `/opt/arduino-1.8.8/`. Vous pouvez appeler arduino directement : 36 {{{#!bash 37 > /opt/arduino-1.8.8/arduino 38 }}} 39 Je vous conseille d'ajouter le chemin `/opt/arduino-1.8.8` dans la variable PATH dans le `.bashrc`. 40 {{{#!bash 41 Dans le .bashrc : 42 export PATH=/opt/arduino-1.8.8:$PATH 43 }}} 44 45 35 46 **Installation des librairies ESP32** 36 47 37 Par défaut, les modules ESP32 ne sont pas disponible dans l'IDE Arduino, il faut les ajouter, voici la procédure à suivre pour ajouter les gestionnaires de cartes à base d'ESP32 : 48 49 Que vous soyez sur votre ordinateur personnel ou sur une des machines du réseau, les modules ESP32 ne sont pas disponibles par défaut dans l'IDE Arduino, il faut les ajouter, voici la procédure à suivre pour ajouter les gestionnaires de cartes à base d'ESP32 : 38 50 39 51 * Lancer `Arduino` … … 45 57 * Écrire dans la fenêtre de recherche : `esp32`` 46 58 * Cliquer sur `Installer` 47 * Attendre l'installation (ça peut être long ).59 * Attendre l'installation (ça peut être long et cela prend de la place dans le répertoire $HOME/.arduino, vous risquez de dépasser votre quota et donc vous devrez peut-être faire du ménage) 48 60 * Cliquer sur `Fermer` 49 50 - Vous pouvez tester le composant ESP32 en exécutant quelques exemples de tutoriaux (décrivez succinctement ce que vous avez fait dans le CR)51 61 52 62 **Les documents utiles se trouvent** … … 56 66 - [http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.ReferenceMaxi Langage Arduino] 57 67 58 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`.59 {{{#!bash60 Dans le .bashrc :61 export PATH=/opt/arduino-1.8.8:$PATH62 }}}63 Sinon, vous pouvez appeler arduino directement :64 {{{#!bash65 > /opt/arduino-1.8.8/arduino66 }}}67 68 68 69 … … 73 74 Pour s'assurer que le module Arduino et la chaîne de compilation sont fonctionnels, vous pouvez reprendre l'exemple `blink`` 74 75 - Brancher le module Arduino avec le câble USB 75 - lancer : `/opt/arduino-1.8.8/arduino &` 76 - lancer : `/opt/arduino-1.8.8/arduino &` (ou directement `arduino&` si vous avez changer le `$PATH`) 76 77 - Sélectionner : `Tools -> Boards -> TTGO-Lora-OLED V1` 77 - Sélectionner : `Tools -> Ports -> /dev/ttyUSB0 ou /dev/ttyUSB1` 78 - Sélectionner : `Tools -> Ports -> /dev/ttyUSB0 ou /dev/ttyUSB1` (ça change parfois à chaque branchement) 78 79 - Charger le programme Blink : `File -> Exemples -> 0.1 Basics -> Blink` 79 80 - Vous pouvez changer la fréquence en modifiant les délais 80 - Cliquer sur l'icône en forme de Vpour Compiler81 - Cliquer sur l'icône en forme de ->pour uploader81 - Cliquer sur l'icône en forme de `✓` pour Compiler 82 - Cliquer sur l'icône en forme de `➞` pour uploader 82 83 - En bas de la fenêtre un message vous indique la réussite de la compilation et de l'upload. 83 84 - La led doit clignoter sur le module 85 - Vous pouvez changer la fréquence de clignotement dans la fonction `loop()` pour vous convaincre que c'est bien votre code qui s'exécute. 84 86 85 87 … … 91 93 == Tâches standards 92 94 93 Il est possible deprogrammer 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.95 Vous allez 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. 94 96 95 97 Chaque tâche est représentée par 96 98 - une fonction `loop_Tache()` qui code son comportement qui sera appelée dans la fonction `loop()`. 97 99 - une seconde fonction `setup_Tache()` qui initialise les ressources de la tâche (périphériques) et l'état interne. 98 - une structure contenant l'état interne et le contexte d'exécution représenté par une variable globale sous forme d'une structure `Tache_t`. Cette structure est passée en argument de la tâche des fonctions `setup_Tache()` et `loop_Tache `.99 100 Les fonctions `loop_Tache ` et `setup_Tache` peuvent avoir des variables locales mais leur état n'est pas conservé entre deuxexécutions.101 Elles peuvent aussi avoir des variables static mais ces variables ont une valeur unique même si la tâche est en plusieurs exemplaires et que donc elle utilise la même fonction `loop_Tache `. Les variables static ne sont pas conseillées parce qu'elles ne peuvent être initialisées dans la fonction `setup_Tache`100 - une structure contenant l'état interne et le contexte d'exécution représenté par une variable globale sous forme d'une structure `Tache_t`. Cette structure est passée en argument de la tâche des fonctions `setup_Tache()` et `loop_Tache()`. 101 102 Les fonctions `loop_Tache()` et `setup_Tache()` peuvent avoir des variables locales mais leur état n'est pas conservé entre deux instances d'exécutions. 103 Elles peuvent aussi avoir des variables static mais ces variables ont une valeur unique même si la tâche est en plusieurs exemplaires et que donc elle utilise la même fonction `loop_Tache()`. Les variables static ne sont pas conseillées parce qu'elles ne peuvent être initialisées dans la fonction `setup_Tache()`. Expliquez pourquoi dans le CR pour vérifier que vous avez compris. 102 104 103 105 La structure contexte ressemble à :