|
作者声明:
本文版权归作者ifm所有,未经作者授权,本文禁止以任何形式在数码之家(www.mydigit.cn)以外的任何平台(包括但不限于各网站、论坛、博客、微博、公众号等)部分或全部地转载,禁止二次修改后声明原创。授权转载内容请注明出处,并标明本站网址。文中所有资源仅供学习使用,本人不承担任何由使用文中代码产生的任何法律责任。
这个收音机是给家里老人用的,老人用的话功能当然是越简单越好,市面上的收音机操作起来对老年人可能不是很友好,大部分收音机都有长按上一曲、下一曲进行自动搜台的功能,而且搜索完成后会自动保存,看起来是个还不错的功能,但是老年人手有点笨,稍微按得时间长一点就变成搜台,有时候信号不太好有的台搜不到,老人经常说收音机不好用。而对于哪些有收音机功能的小音箱,操作就更复杂了,开机以后是mp3播放界面,长按功能键2秒返回菜单,再按左右键选择收音机功能,再按确认件进入收音机,这样的操作对于年轻人根本算不上复杂,但对老人来说就比较难了,更何况屏幕上的字还很小,老人很难看清。总的来说,市面上的收音机主要目的是赚钱,或者是面向年轻人,几乎没有站在老人的角度去考虑如何设计产品,为了解决这些问题,我就亲自打造一台简单好用的收音机。
硬件介绍:
主控:STC15W4K48S4
显示屏:128*64 OLED屏 SPI接口
收音芯片:TEA5767
温湿度计:DHT11
功放:PAM8403
充电:TP4056
稳压:RT9193 喇叭:2寸,50*50*23mm,4欧,3w
外壳:125*80*32mm
主要功能:
自动搜台:所谓的自动搜台就是程序里预置电台的名称和频率,只要按上下键换台就行,操作非常简单,考虑到老人基本不会去其他城市生活,我只需要知道本地的正规电台的频率和名字写死在程序里即可
手动搜台:按键加减0.1Mhz手动调台,说实话,这个功能更多的是为了我方便调试设计的,老人基本不用
其他功能:查看温湿度,电池电量
屏幕显示:屏幕的物理分辨率是128*64,软件上做了一次放大,当做64\*32的屏幕使用,字体更大,方便老人阅读
程序代码:
FYI
有人问为什么我这么喜欢用STC?其实Arduino、STM32、树莓派、全志开发板我都玩过,主要原因是当初学单片机买了2片STC89、2片STC12C5A、还有10多片各种封装的STC15W4K,放着不用太浪费,所以简单的制作我优先考虑STC,就是为了消灭这些存货。
======== 分割线 ========
制作过程:
估算大小,买个差不多的盒子,都是通用尺寸的盒子,外形125*80*32mm,盒子就不放图了,在中国最大的在线电子商务网站上能找到同款盒子。
等快递的同时先把原理图搞定(原理图和PCB中有一些错误,我也懒得改,就不开源了,别说量产,我都不会去做第二个,所以没有修正,将错就错,后面焊接时我会做改动,下文会说明)
盒子到了以后第一时间测量螺丝孔位,大概估算各个器件的布局,把PCB画好(PCB也很少有一次性就能画好的,同样将错就错,改动的地方下文会说明)
我也记不清从哪里弄来的喇叭,规格是2寸喇叭,50*50*23mm,先放上去估算一下喇叭螺丝孔的位置,画好线准备开孔。
开好了螺丝孔和固定PCB的孔
如何完美的打出上百个孔?当然是用洞洞板,照着洞洞板打孔基本上就不会跑偏了
正好用上螺丝孔固定一下洞洞板
先在周围打一圈孔试一下,效果还行
前方高能,所有孔都打完的效果,密恐请回避
清理完以后正面的效果是这样的
背面是这样的
喇叭不能直接固定在外壳上,首先喇叭纸盆边上的橡胶圈会碰到外壳,声音开大了会有嗞嗞声,其次密封效果不好,直接用螺丝拧上去还会把金属边压变形,所以用这个3mm厚的纸板裁个边,把喇叭垫起来
裁剪好以后的效果是这样的,喇叭部分就处理完了
下一步继续开孔,给屏幕的孔划线
屏幕开孔的效果是这样的,继续给按键开孔,开孔的方法都一样,先用电钻钻一圈,然后锉刀慢慢修
简单打磨一下
继续给后盖开一个电源开关的孔
原本打算装扭子开关,我想着拧紧一点更结实,然后大力真的出奇迹了……
我得到了一堆扭子开关的尸体……
但是非常巧,PAM8403模块的音量旋钮正好带开关,重新开一个孔,注意细节,上面有一个小凹槽用来定位,原来的开关孔就放DHT11
原配的旋钮有点长
锯短一点
装上看一下,这个长度刚好
打样的PCB到了,正反面展示一下
这里说明一下实际PCB改动的地方,TEA5767模块下面的这三根线全部割断,U6的VCC和GND之间加一个电容,然后TEA5767的GND从这里飞过去可以有效减少噪声,TEA5767的MPX用来做DHT11的数据线,也就是下面标注的哪个引脚,DHT11的电源从U6引出,U6原本是打算接SHT30的,但SHT30是真的贵啊,于是换了DHT11。电源接口的GND也接错了,后来一根飞线,按键的上拉电阻也错了,后面也是飞线解决
充电用的TP4056,直接拆一个就行
拆完了,准备开始焊
原本TP4056模块上的限流电阻是1206封装的,有点小,我这里换了2010封装,这是焊好的TP4056和RT9193,还有两个跳线
这里注意与电源插座的接成了与GND开关相连的哪个脚,这个脚在插入插头以后会断开,原本是用来做外界供电检测的,但我脑残了直接把GND连到这里,没办法,只能飞线。
正面焊好串口排针,单片机电源旁边的电容,还有两个用来检测电池电压的分压电阻
然后就是焊接TEA5767、按键、DHT11、还有一个3.5mm耳机孔用来调试,天线一般来说用75cm左右的1/4波天线比较合适,我打算内置天线,这个天线是以前一个坏的小音箱里拆的,天线部分是我的知识盲区,商用产品里用的天线应该不会差,反正能用就对了。按键这里注意上面的那根飞线,我脑残画错了上拉电阻,只能这样解决了,反正用单片机上拉也没问题。
编程的过程略,最后开始组装。圆形的按键帽两边削掉,不然装不上。
焊接屏幕,热熔胶固定天线,拆掉耳机接口
功放板、喇叭、还有功放板旋钮的开关飞线
电池用旧手机的电池,放心这块电池是出事之前生产的,不会爆炸
电池背面用双面胶固定,DHT11热熔胶固定
合上外壳,用胶带粘死,外壳背面有螺丝孔为什么不用螺丝固定?因为买盒子没送螺丝,手头也没有合适的螺丝。屏幕随便裁一块透明塑料,简单粘一下。
最后放几张图展示功能,四个按键分别是手动/自动搜台、温湿度和电量、上、下,这是温湿度界面,任何情况下按一下第二个按键就会进入这里,3秒后自动返回
电池电量界面,进入温湿度界面后再按一下第二个按键会进入电量界面,3秒后返回
按第一个按键切换手动、自动搜台模式,手动模式下按上下键加减0.1MHz,自动模式下按上下键换台
演示视频:
end |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|