蓝牙音箱

串讲

Posted by mkk on January 14, 2025

image.png 下面介绍一下我们之前做的一个蓝牙音箱,这个项目的定位就是个快销品,所以当时就各种压缩成本,项目开发周期定的也非常短。所有当时做技术选型时,就选择使用了杰理的一款芯片,型号是JL-AC7916,这款芯片是专门为音频产品设计的,支持WIFI、蓝牙,以及音频处理,包括音频解码、数模转化等等,所以使用这款芯片,只需要外接一个功放(功率放大器)和一个扬声器,就能快速搭建起一个蓝牙音箱产品。

接下来我介绍一下这个项目的具体功能,首先是基本的蓝牙连接和播放音乐,然后音箱上还有几个功能按键,用于调整音量、播放暂停、切歌等等,除此之外,我们还做了几个数码管,自己用LED拼的,用于显示歌曲时长。

然后我再介绍一下项目的实现细节,项目的开发主要依赖于杰理官方的SDK,这个SDK中有很多成熟的DEMO,其中就有一个经典蓝牙(EDR,Enhanced Data Rate)的案例,背景正好就是蓝牙音响。所以我们当时就是直接在这个案例的基础之上进行开发的。

杰理的SDK,整体是一个事件驱动型的架构,它为每个片上外设都定义了各种事件,然后事件发生后,就会执行相应的事件处理函数,所以基于这个SDK开发,主要就是编写各种事件处理函数。

因为当时用的这个案例中,已经包含了蓝牙音响的大部分逻辑,包括蓝牙的连接和播放音乐,以及功能按键,所以我当时主要就是编写了显示歌曲时长的相关逻辑,这部分逻辑主要分为两部分吧,一部分是向手机端请求歌曲信息,另一部分就是将得到的信息显示到数码管。数码管的显示逻辑,就是个普通的动态刷新,这个就不展开介绍了。然后请求歌曲信息,也比较简单,当时就是写了一个定时器,然后定期的向手机端发送获取音乐的信息命令,这些命令,杰理的SDK也都封装好了,直接调用就行,然后手机端返回音乐信息,会触发杰理SDK中的一个事件,我们只需在这个事件处理函数中更新数码管显示的内容就可以了。

以上就是这个蓝牙音响的全部内容。