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.
Cette page est complétée au fur et à mesure
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.
Paramètre | Arduino | Micropython / Pyboard |
---|---|---|
Valeur max entière | ~ +/- 2 Milliards | Pas de limite |
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) |
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 |
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.