MicroPythonMCU¶
Un microcontrôleur programmable en Python, à poser dans un schéma OpenModelica.
MicroPythonMCU est une bibliothèque OpenModelica dont le bloc MCU exécute un vrai script Python, écrit avec l'API MicroPython (machine, time), celle du Raspberry Pi Pico (documentation officielle, port rp2). Ses broches sont de vrais nœuds électriques : le script pilote et mesure le circuit Modelica qui l'entoure. On met ainsi au point un programme embarqué sur le jumeau numérique d'un système, avant de le téléverser sur la carte réelle.

-
Guide utilisateur
Installer la bibliothèque, simuler un premier exemple, écrire son propre programme et brancher des périphériques. Aucune connaissance du fonctionnement interne n'est nécessaire.
Premiers pas · Le bloc MCU · API · Exemples
-
Référence interne
Pour qui fait évoluer la bibliothèque : architecture, intégration de CPython, protocole de synchronisation avec le solveur, moteurs série et I2C, suite de vérification, livraisons.
Ce que sait faire le microcontrôleur¶
| Fonction | API côté script | Détails |
|---|---|---|
| Entrées / sorties numériques, interruptions, bit-banging | Pin, Pin.irq() |
API |
| Entrée analogique, sortie PWM | ADC, PWM |
API |
| Minuteurs, attentes | Timer, time.sleep() |
API |
| Liaison série électrique | UART |
Appareils série |
| Bus I2C maître en drain ouvert | I2C |
Périphériques I2C |
Système de fichiers façon flash, boot.py / main.py |
open(), os |
API |
| Import de modules, drivers du commerce | import |
Le bloc MCU |
| Carte Raspberry Pi Pico : brochage réel, alimentation USB / pile, mise sous tension | RPi_Pico (bloc) |
La carte Raspberry Pi Pico |
Un time.sleep(1) ne coûte aucun temps réel : le solveur avance directement à l'échéance. Une heure simulée s'exécute en une fraction de seconde.
Périphériques fournis¶
LED, afficheur pédagogique, appareils série (écho, capteur de température, GPS, afficheur 20x2, appareil générique), périphériques I2C (écran Grove LCD RGB, écho, périphérique générique) une chaîne de pesée complète (corps d'épreuve, pont de jauges, convertisseur HX711), une sonde d'analyseur logique et des modules radio (réglés par défaut comme un APC220) dont le signal modulé est tracé. Les 48 exemples les mettent tous en œuvre, jusqu'à une balance de cuisine qui exécute sans modification des drivers MicroPython du commerce.
Limites actuelles¶
Windows uniquement, pas de SPI. Un modèle peut contenir plusieurs microcontrôleurs, qui dialoguent par leurs broches, une liaison série ou un bus I2C. Liste complète : Limites et dépannage.
Contexte¶
Bibliothèque conçue par Benoit Delaup, professeur de sciences de l'ingénieur, pour que des élèves testent leur code de pilotage sur le système numérique avant de le déployer sur un prototype réel, et utilisable pour un jumeau numérique de logiciel embarqué dans un cadre industriel. Code source et suivi : dépôt GitLab. Les choix d'architecture et leurs alternatives sont consignés dans requirements.md.
Le développement de la bibliothèque (code, tests et documentation) a été réalisé avec l'aide d'une IA, sous la direction de l'auteur, qui en a fixé les choix et relu le résultat.