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

木鱼声一响,烦恼走光光~敲电子木鱼,品赛博人生,今天你的功德积累到多少了?
2024年的第一篇教程来了,本篇学习如何添加lvgl事件,并制作完成一个电子木鱼(小美苦苦哀求,我略微出手而已)。祝大家2024积德累功,心想事成!接下来看看如何用小安派-eyes-s1做一个电子木鱼。
01、gui-guider 页面设计
先新建一个工程。
直接进入 ui 设计界面,这里用到了两个组件,一个是图片按钮,一个是文本框。
先添加一个图片按钮,这就需要一张木鱼图,大家可以添加自己喜欢的任意图案。大小比例记得调整,需要注意的是,这里建议准备两张一模一样的图片,区别在于他们的大小,一张大图+一张小图,大图添加在释放后的图片,小图添加在按下时图片,就达成敲下去的变化效果。
添加一个文本框,先固定好位置,在右侧的文本输入“功德 +1”字样,注意字体选择simsun才可以显示中文。到这一步,所需要的组件已经添加成功了。
接下来添加图片按键的事件。需要实现的效果是,在按下图片(木鱼)时将“功德 +1的文本框向上移动,在释放图片(木鱼)时将”功德 +1“隐藏。这样的效果就是点击时会出现”功德 +1“飘出来的效果。
1.点击左侧 imgbtn_1,图片按钮
2.点击手指图标事件设置。只需要配置两个事件,pressed(按下)和 released(释放)。
3.点击 pressed(按下),在组件里选中 label_1,也就是文本框,在 animation 选项下勾选移动,设置需要移动的坐标,也就是按下后 lable_1 移动的最终位置,下图中最终位置 x 坐标为206,y 坐标为 25,动画效果选择 linear 线性,持续时间为 50ms,也就是整个移动过程的持续时间。
4.返回上一层,点击 released,一样在组件里选中 lable_1,首先在 general 下勾选可视化,选择隐藏,也就是我们释放按钮后会隐藏文本框。
5.其次在 animation 下勾选移动,将按下图片后的文本框移动回原来的位置(即一开始的坐标位置,x 坐标 206,y 坐标 45),动画选择 linear 线性,持续时间 0 秒也就是瞬间移动。这样在按下图片时 y 轴移动文本框 20 个像素,然后在释放图片时会将文本框移动回原来的位置并且隐藏。就可以实现”功德 +1“飘出来的效果。
记得运行一下,看一下模拟器的效果,这里同时也会生成需要的工程文件。
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。
其次将所有的文件通过 cmakelists.txt 添加编译。这里附上 cmake。
在 main 里面添加一个任务,附上完整齐mian供大家参考。
03、添加木鱼敲击音频
光有画面还不行,电子木鱼的灵魂在于敲击的声音,主打一个灵魂洗涤。
这里为了方便制作,将 8388 的驱动也移植到了 commponents,修改了部分配置文件。驱动的原理是 i2s 驱动 8388 芯片,将音频文件烧录至 flash 中,然后再接口中通过 dma 输出音频文件。
这里已经找到的音频文件是wav的格式,采样率是 44100。
将音频文件放进去,然后修改 flash_prog_cfg.ini 将音频文件烧录进 flash 中,可以参考截图中的方法,起始地址可以参考 flash 教学博文中,这里选择 0x230000,如果是烧录多个文件的话,记得计算文件大小,确保地址空间不重复。
添加一个 muyu_8388_pcm.h 文件,定义木鱼音频的起始地址和大小。这里初始化函数在 8388_pcm.c 中已经有,只需要编写一个 voice_muyu 的函数。
修改8388_pcm.c 文件,编写一个播放函数,这个函数也是调用 play_voice 这个接口,参数为音频文件的地址和大小。同时修改 i2s 的初始化,采样率是 44100。
主函数中记得将 8388 芯片初始化。
修改lvgl工程中的 events_init.c,这个文件是事件控制文件,添加muyu_8388_pcm.h 头文件,在 pressed 事件中加入播放音频的接口。
来看看最终效果
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


深圳国际物联网展圆满落幕,亿佰特收获颇丰!荣膺创新产品“IOTE金奖”
打造全民阅读新风尚 海信阅读手机京东4.23悦读节豪礼送不停
电磁流量计在湿法炼锌过程中的选型设计和安装维护
小米王腾点赞华为MateX 比三星好很多但价格不评论
EGAXT-100/L5M冲击加速度传感器
功德+1,用小安派-Eyes-S1做一个电子木鱼
深信服桌面云(aDesk)学习笔记
关于过孔滑环的典型性运用時间介绍
欧姆龙G6K-2F-RF-V继电器优点
富士通希望成为企业值得信赖的数字化转型伙伴
铅蓄电池过充、过放保护电路,Lead-acid battery over charge, over discharge protection circuit
机器人医生十秒内就可以开药,你信吗
Qorvo推出业界最小和最节能的Wi-Fi前端模块
人脸识别的行业乱象 我国人脸识别立法该如何走
直流电动机转速不稳的原因及处理
摩尔定律的经济效益显然已达到终点,产业发展将会受到限制
放大电路的三种组态的识别与比较,放大电路的三种组态的特点与用途
人工智能怎么赋能健康智能终端?推进健康中国的建设进程?答案都在这!
细节对比,OPPOr11和华为荣耀9,颜值、性能看谁更厉害!
无限流量到最后为什么又开始限速了?这里告诉你