打印
[uCOS/RTOS]

【RTOS】+ RT-Thread 应用创新设计大赛作品 - 基于麻雀一号的...

[复制链接]
2061|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
【RT-Thread作品秀】基于麻雀一号的音乐播放器
作者:wenzi


概述
当前作品采用的是麻雀一号开发板,搭载的是 BK7252 芯片,在本次提交的作品中,所涉及到的硬件便是 BK7252 芯片,以及 SD 卡,还有 LCD 屏幕以及扬声器,最后就是用于选择播放哪一首音乐的五向按键。最终所实现的功能就是能够读取到文件系统里的文件,然后通过按键选择应该进入哪一个文件夹或者是应该播放哪一首音乐,如果按键选择的是文件夹,那么就会进入到当前文件夹内,相应的 LCD 屏幕会显示出当前文件夹下面的文件,并且在 LCD 屏幕中显示出来,在显示的文件里,可以读出文件的类型。如果在播放音乐的过程中,想要播放下一首音乐,则需要先暂停掉行前的音乐,然后再通过按键选择要播放的音乐进行播放。

RT-Thread使用情况概述
在整个开发过程中,我是基于 RT-Thread 进行开发的。整个作品所用到的 RTT 内核部分,就是关于线程的创建,所伴随的就是线程的切换,以及使用了信号量进行任务之间的同步。
组件部分
其中所为广泛使用的就是 RTT 的 finsh 组件,通过 finsh 组件,我们可以方便地进行当个功能的测试,将要测试的功能导出至命令行,就可以在命令行就运行我们要进行测试的功能,同时finsh 组件的存在还可以使得我们能够方便地重启设备,直接在命令行输入 reboot 就可以达到重启的目的。另外,我们需要能够播放音乐,还使用了 RTT 所提供的 player 组件,使得我们可以方便地进行播放音乐,停止音乐。还有一个重要的部分就是文件系统组件,在本作品中,使用了两个文件系统,第一个文件系统是只读的,用于读取 BK7252 芯片的所具有的 flash0,flash1,以及 SD 卡,这个文件系统用于访问这些块设备,然后,在 sd 卡上搭载的是 littlefs 文件系统,我们可以在此文件系统上访问 SD 卡设备里的文件,这个系统是可读可写的,所以也就可以更改 sd 卡里面的相关内容,进行新建或者删除文件的操作。
软件包部分
RTT 最比较突出的一个特点就是软件包丰富,我们可以利用软件包完成一系列的事情,在本次作品中,使用了MultiButton,一个基于事件触发的按键驱动包,采用异步回调的方式。我们能够增加按键按下的状态,同时也能够以回调函数的形式进行书写按键处理函数,使用起来极其方便。
硬件框架
硬件采用的就是麻雀一号的开发板,我在使用这个开发板的过程当中,为了完成本次作品,主要使用到了开发板上的SD卡,LCD 屏幕,无线烧录器,BK7252 蓝牙芯片,扬声器,以及五向按键。
软件框架说明
软件方案框图,本次应用所涉及到的部分,一个是关于按键的检测,一个是关于 LCD 屏幕的显示,另一个就是关于音乐文件的播放,最为关键的就是关于文件系统里的文件的读取,要准确地将按键按下的状态与 LCD 的显示联系起来,按键按下,LCD 进行显示相应的文件。所以总体的流程图如下图所示:

软件模块说明
在整个作品的代码中,最为关键的就是关于读取文件系统中的文件的操作,在这个过程中,会涉及到关于字符串的操作,需要将按键所选择的字符串拼接起来,形成路径,并且还需要判断当前所选择的是文件夹还是 .mp3 文件,如果是 .mp3 文件,那么就应该播放当前的 mp3 文件,如果不是 .mp3 文件,那么就应该打开所选的文件夹,然后将打开的文件夹下的文件读出来并且显示到屏幕上来。

演示效果
图片展示:


视频连接:
https://v.qq.com/x/page/f31106005s7.html?pcsharecode=&sf=uri

代码地址
https://gitee.com/wenzi_d/sparrow_one_entry






RT-Thread应用创新设计大赛作品模板(1).pdf

603.04 KB

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝