Template Plateformio, SquareLine Studio, LVGL pour carte Crowpanel 5.0

Auteur

J.Soranzo

Association

Bricolab

Entity

VoRoBoTics 1

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

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.

_images/esp32_5inch_hmi_display_3.png

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 pio

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

_images/logo_2.webp

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é.

See also

SITE OFFICIEL

SquareLine Studio 6

SLS s’appuie sur une librairie graphique relativement connue dans le petit monde des microcontrôleurs: LVGL pour Light Versatile Graphic Library 7 LVGLlogo

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.

Caution

VIDEO PLAYLIST ELECROW

CrowPanel ESP32 Screen Tutorials 8 9 vidéos officielles

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

  1. Cloner le dépôt.

  2. importer le projet pio dans pio

  3. importer le projet sls dans SLS

  4. Commencer à travailler

  5. 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