Différences entre versions de « MicroPython-esp32-evb »
Ligne 1 : | Ligne 1 : | ||
== ESP32-EVB (Evaluation Board) == | == ESP32-EVB (Evaluation Board) == | ||
− | + | Olimex est une société concevant des produits de très haute qualité. Des produits conçu en vue d'une utilisation professionnelle et immunisé contre le parasitage et bruits électroniques divers. La carte d'évaluation ESP 32 ("ESP32 Evaluation Board" en anglais) n'est pas un jouet mais un produit robuste et bien conçu. | |
+ | |||
+ | Cette carte ESP32 pour l'Internet des Objets (IoT) offre un choix de connectivités intéressant: | ||
+ | * WiFi, | ||
+ | * Ethernet filaire (100Mb ), | ||
+ | * Bluetooth LE, | ||
+ | * Connectivité CAN | ||
+ | * Contrôle par télécommande InfraRouge (IR). | ||
+ | |||
+ | [[Fichier:MicroPython-esp32-evb-00.png]] | ||
+ | |||
+ | La carte est équipée d'un circuit de recharge LiPo et d'un convertisseur DC/DC de type Step-up. La carte peut donc être alimenté par l'accu Lipo (comme un UPS) lorsque le circuit n'est plus alimenté par la fiche jack. | ||
== Commander les Relais == | == Commander les Relais == |
Version du 1 juin 2021 à 19:07
ESP32-EVB (Evaluation Board)
Olimex est une société concevant des produits de très haute qualité. Des produits conçu en vue d'une utilisation professionnelle et immunisé contre le parasitage et bruits électroniques divers. La carte d'évaluation ESP 32 ("ESP32 Evaluation Board" en anglais) n'est pas un jouet mais un produit robuste et bien conçu.
Cette carte ESP32 pour l'Internet des Objets (IoT) offre un choix de connectivités intéressant:
- WiFi,
- Ethernet filaire (100Mb ),
- Bluetooth LE,
- Connectivité CAN
- Contrôle par télécommande InfraRouge (IR).
La carte est équipée d'un circuit de recharge LiPo et d'un convertisseur DC/DC de type Step-up. La carte peut donc être alimenté par l'accu Lipo (comme un UPS) lorsque le circuit n'est plus alimenté par la fiche jack.
Commander les Relais
Les relais sont branchés sur les GPIO 32 et GPIO 33.
from machine import Pin
rel1 = Pin( 32, Pin.OUT )
rel2 = Pin( 33, Pin.OUT )
rel1.on()
rel1.off()
rel2.on()
rel2.off()
Utiliser le bouton utilisateur
Le bouton utilisateur est raccordé sur le GPIO 34.
Tel que le bouton est branché, celui-ci fonctionne en logique inversée:
- le signal sur GPIO 34 est au niveau haut (1) lorsque le bouton n'est pas pressé.
- Le GPIO 34 est au niveau bas (0) lorsque le bouton est pressé.
Cela n'étant pas naturel, la classe Signal est utilisée pour inverser le signal de la broche d'entrée (afin de revenir à une logique plus conventionnelle: 1 lorsque le bouton est pressé, 0 lorsqu'il n'est pas pressé).
from machine import Pin, Signal
from time import sleep_ms
btn_pin = Pin( 34, Pin.IN )
btn = Signal( btn_pin, invert=True )
while True:
print( btn.value() )
sleep_ms( 200 )
Connecteur UEXT
Le connecteur UEXT transporte une alimentation et différents bus (I2C, SPI, UARTs).
Ce connecteur est robuste et permet de brancher rapidement des cartes d'extensions UEXT (voir gamme UEXT chez Olimex, gamme UEXT chez MCHobby).
Instancier le bus I2C
from machine import I2C
i2c = I2C( sda=Pin(13), scl=Pin(16) )
Instancier le port série sur le connecteur UEXT en 9600 Bauds 8N1
from machine import UART
ser = UART(1, tx=4, rx=36, baudrate=9600 )
Instancier le bus SPI sur le connecteur UEXT se fait à l'aide de la classe SoftSPI (l'appel de SPI(-1, ....) pour définir un SPI logiciel est désuet).
# SoftSPI(baudrate=500000, *, polarity=0, phase=0, bits=8, firstbit=MSB, sck=None, mosi=None, miso=None)
# See: https://docs.micropython.org/en/latest/library/machine.SPI.html
#
from machine import SoftSPI, Pin
spi = SoftSPI( miso=Pin(15), mosi=Pin(2), sck=Pin(14), baudrate=500000 )
ssel = Pin( 17, Pin.OUT, value=1 ) # Disabled Slave Select
Carte SD
La carte SD utilise une seule broche de donnée --> width=1
Les slot:
- Le Slot 0 est destiné à la mémoire Flash Interne.
- Le Slot 1 correspond à sck=14, cmd=15, D0=2, D1=4, D2=12, D3=13
- Les autres slots sont décrit dans ce document.
MicroPython v1.15 on 2021-04-18; ESP32 module with ESP32
Type "help()" for more information.
>>>
>>> from machine import SDCard
>>> sdcard = SDCard( slot=1, width=1 )
>>>
>>> import os
>>> os.mount( sdcard, "/sd" )
>>> os.listdir( "/sd" )
['adafruit_feather_esp8266.md', 'adafruit_feather_esp32.md', 'adafruit_feather_rp2040.md', 'adafruit_huzzah_esp32.md', 'adafruit_huzzah_esp8266.md', 'adafruit_itsybitsy_rp2040.md', 'garatronic_pyb405.md', 'garatronic_pybstick26std.md', 'micropython_pybd_sf2w.md', 'micropython_pyboard.md', 'olimex_esp32_devkit_lipo.md', 'olimex_esp32_evb.md', 'olimex_esp8266_dev.md', 'olimex_esp8266_evb.md', 'pimoroni_pico_lipo.md', 'pimoroni_tiny_2040.md', 'raspberrypi_pico.md', 'sparkfun_micromod_rp2040.md', 'sparkfun_thing_plus_rp2040.md']
>>>
>>> # Démonter la carte SD
>>> os.umount("/sd")
>>> os.listdir( "/sd" )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 2] ENOENT
Ce qui correspond bien aux fichiers stockés sur la carte SD.
Interface LAN8710A
Il n'y a pas de Firmware ESP32 pré-compilé contenant la classe LAN! Il faudra compiler votre propre firmware. |
D'après les informations collectées sur Lobiris.eu, il faudrait créer une instance de la classe LAN à l'aide de
# A vérifier lan = network.LAN( id=None, clk_type=3, mdc=Pin(23), mdio=Pin(18), power=Pin(21), phy_addr=1, phy_type=network.PHY_LAN8720 )
Où acheter
- ESP32-EVB @ MCHobby
- ESP32-EVB @ Olimex
- gamme UEXT chez Olimex
- gamme UEXT chez MCHobby