DevPush - Deployez vos apps Python comme sur Vercel | Anonymat en ligne | Le site de Korben
Comme Vercel pour le Javascript
Et auto-hébergeable, aussi
— Permalien
Bonjour à tous,
ROMFS: une nouvelle fonctionnalité fait son apparition dans MicroPython.
ROMFS qui est en développement depuis plusieurs années permet de stocker
Le but de ROMFS est d'optimiser l'accès et la rapidité d'exécution de ressources SANS DEVOIR RECOMPILER MicroPython à chaque fois.
Jusqu'à maintenant, seule l'inclusion -au sein du firmware- de scripts pré-compilés avec mpy-cross permettait d'atteindre les performances nécessaires à l'exécution de code "time sensitive".
Certes, mpy-cross permet de compiler un script en byte-code (des fichiers .mpy) mais l'accès reste encore conditionné par le système de fichiers pour le chargement (ou chargements multiples). Les fichiers .mpy, bien que pré-compilé, nécessite malgré tout des vérifications de routine et du chargement d'information en RAM.
Avec ROMFS, une partition dans la mémoire Flash permet d'être accédée directement par la VirtualMachine MicroPython. Les ressources sont directement accessibles par le noyaux MicroPython qui peut aussi lancer l'exécution directement en Flash (In-Place execution)... et cela en s'évitant la lourdeur du système de fichiers, les phases de compilations et allocations de RAM. Les routines de vérifications sont elles aussi réduites au stricte nécessaire puisque celles-ci sont opérées majoritairement au moment de l'assemblage/compilation de la ROMFS.
Au moment de l'écriture de ces ligne (MicroPython v1.25), ROMFS n'est disponible nativement que sur certaines plateformes: PYBD-SFx (Pyboard D), ALIF-Ports, ESP8266_Generic, STM32 boards.
Sinon, il est possible de compiler le firmware en activant la flash_romfs (voir FLASH_2M_ROMFS).
L'utilitaire MPRemote de MicroPython a également le nouveau mot clé romfs avec les options:
A noter que la compilation/build d'une image romfs require l'utilitaire mpy-cross .
La capture suivante indique le contenu de la romfs sur le microcontroleur.
mpremote romfs query
Prenons l'exemple d'un répertoire "utilities" qui contient les sources. Celui-ci ne contient qu'un script nommé "scan_i2c.py".
L'image de la partition romfs est créé avec la commande suivante:
mpremote romfs -o utilities.img build utilities
Le nom de l'image à créer est spécifié par le paramètre '-o'.
Le contenu du répertoire à compiler est précisé après le paramètre 'build'.
Une fois l'image prête sur l'ordinateur, l'option deploy permet de copier celle-ci sur le microcontroleur.
mpremote romfs deploy utilities.img
Une fois romfs initialisé, il est très facile d'utiliser son contenu.
Utiliser Thonny IDE permet d'inspecter le système de fichiers MicroPython.
La partition romfs est montée dans le système de fichiers MicroPython sous le répertoire 'rom'.
Il est donc possible d'en inspecter le contenu.
Comme le démontre le shell interactif, il est possible de charger et d'exécuter le contenu de scan_i2c.py (compilé en .mpy) en executant un simple "import" sous Python.
L'appel de mount() sans paramètre affiche les systèmes de fichiers déjà monté dans MicroPython.
Ainsi les lignes suivantes indique la présence de romfs:
>>> import vfs
>>> print( vfs.mount() )
[ VfsRom('rom'), VfsFat('/flash') ]
>>> Toutes les fonctions de manipulation de fichiers sont donc utilisable sur le système de fichiers ROMFS.
Ressources
Crée ton propre assistant vocal Jarvis en Python ! Suis notre tutoriel débutant pour intégrer IA locale (Ollama), reconnaissance et synthèse vocale. Apprends à coder ton IA !
# Création des répertoires et scripts
python3 -m venv ./project
# Activation pour votre shell
. ./project/bin/activate
# Désactivation pour votre shell
deactivate
Vous pouvez désormais utiliser pip, les packages seront localisés dans votre projet.
# Setup du fichier normalisé requirements.txt
pip freeze > requirements.txt
# Installation des packets
pip install -r requirements.txt
Note: Sous debian, il vous faudra le packet python3-venv
pyenv et pyenv:# Avec virtualenv:
python3 -m virtualenv ./venv
. ./venv/bin/activate
deactivate
# Avec pyenv
# Il s'agit d'une gestion plus avancée vous permettant de basculer entre versions de python
# Voir https://github.com/pyenv/pyenv?tab=readme-ov-fileBonjour à tous,
Nombre d'entre-vous savent que nous sommes impliqué dans le projet CanSat (voir précédents articles sur le sujet CanSat).
Nous poursuivons les travaux sur Kit CANSAT version 2, l'occasion de faire le point.
Pour rappel, notre kit utilise un Raspberry-Pi Pico et du code Python sur microcontrôleur (MicroPython).
CanSat est
un concours visant a stimuler l'apprentissage des sciences dans le
domaine de l'AéroSpatial en réalisant un mini-satellite (la CanSat) pas
plus grande qu'une boîte de Soda. Ce satellite est envoyé et éjecté à
3000m d'altitude à l'aide d'une roquette. C'est à partir de ce moment
que votre projet capture les données et les envois au sol.
Si vous voulez en apprendre plus sur le concours CanSat, je vous invite à visiter la page d'accueil CANSAT sur EseroBelgium.be .
100% compatible avec la version précédente (câblage code), nous avons terminé le premier round de test du prototype Alpha. Les correctifs nécessaires sont apportés et aux cartes et le prototype Beta arrive prochainement.
Outre les aspects mécaniques déjà abordés au précédent article, nous allons pouvoir nous attarder sur les caractéristiques électroniques.
Je vous présente Cansat-Pico V2
![]() |
| Cansat Pico V2 (source: MCHobby Wiki) |
![]() |
| Cansat Pico V2 (source: MCHobby Wiki) Note: connecteur d'antenne manquant. |
Et le visite ne serait pas complète sans inspecter le dessous de la carte.
![]() |
| Cansat Pico V2 (source: MCHobby Wiki) |
Comme annoncé, nous avons cherché à faciliter les connexions en utilisant des connectiques populaires (Qwiic/StemmaQt et Groove).
LA sérigraphie reprend également de nombreuses informations pour permettre
![]() |
| Cansat Pico V2 (source: MCHobby Wiki) Note: le connecteur d'antenne est manquant sur la photo |
![]() |
| Cansat Pico V2 (source: MCHobby Wiki) |
Les autres cartes permettant de créer une CANSAT complete sont également prêtes...
![]() |
| Cansat Pico V2 (Lettuce, Onion et Bun) |
Pour l'instant, nous consacrons les efforts sur:
Bonne lecture,
Dominique
Envie de plonger dans la robotique sans prise de tête ? Découvrez le TPBot EDU Car Kit d’Elecfreaks pour micro:bit ! Un robot accessible, ludique et bourré de potentiel, parfait pour petits et grands bidouilleurs. Montage rapide, programmation simple avec MakeCode ou Python, défis variés (suiveur de ligne, évitement d’obstacles…)… Que vous soyez enseignant, parent ou maker […]
Cet article Test du robot TPBot EDU Car Kit pour micro:bit par Elecfreaks a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....
Bonjour à tous,
Nombre d'entre-vous savent que nous sommes impliqué dans le projet CanSat (voir précédents articles sur le sujet CanSat).
Nous faisons actuellement évoluer notre Kit CANSAT vers une version 2 .
Pour rappel, notre kit utilise un Raspberry-Pi Pico et du code Python sur microcontrôleur (MicroPython).
CanSat est
un concours visant a stimuler l'apprentissage des sciences dans le
domaine de l'AéroSpatial en réalisant un mini-satellite (la CanSat) pas
plus grande qu'une boîte de Soda. Ce satellite est envoyé et éjecté à
3000m d'altitude à l'aide d'une roquette. C'est à partir de ce moment
que votre projet capture les données et les envois au sol.
Si vous voulez en apprendre plus sur le concours CanSat, je vous invite à visiter la page d'accueil CANSAT sur EseroBelgium.be .
Des précédents tirs et expériences utilisateurs, voici ce qu'il serait utile d'améliorer sur le kit actuel:
![]() |
| Carte contrôleur (PICO-CANSAT-BASE v2) |
Le module de charge Lipo est maintenant intégré à la carte.
Le connecteur J108 (en bas) permet de brancher l'accu.
Le Pico est directement alimenté par l'accu tandis qu'un circuit de régulation permet d'obtenir 3.3V @ 600mA.
Les points VBat/GND (sous le libellé "Pico Facing this side") permettent de brancher un second circuit de régulation si cela était nécessaire (ex: produire une tension de 5V pour une expérience).
Bien que l'électronique du module Lipo se trouve principalement sous la carte, les composants pratiques sont restés accessible sur le dessus de la carte.
Par exemple, la LED CHG (orange) est allumée pendant la charge de l'accu Lipo (qui se fait par l'intermédiaire du connecteur USB du Pico).
La résistance R_PROG permet d'ajuster le courant de recharge de l'accu (fixé à 250mA par défaut).
Bien que je ne sois pas fan de la connectique Grove, je dois reconnaître:
Le haut de la carte reprend les points de connexion "PWR Enable".
Soudez y un interrupteur pour contrôler le circuit d'alimentation. Sans interrupteur, le circuit reste activé jusqu'à la décharge complète de l'accumulateur.
Une fois fermé, le circuit de régulation du Lipo est désactivé. Par effet de cascade, le régulateur 3.3V du Pico est aussi désactivé et le Pico s'éteint.
Les premières cartes prototype sont commandées et le montage ne tardera plus.
A tout bientôt pour la suite...
Voici un module Python bien pratique pour injecter les entêtes HTTP de sécurité, avec des valeurs par défaut et strictes qui font bien le travail (cf HSTS, COEP, COOP, CSP, Cache-Control, Server, Permissions-Policy, Referrer-Policy, X-Content-Type-Options, X-Frame-Options, et custom).
Et il prend en charge quasiment tous les framework web actuels !