Elecrow a profité de la puissance du Raspberry Pi RP2040 (issu du Raspberry Pi PICO) pour créer une gamme d’écrans tactiles HIM (Interface Homme-Machine). Le développement software se fait classiquement avec l’IDE Arduino ou avec SquareLine Studio (qui commence à tourner sur Raspberry Pi 4 et 5). La compatibilité avec la librairie LGVL* (Light and Versatile Graphics Library) garantit la possibilité de créer des interfaces de toute beauté. J’ai pu tester la version 3,5 pouces dont je vous parle ici.
Au sommaire :
CrowPanel Pico Display : Ecran tactile RP2040 – 3,5 pouces 480×320 TFT C/C++ LVGL
* LVGL est une bibliothèque graphique embarquée libre et gratuite très utilisée pour créer de belles interfaces utilisateur pour n’importe quel MCU, MPU et type d’affichage.
Description
Cet écran est piloté par la puce double cœur 32 bits RP2040 du Raspberry Pi PICO, affichant une vitesse d’horloge allant jusqu’à 133 MHz, ce qui permet d’obtenir des performances exceptionnelles pour un écran.
Les interfaces disponibles UART, I2C et de nombreux GPIO accessibles permettent des possibilités d’extension intéressantes.
L’écran supporte C/C++, et il est compatible avec l’écosystème Raspberry Pi, bien adapté à TensorFlow Lite et LVGL.
De nombreux SDK sont utilisables, avec des bibliothèques et une documentation assez complète. Ceci facilite l’utilisation de ce matériel, à réserver quand même à des makers expérimentés.
CrowPanel Pico Display fait partie d’une série de modules IHM (Interfaces Homme Machine) qui utilise le Raspberry Pi RP2040 (ARM Cortex-M0+) comme contrôleur principal. Il est équipé d’une puce 32-bit dual-core fonctionnant à une fréquence d’horloge allant jusqu’à 133 MHz. Avec 264 kb de SRAM intégrée et une puce de mémoire flash de 2MB, il intègre l’alimentation électrique, la régulation de la tension et les fonctions de comptage dans un seul microcontrôleur. Cette série d’écrans tactiles permet des performances élevées pour un faible coût.
L’écran Pico 3,5 pouces a une résolution de 480*320 et est livré avec un stylo tactile pour une manipulation facile de l’écran. Il dispose de périphériques d’E/S flexibles et d’un sous-système d’entrées/sorties programmables (PIO), comprenant des interfaces de communication pratiques telles que I2C, UART, des ports E/S communs et USB. Il est également doté d’une interface pour pile au lithium et d’une alarme sonore, ce qui permet de communiquer avec presque n’importe quel dispositif externe. Les utilisateurs professionnels bénéficient ainsi d’une grande souplesse et d’une puissante capacité d’extension, ce qui leur permet de se connecter de manière transparente au monde physique et de contrôler divers aspects de la maison intelligente en domotique. Il est également bien adapté adapté à un large éventail d’applications dans l’Internet des objets (IoT), les usines intelligentes, l’agriculture intelligente et en tant que terminal interactif IHM dans tous les domaines.
Le module est livré avec de nombreuses ressources en ligne, notamment un kit de développement logiciel (SDK) et de la documentation. La niveau d’entrée reste bas, ce qui le rend adapté aux débutants et aux utilisateurs amateurs. Il prend en charge les langages de programmation C/C++, est compatible avec l’écosystème Raspberry Pi et convient au cadre d’apprentissage machine open-source TensorFlow Lite et à la bibliothèque graphique LVGL. Il constitue une excellente plateforme pour les applications d’apprentissage automatique et est une solution recommandée pour les terminaux IHM de type Pico.
Caractéristiques
- Puce principale : RP2040
- Processeur : Double cœur 32-bit ARM Cortex-M0+ @ 133MHz
- Mémoire : 264kB SRAM sur puce (supporte jusqu’à 16MB de mémoire flash hors puce)
- Taille d’écran : 3,5 pouces
- Résolution : 480*320
- Type d’écran tactile : Tactile résistif
- Type de panneau : TFT LCD
- Luminosité : 250~350 cd/m² (Typ.)
- Angle de vision : 70/70/70/70(H/B/D/G)
- Interfaces : USB, I2C, UART, GPIO, connecteur pour carte µSD et connecteur de batterie
- Entrée d’alimentation : 5V-2A
- Surface active : 53.64*71.52mm(LxH)
- Dimensions : 62.5*104.5*13.5mm(LxHxP)
Schéma
Batterie
L’écran peut fonctionner avec une batterie de 3,7v (non fournie) qui est chargée à 500mA max grâce à un circuit intégré 4054A dont la documentation est disponible en ligne.
L’écran CrowPanel Pico Display
Vous avez vu plus haut le matériel livré avec l’écran, le stylet et le connecteur crowtail. Voici l’écran, j’ai enlevé la protection de la plaque d’acrylique côté écran.
On peut aussi enlever le film de protection de l’écran
Sur l’arrière la plaque d’acrylique est gravée, ce qui permet d’identifier facilement les prises et les connecteurs GPIO.
Chose que vous ne ferez pas, j’ai enlevé la plaque de fond pour découvrir ce qu’il y a dessous. On a une première plaque en acrylique noir, avec les inserts métalliques qui serviront éventuellement à fixer l’écran.
Dessous, on trouve enfin la plaque du circuit principal, qui est juste au dessus de l’écran à laquelle elle est reliée par la grande nappe centrale (le câble plat).
Au milieu de tout ça on trouve le RP2040 chargé de gérer l’écran et les interfaces UART, I2C et GPIO.
Connecteur d’alimentation USB-C et au dessus le connecteur Batterie et son circuit de charge U5.
Les connecteurs sont situés sur le bord de l’écran.
De même pour le connecteur TF qui est prévu pour accueillir une carte µSD.
La programmation
L’écran peut se programmer en IDE Arduino ou en Square Line Studio conçu pour faciliter la création d’interfaces utilisateurs. Square Line studio commence à être disponible sur Raspberry Pi 5 moyennant quelques efforts ( 🙄 ) pour sa construction…
Le Wiki vous donnes une démarche pas à pas pour créer une interface comme ci-dessus, pour lire une température et une humidité sur un capteur crowtail DHT20, et pour piloter l’allumage/extinction d’une LED avec deux boutons ON et OFF.
Il ne reste plus qu’à connecter les périphériques pour tester le fonctionnement. On imagine tout de suite ce qu’on pourra faire avec cet écran dans les domaines de la domotique ou de l’industrie.
Les essais
Video officielle
Conclusion
Le RP2040 montre ici encore son adaptabilité. Elecrow a profité de la puissance du RP2040 pour développer une gamme d’écrans HMI (Interfaces homme-machine) qui répond à de nombreux besoins. Le contraste élevé les destine au pilotage de process industriels aussi bien qu’à une mise en œuvre en domotique où ils pourront servir de dashboard (tableau de bord) dans de nombreuses circonstances. Le prix reste tout à fait raisonnable comme vous pouvez le voir ci-dessous.
Avec la compatibilité LVGL, des interfaces superbes sont envisageables. On pourra imaginer des tableaux pour la commande de température (pompe à chaleur par exemple) avec des jauges, des curseurs ou des boutons. Un autre domaine est celui de l’électricité solaire où ce genre d’écran pourra tout à fait présenter en temps réel les informations utiles (énergie produite, consommée, injectée sur le réseau…)
Sources
https://www.elecrow.com/display/esp-hmi-display/crowpanel-pico-display.html?idd=5
https://www.elecrow.com/crowpanel-pico-display-3-5-inch-480-320-hmi-module-tft-lcd-touchscreen-with-rp2040-support-c-c-micropython-lvgl.html?idd=5
Charge batterie : https://www.analog.com/media/en/technical-documentation/data-sheets/405442xf.pdf
J’ai utilisé la LVGL pendant quelque temps sur ma montre et surtout sur mon LilyPI.
Malheureusement, et comme souvent, compatibilité ascendante défaillante d’une version à l’autre ce qui fait que beaucoup d’efforts sont nécessaires pour suivre les versions.
De plus, certains plantages inexpliqués liés visiblement à l’interprétation des CSS.
Bref, si le concept est interessant … difficile de l’utiliser sur des projets sur la durée … si on souhaite resté à jour.