0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

零基础开发小安派-Eyes-S1——初识LVGL并搭建最小工程

安信可科技 来源:安信可科技 2025-01-03 14:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

AiPi-Eyes-S1是安信可开源团队专门为Ai-M61-32S设计的一款开发板,支持WiFi6、BLE5.3。所搭载的Ai-M61-32S 模组具有丰富的外设接口,具体包括 DVP、MJPEG、Dispaly、AudioCodec、USB2.0、SDU、以太网 (EMAC)、SD/MMC(SDH)、SPI、UARTI2C、I2S、PWM、GPDAC、GPADC、ACOMP 和 GPIO 等。

AiPi-Eyes-S1集成了SPI屏幕接口,DVP摄像头接口,外置ES8388音频编解码芯片以及预留TF卡座,并且引出USB接口,可接入USB摄像头。

从零开始学习小安派:

1、零基础开发小安派-Eyes-S1【入门篇】——初识小安派-Eyes-S1

2、零基础开发小安派-Eyes-S1【入门篇】——安装VMware与Ubuntu

3、入门篇:零基础开发小安派-Eyes-S1——新建工程并烧录调试

4、零基础开发小安派-Eyes-S1入门篇——Win下SSH连接Linux

5、零基础开发小安派-Eyes-S1【入门篇】——Samba共享文件夹

6、零基础开发小安派-Eyes-S1【入门篇】——工程文件架构

7、零基础开发小安派-Eyes-S1【外设篇】——GPIO 输入输出

8、零基础开发小安派-Eyes-S1【外设篇】——GPIO中断编程

9、零基础开发小安派-Eyes-S1【外设篇】——PWM

10、零基础开发小安派-Eyes-S1【外设篇】——UART

11、零基础开发小安派-Eyes-S1【外设篇】——I2C

12、零基础开发小安派-Eyes-S1【外设篇】——ADC

13、零基础开发小安派-Eyes-S1【外设篇】——I2S

14、零基础开发小安派-Eyes-S1【外设篇】——TIMER

15、零基础开发小安派-Eyes-S1【外设篇】——DAC

教程已经更新了一段时间了,现在和各位小伙伴一同进入小安派的进阶篇。进阶篇的内容其实只是加上了 LVGL 的运用,可以更加直观的使用交互界面而完成一个中控屏的项目。

LVGL(轻量级和通用图形库) 是一个免费和开源的图形库,它提供了创建嵌入式 GUI 所需的一切,具有易于使用的图形元素,美丽的视觉效果和低内存占用。小安派-Eyes-S1配备了一块3.5寸的屏幕,搭配上LVGL可以显示所需的交互界面。

01 安装 GUI-Guider

GUI-Guider 是恩智浦为 LVGL 开发的一个上位机 GUl 设计工具,可以通过拖放控件的方式设计 LVGL GUl 页面,加速 GUI 的设计,总得来说,可以使用这个软件设计需要显示的内容以及交互界面,相当于设计一个前端界面。

这里先附上LVGL的开发手册(全英):LVGL 官方手册

看不懂英文的可以用百问网的LVGL中文手册:百问网 LVGL 手册

首先进入NXP的官网,这里附上网址:NPX 官网

搜索 GUI Guider,这里可能需要注册账号,跟随提示注册好账号后才可以正常下载软件

999fad72-c8bf-11ef-9310-92fbcf53809c.png

在下载里选择对应的软件下载,这里选择1.6.1的 win10 版本(实测笔者的win11 系统一样可以使用)。

99badfd4-c8bf-11ef-9310-92fbcf53809c.png

下载完需要的安装包后,点击打开安装程序。

99d0ae04-c8bf-11ef-9310-92fbcf53809c.png

选择下载的位置,这里在E盘中常用的位置创建了相应的文件夹。

99eaddc4-c8bf-11ef-9310-92fbcf53809c.png

点击下一步等待完成安装。

99fcc78c-c8bf-11ef-9310-92fbcf53809c.png

安装完成后点击进入软件界面。

02 设计一个最简单的UI 界面

点击 Create a new project,创建新的工程。

9a0e8396-c8bf-11ef-9310-92fbcf53809c.png

LVGL 版本选择 V8.3.5。

9a1e9f4c-c8bf-11ef-9310-92fbcf53809c.png

设备模板选择模拟Simulator。

9a3321ec-c8bf-11ef-9310-92fbcf53809c.png

选择 EmptyUI空白模板。

9a4ba17c-c8bf-11ef-9310-92fbcf53809c.png

项目配置信息,填入工程名字,工程目录(建议在自己方便查找的位置建立一个 Project 文件夹存储所有的工程文件),色彩深度选择 16bit 即可。

面板类型根据显示屏类型来选择,S1 配备的3.5寸屏幕,由于默认的显示屏是竖屏显示的,可以选择自定义 240x320,笔者个人比较喜欢横屏显示,选择 320x240,后续修改显示屏配置文件旋转 90°即可。

9a6e285a-c8bf-11ef-9310-92fbcf53809c.png

在前面的截图中可能会是英文界面,但也基本能看懂。在创建了第一个工程后可以在界面进行一些页面显示设置,右上角有语言的设置,这里选择中文,界面的颜色选择暗色。

9a851786-c8bf-11ef-9310-92fbcf53809c.png

9aa07a9e-c8bf-11ef-9310-92fbcf53809c.png

这是 Gui-Guider 的基本界面。

9ab19bee-c8bf-11ef-9310-92fbcf53809c.png

首先设置背景板,可以在右侧的属性中选择自己喜欢的颜色和透明板,这里选择浅蓝色。

9ad77d6e-c8bf-11ef-9310-92fbcf53809c.png

添加一个二维码组件,右侧属性中可以填入扫码的内容。

9ae5084e-c8bf-11ef-9310-92fbcf53809c.png

添加一个文本框,右侧输入想输入的内容,大小随意调整,可以拖动边框移动位置。这里注意字体选择 simsun,可以显示中文

9afefb46-c8bf-11ef-9310-92fbcf53809c.png

添加字体的方式可以在上面的“工具”导入字体,也可以在资源管理-字体,导入自己喜欢的字体。

9b1694e0-c8bf-11ef-9310-92fbcf53809c.png

点击右上角的绿色三角型进行仿真,可以看到仿真出来的显示效果。同时会生成 LVGL 的工程文件文件方便移植。

9b32bb3e-c8bf-11ef-9310-92fbcf53809c.png

03 将生成的 LVGL 文件移植到小安派

首先将 aithinker_Ai-M6X_SDK 中examples 下的 lvgl 工程文件夹复制下来。粘贴到SDK外方便管理,这里放在 AiPi-Open-Kits 下,也就是和其它demo的同一层。

9b445632-c8bf-11ef-9310-92fbcf53809c.png

简简单单修改个文件名。修改一下 Makefile,一样链接到 SDK。

9b5b810e-c8bf-11ef-9310-92fbcf53809c.png

在修改下 flash_prog_cfg.ini,注意烧录名称和文件夹名称一致。

9b6c367a-c8bf-11ef-9310-92fbcf53809c.png

为了方便工程文件的管理,把原文件下的 demos 文件夹、lcd_conf_user.h、lv_conf.h 全删了,创建 components 文件夹,在 components 文件夹下创建 UI 文件夹

关键的地方来了!需要添加新的 lcd_conf_user.h、lv_conf.h,以及触控 IC 配置文件 touch_conf_user.h 到 UI 文件夹下。

这三个文件推荐在AiPi-Radar-WakeUp工程下寻找,路径在componets下的UI界面(和刚刚创建的一样),这里可以看到多了两个lv_user_config 的.c 和.h 文件,这两个文件目前使用 rtos ,本次教程暂时不用。

9b874bb8-c8bf-11ef-9310-92fbcf53809c.png

9b9a375a-c8bf-11ef-9310-92fbcf53809c.png

UI界面下还有两个 custom 和 generated 文件夹,这是刚刚从 GUI-Guider 中生成的工程中 copy 过来的,进入前面生成的 LVGL 工程目录中(如下图),复制custom 和 generated,粘贴到UI 文件夹下

9bb66c90-c8bf-11ef-9310-92fbcf53809c.png

9bd259dc-c8bf-11ef-9310-92fbcf53809c.png

这里使用 Samba,所以在Linux 和 Windows 共同操作文件很方便,不会的朋友看之前出过的教程,因为不仅仅适用于本教程。

(五)零基础开发小安派-Eyes-S1【入门篇】——Samba 共享文件夹)

修改CMakeLists.txt,将刚刚添加的所有文件、文件夹参与编译。

9bee6fe6-c8bf-11ef-9310-92fbcf53809c.png

最后修改Main,由于只显示图片,触控功能也还没用上,简单调用一下,注释可以查看如下代码。

Main

#include "board.h"
#include "bflb_gpio.h"
#include "bflb_l1c.h"
#include "bflb_mtimer.h"


#include "lv_conf.h"
#include "lvgl.h"


#include "lv_port_disp.h"
#include "lv_port_indev.h"


#include "lcd.h"
#include "gui_guider.h"
#include "custom.h"


lv_ui guider_ui;
//该类型变量必须是全局变量


/* lvgl log cb */
void lv_log_print_g_cb(const char *buf)
{
    printf("[LVGL] %s", buf);
}


int main(void)
{
    board_init();


    printf("lvgl case
");


    /* lvgl init */
    lv_log_register_print_cb(lv_log_print_g_cb);
    lv_init();


    //显示器初始化
    lv_port_disp_init();


    //外部输入初始化(Touch触摸)
    lv_port_indev_init();


    //设计小部件的UI布局
    setup_ui(&guider_ui);


    printf("lv_task_handler
");


    custom_init(&guider_ui);


    printf("lvgl success
");


    while (1) {
        //LVGL事物处理
        lv_task_handler();
        bflb_mtimer_delay_ms(1);
    }
}

04 配置文件修改

看到前面是不是迫不及待编译?发现编译不了,因为还没说完9c0a7452-c8bf-11ef-9310-92fbcf53809c.png,这里LVGL 工程是添加了二维码控件的,所以需要修改 lv_conf.h 下的控件,打开 lv_conf.h,可以看到里面有许多控件的宏定义,这边打开对应的宏定义即可,聪明的小伙伴应该知道了在工程中添加了什么组件,需要这边打开对应的宏定义,QRCODE 控件在 667 行,将 0 改为 1.保存编译烧录即可。

9c164232-c8bf-11ef-9310-92fbcf53809c.png

烧录完是不是看到图片是竖着的,因为又还没说完9c0a7452-c8bf-11ef-9310-92fbcf53809c.png,前面提到的分辨率设置问题,320x240还是240x320。这里选择 320x240 设置就是横屏显示,但是屏幕默认是竖屏显示,所以需要修改 lcd_conf_user.h。顺便教给大家配置的方法,3.5 寸屏幕和 2.4 寸屏幕共用一个驱动。所以进入到 lcd_conf_user.h 中,首先宏定义屏幕驱动。

9c4e488a-c8bf-11ef-9310-92fbcf53809c.png

LCD_SPI_ST7796_Ai 是屏幕驱动,然后下拉到 LCD_SPI_ST7796_Ai 的相关配置下,修改显示的配置,将 LCD_ROTATED_NONE 注释掉,然后将 LCD_ROTATED_90 取消注释,这样屏幕就是横屏显示了。

9c5e83bc-c8bf-11ef-9310-92fbcf53809c.png

05 效果显示

屏幕效果展示

9c7ea7dc-c8bf-11ef-9310-92fbcf53809c.jpg

扫码后页面显示

9c99e5c4-c8bf-11ef-9310-92fbcf53809c.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    25

    文章

    6127

    浏览量

    113461
  • LVGL
    +关注

    关注

    2

    文章

    115

    浏览量

    4278

原文标题:零基础开发小安派-Eyes-S1【进阶篇】——初识 LVGL 并搭建最小工程

文章出处:【微信号:安信可科技,微信公众号:安信可科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何用小安-Eyes-S1做一个电子木鱼?

    2024年的第一篇教程来了,本篇学习如何添加LVGL事件,制作完成一个电子木鱼(小美苦苦哀求,我略微出手而已)。祝大家2024积德累功,心想事成!接下来看看如何用小安-
    的头像 发表于 01-13 15:18 1923次阅读
    如何用<b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>做一个电子木鱼?

    零基开发小安-Eyes-S1外设篇——GPIO 输入输出

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP摄像头接口,外置ES8388音频编解码芯片以及预留TF卡座,并且引出USB接口,可接入USB摄像头。 从开始学习小安
    的头像 发表于 10-25 13:50 1743次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>开发</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>外设篇——GPIO 输入输出

    零基开发小安-Eyes-S1外设篇——GPIO中断编程

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP摄像头接口,外置ES8388音频编解码芯片以及预留TF卡座,并且引出USB接口,可接入USB摄像头。 产品资料:https://docs.ai-thinker.com/eyes
    的头像 发表于 10-29 14:56 1444次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>开发</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>外设篇——GPIO中断编程

    零基开发小安-Eyes-S1外设篇——I2S

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP摄像头接口,外置ES8388音频编解码芯片以及预留TF卡座,并且引出USB接口,可接入USB摄像头。 从开始学习小安
    的头像 发表于 12-13 18:02 2009次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>开发</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>外设篇——I2<b class='flag-5'>S</b>

    零基开发小安-Eyes-S1 外设篇——DAC

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP摄像头接口,外置ES8388音频编解码芯片以及预留TF卡座,并且引出USB接口,可接入USB摄像头。 从开始学习小安
    的头像 发表于 12-27 10:55 1614次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>开发</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b> 外设篇——DAC

    零基开发安信可小安-Eyes-S1【入门篇】——初识小安-Eyes-S1

    初识小安-Eyes-S1 前言:本教程针对零基础人员可以快速上手小安
    发表于 09-08 11:06

    小安-Eyes-S1/S2多功能开发板简介

    今天,我们在小安放出新鲜的开发板产品AiPi-Eyes-S1小安-
    的头像 发表于 06-19 10:10 1582次阅读
    <b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>/<b class='flag-5'>S</b>2多功能<b class='flag-5'>开发</b>板简介

    小安-Eyes-S1外设接口简介

    前言:本教程针对零基础人员可以快速上手小安-Eyes-S1实现一些简单的应用开发,仅供参考学习,本人也在学习的过程中,感谢大家支持。
    的头像 发表于 09-18 09:55 1433次阅读

    零基开发小安-Eyes-S1【入门篇】——初识小安-Eyes-S1

    前言:本教程针对零基础人员可以快速上手小安-Eyes-S1实现一些简单的应用开发,仅供参考学习,本人也在学习的过程中,感谢大家支持。
    的头像 发表于 09-18 15:41 1306次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>开发</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>【入门篇】——<b class='flag-5'>初识</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>

    零基开发小安-Eyes-S1【外设篇】——PWM

    小安-Eyes-S1【入门篇】——初识小安-Eyes-S
    的头像 发表于 11-06 16:10 773次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>开发</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>【外设篇】——PWM

    零基开发小安-Eyes-S1 外设篇 ——I2C

    。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP摄像头接口,外置ES8388音频编解码芯片以及预留TF卡座,并且引出USB接口,可接入USB摄像头。 从开始学习小安
    的头像 发表于 11-27 16:39 1311次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>开发</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b> 外设篇 ——I2C

    零基开发小安-Eyes-S1【外设篇】——FLASH

    。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP摄像头接口,外置ES8388音频编解码芯片以及预留TF卡座,并且引出USB接口,可接入USB摄像头。 从开始学习小安
    的头像 发表于 12-05 14:31 1066次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>开发</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>【外设篇】——FLASH

    零基开发小安-Eyes-S1【进阶篇】——初识 LVGL 搭建最小工程

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP摄像头接口,外置ES8388音频编解码芯片以及预留TF卡座,并且引出USB接口,可接入USB摄像头。 从开始学习小安
    的头像 发表于 01-06 16:14 1341次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>开发</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b>【进阶篇】——<b class='flag-5'>初识</b> <b class='flag-5'>LVGL</b> <b class='flag-5'>并</b><b class='flag-5'>搭建</b><b class='flag-5'>最小工程</b>

    零基开发AiPi-Eyes-S1——通过屏幕输入连接Wi-Fi

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP摄像头接口,外置ES8388音频编解码芯片以及预留TF卡座,并且引出USB接口,可接入USB摄像头。 从开始学习小安
    的头像 发表于 01-15 09:27 1006次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>开发</b>AiPi-<b class='flag-5'>Eyes-S1</b>——通过屏幕输入连接Wi-Fi

    零基开发小安-Eyes-S1 进阶篇 ——通过屏幕输入连接 Wi-Fi

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP摄像头接口,外置ES8388音频编解码芯片以及预留TF卡座,并且引出USB接口,可接入USB摄像头。 从开始学习小安
    的头像 发表于 01-16 09:47 711次阅读
    <b class='flag-5'>零基</b>础<b class='flag-5'>开发</b><b class='flag-5'>小安</b><b class='flag-5'>派</b>-<b class='flag-5'>Eyes-S1</b> 进阶篇 ——通过屏幕输入连接 Wi-Fi