Changes between Version 1 and Version 2 of IOC_T05


Ignore:
Timestamp:
Mar 26, 2021, 8:40:27 AM (4 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IOC_T05

    v1 v2  
    66L'application finale contiendra toutes les tâches.
    77
    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 :
     8Vous allez devoir installer l'IDE Arduino et installer les bibliothèques permettant d'utiliser l'ESP32.
     9
     10Puis 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
     18Les 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]
    1620- [https://github.com/adafruit/Adafruit_SSD1306 Repository API Ecran OLED]
    1721- [https://github.com/adafruit/Adafruit-GFX-Library Repository API Graphique]
    1822- [http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.ReferenceMaxi Langage Arduino]
    1923
    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
     24Pour 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
     26Dans le .bashrc :
     27export PATH=/opt/arduino-1.8.8:$PATH
     28}}}
     29Sinon, 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
     63Procé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`
    2575
    2676
     
    2979Pour s'assurer que le module Arduino et la chaîne de compilation sont fonctionnels, vous pouvez reprendre l'exemple `blink``
    3080- 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`
    3584- Charger le programme Blink : `File -> Exemples -> 0.1 Basics -> Blink`
    3685- Vous pouvez changer la fréquence en modifiant les délais
     
    4594
    4695Il 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 31
    4896
    4997Chaque tâche est représentée par
     
    249297
    250298- 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 se
     299- Ajouter une tâche nommée `lum` qui lit toutes les 0,5 seconde le port analogique [...] (par `analogRead()`) sur lequel se
    252300  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()
    253301- Mofifier la tâche Led pour que la fréquence de clignotement soit inversement proportionnel à la lumière reçue
     
    258306Les périphériques peuvent lever des signaux d'interruption pour informer d'un événement sur un périphérique.
    259307Avec 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.
     308C'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.
    261309Ici, il faut créer une fonction `SerialEvent()` qui sera invoqué lors de la réception d'un caractère par le port série.
    262310