L’Internet des Objets

L’Internet des Objets

21.2 M5 Gray

Page précédente Page suivante

M5grayhttps://docs.m5stack.com/en/core/gray

Le support doit être M5Stack-Core-ESP32.

(image)

Fig. 21.1 : Description du M5 Grey.

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.

Page précédente Page suivante