[[microc:accueilmc|{{ :iconemaison.jpg?nolink&30|Sommaire Microcontrôleur}}]]
===== Microcontrôleurs - Module PyPortal =====
[Mise à jour le 24/2/2021]
{{ :python:micropython:materiel:circuitppython.png?nolink&250|}}
* **Ressources**
* Adafruit PyPortal - CircuitPython Powered Internet Display
* Adafruit PyPortal - IoT for CircuitPython (overview)
* Documentation CircuitPython
==== 1. Généralités ====
Le **PyPortal** a été développé pour l'"**Internet des objets**". Il permet de créer des interfaces graphiques à écran tactile en Python ou Arduino.
{{ :python:micropython:materiel:pyportal.jpg?nolink |}}
==== 2. Principales caractéristiques ====
* **Microcontrôleur** : ATSAMD51J20
* Cortex-M4 à 120 MHz
* Alimentation : 3,3V
* Mémoire flash : 1Mo
* Port USB natif
* **Coprocesseur** : Wi-Fi Espressif ESP32 (TLS/SSL intégré)
* **Mémoire externe** : 8Mo QSPI flash
* **Affichage** : TFT couleur 3,2 pouces 320 x 240 avec écran tactile résistif
* **Stockage** :
* Emplacement pour carte microSD
* **Entrées/Sorties**
* Connectique pour I2C
* Connectique pour 2 entrées analogiques ou numériques
* **Divers**
* Haut-parleur
* Capteur de lumière
* Capteur de température (ADT7410 résolution 16bits (0,0078°C))
* Néopixel
==== 3. Préparation ====
=== 3.1 Configuration de CircuitPython ===
* Source sur adafruit.
=== 3.2 Configuration de l'IDE Arduino ===
* Source sur adafruit .
==== 4. Mise en oeuvre ====
* [[#tab-micropy_1|MicroPython]]
* [[#tab-arduino_1|Arduino]]
* **Mise à jour**
- **Bootloader** \\ **Source** : Update the UF2 Bootloader \\ \\ a. **Double-cliquer** sur le bouton de réinitialisation. {{ :python:micropython:materiel:portalboot.png?nolink&500 |}} \\ b. Télécharger le chargeur de démarrage .UF2 et le faire glisser dans la fenêtre PORTALBOOT. \\ \\
- **Firmware** : Installez CircuitPython \\ a. Télécharger la dernière version de circuitPython pour PyPortal et la faire glisser dans la fenêtre PORTALBOOT.
{{ :python:micropython:materiel:mu.png?nolink&50|}}
* **IDE** :** Mu** (Recommandé)
* **REPL** : activé en entrant **ctrl-c** puis une touche quelconque dans la console => **>>>**.
* **help("modules")** liste tous les modules (bibliothèques) sur la carte.
* **import board** + **dir(board)** pour lister les broches de la carte.
{{ :python:micropython:materiel:circuitpythonlib.png?nolink|}}
* **Organisation** minimum sur la carte PyPortal
* **Fichiers** à créer
* **code.py** s'exécute par défaut
* secret.py pour sauvegarder le SSID et le mdp du Wifi, compte Adafruit IO, etc.
* **Sous répertoire**
* **lib** pour rassembler les bibliothèques nécessaires à l'application. Celles-ci seront copiées à partir du paquet (bundle) correspondant à la version de CircuitPython
* **Test**
# Faire clignoter la LED ACT
import board # Accès au matériel de la carte
import digitalio # Accès aux entrée/sorties
import time # Temporisations
led = digitalio.DigitalInOut(board.D13)
led.direction = digitalio.Direction.OUTPUT
while True:
led.value = True
time.sleep(0.1)
led.value = False
time.sleep(0.1)
A faire
==== 5. Bibliothèques ====
* Bundle de bibliothèques CircuitPython à télécharger.
==== 6. Exemples ====
* **Extraits de code** illustrant les fonctionnalités de la carte (capteur, carte µSD, etc.) : Tutoriel PyPortal CircuitPy Tutorial (AdaBox 011)