Publié le 23 mars 2020 - par

Carte Explorer HAT Pro de Pimoroni sur Raspberry Pi

La carte Explorer HAT Pro ajoute de nombreux outils d’entrée/sortie à votre Raspberry Pi. Elle dispose d’entrées et de sorties numériques, de touches tactiles capacitives, de touches compatibles avec les pinces crocodiles, de LEDs de couleur, d’entrées analogiques, de pilotes de moteur et d’une mini carte breadboard pour le prototypage de vos projets.

Explorer HAT Pro sur le Raspberry Pi

Présentation

Cette carte est idéale pour les petits robots, les jeux, les expériences scientifiques, l’exploration de petits circuits électroniques et l’interaction avec votre Raspberry Pi. Elle peut recevoir tout ce dont vous avez besoin pour commencer à construire des circuits : des LED, des boutons poussoirs, un buzzer et des capteurs divers (température, pression, lumière…).

Carte Explorer HAT Pro sur le robot STS-Pi

Carte Explorer HAT Pro sur le robot STS-Pi

La carte peut aussi commander des moteurs comme sur le kit de robot STS-Pi.

Les images

La carte est livrée avec la breadboard non montée. Il suffira de coller le double face pour « terminer » la carte.

Le dessous de la carte sur lequel on retrouve les différents buffers et convertisseurs.

La carte est montée sur le connecteur GPIO du Raspberry Pi. Petit reproche, comme il y a la carte mini-breadboard sur le dessus, le connecteur n’est pas traversant et comme ma carte RasPi avait des radiateurs j’ai dû mettre une connecteur de rehousse pour pouvoir monter la carte.

Sur cette vue de la carte vous pouvez repérer les 8 touches sensitives numérotées de 1 à 8. Les touches de 5 à 8 (cuivre apparent) peuvent recevoir une pince crocodiles.
Sur le bas de la carte les E/S 5 volts et sur la droite les E/S 3,3 volts.

Caractéristiques

La carte comporte

  • Quatre entrées 0-5V bufferisée (parfait pour la compatibilité Arduino)
  • Quatre sorties 0-5V alimentées (jusqu’à 500mA au total sur les quatre canaux)
  • Quatre pavés tactiles capacitifs (étiquetés 1, 2, 3, 4)
  • Quatre entrées pour pinces crocodiles (étiquetées 5, 6, 7, 8)
  • Quatre LED de couleur (rouge, vert, bleu et jaune)
  • Quatre entrées analogiques
  • Deux pilotes de moteur en pont H (jusqu’à 200mA par canal ; contrôle PWM)
  • Des entrées/sorties GPIO 3v3 (non protégés)
  • Une mini breadboard sur le dessus

Les entrées utilisent un buffer à 5 canaux qui accepte des tensions entre 2V et 5V comme niveau logique et la mini breadboard comporte 170 trous, soit 17 x 5 pour chaque moitié de la breadboard.

Brochage de la carte

brochage de la carte Explorer Pro HAT

https://fr.pinout.xyz/pinout/explorer_hat_pro#

Le brochage de la carte Explorer HAT Pro est compatible avec tous les modèles de connecteurs 40 broches Raspberry Pi.

Composants et Entrées/sorties

ADC/CAD ADS1015, i2c addr 0x48 ( Explorer HAT Pro et pHAT only )

La carte Explorer HAT utilise un covetisseur Analogique => Numérique sur bus I2C. Il n’y a donc pas de pin associée à ce composant.

Touche Capacitive, CAP1208, i2c addr 0x28

Lire le registre 3 pour retrouver l’état des boutons. Les valeurs sont verrouillées (mémorisées) jusqu’à ce que le registre 0 soit effacé. Chaque bit de l’octet correspond à une des touches sensitives.
Le registre 0 contient un flag (drapeau) à 0x01 si une touche a été activée depuis la dernière remise à zéro.

BOuton VALEUR DU REGISTRE
1 0x10
2 0x20
3 0x40
4 0x80
5 0x1
6 0x2
7 0x4
8 0x8

 

LEDs ( HAT seulement )

Les deux modèles d’Explorer HAT possèdent 4 LED. Elles sont allumées pour un 1 logique et éteintes pour un 0 logique.

LED GPIO pin
LED 1 GPIO 4
LED 2 GPIO 17
LED 3 GPIO 27
LED 4 GPIO 5

 

Sorties, ULN2003A

Les cartes Explorer HAT/pHAT possèdent des sorties bufferisées (amplifiées) par un ULN2003A. Si vous mettez une de ces sorties à 1 elle « tire » du courant vers la masse. Gardez ceci à l’esprit quand vous vous connectez un composant à une des sorties. Il faudra connecter directement le composant au + de l’alimentation et il sera commandé par la sortie qui passera à la masse. (Voir exemple de la LED du clignotant ci-dessous)

Output / SORTIE GPIO pin
Output 1 GPIO 6
Output 2 GPIO 12
Output 3 GPIO 13
Output 4 GPIO 16

 

Entrées, SN74LVC125APWR (buffer acceptant le 5v)

Les cartes Explorer HAT/pHAT ont 4 entrées logiques protégées. Elles sont strictement identiques aux pins GPIO de votre Raspberry Pi, sauf qu’elles peuvent accepter du 5v et ne possèdent pas de résistance de tirage (pull up ou pull down) depuis le Raspberry Pi.

Input/ ENTREE GPIO pin
Input 1 GPIO 23
Input 2 GPIO 22
Input 3 GPIO 24
Input 4 GPIO 25

Comme la broche GPIO du Raspberry Pi se trouve après le buffer (tampon), les signaux d’entrée ne seront pas tirés vers le haut ou vers le bas en activant les résistances de traction embarquées du Pi. Pour les applications nécessitant une résistance pull up ou pull down, vous devez prévoir une résistance externe entre une entrée et la masse ou le +5V.

Moteur, DRV8833PWP ( Explorer HAT Pro et pHAT seulement )

L’Explorer HAT Pro a un driver de moteur embarqué. Le DRV8833 est un double pont en H. Il peut faire tourner les moteurs dans les deux sens en fonction du sens de la tension appliquée sur les deux broches + et -. Il utilise deux paires de broches : 21,26 et 19,20 pour chaque canal de moteur.

FOnction MotEUR GPIO pin
+ 1 GPIO 19
1 GPIO 20
+ 2 GPIO 21
2 GPIO 26

Accès E/S 3.3v  ( Explorer HAT Pro seulement )

La carte Explorer HAT Pro met à votre disposition un certain nombre de pins GPIO de votre Raspberry Pi. Vous avez un accès direct à I2C, PWM, SPI et Port Série/UART.

Aucune de ces E/S ne supporte le 5v ! Vérifiez bien ce que vous y connectez !

FOnction GPIO pin
SDA GPIO 2
SCL GPIO 3
——— ———-
PWM GPIO 18
——— ———-
MOSI GPIO 10
MISO GPIO 9
SCK GPIO 11
CS GPIO 8
——— ———-
TX GPIO 14
RX GPIO 15

Projets

Pimoroni projets Explorer HAT ProPimoroni propose 5 projets à base de la carte Explorer HAT Pro

Bibliothèque Python

Pimoroni a créé une bibliothèque pour qu’il soit très rapide de se familiariser avec la carte Explorer HAT Pro. Cette bibliothèque permet de réaliser les exemples montrant les différentes fonctions de la carte. Pimoroni propose plusieurs modes d’installation : une installation complète (recommandée), une pour Python 2 et une pour Python 3. J’ai choisi de suivre la préconisation de Pimoroni et de partir sur l’installation complète.

La version que j’utilise est une Raspbian complète avec Desktop installée avec la version en ligne en mars 2020, mise à jour avant de passer à la suite de l’installation. Dans un terminal saisissez la ligne suivante :

Acceptez l’installation et quand l’installeur vous pose cette question

répondez Y pour faire une installation complète. Ce choix lance une installation sans que vous ayez à intervenir, attendez un moment que le système affiche

et c’est fini, vous êtes prêt(e) à utiliser la bibliothèque Pimoroni. Les exemples sont dans

Vous pouvez aussi installer le Dashboard (tableau de bord) Pimoroni avec cette commande

Vous retrouvez le lanceur du dashboard dans la rubrique Accessoires du menu principal.

Cliquez sur cette ligne du menu

Cliquez sur le bouton Valider.

Cliquez sur la ligne 1 My Pimoroni product is a HAT puis sur Select

Cliquez maintenant sur la ligne 4 Explorer HAT puis sur Select. Le programme vérifie que les outils nécessaires à la carte Explorer HAT sont installés et installe les programme nécessaires.

A la fin de l’installation, appuyez sur Enter (Entrée) quand le programme vous le demande (Press Enter to continue…). La fenêtre de sélection d’un produit Pimoroni s’ouvre à nouveau. Si vous n’avez pas d’autre installation à faire, cliquez sur le bouton Quit pour terminer la procédure d’installation.

Un premier exemple

[stextbox id=’info’ caption=’Sortir des exemples’]Tapez CTRL C pour sortir des exemples.[/stextbox]

Déplacez vous dans le dossier examples :

et exécutez l’exemple nommé test.py :

pi@raspberrypi:~/Pimoroni/explorerhat/examples $ python3 test.py

Vous devriez voir les LEDs s’allumer sur la carte

et si vous passez les doigts sur les touches capacitives, l’écran indique les changements d’état des touches.

Ce premier test concluant montre le bon fonctionnement de toute la chaine.

Références des fonctions de la bibliothèque

Vous trouverez ici le détail de toutes les fonctions disponibles pour les entrées tactiles, les LED, les entrées, les sorties, les entrées analogiques et le pilote moteur de l’Explorer HAT. Souvent on galère un peu quand on n’a que la référence et qu’on débute… Je joins quelques exemples plus loin dans cet article pour aider les débutants.

Touch ( Explorer HAT uniquement )

La carte Explorer HAT comprend 8 touches sensitives qui réagissent comme des boutons. Elles sont conçues pour être très réactives et vous pouvez facilement les utiliser pour entrer des codes PIN, contrôler un projet ou jouer de la batterie.

Les 8 touches sont nommées de « 1 » à « 8 » et on y accède comme ceci :

Chaque touche tactile possède un certain nombre de fonctions permettant à la fois de lire son état et de lier des événements selon certaines conditions :

Retourne Vrai si le clavier est touché.

Retourne Vrai si le doigt a été maintenu sur la touche pendant un certain temps

Appelle « handler_function » chaque fois que l’on touche le clavier.

La handler_function doit accepter deux paramètres, un canal (le numéro de la touche) et un événement (si on a appuyé dessus ou si on a relâché la touche). Elle doit ressembler à ceci :

Un événement press indique que la touche a été « appuyée », et un événement release indique que le doigt a été enlevé.

Appelle « handler_function » chaque fois que le doigt est enlevé. La fonction est la même que celle décrite ci-dessus.

Appelle « handler_function » répétitivement lorsque le doigt est maintenu sur la touche (par défaut, une fois toutes les 540 ms)

Entrée

Explorer HAT/pHAT comprend 4 entrées bufferisées, acceptant jusqu’à 5v. Elles se comportent comme les broches GPIO de votre Raspberry Pi et ne nécessitent aucun traitement particulier. Lorsque vous y envoyez un signal HIGH sur l’entrée, vous lisez un état de broche HIGH ( 1 ) en Python.

  • read() – Lire l’état de l’entrée
  • has_changed() – Retourne vrai si l’entrée a changé d’état depuis la dernière lecture
  • on_changed( handler_function[, bounce_time ] ) – Appelle « handler_function » lorsque l’entrée change, le temps de rebondissement ( en ms ) est facultatif
  • on_low( handler_function[, bounce_time ] ) – Appelle « handler_function » lorsque l’entrée est basse ( off )
  • on_high( handler_function[, bounce_time ] ) – Appelle « handler_function » lorsque l’entrée est active ( high )
  • clear_events() – Supprimer tous les gestionnaires

Contrairement aux événements en analogique, vous obtiendrez une instance de l’entrée transmise à votre fonction de gestion, vous pouvez donc faire quelque chose comme ceci :

Ensuite, lorsque vous modifiez l’entrée, vous verrez quelque chose comme

Sortie

Lorsque vous activez les sorties de la carte Explorateur HAT/pHAT (1 logique), la sortie est mise à la masse. Faites attention à cela lorsque vous vous connectez sur une sortie – vous devrez connecter votre composant au + de l’alimentation, puis à la broche de sortie.

  • on() – Active la sortie
  • off() – Désactive la sortie
  • toggle() – Change la sortie et la passe à l’état opposé
  • write( boolean ) – L’écriture de 1 ou True active la sortie, l’écriture de 0 ou False la désactive
  • blink( on_time, off_time ) – Clignotement : Active la sortie pendant « on_time » et la désactive pendant « off_time ».
  • pulse( fade_in_time, fade_out_time, on_time, off_time ) – Pulsation : Même chose que le clignotement, mais permet de passer de l’activation à la désactivation pendant un temps plus long
  • fade( from, to, time ) – Variation continue depuis une valeur de luminosité ( 0 à 100) à une autre valeur de luminosité (0 à 100) pendant un nombre de secondes spécifié par « time« 
  • stop() – Arrête toute action de clignotement, de variation ou de pulsation

LEDs sur la carte Explorer HAT uniquement

Il y a quatre LED sur la carte Explorer HAT, une jaune, une bleue, une rouge et une verte. Elles sont nommés comme telles en Python :

Chaque LED peut interpréter les mêmes commandes qu’une sortie. Voir ci-dessus.

Analogique ( Explorer HAT Pro et pHAT uniquement )

read() – Renvoie la valeur de l’entrée analogique en volts.
changed( handler_function, sensitivity ) – Appelle « handler_function » lorsqu’un changement supérieur au seuil (en volts) se produit.

Moteur (Explorer HAT Pro et pHAT uniquement)

Les deux sorties moteurs sont nommées « 1 » et « 2 » et peuvent être utilisées comme suit :

Vous pouvez contrôler les deux moteurs avec cette instruction :

  • invert() – Inverse le sens de marche pour ce moteur
  • forwards( speed ) – Fait tourner le moteur « en avant » à la vitesse speed (par défaut 100%)
  • backwards( speed ) – Fait tourner le moteur « en arrière » à la vitesse speed (par défaut 100%)
  • speed(-100 à 100) – Fait tourner le moteur à la vitesse speed, de marche arrière à fond jusque marche avant à fond
  • stop() – Arrête le moteur en réglant sa vitesse sur 0

Exemple d’utilisation : Clignotement

On ne va pas réinventer le fil à couper l’eau chaude (joke) mais se contenter d’allumer une LED !

La LED est connecté comme ci-dessus. L’anode (patte longue) est reliée au +5 et la cathode (patte courte) est reliée à la sortie 2 (output 2).

Ouvrez un nouveau fichier avec nano

et saisissez le programme suivant

Sauvegardez le script. Rendez-le exécutable

puis lancez son exécution

Vous devez voir la LED clignoter… Quand la sortie passe à on() ou 1, elle met en réalité la broche Output 2 à la masse (on est en logique négative) et le courant traverse la LED. Si ça peut être un peu troublant au début, c’est assez courant dans les montages, en particulier dans l’industrie.

Exemple d’utilisation : Chenillard

La carte comporte 4 LED CMS soudées sous la carte. Quand elles s’allument, on voit la lumière par transparence à travers le circuit imprimé.
L’objectif de ce programme est tout simplement un chenillard. Je n’ai pas utilisé d’instructions tarabiscotées ! C’est du Python de maker, sans doute pas « académique » mais simple à lire et qui fonctionne 😀

Copiez ce script Python dans un fichier .py que vous rendrez exécutable avant de le lancer.
Ici les LED de la carte sont identifiées par leur nom en anglais, ce qui facilite l’affichage d’une couleur. Pour info elles sont en face des touches sensitives dans cet ordre :

  • 1 => Bleu = blue
  • 2 => Jaune = yellow
  • 3 => Rouge = red
  • 4 => Vert = green

 

Touches sensitives

Cet exemple propose d’allumer la LED qui se trouve devant une des touches sensitives, quand le doigt est sur la touche.

Copiez ce script Python dans un fichier .py que vous rendrez exécutable avant de le lancer.  Ici on détecte la présence du doigt sur la touche et si la touche est « appuyée » on allume la LED correspondante. Lorsqu’une autre touche est détectée, on éteint toutes les LED et on allume celle qui correspond à la touche.

Moteur

La carte Explorer Hat est parfaite pour concevoir un petit robot. Elle est d’ailleurs utilisée sur le STS-Pi. J’ai choisi ce cahier des charges :
Le moteur est connecté sur la sortie Motor 2 (entre le + et le -) et sa commande se fait par les touches 1 et 2 qui permettent de le faire tourner dans un sens ou dans l’autre. Les LED correspondantes s’allument en même temps. Quand aucune touche n’est apppuyée, les LED s’éteignent et le moteur s’arrête.

Copiez ce script Python dans un fichier .py que vous rendrez exécutable avant de le lancer. On détecte l’appui sur les touches avec explorerhat.touch.one.is_pressed() et on fait tourner le moteur à 30% de la vitesse max dans un sens explorerhat.motor.two.speed(30)  ou dans l’autre explorerhat.motor.two.speed(-30).

Conclusion

Il reste d’autres E/S à commander, mais vous avez déjà de quoi vous amuser et je suis certain que les autres fonctions ne vous résisteront pas longtemps (je pense aux entrées analogiques (0 à 5v). Amusez vous avec ces entrées également. Et puis il y a toutes les E/S 3.3v qui permettent d’accéder à Tx/Rx, SPI et I2C… A vous de jouer.

Une carte petite par la taille mais pleine de ressources.

Sources

 

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.