Template Plateformio, SquareLine Studio, LVGL pour carte Crowpanel 5.0¶
- Auteur
J.Soranzo
- Association
Bricolab
- Entity
- dépôt Bitbucket des sources doc
https://bitbucket.org/myarduinotemplates/docsource/src/master/
- Dépôt BitBucket
https://bitbucket.org/myarduinotemplates/tmplcp50-vsc-pio-sls-lgvl/src/master/
- Création
09/2024
Dans ce document
Présentation¶
Il s’agit d’un modèle de workflow complet pour le développement d’interfaces utilisateur pour les cartes Crowpanel 5.0”. La particularité de ce workflow est qu’il n’est pas nécessaire de copier les fichiers UI d’un répertoire vers un autres comme c’est le cas entre autres dans les dernières vidéos de Volos Project 2
Ce template permet de compiler immédiatement une IHM (GUI) avec un seul écran et un bouton. Les résultats s’affiche dans la console (Serial monitor). La carte SD est active (résultats également dans la console). Le touch PAD est opérationnel.
Voir également le readme du dépôt Bitbucket.
Warning
Ce dépôt n’est pas un manuel utilisateur des logiciels utilisés
Note
IDEE
L’idée de Ce workflow ainsi que l’idée d’en faire un template complet est inspirée du github: Template file for using CYD with Squareline Studio/VSC/Platformio 4 de Brian Lough (alias witnessmenow) pour la carte Cheap Yellow Display.
Les briques du workflow¶
Platformio ¶
Est-il besoin de présenter pio 5 ? La version utilisée pour développer ce workflow est la version core 6.1.15 Home 3.4.4
Un petit mot tout de même pio est aujourd’hui un plugin VisualStudio code qui vise à remplacer entre autres l’IDE ARDUINO et qui aujourd’hui supporte bien d’autres microcontrôleurs…
Note
Pour ceux qui hésitent encore
J’ai longtemps hésité à passer à Pio mais ne serait-ce que parce qu’avec on maîtrise les librairies et leur versions utilisées par le projet et qu’elle font parti intégrante du projet. Rien que pour cela ça vaut la peine de franchir le pas.
Sqareline Studio 1.4.2¶
SLS est un logiciel qui permet de designer des interfaces utilisateurs pour des écrans connectés à des microcontrôleurs. On doit pouvoir également développé des GUI sur desktop mais je n’ai pas expérimenté cette possibilité.
SLS s’appuie sur une librairie graphique relativement connue dans le petit monde des microcontrôleurs: LVGL pour Light Versatile Graphic Library 7
SLS n’est pas une logiciel libre et open source mais l’éditeur fourni une version gratuite limitée mais suffisante pour nos besoins.
Limitations de la version gratuite:
- Free upgrade
- Unlimited project
- Unlimited device
- No royalties
- Max. 10 screens
- Max. 150 widgets
- Max. 1 component
- Export UI files
- Export projects
- Not for commercial use
Les librairies utilisées¶
Il suffit de regarder dans le fichier platformio.ini du projet:
lib_deps =
lovyan03/LovyanGFX@1.1.12
lvgl/lvgl@8.3.11
adafruit/Adafruit GFX Library@^1.11.9
tamctec/TAMC_GT911@^1.0.2
lvgl voir ci-dessus en version 8.3.11 car les fichiers générés par SLS pour LVGL 9.x ne sont pas encore suffisamment mature à mon goût (au 15/09/24).
lovyanGFX : lib semblable à TFT_eSPI mieux adapté à ce type d’écran et recommandée par ELECROW dans les vidéos tuto.
TAMC_GT911 : pour le touch screen.
Adafruit GFX Library : parce que que serions-nous sans LadyAda !
Contenu et principe¶
Ce modèle repose sur 2 sous-dossiers:
dans le dossier prjvscpio se trouve le projet Visual Studio Code PlatformIO
dans le dossier prjsls le projet Squareline Studio
Un sous-dossier srs/ui dans le projet pio est réservé à l’export SLS
Cette structure présente 3 avantages: Les projets des 2 logiciels sont bien séparés et les fichiers du projet ne sont pas écrasés par l’export SLS/ui et enfin pas beaoin de copier les fichiers ui d’un dossier vers un autre.
Note
Le fichier ui_events.cpp est persistant
Ce fichier n’est pas écrasé entre 2 exports SLS/ui (à condition de maintenir la case Flat export’ décochée)
Mode d’emploi¶
Cloner le dépôt.
importer le projet pio dans pio
importer le projet sls dans SLS
Commencer à travailler
Mettre une carte microSD dans le carte avec 1 ou 2 fichiers
On peut directement téléverser le code dans la carte…
Note
Branche verticale
Le dépôt se compose de 2 branches : main pour l’écran à l’horizontal et ‘verticale’ pour l’écran à la verticale.
Caution
Dans SLS warning
Il se peut que SLS se plaigne du fait que le chemin root soit vide surtout ne rien y Mettre Cela compromettrait la syntaxe du triple … qui représente le dossier du projet pour l’export ui
Ecran à la verticale¶
A partir de la branche horizontale.
Dans prjpio:
platformio.ini : rien à faire
main.cpp l84 : lcd.setRotation(1);
touch.h l28 : #define TOUCH_GT911_ROTATION ROTATION_LEFT
l31 : #define TOUCH_MAP_X1 480
l34 : #define TOUCH_MAP_Y1 800
gfx_conf.h : on touche à rien
Dans prjsls:
width 480 height 800