++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Template Plateformio, SquareLine Studio, LVGL pour carte Crowpanel 5.0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. include:: idBlock.rst :Dépôt BitBucket: https://bitbucket.org/myarduinotemplates/tmplcp50-vsc-pio-sls-lgvl/src/master/ :Création: 09/2024 .. include:: tdm.rst ==================================================================================================== 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`_ 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. .. _`dernières vidéos de Volos Project` : https://www.youtube.com/watch?v=h74pMbkl7to Voir également le readme du dépôt Bitbucket. .. SEEALSO:: **SITE OFFICIEL** :class: without-title `Carte CrowPanel 5.0" HMI ESP32 Display 800x480 RGB TFT LCD Touch Screen`_ .. _`Carte CrowPanel 5.0" HMI ESP32 Display 800x480 RGB TFT LCD Touch Screen` : https://www.elecrow.com/esp32-display-5-inch-hmi-display-rgb-tft-lcd-touch-screen-support-lvgl.html .. image:: images/esp32_5inch_hmi_display_3.png :width: 500 px :target: https://www.elecrow.com/esp32-display-5-inch-hmi-display-rgb-tft-lcd-touch-screen-support-lvgl.html .. WARNING:: **Ce dépôt n'est pas un manuel utilisateur des logiciels utilisés** :class: without-title .. NOTE:: **IDEE** :class: without-title 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`_ de **Brian Lough** (alias witnessmenow) pour la carte **Cheap Yellow Display**. .. _`Template file for using CYD with Squareline Studio/VSC/Platformio` : https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display/discussions/102 ==================================================================================================== Les briques du workflow ==================================================================================================== Platformio |pio| ---------------------------------------------------------------------------------------------------- Est-il besoin de présenter `pio`_ ? La version utilisée pour développer ce workflow est la version core 6.1.15 Home 3.4.4 .. |pio| image:: images/platformio-logo.17fdc3bc.png :width: 30 px 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** :class: without-title 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. .. _`pio` : https://platformio.org/ Sqareline Studio 1.4.2 ---------------------------------------------------------------------------------------------------- .. image:: images/logo_2.webp :width: 100 px 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é. .. SEEALSO:: **SITE OFFICIEL** :class: without-title `SquareLine Studio`_ .. _`SquareLine Studio` : https://squareline.io/ SLS s'appuie sur une librairie graphique relativement connue dans le petit monde des microcontrôleurs: **LVGL** pour `Light Versatile Graphic Library`_ |LVGLlogo| .. _`Light Versatile Graphic Library` : https://lvgl.io/ .. |LVGLlogo| image:: images/lvglLogo.JPG :width: 100 px 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** :class: without-title `CrowPanel ESP32 Screen Tutorials`_ 9 vidéos officielles .. _`CrowPanel ESP32 Screen Tutorials` : https://www.youtube.com/playlist?list=PLwh4PlcPx2Ge-h-Pfsa7juFeWMgXmv8lc 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** :class: without-title 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** :class: without-title 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** :class: without-title 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 ==================================================================================================== Weblinks ==================================================================================================== .. target-notes::