Micro Python et PyBoard : python sur Microcontroleur - distribution en Belgique et en France

Il y a de nombreux mois, j'ai découvert micropython.org et le projet de Damien.
Etant un grand fan d'Arduino, de Python et du Raspberry-Pi, j'ai immédiatement été séduit par le ce projet (vous comprendrez plus bas).
Voulant faire la promotion d'une idée aussi géniale qu'ambitieuse, je suis entré en contact avec micropython.

Aujourd'hui, j'ai le bonheur de vous annoncer la distribution et accord de traduction autour de Micro Python.

C'est quoi Micro Python
Gamme Micro Python chez MCHobby

Micro Python est une version optimisée et allégée de Python 3 pour système embarqué.

PyBoard, la carte Micro Python est une petite carte électronique qui exécute Micro Python en bare metal et vous offre un système d'exploitation Python bas niveau permettant de contrôler toute sorte de projets électroniques. Trop fort... I Love It!!!

La gamme Micro Python est maintenant disponible chez MCHobby.

Micro Python PyBoard 
Micro Python PyBoard - dispo chez MCHobby

Python est une langage de scripting vraiment très facile à apprendre, très expressif, vraiment très puissant et disposant d'une gigantesque communauté. En fonctionnant sur un microcontroleur, MicroPython permet de faire clignoter des LEDs sans aucun effort, lire des tensions, faire bouger des moteurs et servo moteurs, jouer du son, écrire/lire des données sur la carte micro SD, établir des communications sans fils (avec un module complémentaire) et devenir ce cerveau que votre robot attend désespérément. Il y a tant d'autres d'opportunité accessible à PyBoard et MicroPython.... c'est un choix parfait pour votre prochain projet!

La carte Micro Python (PyBoard pour les intimes) est une carte de développement électronique basée sur un microcontroleur STM32F405 qui exécute Micro Python. Ce microcontroleur est un des plus puissant disponible sur le marché et à été spécialement sélectionné parce qu'il permettrait à Micro Python de fonctionner à son plein potentiel.
Le microcontroleur est cadencé à 168MHz (fréquence d'horloge), dispose de 1Mb de Flash et de 192Kb de RAM, un très large espace mémoire pour écrire de complexes scripts Python.

La carte intègre une interface USB qui se présente comme un périphérique série (CDC VCP) ainsi que comme un périphérique de stockage USB amovible (MSC, l'équivalent de votre clé USB). Lorsque PyBoard est connecté sur un PC, vous pouvez ouvrir un programme de communication série (terminal telnet/minicom ou Putty) et interagir la carte par l'intermédiaire d'une ligne de commande Python.
La carte se comporte également comme un périphérique de stockage (un lecteur Flash USB) vous permettant de facilement copier vos scripts sur le système de fichier de la carte ou de la carte SD. Ces fichiers peuvent être exécutés indépendamment du PC.

Une carte pour tous

La carte Micro Python est adapté pour tous, peu importe le niveau de connaissance en programmation ou électronique. Avec quelques lignes de code Python dans un fichier texte, le bédutant pourra faire clignoter les LEDs et réagir en fonction des données de l'accéléromètre, le tout sans soudure, ni connexion de composant, ni installation de logiciel sur votre l'ordinateur. Les utilisateur avancés apprécierons de pouvoir utiliser des types natifs, de l'assembleur iniline ou même d'écrire ses propres programmes en C et de les téléverser en mode DFU.

REPL, Remote Script ou Fichiers

Contrôler la carte de 3 façon différentes:
  • REPL: Connecté sur un PC avec un cable USB, la carte apparait comme un port COM virtual (USB Série, CDC VCP) et vous pouvez utiliser n'importe quel programme série pour vous connecter sur sur la carte et obtenir l'accès à la ligne de commande REPL. REPL signifie Read-Evaluate-Print-Loop qui se traduit par Boucle-Lecture-Evaluer-Afficher. Cette ligne de commande REPL permet de taper et exécuter instantanément des commandes Python, comme vous le feriez avec un PC. Vous pouvez également rediriger REPL sur n'importe quel UART (port série) du pyboard.
  • Script en Remote: vous pouvez passer du mode REPL eu mode REPL raw (REPL brute) en envoyant un ctrl-A. Une fois en mode REPL raw, vous pouvez envoyer un script Python de façon arbitraire sur la carte où il sera exécuté immédiatement. Il y a un script Python disponible pour rendre l'utilisation de se mode vraiment très simplement. Vous exécutez simplement python pyboard.py script_a_exécuter.py et votre script script_a_exécuter.py sera exécuté sur la PyBoard et vous recevrez le résultat produit par le script.
  • Depuis un fichier: pyboard dispose d'un petit système de fichier intégré au coeur de MicroPython. Ce système de fichier prend place dans une partie de la mémoire Flash du microcontroleur, ainsi que sur la carte SD (si présente). Lorsque vous connectez la PyBoard sur votre PC, elle apparait comme un périphérique de stockage et vous pouvez accéder au système de fichier interne (via un mount). Si vous copiez un script python sur le système de fichier de la PyBoard et si vous l'appelez main.py alors la carte exécutera automatiquement ce script au démarrage.
    De cette façon vous pouvez exécuter des scripts sans être connecté sur un ordinateur.

Fonctionnalités de la PyBoard

PyBoard c'est de nombreuses broches aux fonctionnalités multiples. Avec PyBoard vous avez sous la main:
  • 30 GPIO - Broches d'entrées/sorties pouvant servir à de nombreuses applications. Avec un GPIO, vous pouvez commander des LEDs, des relais (via transistor ou UNL2803), des moteurs (via L293). Lire l'état de boutons et senseurs. Commander des périphériques tels que des écrans LCD, afficheurs graphiques, des cartes d'extension, etc.
  • 2 bus I2C - Pour commander des périphériques à l'aide de 3 fils.
  • 2 bus CAN
  • 2 bus SPI
  • 5 UARTs - Un port série c'est un outil de communication très utile... en avoir 5 c'est absolument génial.
  • 20 PWMs - Permettant de produire des signaux permettant de contrôler des servo-moteurs ou la puissance d'une LED
  • 16 ADC - Convertisseur Analogique->Digital permettant de lire une tension analogie (pratique pour utiliser des senseurs flex, photo-résistance, potentiomètre, etc).
  • 2 DAC - Très rares sur les cartes de prototypages, les convertisseurs Digital->Analogique permettent de produire des tensions analogiques en sortie. Grâce à cela, vous pouvez produire divers types de signaux (en dent de scie, sinusoide, ... et même du son).
  • 13 timers - Les timers permettent de mesurer des durées et d'exécuter du code/fonction à intervalle régulier. C'est un élément de synchronisation important lorsque l'on désire écrire des applications avancées.  
  • 16 ext int - Les interruptions externes permettent d'interrompre le programme principal pour exécuter du code (fonction d’interruption) lorsqu'une broche change d'état. Cela permet d'écrire des programmes réagissant instantanément à changement de conditions physique autour du la carte. Exemple: arrêter immédiatement des moteurs si l'arrêt d'urgence est activé.
  • 1 RTC - L'horloge temps réel vous permet de connaître l'heure, de mesurer des laps de temps assez grand, de créer des exécutions basées sur un calendrier, de réaliser des horloges. Le RTC est un élément utile qui manque souvent dans les plateformes de prototypage (comme c'est la cas pour Raspberry, Arduino ou encore de Spark Core où le RTC n'est pas exploitée)
  • 4 LEDs - Les LEDs/DELs sont bien pratiques pour informer l'utilisateur sur l'état du programme. En avoir sur la carte permet de tester/prototyper rapidement du code sans avoir besoin de faire des raccordements.
  • 1 Accéléromètre - PyBoard fut conçue avec la robotique comme finalité. Du coup, Damien à intégrer un accéléromètre à même la carte. Un tel dispositif permet de mesurer les accélération (cas pratique: un smartphone qui tombe) mais surtout l’accélération terrestre G sur les 3 axes. Cette accélération terrestre responsable de la gravité est dirigée vers le centre de la terre, en mesurant cette accélération sur 3 axes, il est donc possible de déterminer la position/orientation 3D de la carte par rapport au sol (cas pratique: la rotation automatique des écrans sur un smartphone, tenue d'équilibre pour un robot bipède).

Détails techniques

  • Microcontroleur STM32F405RG (fiche technique)
  • CPU Cortex-M4 cadencé 168 MHz avec unité de calcul flottant à 32-bit.
  • 1 Mb de mémoire Flash pour le stockage, 192 Kb de RAM.
  • Connecteur USB microB avec support logiciel USB Série, périphérique de stockage de masse USB, et USB HID (souris, clavier).
  • connecteur pour carte micro SD.
  • Accéléromètre 3-axes MMA7660 FreeScale (fiche technique). Jusqu'à 64 échantillonnages 6-bit par seconde par axe.
  • 4 LEDs, 1 bouton Reset, un bouton utilisateur.
  • Un régulateur 3.3V LDO (à faible perte) de 300mA. Alimenté depuis le connecteur USB ou alimentation externe entre 3.6V et 10V.
  • Horloge Temps Réel (RTC) avec date et heure.
  • 30 broche d'entrée/sortie GPIO, 28 sont tolérante 5V (excepté en mode ADC / Analogique->Digital).
  • Communication:
    • 2 bus SPI,
    • 2 bus CAN,
    • 2 bus I2C,
    • 5 USART (port série).
  • 14x entrée analogique avec résolution 12-bit, Valeur entre 0 et 4095 (ADC, Analogic to Digital Converter).
  • 2x sortie analogique (DAC, Digital to Analogic Converter).
  • Dimension de la carte: 33 x 40mm.
  • Poids de la carte: 6 grammes.
  • Connexion sur la carte: 46 trous avec empattement standard de 2.54mm.
Tutoriels
Avec la distribution de Micro Python, MC Hobby entame son 4ieme projet de documentation/traduction. Une nouvelle aventure commence autour du partage du savoir.
MCHobby investi du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible. SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Où acheter un Micro Python
Vous pouvez vous procurer une carte Micro Python chez MCHobby (vendus uniquement sur stock!)
 
Essayer PyBoard en ligne
Une carte Micro Python (pyboard) est connectée sur Internet afin de vous permettre de jouer avec!
Essayez les scripts d'exemples pour faire clignoter les LEDs, tourner les moteurs, produire une sinusoïde et faire des animations.
Il y a seulement une pyboard et plusieurs personnes peuvent utiliser cette page en même temps.
Votre code sera placée dans une queue d'exécution jusqu'au moment où la le pyboard sera disponible... il sera ensuite exécuté.
Dans l'attente, vous pouvez voir ce que les autres utilisateurs font avec la carte.
Cliquez ICI pour démarrer le test en live
Vous pouvez également accéder directement au Live en cliquant sur ce lien