Cartes Pycom


Pour les projets conséquents, les performances de la carte micro-bit se révèlent rapidement insuffisantes, principalement au niveau de la mémoire RAM qui ne fait que 16 ko. Avec cette capacité, si on importe des librairies ou modules de quelques ko, la ’compilation’ se termine souvent par un message MemoryError : memory allocation failed, allocating xxxx bytes.

Pendant la compilation, le code source des librairies/modules et le résultat de la compilation sont stockés en RAM. De ce fait, tous les commentaires et espaces occupent de l’espace mémoire et contribuent à la saturation de celle-ci.

Une alternative intéressante pour rester en micro-python est d’utiliser les cartes pycom https://pycom.io/

Avec leurs nombreux modules réseau sans fil, ces cartes sont particulièrement adaptées au développement d’IOT

Mémoire  

Basées sur un ESP32 avec 520 ko de RAM, les cartes pycom sont dotées de 4 Mo de RAM externe et 8 Mo de mémoire flash repoussant très loin les limitations dues aux capacités ’mémoire’.

Interfaces 
On retrouve les interfaces de l’ESP32

  •  ADC (12 bits) jusqu’à 18 canaux ;
  • 2 × 8 bits DAC ;
  • 10 × capteurs de touché (GPIO de capteur capacitif ) ;
  • 4 × SPI ;
  • 2 × interfaces I²C ;
  • 3 × UART ;
  • contrôleur SD
  • PWM (jusqu’à 16 canaux) ;

Programmation

La programmation se fait en micro-python avec le logiciel multi-platformes ATOM sur lequel on installe le plugin Pymakr.

Connexion physique

Les échanges avec l’ordinateur se font par la liaison série. On peut utiliser son propre convertisseur USB/UART, mais pour la phase de développement, il est fortement recommandé d’utiliser une carte d’extension.

Il existe d’autres cartes d’extension avec capteur de température, d’humidité, accéléromètre, GPS, RFID, etc

Premier pas

Pour débuter et changer du célèbre Blink, on va commander la Led RGB qui est intégrée à la carte.

import pycom
import time
pycom.heartbeat(False)
for cycles in range(2): # Arreter apres 2 cycles
    pycom.rgbled(0x007f00) # vert
    time.sleep(4)
    pycom.rgbled(0x7f7f00) # jaune
    time.sleep(3)
    pycom.rgbled(0xee0000) # rouge
    time.sleep(2)
pycom.rgbled(0x000000) #eteint

Partager

Imprimer cette page (impression du contenu de la page)