HAT Nadhat MicroPython F405
NADHAT F405 - carte MicroPython avec GPIO compatible Raspberry-Pi
- Piloter des HATs Raspberry-Pi avec MicroPython
- Faire du développement Pi + MicroPython
Les paiements sont sécurisés par LyraCollect, une société de collecte de paiements française
Il est possible de se faire livrer chez soi, en point relais ou retirer sur rendez-vous chez MCHobby
Nous préparons, emballons et expédions vos commandes avec un grand respect et un grand soin.
Une carte MicroPython avec un GPIO Raspberry-Pi
Quand Garatronic à découvert MicroPython et en est tombé amoureux, Frédéric s'est demandé ce qu'il pourrait bien apporter à cet environnement de travail. Et ses réflexion ont débouchées sur un projet intéressant, voici une carte MicroPython comme la Pyboard (même microcontrôleur) mais équipée d'un GPIO Raspberry-Pi (2x20 broches).
Elle fonctionne donc comme une MicroPython Pyboard mais sur une carte proposant quelques améliorations intéressantes. Tout ce qui est appris à propos de MicroPython Pyboard, voir notre Wiki, est donc directement applicable à la PYB405.
Le lien de parenté avec la Pyboard est indéniable... la PYB405 dispose de tous les éléments standard d'une carte MicroPython de qualité:
- Un processeur STM32F405RG (comme sur la MicroPython Pyboard),
- Un accéléromètre 3 axes,
- Un support pour carte microSD,
- Un bouton utilisateur, bouton reset et bouton DFU (pour mettre le firmware à jour)
- 4 LEDs de couleurs
- Une pile pour l'horloge RTC.
- Un connecteur microUSB (pour la programmation et accès au système de fichier)
- Un second connecteur microUSB (pour l'alimentation uniquement).
Frédéric ne s'est pas arrêter à mi-chemin! Les fonctions standards des broches du GPIO Raspberry-Pi (Pi 3 B+) sont toutes mappées sur des broches correspondantes de la NADHAT PYB405.
En complément, un cavalier permet de croiser (ou non) les lignes RX/TX sur le connecteur GPIO.
- Position A: connexion directe de RX/TX pour permettre à la PYB405 de communiquer avec un HAT exploitant un UART (eg: HAT GPS ou la carte NADHAT-GSM).
- Position B: croisement des lignes RX/TX pour permettre à un Raspberry-Pi et PYB405 de dialoguer ensemble sur l'UART.
- Position C: déconnexion des lignes RX/TX entre le Pi et la PYB405 (ou la PYB405 et un HAT).
Plusieurs façons d'utiliser la NADHAT PYB405
Cette approche permet d'envisager plusieurs cas d'utilisation pour cette carte MicroPython NADHAT PYB405
Développement MicroPython sur Raspberry-Pi
Utiliser la carte NADHAT PYB405 pour faire des développements MicroPython depuis un Raspberry-Pi Zero ou un Pi.
Cela permet de constituer un environnement de développement MicroPython complètement intégré, il ne reste plus qu'à brancher un moniteur et un clavier/souris et c'est parti. Dans ce cas, le croisement des lignes RX/TX est tout indiqué
Dans ce cas de figure, la carte NADHAT PYB405 devient un puissant microcontrôleur pouvant être dédicacé à des tâches spécifiques et venant, de la sorte, épauler un Raspberry-Pi dans ses tâches de plus haut niveau.
Exploiter des HATs avec MicroPython
Exposer un GPIO avec des fonctions compatibles Raspberry-Pi, c'est l'opportunité de brancher des HATs sur le microcontrôleur NADHAT-PYB405 et avec MicroPython. Comme les bus I2C, SPI et UART sont bien placés, cela permet d'exploiter de nombreux HAT directement avec le microcontrôleur. Du coup, un même hat peut être utilisé dans deux environnement différents (sur le Pi mais aussi avec la PYB405).
Faire du développement STM32 avec Raspberry-pi
Plutôt destiné aux utilisateurs avancés, il est possible de préparer une chaîne de développement OpenOCD sur le Raspberry-Pi. Cet environnement permettra de télécharger/téléverser et déboguer, depuis le Raspberry-Pi, le logiciel développé pour STM32. Le Raspberry-Pi devient alors une sonde JTAG.
Ce qui est admirable dans tout cela, c'est que MicroPython lui-même est un logiciel STM32 et que, par conséquent, il devient possible de le déboguer en SWD avec un Raspberry-Pi :-)
Frédéric de Garatronic aura certainement l'occasion d'écrire un article à ce sujet.
Tout cela est rendu possible car la broche nRst du microcontrôleur est branché sur la broche 15 (GPIO 22) du Rasberry-Pi. Cette entorse à la compatibilité GPIO qui permet à un Raspberry-Pi de réinitialisé la carte MicroPython (un mal nécessaire pour faire des développement OpenOCD).
Un connecteur GPIO bas profile = connecteur multifonctionnel
La carte est équipé d'un connecteur femelle à bas profile, une très bonne idée puisqu'il est donc possible de l'enficher directement sur le GPIO du Raspberry-Pi.
Le connecteur mâle livré avec la carte permet de transformer le connecteur bas profile en connecteur mâle pour y brancher l'un ou l'autre HAT... ou vos propres interfaces réalisées sur un Hat Perma Proto, un hat de prototypage springton (déjà conçu pour cette application), un cobbler ou tout autre interface type Raspberry-Pi.
Et grâce à ce connecteur, rien n'empêche de combiner la NADHAT avec un stacking header, un GPIO replicator, et toutes ces bonnes choses apportées par l'univers Raspberry-Pi
CN2, le connecteur d'entrée/sortie plus tolérant
Le connecteur GPIO n'est pas la seule bonne idée de la PYB405.
La carte dispose d'un second connecteur 12 points nommé CN2 (à coté du connecteur microSD). Celui-ci propose:
- 4 entrées tolérantes 20 volts
- 4 sorties de puissance 100mA max
Les 4 entrées sont tolérances 16V nommée IN1 à IN4 sont respectivement branchées sur les entrées X19 à X22 (entrées analogiques de la carte MicroPython. Un pont diviseur de tension avec les résistance de 10K et 2.2K. De la sorte la tension d'entrée est divisée par 5.54, ce qui permet d'exploiter des signaux 12V en toute sécurité.
Pour convertir la lecture analogique en tension, il faut exploiter le procéder suivant:
adc = ADC('X19')
val = adc.read() # ex: val=1113
volt = 3.3 * (val/4095) * 5.54 # soit 4.96 volts
Les 4 sorties sont des transistors à collecteurs ouverts commandé par les 4 LEDs de couleurs. Soit OUT1 à OUT4 respectivement commandés par LED(1) à LED(4). A noter aussi les couleurs des LEDs qui sont respectivement Rouge, Vert, Orange, Bleu.
# Activer sortie OUT1
pyb.LED(1).on()
# Désactiver sortie OUT3
pyb.LED(3).off()
Un transistor à collecteur ouvert agit "comme un interrupteur" qui permet de connecter (ou non) un périphérique/charge à la masse. C'est un peu comme couper (ou remettre) l'alimentation d'un appareil en enlevant le fil branché sur le pôle négatif de l'alimentation (j'insiste... le pôle négatif!).
Un transistor permet de contrôler des éléments plus puissant comme des moteurs ou relais (attention: 100mA max!!!) et le fait qu'il soit en collecteur ouvert permet de commander ces charges avec une tension supérieure comme 12v (50v max!!).
A noter que chacun des transistors dispose d'une diode de protection, aussi dite "diode en roue libre" (abordé dans ce tutoriel). Il est donc possible de brancher relais, moteurs et autres composants inductif sans faire courir de risque au transistor et au microcontrôleur.
Connecteur USB
La carte PYB405 propose deux connecteurs microUSB.
- Connecteur A: permet d'alimenter et programmer la carte PYB405 depuis un ordinateur. Ce connecteur permet à la Pyboard d'exposer ses fichiers (scripts) à l'aide du service MSC, d'exposer UART VCP (Virtual Com Port, port série via USB) ou encore comme le service HID lorsque celui-ci est activé dans boot.py.
C'est également via ce connecteur qu'un nouveau Firmware est téléversé sur la carte. - Connecteur B: peut être utilisé avec un bloc d'alimentation USB pour alimenter la carte sans condamner le connecteur A. De la sorte, il est possible d'intervenir sur la carte MicroPython (REPL, Debug, collecter les données) via le connecteur A sans interrompre l'alimentation fournie via le connecteur B.
Toujours à l'heure
La PYB405, comme la Pyboard, dispose d'une horloge RTC pour rester à l'heure. Mais pour rester à l'heure, il faut une pile pour assurer l'alimentation de l'horloge lorsque la carte est hors tension.
Cela tombe bien, la PYB405 dispose d'un connecteur pour pile CR1225 et la pile bouton qui va avec.
Si vous utilisez un outil comme RShell (voir les tutos MicroPython sur le Wiki) alors celui-ci s'occupera de la mise-à-jour de l'horloge à chaque connexion.
Les boutons
La PYB405 dispose de trois boutons:
- Le bouton Reset permet de redémarrer le microcontrôleur.
- Le bouton utilisateur (pyb.Switch) est libre d'utilisation
- Le bouton BOOT permet de démarrer la carte en mode DFU (Device Firmware Upgrade) pour faire une mise-à-jour du firmware MicroPython ou téléverser vos propres firmware STM32 sur la carte.
A noter que pour activer le mode DFU, il faut presser le bouton BOOT, enfoncer puis relâcher le bouton RESET et enfin relâcher le bouton BOOT. N'hésitez pas à utiliser des pic à brochette en bois (matériaux isolant!) si les boutons ne semblent pas facilement accessibles.
Contenu
Pour chaque commande, vous recevrez:
- La carte NAHDAT PYB405 complètement assemblée et testée.
- Un câble microUSB pour débuter vos expériences rapidement.
- Une pile CR1225 pour l'horloge RTC
- Une rangée de connecteurs 2x20 broches mâles (à placer sur le connecteur GPIO... si vous voulez connecter un HAT).
Détails techniques
- Un processeur STM32F405RG (identique à la MicroPython Pyboard),
- Un accéléromètre 3 axes,
- Un support pour carte microSD,
- Un bouton utilisateur, bouton reset et bouton DFU (pour mettre le firmware à jour)
- 4 LEDs de couleurs
- Une pile pour l'horloge RTC.
- Un connecteur microUSB (pour la programmation et accès au système de fichier)
- Un second connecteur microUSB (pour l'alimentation uniquement).
- Facteur de forme pHat (comme le Pi Zero).
- GPIO 40 broches, avec compatibilité poussée avec le Raspberry-Pi.
Ressources
- Page d'accueil de la documentation PYB405 (GitHub)
- Dépôt GitHub NadHat PYB (GitHub Garatronic)
Schéma de la carte. - Dépôt MicroPython pour la PYB405 (GitHub Garatronic)
Vous permet de compiler votre propre version de MicroPython pour la PYB405. - Présentation de la NADHAT PYB405 (Garatronic)
MC Hobby produit également des pilotes pour contrôler des capteurs et interfaces avec les cartes MicroPython.
Ceux-ci sont mis à disposition
Tutoriel et support
- Firmware MicroPython pour Nadhat F405 (MicroPython.org)
- Forums de Garatronic (forum.garatronic.fr)
- Wiki MicroPython (Wiki, MCHobby)
Tout ce que vous apprendrez avec la Pyboard sera utilisable sur la NADHAT PYB405 :-)
C'est le même coeur.
- Compatibilité Raspberry
- Zero / Zero W, Pi 3A, Pi 3B+, Pi 4, Pi 5, Zero 2 W
- Interface : Connecteur
- HAT (RPi GPIO)
- MCU : Programmation
- MicroPython (CircuitPython)
- MCU : Famille
- STM32