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

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

3天内不再提示

功德+1,用小安派-Eyes-S1做一个电子木鱼

AIoT行业洞察 来源:AIoT行业洞察 作者:AIoT行业洞察 2024-01-16 14:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

木鱼声一响,烦恼走光光~敲电子木鱼,品赛博人生,今天你的功德积累到多少了?

2024年的第一篇教程来了,本篇学习如何添加LVGL事件,并制作完成一个电子木鱼(小美苦苦哀求,我略微出手而已)。祝大家2024积德累功,心想事成!接下来看看如何用小安派-Eyes-S1做一个电子木鱼

01、GUI-Guider 页面设计

先新建一个工程。

wKgZomWmIxiAL2TrAAEzF9RQ8aE018.png

直接进入 UI 设计界面,这里用到了两个组件,一个是图片按钮,一个是文本框

先添加一个图片按钮,这就需要一张木鱼图,大家可以添加自己喜欢的任意图案。大小比例记得调整,需要注意的是,这里建议准备两张一模一样的图片,区别在于他们的大小,一张大图+一张小图,大图添加在释放后的图片,小图添加在按下时图片,就达成敲下去的变化效果。

wKgaomWmIxmALnB3AACNsAr0HSc53.jpeg

添加一个文本框,先固定好位置,在右侧的文本输入“功德 +1”字样,注意字体选择simsun才可以显示中文。到这一步,所需要的组件已经添加成功了。

接下来添加图片按键的事件。需要实现的效果是,在按下图片(木鱼)时将“功德 +1"的文本框向上移动,在释放图片(木鱼)时将”功德 +1“隐藏。这样的效果就是点击时会出现”功德 +1“飘出来的效果。

1.点击左侧 imgbtn_1,图片按钮

wKgZomWmIxmAcWEmAACtg73l-p809.jpeg

2.点击手指图标事件设置。只需要配置两个事件,Pressed(按下)和 Released(释放)。

3.点击 Pressed(按下),在组件里选中 label_1,也就是文本框,在 Animation 选项下勾选移动,设置需要移动的坐标,也就是按下后 lable_1 移动的最终位置,下图中最终位置 x 坐标为206,y 坐标为 25,动画效果选择 linear 线性,持续时间为 50ms,也就是整个移动过程的持续时间。

wKgaomWmIxmAXZKQAACFF7i_Q8w46.jpeg

4.返回上一层,点击 Released,一样在组件里选中 lable_1,首先 General 下勾选可视化,选择隐藏,也就是我们释放按钮后会隐藏文本框。

wKgZomWmIxqAPe_eAAB9bY7Hb2Q03.jpeg

5.其次在 Animation 下勾选移动,将按下图片后的文本框移动回原来的位置(即一开始的坐标位置,x 坐标 206,y 坐标 45),动画选择 linear 线性,持续时间 0 秒也就是瞬间移动。这样在按下图片时 Y 轴移动文本框 20 个像素,然后在释放图片时会将文本框移动回原来的位置并且隐藏。就可以实现”功德 +1“飘出来的效果。

wKgaomWmIxqAd2CXAACDcxA2YG031.jpeg

记得运行一下,看一下模拟器的效果,这里同时也会生成需要的工程文件。

wKgZomWmIxuAOmIdAABcERceYAw089.gif

02、文件移植

这里建议使用 FreeRTOS 加一个刷新 LVGL 屏幕的任务。将上次没移植的文件,也就是 lv_user_config 的.c 和.h 文件一并放进来,文件可以在 AiPi-Radar-WakeUp 下的 components 下的 UI 复制过来,方法不在赘述。

由于本次刷新 LVGL 需要 FreeRTOS,所以还需要复制 config 下的 FreeRTOSConfig.h,一并放在工程目录下,同时修改 proj.conf 文件,添加 set(CONFIG_FREERTOS 1),开启 RTOS。

wKgaomWmIxuASpYgAAGDRyJific27.jpeg

其次将所有的文件通过 CMakeLists.txt 添加编译。这里附上 CMake。

wKgZomWmIxyAefvcAAF7Tarz4aQ22.jpeg

在 Main 里面添加一个任务,附上完整齐Mian供大家参考。

wKgZomWmIxyAdSnzAAZLXgBL510879.png

03、添加木鱼敲击音频

光有画面还不行,电子木鱼的灵魂在于敲击的声音,主打一个灵魂洗涤。

这里为了方便制作,将 8388 的驱动也移植到了 commponents,修改了部分配置文件。驱动的原理是 I2S 驱动 8388 芯片,将音频文件烧录至 flash 中,然后再接口中通过 dma 输出音频文件。

这里已经找到的音频文件是wav的格式,采样率是 44100。

wKgaomWmIx2AI60yAAA93M1A0sw46.jpegwKgZomWmIx2ADz03AAB0fQ87u8872.jpeg

将音频文件放进去,然后修改 flash_prog_cfg.ini 将音频文件烧录进 flash 中,可以参考截图中的方法,起始地址可以参考 flash 教学博文中,这里选择 0x230000,如果是烧录多个文件的话,记得计算文件大小,确保地址空间不重复。

wKgaomWmIx6ACNOjAAC5IbxVjXY20.jpeg

添加一个 muyu_8388_pcm.h 文件,定义木鱼音频的起始地址和大小。这里初始化函数在 8388_pcm.c 中已经有,只需要编写一个 voice_MuYu 的函数。

wKgZomWmIx6AHLQkAACm9B1WsO027.jpeg

修改8388_pcm.c 文件,编写一个播放函数,这个函数也是调用 play_voice 这个接口,参数为音频文件的地址和大小。同时修改 i2s 的初始化,采样率是 44100。

wKgZomWmIx-ALMm2AAC0hBvFn7I85.jpeg

主函数中记得将 8388 芯片初始化。

wKgaomWmIx-AaPJbAADWiwuBBao27.jpeg

修改LVGL工程中的 events_init.c,这个文件是事件控制文件,添加muyu_8388_pcm.h 头文件,在 Pressed 事件中加入播放音频的接口。

wKgaomWmIyCAOYXTAAHVGsVL9Nk40.jpeg

来看看最终效果

wKgZomWmIyCANV47AAf3fDYxra4228.gif

04、代码及资料

●源码(见原贴评论区):(十八)零基础开发小安派-Eyes-S1【进阶篇】——LVGL事件学习_制作电子木鱼

http://bbs.aithinker.com/forum.php?mod=viewthread&tid=43990&highlight=%E7%94%B5%E5%AD%90%E6%9C%A8%E9%B1%BC&_dsign=371483a8

●小安派系列教程:

http://bbs.aithinker.com/forum.php?mod=forumdisplay&fid=189

●小安派开源硬件系列资料:

https://docs.ai-thinker.com/open_hardware

wKgaomWmIyGALcFVAAG8qIWgu2M37.jpeg

审核编辑 黄宇

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

    关注

    8

    文章

    227

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    小安立式桌摆外壳设计制作

    小安-Eyes-R2,但是直没什么时间好好的研究下。近期学习了下相关例程,感觉
    的头像 发表于 09-09 17:20 596次阅读
    <b class='flag-5'>小安</b><b class='flag-5'>派</b>立式桌摆外壳设计制作

    【开源硬件】小安AiPi-Eyes-R2详细测评+DIY天气时钟

    接口-130W像素 1 显示器-4.0寸-RGB接口40寸-像素480x480 1 咪头-2pin-1.25mm间距-交叉绞线100mm 2 具体开箱流程照片如下: 环境搭建 因为之前笔者已经用过Windows开发小安
    的头像 发表于 08-12 16:23 609次阅读
    【开源硬件】<b class='flag-5'>小安</b><b class='flag-5'>派</b>AiPi-<b class='flag-5'>Eyes</b>-R2详细测评+DIY天气时钟

    树莓做一个指纹识别方案,难不难?

    让我们在树莓单板计算机上解锁生物识别控制功能吧!生物识别技术利用每个人独有的、不易复制的生理或行为特征进行身份验证。地球上每个人的指纹都是独无二的,让我们起来探索指纹的奇妙用途吧!本文将介绍
    的头像 发表于 08-09 13:14 641次阅读
    <b class='flag-5'>用</b>树莓<b class='flag-5'>派</b><b class='flag-5'>做一个</b>指纹识别方案,难不难?

    树莓 Zero 打造的智能漫游车!

    使用PXFMini和树莓Zero打造您自己的自主漫游车。本项目所用组件硬件组件ErleRoboticsPXFmini×1树莓Zero×1树莓
    的头像 发表于 05-13 16:39 873次阅读
    <b class='flag-5'>用</b> 树莓<b class='flag-5'>派</b> Zero 打造的智能漫游车!

    功德+1小安-Eyes-S1做一个电子木鱼

    2024积德累功,心想事成!接下来看看如何用小安-Eyes-S1做一个电子木鱼。01GUI-G
    的头像 发表于 04-09 18:38 780次阅读
    <b class='flag-5'>功德</b>+<b class='flag-5'>1</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>

    洗脑了!基于小安的“萝莉摇”可爱摆件

    小安摆件 由安信可社区用户(ID:feilong)制作 前言 不知道有多少人和笔者样,被首“萝莉摇”洗脑过?打开短视频总会看到这首BGM和MV的二创。 于是笔者萌生了制作
    的头像 发表于 02-19 14:23 713次阅读
    洗脑了!基于<b class='flag-5'>小安</b><b class='flag-5'>派</b>的“萝莉摇”可爱摆件

    基于小安的可爱摆件

    小安摆件   前言 不知道有多少人和笔者样,被首“萝莉摇”洗脑过?打开短视频总会看到这首BGM和MV的二创。   于是笔者萌生了制作
    的头像 发表于 02-18 14:57 587次阅读
    基于<b class='flag-5'>小安</b><b class='flag-5'>派</b>的可爱摆件

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

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

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

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

    小安 DSL做一个天气站

    前言 小安-DSL(AiPi-DSL) 是安信可开源团队专门为Ai-M61-32S设计的款屏幕驱动开发板,支持2.8/3.5寸等30Pin SPI显示屏、2.4寸及1.28寸等18
    的头像 发表于 01-06 16:44 879次阅读
    <b class='flag-5'>用</b><b class='flag-5'>小安</b><b class='flag-5'>派</b> DSL<b class='flag-5'>做一个</b>天气站

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

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

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

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP摄像头接口,外置ES8388音频编解码芯片以及预留TF卡座,并且引出USB接口,可接入USB摄像头。 从零开始学习小安1
    的头像 发表于 01-03 14:09 1348次阅读

    使用小安DSL制作天气站

    小安 DSL做天气站 用户分享DIY   前言 小安-DSL(AiPi-DSL) 是安信可开源团队专门为Ai-M61-32
    的头像 发表于 01-03 11:18 852次阅读
    使用<b class='flag-5'>小安</b><b class='flag-5'>派</b>DSL制作天气站

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

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

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

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