Les atouts de MicroPython

La question qui se pose lorsque l'on évoque la possibilité d'utiliser une solution microcontrôleur plutôt qu'une autre (à modalités de mise en oeuvre équivalente et du même ordre de prix ) est de lister les avantages inconvénients.

Je me place ici dans le cas d'un comparatif avec Arduino (UNO, Mega) qui est la solution première dans ce cas de figure.

Note

Cette page est complétée au fur et à mesure

Caractéristiques microcontrôleurs

Paramètre Arduino Micropython / Pyboard
Fréquence CPU 16Mhz / 8 bits 168 Mhz / 32 bits
RAM (mémoire programme) 4 à 8 Ko (limitant +++) 190 Ko !
FLASH (programme) 32 à 256Ko 1Mo = 1000 Ko

Note

Pour les codes micropython : restent 100 Ko disponibles en FLASH + SD possible au besoin. Les codes micropython sont légers, l'essentiel du code actif étant assuré par le "moteur" micropython en FLASH.

Caractéristiques langage

Math

Paramètre Arduino Micropython / Pyboard
Valeur max entière ~ +/- 2 Milliards Pas de limite

Modules" hardware

Paramètre Arduino Micropython / Pyboard
GPIO 18 + 2(Rx/Tx USB) @ 5V 30 @ 3.3V
Mesure analogique 6 voies - 10 bits (1023) en 5V 12+4 voies - 12 bits (4095) en 3.3V
Sortie analogiques "vraies" NON 2 voies DAC - jusqu'à 100 000 hz, résolution 12 bits - 3.3V
PWM 6 voies PWM 18 voies PWM
Encodeurs NON Oui sur canal 1 de n'importe lequel des 13 timers ! Mode A, B ou AB dispos
SD NON - shield optionnel Oui
RTC NON - shield optionnel Oui (pas de batterie - reste à l'heure entre 2 mises hors tension)

Benchmark

Paramètre Arduino Micropython / Pyboard Note
ON/OFF non stop sur GPIO ~111000 Hz 178 000Hz Test réalisé avec instructions natives. Assembleur inline dispo avec µpython au besoin

Note

En clair : avec une carte à micropython, on a le même niveau de vitesse en exécution qu'avec Arduino... le langage Python en bonus.