Trinket M0 : Développer sur une carte style Arduino mais en Python, MicroPython et CircuitPython

Nous avons ajouté un nouveau petit jouet (petit c'est le cas de le dire). Le Trinket M0 équipé d'un puissant Atmel ATSAMD21E18 et peut être programmé en Arduino et en Python.
Le mini-microcontrôleur Trinket M0
Vous souvenez-vous, dans un l'article "Plateformes d'apprentissage et éducation", Arduino était le langage le plus plébiscité et Python arrive au 3ieme rang. Python est l'un des langages de programmation les plus facile à apprendre.
Plateformes d'apprentissage et éducation

Python est généralement réservé aux plateformes plus puissantes comme les nano-ordinateur Raspberry-Pi...  que diriez-vous de développer vos projets de prototypage électroniques en python pour Micro-Contrôleur (MicroPython et CircuitPython) ?

MicroPython et CircuitPython
MicroPython Pyboard
MicroPython est une version de Python pour MicroContrôleur activement développé depuis plusieurs années. MicroPython est déjà bien adapté au mode microcontrôleur permettant de contrôler les différentes ressources et GPIO comme le fait Arduino avec Wiring.

MicroPython animait initialement les cartes MicroPython Pyboard et nous avons consacré plusieurs tutoriels MicroPython + Pyboard sur notre Wiki.

Depuis, MicroPython est adapté sur de nombreuses plateformes microcontrôleurs. Adafruit à par ailleurs travaillé sur le support ATSAMD21 (microcontrôleur Atmel utilisé sur Arduino Zero, Feather M0, Metro M0 et Trinket M0) à l'époque, j'avais trouvé le tuto et la vidéo de Tony Dicola très intéressante.

CircuitPython est une version adaptée de MicroPython adaptée par Adafruit.
CircuitPython par Adafruit
J'ai d'abord pensé que cela était un peu excessif mais en consultant certaines sources j'ai fini par me rendre à l'évidence que les adaptations apportent une simplification appréciable visant a rendre la prototypage électronique encore plus facile et plus proche des concepts Arduino. J'ai par ailleurs eu l'occasion de constater un mécanisme de synchronisation sur les accès au bus I2C (cfr BusDevice), ce qui permet à une routine horodatée/timer d'accéder au bus I2C sans risque de conflit avec la routine principale... ça c'est un vrai plus!

Ce n'est pas tout, Adafruit développe activement une bibliothèque CircuitPython permettant de supporter de plus en plus de breakout et composants électroniques sous CircuitPython.

En quoi CircuitPython et MicroPython sont-ils si intéressant?
Les cartes MicroPython et CircuitPython sont généralement vue comme des disques USB flash. Le microcontroleur expose sa mémoire flash comme un disque USB sur-lequel il est possible de placer vos scripts python.

Avec MicroPython / CircuitPython, il suffit d'éditer vos scripts Python avec votre éditeur de code préféré... directement sur le microcontrôleur.

Pas besoin d'installer un environnement de développement, pas besoin de compilateur. Juste besoin d'un ordinateur (Mac, Windows, Linux) pour copier les scripts sur votre carte MicroPython / CircuitPython. Ejectez le disque, un petit Reset et votre script s'exécute sur la carte.

Et le Trinket M0 dans tout cela?
Le mini-microcontrôleur Trinket M0

Le format Trinket est tout petit, ce qui permet de l'insérer absolument partout. Mais ne vous y trompez pas, le Trinket M0 est équipé d'un Atmel ATSAMD21E18 32 bits cadencé à 48 Mhz.

Ce petit microcontrôleur offre 256 Ko de mémoire Flash et 32 Ko de RAM. C'est tellement plus qu'une carte Arduino.

Le Trinket M0 dispose également de 5 GPIO configurable de différentes façon, d'une LED RGB Dotstar (LED digitale) et d'une logique en 3.3V.
  • 5 broches GPIO avec entrée/sortie digitale connectée en interne sur des résistances pullup ou pulldown.
  • 3 de ces broches d'I/O pins peuvent être utilisée comme entrée analogique 12-bits
  • Une vraie sortie analogique - peut être utilisé pour produire un son audio avec une qualité de son 10-bit
  • Le trinket M0 Dispose des même noms de broches que le Trinket ATTiny-85. Par conséquent, votre code dans Arduino IDE devrait également fonctionner sans modification.
  • Deux sorties PWM à haute vitesse ) - pour servos, LEDs, etc
  • 3 broches peuvent également être utilisées comme entrée tactile (effet capacitif) sans besoin de composants supplémentaires.
  • Bus I2C et bus SPI matériel.
  • Alimentation via USB ou alimentation Externe. La carte passe automatiquement d'une alimentation à l'autre.
  • Fiche technique de l'ATSAMD21E18 (Microchip.com)
Le Trinket M0 a assez de puissance et de ressources pour contrôler jusqu'à 8000 LEDs NeoPixels! Il est même possible de piloter les LED NeoPixels via DMA, ce qui permet d'économiser des ressources processeurs.

N'hésitez pas à consulter la fiche produit du Trinket M0 pour plus d'information.

Compatible Arduino IDE et CircuitPython
La carte Trinket M0 peut être programmée avec Arduino IDE (voir les tutoriels).
La carte est livrée flashée avec CircuitPython et donc prête a accueillir vos premiers scripts.
Adafruit propose un tutoriel en anglais couvrant l'usage de la carte avec Arduino IDE et CircuitPython.
Nous ne proposons pas encore de traduction en Français, mais cela pourrait arriver dans le futur. Voyez la section Tutoriel du Trinket M0... nous n'hésiterons pas à l'y mentionner.

Où acheter
MC Hobby supporte activement les produits Adafruit en offrant régulièrement des traductions de tutoriels sur son Wiki. Vous pouvez supporter nos efforts en achetant vos produits chez MCHobby.