SunFounder m’a envoyé cette carte PiPower 5 pour la tester sur le Raspberry Pi. Il s’agit d’une UPS (Uninterruptible Power Supply), c’est-à-dire d’une alimentation secourue : en cas de coupure du secteur, la batterie prend le relais pour éviter un arrêt brutal du système. La PiPower 5 sert donc à protéger la carte, la carte […]
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:
Ajouter les déclarations d'encodage (nécessaire à Python)
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.
Comme le Pilote est développé sous le précepte "Plateform Agnostic Driver" de sorte à pouvoir fonctionner indépendamment de la plateforme MicroPython cible.
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).
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.
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.
J'ai eu l'occasion, de récupérer une ancienne tablette Galaxy Tab 6 (2019) et son clavier Bluetooth. Un système Android malheureusement plus tenu à jour en 2025 donc à l'utilisation déconseillée.
Clavier Galaxy Tab S6 (Bluetooth)
Contre toute attente, il m'a été impossible d'appairer ce clavier avec un autre système. Ceci dit, cela n'est pas très étonnant d'être confronté à un système fermé.
A contre-courant de l'obsolescence
Si je n'ai pas encore trouvé comment reconvertir la tablette (n'hésitez pas à commenter), je me suis lancé dans la reconversion du clavier pour une future application MicroPython.
Cela commence forcement par l'ouverture du clavier qui n'est pas bien difficile (il y a 4 vis sous chacun des anti-dérapant.
Clavier Galaxy Tab S6
On y retrouve un clavier à membranes connecté sur un connecteur 26 broches, un accu Lipo de faible puissance, un touchpad I2C et un microcontroleur bluetooth (non visible de ce côté de la carte).
Clavier Galaxy Tab S6
Loin moi l'idée de reprogrammer le microcontrôleur Bt de la carte (ses protections matérielles sont certainement active), je me suis dit qu'il serait plus facile de réutiliser directement la membrane avec un Pico.
C'est que l'on imagine cette membrane comme un clavier de KeyPad dont le fonctionnement est sommaire.
Avec un peu d'analyse, j'ai rapidement repéré des résistances pull-down de 35 KΩ sur chacune des lignes (excepté les 5 premières). D'autres lignes marquée sont elles équipées d'un composant spécifique (voir les points blancs sur l'image ci-dessous).
Je pensais avoir repéré les colonnes, les autres signaux étant alors les lignes.
Malheureusement, les choses ne furent pas si simples!
Un peu de hacking
Je commence donc par souder des fils vernis 0.2mm sur le connecteur en vue de réaliser des tests. Les fils sont maintenus bien en place à l'aide de colle chaude (pour éviter de casser les fragiles soudures des fils).
Quelques fils soudés sur le connecteur (pin 1 à droite).
J'ai procédé de même avec les 26 contacts ensuite reporté sur une plaque de prototypage (bien dans l'ordre).
report des connexions sur une plaque de prototypage offrant un accès via connecteur 2.54mm
Connexion au Pico
J'ai utilisé 2x MCP23017 (GPIO expander 16 bits) pouvant être contrôlé via bus I2C, donc avec seulement deux lignes connectés sur le Pico.
Matrice clavier branché sur des MCP23017
Brochage du MCP23017
L'intérêt des MCP23017 est d'avoir les broches 1 à 26 du connecteur clavier branchés scrupuleusement dans l'ordre croissant des GPIOs des MCP23017. Pas de mathématiques complexes, il y a une relation 1-à-1 entre les MCP et la matrice clavier.
Correspondance broche clavier (1..26) vers MCP (0..15) + MCP (0..9)
Enfin, j'ai aussi remarqué que l'usage de résistance pull-down sur les 5 premières lignes améliorait la stabilité de la détection. Ces pull-down manquantes sur le connecteur clavier était probablement activée sur le microcontroleur bluetooth.
Décoder la matrice clavier
Après un premier échec sur l'identification des colonnes et des lignes de la matrice, un second script a été écrit pour tester une à une chaque ligne comme une colonne considérant alors les 25 autres lignes pour détecter une touche.
Le script tester2.py publié sur le dépôt agit comme suit:
Presser une touche du clavier
Au démarrage, toutes les broches sont configurées en entrée. Elles présentent toutes une haute impédance.
Ensuite le script sélectionne une ligne -- dite driver pin--, la configure en sortie et la place au niveau haut. Cette broche présente donc une faible impédance et est capable de fournir du courant.
Ensuite, les 25 autres broches --read pin-- sont interrogés une par une pour y détecter un niveau haut. Note: la touche pressée doit permettre au courant de circuler vers une des broches en lecture.
S'il N'Y A PAS de détection de niveau haut ALORS * le script repasse la driver pin au niveau bas * PUIS reconfigure celle-ci en entrée. * ENFIN, le script passe la driver pin sur la broche suivante * et recommence le cycle de détection au point 3.
S'il Y A détection d'un niveau haut ALORS le script a détecté un couple (driver_pin, read_pin) permettant de détecter la touche enfoncée.
La feuille de calcul reprend les couples drive_pin,read_pin dans la 2ieme colonne.
Puisque le contact électrique se fait dans les deux sens entre drive_pin--et--read_pin alors il est possible d'écrire la relation de détection de F12 comme 7,13 ou 13,7 (d'ailleurs, les deux options sont indiquées par tester2.py ).
Par souci de simplicité, la relation est écrite avec le plus petit numéro de broche d'abord (donc 7,13 pour la touche F12).
Compilation des broches
Maintenant que nous disposons d'une description de la matrice, il serait opportun d'identifier les driver_pin et les read_pin utilisés dans la matrice.... cela revient à identifier les lignes et les colonnes du keypad présenté plus haut dans l'article.
Il y a un recouvrement des broches driver_pin et read_pin. Suivant les circonstances, une broche de la matrice clavier agit tantôt comme broche driver_pin tantôt comme broche de read_pin (de lecture).
Lecture optimisée
Sur base des informations obtenue, le script tester3.py disponible dans le dépôt effectue une détection optimisée des touches du clavier. La détection s'étend aux combinaisons de touches avec Shift,Ctrl,Alt.
Il reste encore un peu de travail mais le plus gros est fait :-)
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 […]
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.
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.
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. […]
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é.
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!
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.
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.
Nous poursuivons les travaux sur Kit CANSATversion 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).
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.
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.
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).
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.
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).
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:
Nous poursuivons les travaux sur Kit CANSATversion 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.
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.
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.
Des précédents tirs et expériences utilisateurs, voici ce qu'il serait utile d'améliorer sur le kit actuel:
Améliorer la robustesse globale (meilleure résistance aux chutes).
Réduire le diamètre des cartes (l'actuel 1mm pour réaliser une paroi semble trop contraignant pour de nombreux débutants).
Connecteur FPC (pour le ruban) reste "fragile". Les manipulations avec brusqueries peuvent facilement déboîter la fermeture.
Pour les débutants, il serait préférable d'insérer un Pico dans un connecteur plutôt que le souder directement sur la Cansat-Base. Il sera ainsi plus facile à remplacer.
Souder le module radio et le chargeur Lipo sont des opérations fastidieuses (surtout si c'est la première fois).
Cansat : améliorations mécaniques
1) Les 3 points d'ancrage externes
Ces trois points restent exactement aux mêmes endroits. Cela permet d'assurer une retro-compatibilité mécanique avec les kits déjà distribués.
Autour de ces trois points, le diamètre extérieur reste à 64mm. Les trous font toujours 2.75mm (pour du Métrique 2.5).
2) Diamètre extérieur
Excepté pour les 3 points d'ancrage, le diamètre extérieur est passé à 60mm.
Cela laisse donc assez de place pour réaliser des parois de 3mm (contre 1mm précédemment) autour de la CanSat.
3) Axe central
Toutes les cartes, y compris la carte contrôleur, présentent en trou central de 6.4mm de diamètre. Cela permet de placer un axe central (ou tige filetée M6) sur toute la hauteur de la CanSat. Cette axe permet de décupler la résilience mécanique de la CanSat (meilleure résistance mécanique à l’atterrissage). Cette axe permet aussi la réalisation d'une attache parachute ancrée jusqu'à la base de la CanSat (limite le risque de bris à l'ouverture du parachute).
Cansat : améliorations électroniques
Un travail de fond très important a été réalisé sur la carte de contrôle de la CanSat.
Sans aucun changement de raccordement (par rapport à la version 1), la carte contrôleur a été entièrement redessinée.
Carte contrôleur (PICO-CANSAT-BASE v2)
1) module LIPO
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).
2) module radio
Le module radio est également intégré à la carte. Ce dernier est soudé sous la carte (à gauche du trou central. Emplacement repérable par les deux rangées verticales de 8 contacts).
Le connecteur d'antenne est accessible près du trou central (aussi bien par au-dessus que par en-dessous. Il est possible d'y souder un fil d'antenne ou un connecteur µFl .
Le module radio utilise l'interface SPI connectée par l'intermédiaire de cavalier sécables. Il est donc possible de sectionner les pistes pour désactiver le module radio et récupérer les GPIO.
3) carte MCU remplaçable
La carte microcontrôleur (MCU) s'insère perpendiculairement à la carte afin de respecter les contraintes CanSat tout en permettant la présence du trou central.
Le microcontroleur s'insère sur le connecteur 2x20 broches visible jusque au dessus du connecteur Lipo (J108). Il est encadré par les libellés "USB" et "Pico Facing this side".
L'utilisation d'une connectique simple permettra le remplacement du MCU en un tour de main. Grâce à ce dispositif, il sera possible - à l'avenir - d'envisager une mise-à-niveau matérielle du microcontrôleur.
Bien que le contact entre les deux cartes sera ferme, les connexions restent sensibles aux vibrations (ce qui ne manque pas dans une fusée). L'usage de colle ou souder directement le MCU sur la carte de base reste toujours possible pour les plus exigeant d'entre nous.
4) Connecteurs Grove
Afin de faciliter les raccordements, 5 connecteurs Grove à la verticale (J101 à J105) permet de réaliser des connexions/déconnexions rapidement et facilement. Ces connecteurs Grove proposent une alimentation 3.3V et les signaux sont tous en logique 3.3V.
Ces 5 connecteurs Grove offrent:
J102 : connecteur UART (port série) très pratique pour un GPS.
J101 : connecteur Analogique pour 2 entrées analogiques (ou numériques).
J104 et J105 : 2 connecteurs pour un total de 4 entrées/sorties numériques.
J103 : connectique I2C très pratique pour les capteurs en tout genre.
Bien que je ne sois pas fan de la connectique Grove, je dois reconnaître:
qu'ils sont plus facile a manipuler du fait qu'il sont plus encombrant.
qu'il est facile de sectionner le câble, de scinder les 4 fils de cette connectique et d'y souder directement votre propre matériel.
5) Connecteur Qwiic/StemmaQt
Déjà présent à la première version de la carte, ce connecteur transporte le même bus I2C que le connecteur J103 (alimentation 3V3 et logique 3V3). Ce connecteur est utilisé pour brancher le capteur BMP280 (température et pression atmosphérique).
6) breakout Pico
Tous les GPIOs ne sont pas exposés via les connecteurs Grove et Qwiic. Besoin de plus de GPIO? Pas de problème, toutes les broches du Pico sont disponibles en breakout sur les deux connecteurs situés de part et d'autres du connecteur Analogique (J101). Il suffit de sortir votre fer à souder et réaliser vos connexions nécessaires.
Note: avez-vous remarqué l'identification des GPIOs sur la sérigraphie.
7) Gestion de l'alimentation
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.
La suite ...
Les premières cartes prototype sont commandées et le montage ne tardera plus. A tout bientôt pour la suite...