L’Internet des Objets
21.2 M5 Gray
M5grayhttps://docs.m5stack.com/en/core/gray
Le support doit être M5Stack-Core-ESP32.
- Processeur
-
240MHz dual core, 600 DMIPS, 520KB SRAM, Wi-Fi
- Flash
-
16Mo (voire 4 ?)
- Écran
-
inch, 320x240 Colorful TFT LCD
- MEMS
-
BMM150 (Geomagnetic Sensor) + MPU6886 (3-axes gyroscope et 3-axes accéléromètre)
21.2.1 Micropython pour les M5stack
Il est possible d’installer le support MicroPython pour les M5stack.
Le site MicroPython propose (en août 2023, il n’existe plus) le firmware pour les M5stack. Pour le flasher, il faut utiliser la commande esptool, disponible en paquet Debian ou dans les sources MicroPython. Le firmware pour esp32 fonctionne mais ne dispose pas des bibliothèques adaptées. Elles sont disponibles sur https://github.com/m5stack/M5GO.git. Ce dépôt est archivé depuis 2018. Le dépôt https://github.com/m5stack/M5Stack_MicroPython semble être la version suivante.
Il est mentionné que l’IDE Arduino permet de restaurer le système originel :
File > Examples > M5Stack > Basics > FactoryTest. Upload
Le firmware d’origine est une version de MicroPython. La console REPL est accessible sur l’UART ttyUSB0. Après un reset, la bannière UIFLOW s’affiche. Une interuption (CTRL-C) ramène au mode interactif. Mais il manque le support mémoire de masse.
rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:5152
ho 0 tail 12 room 4
load:0x40078000,len:10596
load:0x40080400,len:5744
entry 0x400806c0
_ __ _
_ _(_)/ _| | _____ __
| | | | | |_| |/ _ \ \ /\ / /
| |_| | | _| | (_) \ V V /
\__,_|_|_| |_|\___/ \_/\_/
APIKEY: 46E79379 (entrer: CTRL-C)
main
Traceback (most recent call last):
File "main.py", line 490, in
File "main.py", line 483, in start
File "main.py", line 474, in machine_loop
File "libs/mstate.py", line 60, in run
File "libs/mstate.py", line 16, in loop
File "main.py", line 60, in idle_loop
KeyboardInterrupt:
MicroPython v1.12-680-ga1f119287-dirty on 2020-06-24; M5Stack with ESP32
Type "help()" for more information.
>>>
L’utilisation des outils de MicroPython permet d’interagir avec le µC. Il ne faut pas utiliser simultanément un logiciel terminal d’interaction.
=> pyboard.py --device /dev/ttyUSB0 -c 'print(1+1)'
2
=> pyboard.py -d /dev/ttyUSB0 -f ls
ls :
0 flash/
=> pyboard.py -d /dev/ttyUSB0 -f ls flash
ls :flash
0 apps/
0 blocks/
142 boot.py
0 emojiImg/
0 img/
12857 main.py
0 res/
84 temp.py
65946 test.py
=> pyboard.py -d /dev/ttyUSB0 -f cp :flash/boot.py .
cp :flash/boot.py ./boot.py
=> cat boot.py
import machine, os
try:
sd = machine.SDCard(slot=2, miso=19, mosi=23, sck=18, cs=4)
sd.info()
os.mount(sd, '/sd')
except:
pass
L’interaction avec le REPL permet de regarder l’état de l’objet ;
>>> os.statvfs('flash')
(4096, 4096, 446, 184, 184, 0, 0, 0, 0, 255)
>>> machine.unique_id()
b'\xa4\xcf\x12m\x92\xb0'
>>> micropython.mem_info()
stack: 720 out of 15360
GC: total: 96000, used: 13840, free: 82160
No. of 1-blocks: 306, 2-blocks: 44, max blk sz: 30, max free sz: 4894
>>> os.uname()
(sysname='esp32', nodename='esp32', release='1.12.0',
version='v1.12-680-ga1f119287-dirty on 2020-06-24', )
Le système de fichier flash contient :
- 4096
-
octets par bloc (ou taille de fragment) ;
- 446
-
blocs (1,8 Moctets) ;
- 184
-
blocs disponibles (753ko) ;
- 255
-
caractères maximums pour le système de fichiers.
