发新帖本帖赏金 50.00元(功能说明)我要提问
1234下一页
返回列表
打印
[活动]

一个遥控器的诞生

[复制链接]
44104|76
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cjseng|  楼主 | 2021-9-19 22:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 cjseng 于 2021-9-19 22:43 编辑

#申请原创#
一个遥控器的诞生
7月初接到客户订单,要求订购一批遥控器,功能需求如下:通过和信号机无线连接对路口信号灯进行步进、指定相位、全红、黄闪的控制。(按钮为机械按钮,方便冬天带手套使用时也能灵活操作,带OLED显示屏,强光下也能看清楚,分辨率不低于128*64,各个遥控器间通用,方便使用时的替换)。交货期2个月。
接到订单,开始构思,脑子里有了大致方案后,采购了一些元器件,估摸着用得着的都买买买。淘宝选了一个遥控器外壳图片,发给客户确认,客户表示认可。就是下面这个样子:

开始画遥控器原理图,单片机选了STC15W4K32S4,接一个OLED屏,一个无线数传模块,再加个电池充电电路,其它的按键指示灯都是常规电路。因为是电池供电,这里边无线模块是个耗电大户,必要时要切断电源,所以,对无线模块的电源用一个PMOS加以控制。


接下来画PCB了,首先确定PCB外形和定位孔,问淘宝卖家要来壳子CAD图纸。

删掉对我没用的部分,只保留跟PCB外形有关的部分,修改一下,导入AD,看起来像个旗袍。

为了确保外形、螺丝孔准确,将图纸导入文泰雕刻。
用文泰雕刻生成雕刻加工文件,用雕刻机雕了一块环氧板,放入外壳比划一下:

严丝合缝,感觉不错,后来又微调了一下。
外形尺寸确定了,屏幕和按键的布局,也要让客户确认下,先用AD画好布局,另存为CAD格式,打开CAD,和原先的外壳图纸拼合一下,再打印成pdf文件,导入Photoshop,马马虎虎画个效果图,客户看了表示很OK。

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 50.00 元 2021-09-29
理由:恭喜通过原创文章审核!请多多加油哦!

评分
参与人数 1威望 +15 收起 理由
tyw + 15 终于下蛋了,哈哈

相关帖子

沙发
cjseng|  楼主 | 2021-9-19 22:43 | 只看该作者

然后开始画PCB,随便画画,很快画好了

上面是天线,车间里的工人称为“弹簧”,下面底部有个TYPE-C充电口。
遥控器的板子就这样了,有了遥控器,还得有个接收器,找了个合适的塑料壳,就当接收器外壳了,原理图、PCB如下:


齐活之后,发出去打样,等候的时间,我就研究一下OLED,这玩意儿第一次用,看了厂家的文档,全英文的,有点头疼。不管它了,船到桥头自然直。





45602614565c377bae.png (116.22 KB )

45602614565c377bae.png

使用特权

评论回复
板凳
cjseng|  楼主 | 2021-9-19 22:43 | 只看该作者
本帖最后由 cjseng 于 2021-9-18 12:25 编辑

顺便用雕刻机刻了两个钢网,反正是做样品么,就这样凑活了。0.3mm厚环氧板雕刻的钢网成品:


收到板子,用刻好的钢网印上锡膏,手工贴片,焊接了两块,看起来很OK。
那个OLED屏偏右,是因为尺寸太小,不大好看,左边加了3颗指示灯,外壳开孔横向扩大后,贴上膜,视觉效果好一些。
这样的效果,其实左侧三个指示灯,不是OLED屏的一部分。

使用特权

评论回复
地板
cjseng|  楼主 | 2021-9-19 22:43 | 只看该作者
接下来就是写程序了,遥控器程序:
OLED第一次用,找卖家要来Demo程序,是STM32的,我这里用的是51,不能直接用,用查找替换的方法,将所有GPIO的操作改成51的直接赋值操作,再将Delay()函数重写了一下,编译通过了。

接收器程序:
程序写得昏天黑地,不知有汉,无论魏晋,老婆给我买的两条烟很快见了底,8月中旬,程序VER1.0诞生。
接下来就是测试,各种测试,排雷,很快的,一个星期过去了。
这中间已经发现,主机通讯程序有问题,经常会挂掉,跟对方沟通无果。详见https://bbs.21ic.com/icview-3164974-1-1.html。
这时候,发现了一个严重的问题,我测试用的STC15W4K32S4芯片,买不到了!!!家里只有几片库存的样品,不够生产用。
真是屋漏偏逢连夜雨啊!
换芯片!我买买买,买来IAP15W4K61S4,试了下,不好用。没时间排查原因了,继续买,又买来IAP15W413AS,试了下,还是不行。我再买,买到STC15W408AS,好,这下妥了!程序能跑起来了。
但是,我这里要说个但是,板子上几个按键失灵了!详见https://bbs.21ic.com/icview-3156032-1-1.html。
STC15W408AS没有P0口,那几个引脚是空的!!!
我改!我改原理图,重画板子,不用P0口了。因为时间来不及,改好板子,也不打样了,直接下单100PCS。
板子改了,程序也得改。
说起来,世上就没有一帆风顺的事,因为换了408AS芯片,只有8KROM,可我的程序改来改去,还有11K大小。。。
将代码优化等级提到最高,优化后还有9K多。唉,OLED的显示界面太占程序空间。改改改,继续折腾程序,我感觉头发越来越少了。
能复用的代码尽量复用,砍掉各种调试用语句,在switch和if之间各种权衡对比,最终程序被压缩到8189字节,是不是很神奇?还差3个字节就满了。
老天不会遂人愿的,把这8189字节的程序烧进芯片,程序时不时出问题。看芯片手册,明白了,程序空间最后7个字节不能用,是用来存放芯片唯一ID的。
没办法了,只能阉割一些功能了,我把电池电量显示从5级改为4级,一下子节省了几十个字节的空间,感觉好爽。图标点阵数据都是实实在在占空间的啊。
这样,就有了Ver2.0版本程序。
眼瞅着快到交货日期了,我这边还有其他活没干完,得抓紧。
第一个活就是,遥控器贴膜要赶紧订做了,否则来不及。

放下程序,开始画贴膜。用CAD确定尺寸,用Photoshop填充颜色,发给不干胶贴膜厂家制作贴膜。
第二件事,就是遥控器、接收器壳子开孔,又是各种画图,画好图纸,生成雕刻文件,交给雕刻机干活。

这是个大活,不大好整,这不是咱专业啊。
弄成了这样样子,还好,按键位置都很准确,毕竟用的同一个CAD文件定位的。

接收器的壳子开孔更麻烦,一开始脑子有点短路,画板子时,竟然设计了三面开孔,唉,悔之晚矣!

第三件事就是,壳子开好孔了,但是只有一套,如果要批量开孔,每次定位就是个麻烦事。咱还得做个工装夹具。继续埋头画图,脑子里各种乱七八糟的想法,最终做了这样个东西,上下左右全都卡死,只需定位一次,雕好一个,换下一个不用重新定位了,样子丑了点,但胜在实用。


使用特权

评论回复
5
cjseng|  楼主 | 2021-9-19 22:43 | 只看该作者
一个白天加一个晚上,我把20套外壳的孔全开好了,心情舒畅,感觉有点小膨胀。
接下来写一下生产指导书,其实也没啥好写的,简单写一下调试工艺,测试标准。
8月下旬,100套的板子到了,先做20套交货,因为板子改动了,重新雕刻了钢网,弄好贴片文件,交给车间生产。
贴片机开动起来,两种板子也就半天的活,装料费了不少时间。
不干胶贴膜也到了,做的不是很好,又重做了一次。
我抽空开始写使用说明书,再次祭出Photoshop法宝,弄个封面,弄些插图,大致这样子的:
抠图不是很利索,那个阴影是画出来的,比较生硬。不过也就这样吧,要求不能太高,毕竟咱不是专业的。
看人家的说明书都是A5尺寸,且双面打印,我花了一天时间研究,废了几十张A4纸,发现我的打印机也可以实现。

淘宝来140克铜版纸,打印说明书,期间还加了一次墨水,弄得手上黑一块红一块。
离交期越来越近,我又修改程序到Ver3.0,期间和对方开发人员扯皮略过不表。
“地瓜地瓜,我是土豆,收到请回答!”窗外,员工在拉开距离实地测试遥控。我在测试电池续航时间,待机0.7mA,开机40mA,无线发射70~80mA,500mAh的电池,在我反复按动遥控器情况下,半天就没电了,看来电池容量虚标严重啊。
换,买来1000mAh电池,得亏这遥控器内部空间大,1000mAh电池装进去,还是空空荡荡的。测试下来,待机1个星期,电量几乎不下降。这电池没虚标,分量足。
赶在交货期前一天,网上买的包装盒到了,把测试好的遥控器套装装入包装盒,打包好,发货。。。
后记
货发出一天后,我发现了一个程序BUG。。。
修改BUG后,生成一个项目程序,发给客户,让客户升级一下。

至此,这个订单就算完成了,虽然还有点问题没解决,留着以后升级吧。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
XCW + 3 很给力!
6
ztzp| | 2021-9-20 00:42 | 只看该作者
一口气看完了,一个字:“爽”!

使用特权

评论回复
7
比神乐| | 2021-9-20 07:21 | 只看该作者
厉害厉害,比我强多了。

使用特权

评论回复
8
LcwSwust| | 2021-9-20 07:26 | 只看该作者
厉害厉害,比我强多了。+1

使用特权

评论回复
9
tianxj01| | 2021-9-20 09:13 | 只看该作者
这是全包圆了。今年的芯片缺货,真是日了狗了。。。。

使用特权

评论回复
10
叶春勇| | 2021-9-20 10:22 | 只看该作者
我有一款stc15w404as,有30管积压,以前改stm8闹的。楼主用的上吗?


微信图片_20210920101954.jpg (424.86 KB )

微信图片_20210920101954.jpg

使用特权

评论回复
评论
叶春勇 2021-9-21 11:57 回复TA
@cjseng :sop16的,看来不适合 
cjseng 2021-9-20 11:28 回复TA
什么封装的?SOP20还是SOP28? 
11
fengok008| | 2021-9-20 10:37 | 只看该作者
厉害厉害,比我强多了

使用特权

评论回复
12
ezcui| | 2021-9-20 16:23 | 只看该作者
手感不错

使用特权

评论回复
13
linxi6414| | 2021-9-20 16:47 | 只看该作者
楼主牛X,对结构也这么了解,每次做产品,结构的问题很是大头,画简单的结构图,只能用PROTEL画,然后交给厂家,厂家再用CAD转,没有办法,实在是不想学新的东西。

使用特权

评论回复
评论
cjseng 2021-9-20 16:59 回复TA
没办法,都是逼出来的,请不起结构工程师,只能自己干。幸亏上学时学过机械制图,当初学的还蛮好的。 
14
coody| | 2021-9-20 17:42 | 只看该作者
如果是我做,我会用SSOP20或LQFP32的封装,OLED用I2C接口的,15个键任意一个均可唤醒,睡眠电流不超过1uA。

使用特权

评论回复
15
cjseng|  楼主 | 2021-9-20 18:15 | 只看该作者
本帖最后由 cjseng 于 2021-9-20 18:17 编辑
coody 发表于 2021-9-20 17:42
如果是我做,我会用SSOP20或LQFP32的封装,OLED用I2C接口的,15个键任意一个均可唤醒,睡眠电流不超过1uA。 ...

本来就是用IIC的OLED,可是点阵太占空间了,ROM不够用啊。后来换了带字库的OLED,SPI接口,字库芯片也是SPI接口,只是这个OLED手册上休眠功耗20uA,实测0.6mA左右,问了厂家,说就是这样的。
OLED占用6个IO,无线模块占用4个IO,开关机按键一个,充电检测1个,电池电压检测2个,按键加指示灯合计9个IO,蜂鸣器一个,震动马达一个(后来蜂鸣器+马达共用一个IO)。
SSOP20引脚不够的,只能用LQFP32的。

我的电池电压检测是用TL431实现的,用一个强推挽IO对TL431供电,AD得到TL431电压(2.495V),反推计算出电池电压。AD结束,强推挽引脚输出0,以免TL431一直耗电。

使用特权

评论回复
评论
dirtwillfly 2021-11-2 16:34 回复TA
这个TL431电路值得学习 
评分
参与人数 1威望 +3 收起 理由
XCW + 3 很给力!
16
linxi6414| | 2021-9-20 18:23 | 只看该作者
coody 发表于 2021-9-20 17:42
如果是我做,我会用SSOP20或LQFP32的封装,OLED用I2C接口的,15个键任意一个均可唤醒,睡眠电流不超过1uA。 ...

应该用SPI的,这样的话可以与无线模块共用一个SPI接口,会省更加多的I/O出来,这个屏我的一款产品里也有用,使用的是SPI接口。

使用特权

评论回复
17
cjseng|  楼主 | 2021-9-20 19:17 | 只看该作者
linxi6414 发表于 2021-9-20 18:23
应该用SPI的,这样的话可以与无线模块共用一个SPI接口,会省更加多的I/O出来,这个屏我的一款产品里也有 ...

我的无线模块是TTL串口

使用特权

评论回复
18
linxi6414| | 2021-9-20 21:37 | 只看该作者
cjseng 发表于 2021-9-20 19:17
我的无线模块是TTL串口

串口的贵一些,可能你的产品没有量,有量的话,还是用SPI接口的,或者自己设计射频电路部分合算的多。

使用特权

评论回复
19
wenleileilei| | 2021-9-21 06:40 | 只看该作者
这个订单什么价啊

使用特权

评论回复
20
oufuqiang| | 2021-9-21 10:00 | 只看该作者
这个项目几个W可以参考一下吗

使用特权

评论回复
发新帖 本帖赏金 50.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

4227

帖子

46

粉丝