Vue normale

La 4G avec un Raspberry Pi Pico ? C’est possible !

Il y a un peu plus de trois ans, je vous présentais déjà la carte NadHAT MK2, basée sur un modem 4G A7682E, imaginée et fabriqué en France par Garatronic et distribuée par McHobby. Cette carte bénéficie d’un support sérieux et de bibliothèques bien suivies, ce qui la distingue de nombreuses productions asiatiques. Aujourd’hui, place […]

Cet article La 4G avec un Raspberry Pi Pico ? C’est possible ! a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....

MicroPython: Mesurer la vitesse de l'air avec le capteur FS3000

Amis de MicroPython... Bonjour,

Cela faisait longtemps que nous n'avions pas eu l'occasion de porter un nouveau pilote sous MicroPython. 

Renesas FS3000

Cette fois, nous nous sommes penchés sur le capteur FS3000  de Renesas qui mesure la vélocité de l'air. Capteur que l'on retrouve sur les breakout FS3000 de SparkFun.

Capteur FS3000 de SparkFun

Ce type de capteur est principalement utilisé dans des systèmes de refroidissement ou de conditionnement d'air. Comme il dispose d'une interface I2C, il est très facile de l'exploiter avec de nombreux microcontrôleur.

Les cartes breakout existent en deux versions:

  • FS3000-1015 mesurant des flux jusqu'à 15m/s (54 Km/H).
  • FS3000-1005 mesurant des flux jusqu'à 7ms/s  (25 km/H).

Pilote MicroPython

Bien que SparkFun propose un pilote MicroPython --ce que je salue-- celui-ci est construit sur une surcouche d'abstraction permettant permettant d'utiliser le capteur avec CircuitPython et MicroPython.

Etant un fan inconditionnel de MicroPython, je pense qu'il est préférable de disposer d'un code qui va droit au but... avec le moins de détour possible! C'est ainsi que l'on maintient une efficacité optimale d'exécution.

J'ai décidé de recréer un pilote à partir du code Arduino. En effet, il à été plus facile de travailler à partir du code Arduino que de suivre la couche d'abstraction CircuitPython/MicroPython.

Le pilote alternatif est disponible sur notre dépôt esp8266-upy/qwiic-ait-velocity .

Brancher sur un Raspberry-Pi Pico

Le schéma suivant indique comment brancher le capteur sur un Pico à l'aide d'un câble Qwiic (qui transporte un bus I2C).

Brancher un capteur FS3000 sur un Raspberry-Pi Pico
 

Du code pour le peuple

Après avoir transféré la bibliothèque airspeed sur la plateforme MicroPython, il ne reste plus exécuter l'exemple ci-dessous.

from machine import I2C,Pin
from airspeed import FS3000, AIRFLOW_RANGE_15_MPS
import time

# Raspberry-Pi Pico
i2c = I2C( 1, sda=Pin.board.GP6, scl=Pin.board.GP7 )
# Adresse par défaut
air_speed = FS3000( i2c )

# air_speed.set_range( AIRFLOW_RANGE_7_MPS )
air_speed.set_range( AIRFLOW_RANGE_15_MPS )

while True:
	print( "FS3000 lecture brute:", air_speed.read_raw() ) # 125ms acquisition
	#  lecture en metre par seconde, retourne un float de 0 - 7.23 pour FS3000-1005, 0 - 15 pour FS3000-1015 
	airflow_mps = air_speed.read_mps()
	if airflow_mps != None: # retourne None en cas d'erreur CRC!
		print( "   m/s:", airflow_mps ) 
		airflow_kmh = airflow_mps*3600/1000
		print( "   Km/h:", airflow_kmh ) 
		airflow_mph = airflow_mps*2.2369362912
		print( "   Miles/h:", airflow_mph ) 
	time.sleep( 1 )

Ressources

MCHobby investit 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.

RT1010-Py : MicroPython à 500 MHz sur le Chipset NXP

Bonjour à tous,

Aujourd'hui, nous avons l'occasion de nous pencher sur le microcontrôleur MicroPython le plus rapide à ce jour.

RT1010-Py

IMXRT1010RM de NXP qui équipe la carte RT1010-Py d'Olimex, une carte de développement Cortex M7 fonctionnant à 500 MHz. soit 4 fois plus rapide que le RP2040 avec MicroPython pré-installé.

carte RT1010-Py d'Olimex

Avec un Cortex M7 et un support DSP, ce microcontrôleur sera surtout intéressant pour les applications en besoin de réactivité et de puissance de calcul (unité de calcul en virgule flottante à double précision).

Nous avons travaillé/collaboré sur le manuel utilisateur et la documentation afin de rendre la carte de développement et son DevKit plus accessibles.  Vous savez... dès qu'il s'agit de MicroPython, on ne se tient plus!

Brochage du RT1010-Py (par MCHobby)

Nous avons apporté quelques ressources graphiques mais également étayé la documentation avec des exemples et des ressources utiles autour pour MicroPython. Nos apports les plus significatifs restant l'exemple I2S, le support WS2812/NeoPixel et la gestion du PMIC (gestion d'alimentation intégrée au RT1010) qui permet, par exemple, de maintenir la RTC à l'heure alors que le MCU est arrêté.

  • MIMXRT1011DAE5A running at 500Mhz
  • 128KB de RAM RAM
  • 2MB de FLASH SPI
    • 3x UARTs
    • 2x bus SPI matériel
    • 2x bus I2C matériel
    • 1x bus I2S (il y en a un second mais pas encore testé)
  • 4 contrôleurs PWM (avec sorties complémentaires pour créer des circuits push-pull)
  • USB 2.0 OTG
  • Connecteur Micro SD
  • RTC avec cristal 32.768 kHz
  • Bouton RESET
  • Bouton BOOT (pouvant servir de bouton utilisateur)
  • Connecteur fUEXT (flat ribbon) avec 3.3V, GND, I2C, SPI, UART
  • Connecteur GPIO breadboard friendly
  • Dimensions: 53.34 x 25.4 mm 

Cette plateforme existe depuis un moment mais le support MicroPython est maintenant mature. 

RT1010-Py DevKit

RT1010-Py DevKit

Le kit de développement RT1010-Py propose:

Comme pour le RT1010-Py, nous avons participé à la rédaction de son manuel utilisateur et aux ressources graphiques facilitant la prise en main.

 

Brochage des connecteurs UEXT

Edge connector du RT1010Py-DevKit

Toute l'information nécessaire pour débuter facilement avec cette plateforme sous MicroPython.

Ressources

MCHobby investit 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.

CanSat: Module GPS

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 poursuivons les travaux sur Kit CANSAT version 2, l'occasion de s'intéresser à des extensions utiles.
Pour rappel, notre kit utilise un Raspberry-Pi Pico et du code Python sur microcontrôleur (MicroPython).


Documentation Open-Source disponible sur le Wiki de MCHobby.

A propos de CanSat

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 .

Module GPS pour CanSat

Dans les divers modules envisagé, il y a le module GPS/GNSS destiné à communiquer la position de la CanSat durant son vol.

Ci-dessous le module en cours de validation.

CANSAT-GPS-V2 par MCHobby

Ainsi, une variante de l'attache parachute (dit CanSat-BUN) pour l'équiper d'un  GPS Ultime. 

Etant donné que ce module est supposé se retrouver sur le dessus de la CanSat (pour exposer l'antenne vers le ciel), le point de connexion est reporté sous la carte. 

Un simple câble Grove permettra de raccorder le GPS sur l'entrée UART de la CANSAT en deux clicks.

CANSAT-GPS-V2 par MCHobby

La carte expose également les deux signaux supplémentaires:

  • 1pps : Pulsation à très précisément 1 Hertz (1 pulsation par seconde)
  • nRest : Reset du module GPS. Placer cette broche au niveau bas réinitialise le module GPS.

A propos du module GPS Ultime

C'est que le breakout GPS/GNSS produit par AdaFruit dispose d'une excellente module GPS/GNSS disposant d'une grande sensibilité et d'une antenne intégrée (dite Patch Antenna).

Même avec son antenne Patch, le démarrage à froid de ce module permet d'obtenir un fix GPS/GNSS relativement rapidement (de l'ordre de la minute).
Tandis que s'il est utilisé avec un pile CR2032, le démarrage à chaud permet de réduire drastiquement le temps du fix GPS/GNSS.

Le GPS-Ultime est capable d'offrir un rafraîchissement des données jusqu'à 10 fois par secondes (10 Hz).

Support MicroPython

Le dépôt cansat-belgium-micropython reprend la bibliothèque lib/adafruit_gps.py résulte d'un précédent portage Arduino vers MicroPython.
Maintenant compatible avec les trames GNSS, la bibliothèque permet de tester les scripts d'exemples test-gps pour CanSat :

cansat-belgium-micropython

Le script simpletest.py permet de collecter les données du GPS et d'en afficher les données. 

========================================
Fix timestamp: 10/18/2025 17:03:51
Latitude: 50.69063 degrees
Longitude: 4.400778 degrees
Fix quality: 1
# satellites: 10
Altitude: 110.0 meters
Speed: 0.36 knots and 0.666468 km/h
Track angle: 159.4 degrees
Horizontal dilution: 1.19
Height geo ID: 47.4 meters
========================================
Fix timestamp: 10/18/2025 17:03:52
Latitude: 50.69063 degrees
Longitude: 4.40078 degrees
Fix quality: 1
# satellites: 10
Altitude: 110.0 meters
Speed: 0.31 knots and 0.573903 km/h
Track angle: 159.4 degrees
Horizontal dilution: 1.19
Height geo ID: 47.4 meters

Il est possible de visualiser les coordonnées dans google maps en saisissant les coordonnées "50.69063 ,  4.400778" (lattitude , longitude) dans la zone de recherche.

Où acheter

Listing top Pypi keywords | BigQuery Datasets - PyPI Docs

15 octobre 2025 à 11:09

Using Google bq CLI, the following command allows to get the top Pypi keywords from the bigquery-public-data.pypi.distribution_metadata table:

bq query --use_legacy_sql=false 'SELECT keyword, COUNT(*) as keyword_count FROM `bigquery-public-data.pypi.distribution_metadata`, UNNEST(SPLIT(keywords, ", ")) as keyword GROUP BY keyword ORDER BY keyword_count DESC LIMIT 100'

Result for the top-15 keywords:

  • python : 128555 appearances
  • DuckDB Database SQL OLAP : 70739 appearances
  • ai : 64997 appearances
  • tensorflow tensor machine learning : 51144 appearances
  • pulumi : 50076 appearances
  • api : 47986 appearances
  • probabilities probabilistic-graphical-models inference diagnosis : 46552 appearances
  • rust : 45607 appearances
  • cli : 39512 appearances
  • OpenAPI : 38814 appearances
  • sdk : 38060 appearances
  • llm : 37487 appearances
  • OpenAPI-Generator : 36734 appearances
  • database : 35578 appearances
  • automation : 34393 appearances

Note that this is a very basic query, that does take into account that some packages have a lot more versions published on Pypi than others.


Permalien

Spotlight on pdfly, the Swiss Army knife for PDF files

13 octobre 2025 à 08:31

pdfly logo

Project documentation: pdfly.readthedocs.io

pdfly is the youngest project of the py-pdf organization. It has been created by Martin Thoma in 2022.

It's simply a CLI tool to manipulate PDF files, written in Python and based on the fpdf2 & pypdf libraries.

I'm a maintainer of the project 🙂

What can it do & what's next?

Find out by reading the full article


Permalien

Apparition de ROMFS dans MicroPython

Bonjour à tous,

ROMFS: une nouvelle fonctionnalité fait son apparition dans MicroPython. 


ROMFS qui est en développement depuis plusieurs années permet de stocker 

  • des utilitaires (scripts pré-compilé), 
  • des fichiers de données (fonts)
  • des programmes pre-compilés 
Au sein même d'une partition dans la Mémoire Flash (sous forme d'un système de fichiers en lecture seule).  

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.

Implémentation restreinte

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).

Utilitaire mpremote

L'utilitaire MPRemote de MicroPython a également le nouveau mot clé romfs avec les options:

  • query: pour consulter la romfs dans la flash.
  • build: pour créer une image romfs sur l'ordinateur
  • deploy: pour déployer l'image sur la romfs dans la mémoire flash du microcontroleur.

A noter que la compilation/build d'une image romfs require l'utilitaire mpy-cross .

romfs query

La capture suivante indique le contenu de la romfs sur le microcontroleur.

mpremote romfs query


Comme l'indique le réponse de l'utilitaire, la partition n'est pas encore initialisée. La partition fait 131 Kio (32 blocks de 4 Kio chacun).

romfs build

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'.

romfs deploy

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 l'image déployée, il est possible de vérifier une nouvelle fois l'état de la ROMFS avec romfs query . Cette fois, la partition est initialisée.

Exploiter la ROMFS

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.

ROMFS est un système de fichiers

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

 

Note: Utiliser python dans un Virtual Env

19 août 2025 à 08:16

Créer / Utiliser python3 avec venv, afin de ne pas pourrir votre système par l'ajout de packages pip

# 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.

Utiliser requirements.txt pour faciliter l'instalation des packages

# 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

Il existe d'autres outils similaires 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-file

Permalink

Cansat v2 : Raspberry-Pi Pico et MicroPython

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 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).


Documentation Open-Source disponible sur le Wiki de MCHobby.

A propos de CanSat

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 .

Cansat V2 : le point

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)

Quelques détails croustillants

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

Test du robot TPBot EDU Car Kit pour micro:bit par Elecfreaks

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.....

❌