设计一个仪表徽章:具有语音识别功能
大约两周前,我决定购买一张2026年在加州圣马特奥举行的Open Sauce大会的门票。我最近搬到了湾区,所以我想这将是一个很好的机会,可以看看一些很酷的项目,并看到一些我最喜欢的制造商在行动!
为了让事情更具挑战性,在活动开始前一周,我决定设计我自己的大会徽章……
这个概念
不可否认,进入徽章设计,我有一个基于一个很酷的应用说明的初步计划,我最近偶然发现Microchip Technologies:“使用模拟信号调理(OPAMP)外设的低bom麦克风接口”。我最近一直在重新使用pic为我的一些更基本的项目,我没有使用集成到微控制器的运放外设之前,所以我认为这将是一个很好的学习机会!
在检查了一些数据表后,我决定在DIP40包中为这个项目使用PIC16F17576微控制器。为了查看放大的麦克风信号,我还决定实现一个基本的VU(音量单位)仪表与一些5mm的led。
在构思出徽章的技术概念后,我开始思考更重要的方面:美学。
我想让这个徽章与整个活动联系起来,所以我决定把所有东西都放在吉祥物的头上:博尔特!我认为这实际上与整体设计非常好,因为我能够利用PIC的DIP40封装作为嘴,增益锅和模式开关作为眼睛,VU仪表led作为额头/眉毛。
PCB设计
我将忽略这一部分,因为我直接从应用说明中取出麦克风输入电路,而电路板的其余部分只是连接到GPIO引脚的led。然而,当我审查(2)运算放大器和ADC的连接时,有一个“抓到你”的时刻,我想与全班分享。
最初,我认为没有连接到MCU外部是必要的,因为我认为设备内部会有某种MUX将一个运放的输出路由到另一个运放的输入,并将该运放的输出路由到ADC……错了。PIC16F17576没有任何内部方法来提供这些连接,因此它们必须在应用PCB上外部进行。这是非常令人惊讶的,因为我发现其他设备,如PIC18-Q71系列,具有相同的OPA外设与内部多路复用器。
幸运的是,我通过配置MPLAB中的外设并注意到没有OPA输出连接选项到ADC,以某种方式避免了基于我最后一分钟的抽查。这绝对是一个很好的提醒,永远不要假设外围设备以相同的方式实现,即使在同一设备线中!
机械设计
为了进一步建立美学,我决定通过在模式开关/增益锅和DIP-40口添加一些3d打印口音来增强徽章。
经过一点3D打印和热熔胶工程之后,我们的机械升级准备好了!
PCB组装
我的电路板从PCBWay寄出后,我迅速完成了所有部件的组装,以便开始着手软件开发。我设计这个电路板时采用了100%通孔元件,以确保组装过程快速简便。此外,我也考虑到未来可能有其他人想尝试这个项目……
在完成所有组件的组装并首次通电后(没有出现“神奇烟雾”),我便可以开始着手软件部分的开发了!
软件设计
同样地,我将跳过大部分内容,因为我的大部分时间都花在MCC中配置OPA和ADC外设上,并调整睡眠设置、禁用外设以降低硬币电池的功耗。我使用Nordic PPK2来测量功耗,并借助我在Tindie上找到的一个实用的硬币电池模拟器 breakout模块,直接插入到我加装在电路板上的Keystone 3035支架上,以便测试不同的睡眠模式配置。很遗憾,通过这次测试我发现,静止电流主要来自偏置电阻上的麦克风泄漏。我本以为可以加一个FET来在徽章处于休眠状态时关闭它(太马虎了!)。幸运的是,这个设备只需要在我参加展会的那几个小时保持通电即可,但我强烈建议其他人在自己开发的设备上实现该电路时修复这个问题!请务必保存好纽扣电池!
在弄清楚电源管理部分后,OPA和ADC的设置就相当简单了。一旦在MCC中配置好必要的寄存器并生成初始化代码,运算放大器便成为独立的器件,无需应用代码干预即可正常工作。当我完成反相配置和增益设置后,便用示波器查看输出信号,确认了其功能!
当我在MCC中完成所有基本引脚和外设的配置后,只需编写一些应用代码,使用硬件定时器定期采样连接到运算放大器输出端的ADC输入,并将12位数字输出映射到我们的7VU表LED灯上即可。我还实现了一些基本的采样逻辑,用于采集10个样本,并根据最小值和最大值计算P2P,因为这是一个音频信号。
未来工作
说实话,我对这个特定电路板目前的成果已经相当满意,因此并没有打算投入更多精力。不过,我确实为Bolt的“鼻部”添加了3个额外的LED灯(目前并未使用),所以或许我会加入一个3位二进制加计数器或炫酷的渐变序列之类的功能,纯粹是出于兴趣。
本文编译自hackster.io





