Vue lecture

Raspberry-Pi 5: API MicroPython pour Python

 Bonjour à tous,

Tout récemment, je voulais utiliser un module RFM69 sur un Compute Module 5 (autrement dit l'équivalent d'un Raspberry-Pi 5) faisant fonctionner un logiciel écrit Python.

Une API MicroPython sous Python

Ecrivant de nombreux pilotes pour MicroPython (Python pour MicroContrôleur), je me suis dit qu'il devait être possible de réutiliser le code MicroPython du RFM69 sous Python sans devoir réécrire tout-ou-une-partie du code pour qu'il fonctionne sur Raspberry-Pi.
 
Le problème, c'est que Python n'a aucune idée de ce qu'est l'API MicroPython (celle utilisée par MicroPython pour accéder directement à la couche matérielle).
 
Il existe cependant des moyens d'accéder au matériel depuis Python mais c'est sans aucun rapport avec l'API exposée MicroPython.

L'idée c'est de recréer l'API MicroPython sous Python pour permettre l'utilisation du RFM69 depuis Python:
 

Le module RFM69

L'image ci-dessous se présente le module RFM69HCW 433MHz . Ce module permet de transmettre des données sur un réseau numérique utilisant le ondes-radios comme medium de transfert. C'est un peu le protocole internet appliqué à la radio.

RFM69HCW 433MHz

Comme le Pilote est développé sous le précepte "Plateform Agnostic Driver" de sorte à pouvoir fonctionner indépendamment de la plateforme MicroPython cible.

esp8266-upy - Plateform Agnostic Micrpython Driver

Ce module se branche sur un bus SPI, il est donc possible de le connecter sur GPIO d'un Raspberry-Pi 5 (ou du Compute Module 5).

Source: Raspberry-pi.ovh

Brancher RFM69 sur GPIO

Les connexions suivantes sont établies entre le module RFM69 et le GPIO Raspberry-Pi.

La broche CS (chip select) est branchée sur le GPIO 25 alors qu'il existe les broches CE0 (GPIO8) et CE1 (GPIO7). 

Le problème ici est que CE0 et CE1 sont automatiquement gérés par le système d'exploitation alors que sous MicroPython, c'est le code utilisateur qui gère l'état du signal CS.

Dans le cas présent, la gestion automatique de CE0 et CE1 empêche l'utilisation du burst_read sur le module RFM69 raison pour laquelle le GPIO25 est utilisé comme signal CS (ce signal étant contrôlé par le code utilisateur).

Prototype

Compatibilité avec Python

Commençons par récupérer la bibliothèque MicroPython du RFM69 depuis le dépôt esp8266-upy pour y ajouter l'encodage du fichier (important pour Python).

Ajout de l'encodage dans le bibliothèque RFM69

Récupérer l'exemple test_config.py utilisé pour tester la communication avec le module RFM69. Nous y ajoutons également l'information d'encodage dans le fichier.

Couche de compatibilité Python --> MicroPython

Création des fichiers machine.py et micropython.py pour accueillir les classes Pin & SPI ainsi que la déclaration de la fonction const()


Le script le plus intéressant est hack_time.py car celui-ci permet d'ajouter les fonctions MicroPython (ticks_ms, ticks_diff, sleep_ms, etc) manquantes dans Python.

#!/usr/bin/python
# -*- coding: utf-8 -*-
""" hack_time.py : mimic the MicroPython alike specific methods """
import time

def _sleep_us( us ):
	time.sleep( us*0.000001 )

def _sleep_ms( ms ):
	time.sleep( ms*0.001 )

def _ticks_ms():
	return int(time.time()*1000)

def _ticks_diff( v1, v2 ):
	return v1-v2

time.sleep_us = _sleep_us
time.sleep_ms = _sleep_ms
time.ticks_ms = _ticks_ms
time.ticks_diff = _ticks_diff

Il ne reste plus qu'a adapter le script d'exemple pour créer l'instance du bus SPI (sur le RPi) et passer le tout à la bibliothèque MicroPython originale.

#!/usr/bin/python
# -*- coding: utf-8 -*-

from machine import SPI, Pin
import hack_time
from rfm69 import RFM69

# Machine.py for Raspberry-Pi 5
spi = SPI( 0 )
nss = Pin( 25, Pin.OUT, value=True )  # Do not use the RPI CE0/CE1, it is not compatible with the Burst_Read of RFM69
rst = Pin( 18, Pin.OUT, value=False )

rfm = RFM69( spi=spi, nss=nss, reset=rst )
rfm.frequency_mhz = 433.1
....

Le bus SPI est rattaché au bus matériel SPI0 & CE0. 

Une broche Enabled (nss) alternative est utilisé avec le GPIO25 pour contrôler les transactions du bus SPI. La broche CE0 du GPIO est donc ignorée.

Enfin, le GPIO 10 est utilisé pour réinitialisé le module RFM69.

Au final, la création de l'instance RFM69 et le restant du code (y compris la bibliothèque RFM69) est identique entre MicroPython et Python (sur RPi5).

L'exécution de l'exemple sur le Raspberry-Pi 5 produit le résultat attendu (identique lorsqu'il est exécuté sur un Pico).

test_config.py : exécution de la bibliothèque
MicroPython RFM69 sur Raspberry-Pi 5

Ressources

  • MicroPython-API-for-Python experiment is published on GitHub.


  •  

SunFounder Fusion HAT+ : alimentation 2×18650, moteurs et contrôle “IA-ready” pour Raspberry Pi

La SunFounder Fusion HAT+ ressemble à un simple HAT pour Raspberry Pi… jusqu’au moment où vous réalisez que c’est plutôt un couteau suisse pour robot “assisté par IA”. Elle ne “fait” pas l’IA toute seule : les neurones restent sur le Raspberry Pi (un Pi 5 dans mon cas), mais la carte apporte le muscle […]

Cet article SunFounder Fusion HAT+ : alimentation 2×18650, moteurs et contrôle “IA-ready” pour Raspberry Pi a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française..... - Framboise 314, le Raspberry Pi à la sauce française.... - La référence du Raspberry Pi en France - Par l'auteur du livre "Raspberry Pi 4" paru aux Edts. ENI

💾

💾

💾

💾

💾

  •  

Concours Mace Robotics : un Raspberry Pi 5 (et un Pico 2W) à gagner !

Derrière Macé Robotics, Nicolas mêle réparation électronique au composant et conception de cartes pour des besoins professionnels, tout en développant des robots mobiles pour l’éducation et la recherche. On trouve notamment des projets de robots basés sur Raspberry Pi et Raspberry Pi Pico (MRPi1, MR-Pico), accompagnés de contenus et documentations. Dans ce contexte, il organise […]

Cet article Concours Mace Robotics : un Raspberry Pi 5 (et un Pico 2W) à gagner ! a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française..... - Framboise 314, le Raspberry Pi à la sauce française.... - La référence du Raspberry Pi en France - Par l'auteur du livre "Raspberry Pi 4" paru aux Edts. ENI

  •  

Raspberry Pi AI HAT+ 2 : vision par ordinateur en vidéo avec Hailo-10H (Partie 2)

Dans cette seconde partie, le Raspberry Pi 5 passe à l’action avec la vidéo temps réel accélérée par Hailo-10H. Détection de personnes, cadrage dynamique, pose squelette et reconnaissance des mains : on enchaîne les modèles concrets. L’objectif est d’évaluer les performances réelles, les limites, et les bons compromis en situation réelle. Ici, pas de cloud […]

Cet article Raspberry Pi AI HAT+ 2 : vision par ordinateur en vidéo avec Hailo-10H (Partie 2) a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française..... - Framboise 314, le Raspberry Pi à la sauce française.... - La référence du Raspberry Pi en France - Par l'auteur du livre "Raspberry Pi 4" paru aux Edts. ENI

💾

  •  

Raspberry Pi AI HAT+ 2 : installer Hailo-10H et lancer un LLM local (Partie 1)

Avec la Raspberry Pi AI HAT+ 2, Raspberry Pi propose une carte intégrant directement un accélérateur Hailo-10H et 8 Go de mémoire dédiée, conçue pour le Raspberry Pi 5. Cette carte permet d’exécuter localement des modèles d’IA générative, des LLM et des Vision-Language Models, sans recours au cloud. L’AI HAT+ 2 délivre jusqu’à 40 TOPS […]

Cet article Raspberry Pi AI HAT+ 2 : installer Hailo-10H et lancer un LLM local (Partie 1) a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française..... - Framboise 314, le Raspberry Pi à la sauce française.... - La référence du Raspberry Pi en France - Par l'auteur du livre "Raspberry Pi 4" paru aux Edts. ENI

  •  

Raspberry Pi AI HAT+ 2 : présentation matérielle et installation sur Raspberry Pi 5

Avec la carte Raspberry Pi AI HAT+ 2, la Fondation Raspberry Pi introduit une carte HAT+ intégrant l’accélérateur Hailo-10H et 8 Go de mémoire dédiée, conçue exclusivement pour le Raspberry Pi 5. Connectée en PCIe Gen 3, elle vise l’exécution locale de modèles d’IA sans dépendre du cloud. Dans ce premier article, je vous présente […]

Cet article Raspberry Pi AI HAT+ 2 : présentation matérielle et installation sur Raspberry Pi 5 a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française..... - Framboise 314, le Raspberry Pi à la sauce française.... - La référence du Raspberry Pi en France - Par l'auteur du livre "Raspberry Pi 4" paru aux Edts. ENI

💾

  •  

Pimmich – Un cadre photo connecté open source basé sur Raspberry Pi

Aujourd’hui, je vous propose de découvrir Pimmich, un cadre photo connecté open source basé sur Raspberry Pi, pensé pour afficher vos souvenirs sans cloud ni abonnement, en restant 100% local. Avec les récents changements côté Google Photos, beaucoup d’entre vous ont dû revoir leurs habitudes… et Aurélien a eu le bon réflexe : s’appuyer sur […]

Cet article Pimmich – Un cadre photo connecté open source basé sur Raspberry Pi a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française..... - Framboise 314, le Raspberry Pi à la sauce française.... - La référence du Raspberry Pi en France - Par l'auteur du livre "Raspberry Pi 4" paru aux Edts. ENI

  •  

Raspberry Pi 5 + SSD : installer YunoHost, HTTPS Let’s Encrypt et WordPress (pas à pas)

Installer un serveur perso chez soi, sur un Raspberry Pi 5 ou un Pi 500+, c’est à la portée de tout maker… à condition de suivre la bonne méthode. Dans cet article, on va poser YunoHost sur un SSD NVMe, faire la post-installation, installer une première appli (WordPress), puis rendre le serveur accessible depuis l’extérieur […]

Cet article Raspberry Pi 5 + SSD : installer YunoHost, HTTPS Let’s Encrypt et WordPress (pas à pas) a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française..... - Framboise 314, le Raspberry Pi à la sauce française.... - La référence du Raspberry Pi en France - Par l'auteur du livre "Raspberry Pi 4" paru aux Edts. ENI

  •  

Utiliser Google Earth sur Raspberry Pi : la solution Web qui fonctionne

L’application Google Earth n’est plus réellement maintenue sous Linux, et elle n’existe plus du tout en version native pour les architectures ARM, comme celles des Raspberry Pi. La dernière version officielle pour Linux date de 2020, et son installation sur un Pi (ARM) est aujourd’hui vouée à l’échec. En pratique, pour utiliser Google Earth sous […]

Cet article Utiliser Google Earth sur Raspberry Pi : la solution Web qui fonctionne a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française..... - Framboise 314, le Raspberry Pi à la sauce française.... - La référence du Raspberry Pi en France - Par l'auteur du livre "Raspberry Pi 4" paru aux Edts. ENI

  •  

Raspberry Pi 5 : piloter des LEDs WS2812B de manière fiable avec le bus SPI

La question du pilotage des LEDs WS2812B sur Raspberry Pi 5 a récemment été soulevée par Victor lors d’un échange sur un réseau social. Le Raspberry Pi 5 introduit une nouvelle architecture matérielle qui complique le pilotage des LEDs WS2812B avec les bibliothèques historiques. Les solutions basées sur le PWM ou le DMA montrent rapidement […]

Cet article Raspberry Pi 5 : piloter des LEDs WS2812B de manière fiable avec le bus SPI a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française..... - Framboise 314, le Raspberry Pi à la sauce française.... - La référence du Raspberry Pi en France - Par l'auteur du livre "Raspberry Pi 4" paru aux Edts. ENI

💾

  •  

Installing - - — Arduino ESP32 latest documentation

https://www.arduino.cc/en/software/

Dans Arduino IDE :
File > Preferences... > Additional boards manager URLS :
coller :

https://espressif.github.io/arduino-esp32/package_esp32_index.json
https://arduino.esp8266.com/stable/package_esp8266com_index.json
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

Ok

Tools > Board: "..." > Boards manager... >
rechercher : esp32
esp32 by Espressif Systems
Intall

rechercher : esp8266
esp32 by Espressif Systems
Intall

rechercher : pico
Raspberry Pi Pico/RP2040/RP2350 by Earle
Intall

Relancer Arduino IDE

https://arduino-esp8266.readthedocs.io/en/latest/installing.html#using-git-version

https://github.com/earlephilhower/arduino-pico
Permalink

  •  

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

  •  

Construire un chronomètre scolaire autonome avec Raspberry Pi Pico et écran OLED

Le 1/1000ème de seconde est sans doute superflu, mais il illustre bien la précision qu’il est possible d’obtenir avec un microcontrôleur moderne comme le Raspberry Pi Pico. Ce projet vous propose de réaliser un chronomètre autonome, pensé pour des jeux ou activités scolaires, doté d’un écran OLED bien lisible et alimenté par une batterie LiPo. […]

Cet article Construire un chronomètre scolaire autonome avec Raspberry Pi Pico et écran OLED a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....

💾

  •  

Framboise314 au Salon Robotik 2025 d’Orchies : le numérique à la portée de tous !

Les 29 et 30 novembre 2025, le Salon Robotik revient à l’Arena d’Orchies pour deux jours entièrement dédiés à la découverte du numérique.L’équipe de Framboise314 sera présente pour partager sa passion du Raspberry Pi, de l’électronique et de la robotique avec petits et grands. Un week-end gratuit, convivial et plein de découvertes technologiques à ne […]

Cet article Framboise314 au Salon Robotik 2025 d’Orchies : le numérique à la portée de tous ! a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....

  •  

framboise314 au Capitole du Libre (Toulouse, 15–16 novembre 2025) — stand Raspberry Pi & open source

Chaque année, le Capitole du Libre réunit à Toulouse les passionnés de logiciel libre, d’open source et de culture numérique. Conférences, ateliers et rencontres rythment ce week-end dédié au partage et à la bidouille.Pour la première fois, framboise314 sera présent avec un stand dédié au Raspberry Pi, à l’électronique et au DIY, pour échanger autour […]

Cet article framboise314 au Capitole du Libre (Toulouse, 15–16 novembre 2025) — stand Raspberry Pi & open source a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....

  •  
❌