ESP32 ESP-IDF + LVGL + SquareLine Studio 设计 UI 界面

news2025/1/11 14:50:05

陈拓 2022/12/10-2022/12/12

1. 概述

关于SquareLine Studio,乐鑫官方的ESP技术文章有介绍:
在 ESP 开发板上开发 UI 不再复杂 - 知乎如果您尝试过在没有图形库的情况下开发 UI,那么您一定知道这有多困难。幸运的是,由乐鑫芯片驱动的屏幕,可支持用户使用多种图形库来开发 UI, LVGL 就是其中之一。通常情况下,在使用 LVGL 或类似的图形库前,用…https://zhuanlan.zhihu.com/p/574436496

SquareLine Studio是一个可视化工具,可使用LVGL图形库开发UI,且支持多个平台,如MacOS、Windows和Linux。在该工具中,我们通过拖放就可以在屏幕上添加和移动小控件,图像和字体的处理也变得十分简单。

SquareLine Studio对个人用户是免费的,但是有一些限制,每个项目最多可使用5个屏幕和50个控件。其他价格信息可参考SquareLine 网站。

SquareLine Studio的官方网址:https://squareline.io/

SquareLine Studio的官方文档:

https://docs.squareline.io/docs/squareline/

2. SquareLine Studio下载

下载网址:https://squareline.io/downloads

  • 下载最新版本可以免费试用30天

  • 下载以前版本个人可以免费使用

 

  • 选择版本和平台下载

我下载Windows平台SquareLine Studio 1.1.0

SquareLine_Studio_Windows_v1_1_0.zip

  • 解压

解压得到SquareLine_Studio_1.1.0_Setup.exe

  • 安装

双击exe文件进行安装,照着提示做就行。

3. 注册账号

https://squareline.io/sign-up

注册成功。

 

4. 获取个人许可证

  • 打开SquareLine Studio

 

  • 点击LOG IN

输入账号密码登录

 

  • 获取个人许可证

 

通过邮件确认

 

点击START SQUARELINE开始使用。

  • 查看个人许可证

https://squareline.io/profile/licenses

 

5. 软件附带的例子

进入软件界面后,点击Example可以看到几个例子:

 

我手头有一块ST7789 240x360的显示屏,我就选Smart_Gadget.spj。

  • 双击打开项目

 

可以看到功能齐全的设计工具和配置选项,我们今天的关注点不在这里,我们只是想看看例子的效果。

选择不同的页面,点击播放按钮,可以预览UI效果。

  • 项目设置

 

File > Project Settings

 

开发板选择ESP-BOX,它的显示屏是240x320的。详情可参考:

乐鑫官方ESP-BOX的硬件gitee仓库:

https://toscode.gitee.com/EspressifSystems/esp-box/blob/master/docs/hardware_overview/esp32_s3_box/hardware_overview_for_box_cn.md

乐鑫官方ESP-BOX的硬件github仓库:

GitHub - espressif/esp-bsp: Board support components for Espressif development boards

点击APPLY CHANGES完成设置,设计页面转换为适合显示屏大小。

 

  • 导出设计文件

点击Export > Export UI Files

选择一个目录保存导出的代码:

  • 复制ui目录到ESP-IDF项目中

我们使用在《ESP32 ESP-IDF LVGL8.3.3移植》

ESP32 ESP-IDF LVGL8.3.3移植_晨之清风的博客-CSDN博客ESP32 ESP-IDF LVGL8.3.3移植。https://blog.csdn.net/chentuo2000/article/details/128269394?spm=1001.2014.3001.5501

一文中创建的项目。

将ui目录复制到main目录下:

 

  • 修改main.c

添加头文件:

#include "ui.h"

修改create_demo_application函数

static void create_demo_application(void)
{
    ui_init();
}
  • 修改main目录下的CMakeLists.txt文件
idf_component_register(SRCS "main.c" 
"../ui/ui.c" 
"../ui/ui_comp.c" 
"../ui/ui_font_Number.c" 
"../ui/ui_helpers.c" 
"../ui/ui_img_album_png.c" 
"../ui/ui_img_avatar_png.c" 
"../ui/ui_img_backward_png.c" 
"../ui/ui_img_chatbox_png.c" 
"../ui/ui_img_chatbox2_png.c" 
"../ui/ui_img_clock_hour_png.c" 
"../ui/ui_img_clock_min_png.c" 
"../ui/ui_img_clock_sec_png.c" 
"../ui/ui_img_cloud_png.c" 
"../ui/ui_img_forward_png.c" 
"../ui/ui_img_pattern_png.c" 
"../ui/ui_img_phone_png.c" 
"../ui/ui_img_play_png.c"
"../ui/ui_img_weather_1_png.c"  
"../ui/ui_img_weather_2_png.c" 
"../ui/ui_img_weather_3_png.c" 
                    INCLUDE_DIRS "." "../ui")
  • 编译

idf.py build

编译错误:

 

在配置中选中18号字:

 

再编译成功。

  • 烧写

idf.py -p /dev/ttyUSB0 -b 460800 flash

  • ST7789 320x240屏显示效果

横屏

 

竖屏

 

参考文档

  1. 在 ESP 开发板上开发 UI 不再复杂
    在 ESP 开发板上开发 UI 不再复杂 - 知乎
  2. 在基于乐鑫芯片的用户定制开发板上开发 UI
    在基于乐鑫芯片的用户定制开发板上开发 UI - 知乎
  3. 捌月 / LVGL+ESP32桌面小时钟
    LVGL+ESP32桌面小时钟: 这一款非常实用的桌面小时钟,采用esp32和Lvgl视频链接:https://www.bilibili.com/video/BV1ud4y1w7M8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/82754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线性代数---第六章---二次型

1二次型方的系数为主对角线上的元素 我起码要会如何根据二次型写矩阵A 2规范形是系数为1,-1,0的标准型 3二次型的正惯性指数和负惯性指数 4任一个n阶实对称阵,必然既相似又合同于对角阵 5用配方法化二次型为标准阵 6 正交变换得到的对角阵上…

【产品分析】从用户体验五要素分析——微信读书

本文从用户体验五要素:表现层面、框架层 、战略层、范围层、结构层,对微信读书进行了分析。 前言 互联网发展的速度也加速了知识更新的速度,也许今天你还手握焦点技能,明天就可能被遗忘在角落。一应俱全的网课、铺天盖地的资讯加…

Autosar PWM配置及使用

文章目录前言PWMPwmChannelPwmAssignedHwUnitPwmChannelIdPwmCoherentUpdatePwmDutycycleDefaultPwmIdleStatePwmNotificationPwmChannelClassPwmPeriodDefaultPwmPolarityPwmReferenceChannelPwmSafetySignalPwmShiftValuePWM输出偏移的使用PwmConfigurationOfOptApiServicesP…

Coreform Cubit (csimsoft Trelis)

Coreform Cubit (csimsoft Trelis) Coreform Cubit(csimsoft Trelis)是Coreform公司开发的最强大、最高效的工程工具之一。通常,公司都会启动自己的Mash项目。对于CFD分析,他们有FEA。这个软件可以开始你的工作,添加你自己的印第安形状&#…

2023年湖北建设厅七大员建筑八大员考试什么时候报名?甘建二

2023年湖北建设厅七大员建筑八大员考试什么时候报名? 建设厅七大员和建筑八大员有什么关系呢?有区别吗? 甘建二老师告诉你,建设厅七大员和建筑八大员没有区别,只是叫法不一样而已,都是一个东西。 七大员和…

Kunbernetes——二进制单节点部署

常见的k8s部署方式 1.Mini kube Minikube是一个工具,可以在本地快速运行一个单节点微型K8s,仅用于学习预览K8s的一些特性使用 部署地址: https://kubernetes.io/docs/setup/minikube 2.Kubeadmin Kubeadmin也是一个工具,提供kubeadm init和…

基于python的opencv中SGBM立体匹配算法实现

文章目录前言一、SGBM和SGM的区别?1.预处理2.代价计算3.动态规划4.后处理二、SGBM的python-opencv的实现SGBM 参数选择参考文章前言 SGBM的核心是SGM算法,自OpenCV2.4.6开始就已经被开源,非常的方便,并被广泛使用。 一、SGBM和SGM…

几何角度理解相机成像过程

本笔记从几何角度来理解相机的成像过程,我们生活在三维世界中,相机所捕捉到的画面是2D的,3D空间中的点是如何投影到2D平面的过程是本笔记关注的。 预设场景 本笔记讨论的东西基于以下场景: 在一个房间内放了一台相机,…

入职阿里的秘密武器,阿里内部“Java学习笔记”,由浅入深,通俗易懂!

导言 提起阿里,行外人联想到的关键词无非是“交易”、“淘宝”、“支付宝”,但对于程序员来说,阿里庞大的技术体系才是最吸引人的。实际上阿里作为国内一线互联网公司的头把交椅,内部的技术体系和发展都是备受关注的,…

Network-UART VHDL设计及仿真实现

设计内容: 实现UART及实时系统完成收发UART操作的测试系统,要求如下: 本工程包括一个测试系统,UART. UART包括baud波特率模块、UART的transfer and receive模块等 1 Objective The objective of this project is to design and build a complete UART in VHDL. Upon comp…

为什么电子商务物流对电商商家的业务很重要?

正是电子商务物流的推动推动了企业发展包括最大渠道在内的整体生态系统;店内提货、电子商务、分销商、经销商、合作伙伴和全球制造商,推动新客户的增长。电子商务巨头的目标是推动更多的销售并提高客户忠诚度。  无论是内部还是第三方物流公司,改进的电…

【小塔秉匠地图】

运行对应地图 1.先清空url运行一遍 2.填上url再次运行就可以了 对地图操作的方法 handleRowClick(row, column, event) {if (row) {this.send(camToAnchor,{name: row.ancName}) // camToAnchor:定位到锚点;ancName锚点的唯一标识} },send(funcName, options) {console.l…

优维低代码:Theme Mode 页面主题和模式

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。 连载…

React 18:state概念与使用、注意问题

一、概念与基本使用 props中的所有属性都是不可变的,这使得React组件不能随着props的改变而改变。但在实际的开发中,我们更希望的是数据发生变化时,页面也会随着数据一起变化。React为我们提供了state用来解决这个问题。 state和props类似&…

类的赋值与浅拷贝

类的浅拷贝与深拷贝 变量的赋值操作 只是形成两个变量,实际上还是指向同一个对象浅拷贝 Python拷贝一般都是浅拷贝,拷贝时,对象包含的子对象内容不拷贝因此,源对象与拷贝对象会引用同一个子对象深拷贝 使用copy模块的deepcopy函数…

[附源码]JAVA毕业设计疫情防控期间网上教学管理(系统+LW)

[附源码]JAVA毕业设计疫情防控期间网上教学管理(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 …

window下生成SANs证书给ingress用

1.安装openssl openssl下载地址:http://slproweb.com/products/Win32OpenSSL.html http://slproweb.com/products/Win32OpenSSL.html 下载指定版本exe安装。 2. 修改openssl配置 为了方便我们copy一份openssl.cfg,用来修改 C:\Users\vamcl\Deskto…

做自媒体18个月,倒欠38万,一个自媒体创作者的自述

做自媒体18个月,倒欠38万,一个自媒体创作者的自述 疫情开始后,长期居家,工作和生活都受到了明显影响,偶然在网上看到了自媒体这个行业,号称日入几千几万。 前前后后花非不少钱买设备、买课、买会员等等,花费近40w颗粒…

Java网络编程,超详细

计算机网络分为网络协议和网络体系结构 通过网络发送数据是一项复杂的操作,必须仔细地协调网络的物理特性以及所发送数据的逻辑特征。通过网络将数据从一台主机发送到另外的主机,这个过程是通过计算机网络通信来完成。 网络通信的不同方面被分解为多个…

爆火的OpenAI及ChatGPT注册详细说明

1 准备条件 ① 需要梯子 ② 准备一个能够接收openai的手机号,用于接收注册验证码 (如果没有也不要紧,下面会介绍通过第三方接码平台来注册) 2 注册手机号接收验证码 网址:https://sms-activate.org/cn/getNumber 2.1 点击右上角注册 这里…