CANSAT : découverte d'un vrai kit Python (MicroPython)

Bonjour à tous,

Depuis un petit moment, nous travaillons sur un kit Python pour le concours CANSAT. Le projet est bien avancé et il est maintenant temps de le présenter.

Pour être plus précis, c'est un kit autour de MicroPython: Python pour MicroContrôleur.

CANSAT PICO KIT - Introduction

Cansat Pico Kit

 Petite vue sous un autre angle (pour apprécier l'espace disponible.

Cansat Pico Kit

Raspberry-Pi Pico

Pour ce kit, nous avons sélectionné le Raspberry-Pi Pico, un microcontrôleur double coeurs cadencé à 133 Mhz, disposant de 1Mo de Mémoire Flash et 264 Ko de RAM! Un monstre de puissance comparé aux plateformes Arduino habituellement utilisées.

Le Raspberry-Pi Pico est une plateforme supportant nativement MicroPython, elle est par ailleurs distribuée avec MicroPython pré-installé! Cette plateforme dispose par ailleurs d'une vaste documentation, d'un excellent support mais aussi des habituels développements C++.

Source: MCHobby Pico Ressource (GitHub)
 

Voici un petit survol des possibilités offertes par le Pico.

Survol détaillé du kit CANSAT PICO KIT

Pour commencer, nous avons conçu ce kit pour qu'il soit facile à démonter et mettre à plat!

Cansat Pico Kit

Le but est de rendre le prototypage aussi aisé que possible en passant d'une forme "cylindrique" à une forme "planaire" et vice-versa.

L'utilisation d'un ruban (disponible en plusieurs longueurs) permet également d'envisager différents types d'assemblage mécanique... de quoi envisager de nombreux types de projet et adapter la hauteur de la plateforme en fonction du besoin spécifique.

Un connecteur Qwiic/StemmaQt sous la carte permet de réaliser des branchements rapides (voir le BMP280 sur l'image) de breakouts/capteurs  compatibles avec les gammes StemmaQt d'Adafruit Industries ou Qwiic de Sparkfun.

La carte CANSAT PICO Board

Cette base de développement n'est pas seulement une carte Pico sur un PCB rond, nous y avons mis beaucoup de bonnes idées.

Cansat Pico Kit

Qu'avons nous d'intéressant?

  1. Forcement le Raspberry-Pi Pico.
  2. Accès au port microUSB du Pico pour la programmation, alimentation et recharge de l'accu.
  3. Un duplicata de tous les GPIOs pour faire du prototypage sur la base (au dessus ou en dessous).
  4. Une ouverture pour passer des câbles vers le dessous de la carte (si nécessaire).
  5. 8 signaux utilisateurs reportés jusqu'à la carte de prototypage. Certains sont traversant (donc accessible des deux côtés) et d'autres non.
  6. Un bouton reset manquant cruellement sur la Pico.
  7. Un petit connecteur pour raccorder rapidement un interrupteur marche/arrêt (et le rendre facilement accessible, peu importe votre projet).
  8. Un connecteur d'extension UEXT . Connexions à 10 points normalisés transportant bus I2C, SPI et UARTs et alimentation 3.3V.
    Il est destiné à recevoir un module de communication qui pourrait être monté au dessus (ou au dessous) de la carte.
  9. Une zone de prototypage exploitable des deux côtés de la cartes.
  10. La possibilité de configurer la tension d'alimentation du connecteur Qwiic/StemmaQT (3.3V par défaut)
  11. Un connecteur pour le gestionnaire d'accu (soudé de l'autre côté de la carte).

Le dessous de la carte n'est pas dénué d'intérêt non plus.

Cansat Pico Kit

L'arrière de la carte permet:

  • d'accéder au connecteur Qwiic.
  • d'accéder aux GPIOs du PICO qui sont aussi libellé de ce côté.
  • d'accéder au connecteur UEXT.
  • d'accéder à 4 des signaux utilisateurs.
  • de souder le gestionnaire d'accu Lipo. Celui-ci prend en charge la gestion de l'accu en charge/décharge/activation/désactivation.
    L'accu est automatiquement rechargé depuis le connecteur USB du pico.
Dessous de la carte de base
avec accu branché.

Cette dernière capture détaille la connectique destinée au circuit gestion de l'alimentation. Rien n'empêche d'utiliser d'autres types de circuits de charge/décharge d'accu.

Cansat Pico Kit

La carte CANSAT PICO Proto

Cette carte d'extension permet à la fois de réaliser une structure de type cannette tout en récupérant tous les signaux Pico ainsi que les 8 signaux utilisateurs (dont 4 traversant).

Notez la présence de VBus, cela permet à la carte de prototypage de savoir si le projet est branché sur une alimentation (via le connecteur microUSB du Pico).

Cansat Pico Kit

Comme pour la carte de base, il est possible de prototyper des deux côtés de la carte. Les libellés sont repris des deux côtés.

Le dessus de la carte reprend en plus les signaux utilisateurs non traversants (f1..f4).

Cansat Pico Kit

MicroPython vs CircuitPython

Après tout ces détails, il est peut être temps de se pencher un peu sur les différences qui distinctent MicroPython et CircuitPython car CircuitPython c'est pas MicroPython!

CircuitPython est un dérivé de MicroPython qui modifie quelques éléments fondamentaux rompant ainsi la compatibilité entre les deux implémentations. 

CircuitPython est mis en oeuvre et maintenu par la société Adafruit Industries (les USA) alors que MicroPython est un cru du vieux continent (StandFord, Angleterre).

Fondamentalement, les deux plateformes exécutent des scripts Python sur microcontrôleur.
Si les deux solutions sont open-sources, Adafruit (CircuitPython) a modifié l'API permettant de contrôler les périphériques et bus matériels au point de rompre définitivement la compatibilité avec MicroPython.
Comme le dit Adafruit "la compatibilité MicroPython n'est pas une priorité!" et, de fait, CircuitPython s'inscrit ainsi dans une démarche commerciale fermée  ... même si le code de CircuitPython reste ouvert. 

D'accord ou pas avec cette analyse? C'est pourtant bien ce qui se passe :.-( .

Cela a créé une profonde scission/blessure dans la communauté MicroPython.
Bien qu'étant de fervant supporter d'Adafruit, je n'approuve pas leur démarche... le support de l'API originale (au côté de celle de CircuitPython) aurait été une juste rétribution au projet MicroPython. Mais tout cela est un autre débat.

Puisque le but d'un projet microcontrôleur c'est quand même de piloter du matériel, je peux affirmer que MicroPython et CircuitPython c'est différent!.

Ressources



2 commentaires:

  1. Merci pour cet article !
    Est-ce que vous recommandez plutôt MicroPython ou CircuitPython d'un point de vue technique / facilité d'utilisation ?

    RépondreSupprimer
    Réponses
    1. CircuitPython (USA) est un dérivé commercial de MicroPython (EU). En ayant modifié les API matérielle sans maintenir de retro-compatibilité avec MicroPython, CircuitPython ainsi créer une situation conflictuelle... même si les sources des deux projets restent ouvertes.
      Perso, j'écris du code pour MicroPython et offre mon support a MicroPython.

      Supprimer