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.