MicroPython PYB405 - C'est comme une Pyboard sauf que ça a un GPIO Raspberry-Pi

Est-ce que vous avez déjà entendu parler de la NADHAT PYB405?
Source: NadHAT PYB405 disponible chez MCHobby
La carte MicroPython NADHAT-PYB405 qui expose un port GPIO 40 broches compatible avec le Raspberry-Pi , c'est comme une carte MicroPython originale mais avec quelques différences intéressantes:
  • Un connecteur avec 4 sorties (collecteur ouvert 100mA) + 4 entrées (tolérantes 16V)
  • Un connecteur pour pile bouton (pour toujours rester à l'heure!)
  • Un bouton pour activer la mode DFU (facilite la mise-à-jour)
  • Un format pHat (donc près a visser sur les Pi et hats avec des entretoises)
Bref, comme la Pyboard mais avec une autre approche pour la connectique. Le brochage est compatible avec un Raspberry-Pi ou Un Hat.

C'est une bonne idée parce qu'il y a vraiment de l'intérêt pour un produit comme celui-là!

La PYB405 peut être utilisé de différentes façons

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

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

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

Le PYB405 présente un autre connecteur d'intérêt

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

Envie d'en savoir plus
Il y a encore tellement à dire ) propos de la PYB405.... n'hésitez pas à consulter les liens suivants:

Chouette, nous allons pouvoir explorer plus avant les possibilités offertes par MicroPython.

3 commentaires:

  1. Bonjour,
    En + des 4 entrées analogiques du connecteur cn2, la pyb405 en a-t-elle d'autres sur le gpio40 (bien que le rpi n'en ait pas) ??
    Et confirmez moi que la pyb405 peut fonctionner de façon autonome sans rpi ?
    Enfin quelle carte recommandez-vous pour rajouter des fonction wifi+ble ?
    Merci bcp. PhA

    RépondreSupprimer
    Réponses
    1. La PYB405 est totalement autonome et n'a pas besoin d'un RPi pour fonctionner. Le processeur dispose de plusieurs entrées analogique et il y en a plusieurs sur le GPIO me semble t'il. Si vous ne le trouvez pas sur la documentation collectés chez MCHobby alors n'hésitez pas a ouvrir un ticket sur forum.mchobby.be

      Pour du WiFi+Ble, la meilleure option est peut etre de se diriger vers un ESP32 sous MicroPython ou Pyboard-D

      Supprimer
  2. La PYB405 est totalement autonome et n'a pas besoin d'un RPi pour fonctionner. Le processeur dispose de plusieurs entrées analogique et il y en a plusieurs sur le GPIO me semble t'il. Si vous ne le trouvez pas sur la documentation collectés chez MCHobby alors n'hésitez pas a ouvrir un ticket sur forum.mchobby.be

    RépondreSupprimer