教你如何自制一款遥控器,让你的项目变成遥控的!!!-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12107|回复: 11

教你如何自制一款遥控器,让你的项目变成遥控的!!!

[复制链接]
发表于 2018-12-16 14:13 | 显示全部楼层 |阅读模式
本帖最后由 lzy19990101 于 2018-12-16 14:28 编辑

自从上次制作了一块集成了电机驱动的最小板之后,我就发现现在市场上一块便宜且功能又多的遥控器都没有,于是遂产生了自己画一块的念头,并且这个遥控器还可以结合着我的电机驱动板使用,这样一整套的遥控方案就有了,以后想做什么遥控车,遥控船,机器人和遥控飞机之类的项目的话,就可以拿来直接用了。就会方便很多,并且便携和稳定性都会好很多,于是这次我设计了一个遥控器的板子,体积很小,整个版面只有9.6mm*4.6mm,可以称的上是掌上遥控器,并且常用功能都不少。
                                                              第一部分
首先当然是对整个遥控器的功能规划,先定目标,就是我的成品需要达到什么功能,这样方便之后设计中可以保证我们目标的专一以及成品后就可以按照我的目标表去一一核对我的目标功能是否全部达标。
1.单片机选择
对于单片机我还是选择atmega328,其实atmega8也可以选择,而且价格上比较占优势,并且两个芯片的引脚分部都是一样的,所以后期可以更换单片机芯片,而不用改变电路结构,由于atmega8我还未使用过,于是先考虑用atmega328实现,下面是Atmega328的引脚图。
火狐截图_2018-12-16T05-07-57.550Z.png


2.无线通讯模块
采用的还是NRF24l01这款无线模块,在某宝上有许多版本的NRF24l01,我使用的是采用DIP2*4引脚输出的这款,据说还有一款加载了功率放大器的板子,接口是兼容的,所以如果后期想增加遥控距离的话可以采用带功放的模块。
关于给它供电的电路,还是使用mic5205的方案,我在许多项目中都会用到它,体积小巧(采用SOT23-5封装)并且输出电流足够(150ma),外围电路足够简单,两个电容即可。不过大家在选择电容的时候注意它的最大承受电压,一般商家会在参数里面标注,我选择的是耐压10V的10uf电容。

TB2S1poqTtYBeNjy1XdXXXXyVXa_!!261729488.jpg TB2h_0PqiMnBKNjSZFzXXc_qVXa_!!361121710.jpg 火狐截图_2018-12-16T06-08-23.467Z.png


3.摇杆
首先是作为一个遥控器,该有的比例控制摇杆肯定必须有,这样我们就可以操控一些比例通道(例如电机速度,灯的亮度,舵机旋转角度以及所有需要连续变化的量)。参照市面上的常用设计来看,设计两个全向摇杆是比较好的选择(类似于PS2手柄上的摇杆)关于摇杆的原理,我简单的介绍一下:

joystick.jpg
其实摇杆的本质就是让摇杆的转轴连接着一个电位计,使用电位计对摇杆进行定位,这样我们通过读取电位计的电压值就可以计算出摇杆的位置。如果是全向摇杆,一般就会有两个电位计去对摇杆在X轴和Y轴上的位置进行定位,这样使用单片机的ADC即可读取到电压,从而得知摇杆的位置。
那么每一个摇杆都有两个运动轴,两个摇杆就有四个运动轴,这样我就可以用两个摇杆去控制四个比例通道了。

4.按键
对于四个比例通道的控制显然不够用,有些项目也需要开关量的控制(比如灯的开关,模式的切换)于是我设计了两个额外的按键开关,可以用来控制一些开关量。
火狐截图_2018-12-16T05-37-28.355Z.png


关于按键开关的检测电路我在这里直接将按键开关的两个引脚分别连接到GND和单片机的引脚,没有设置上拉电阻的原因是我会使用单片机内部的上拉电阻,所以不再需要外接上拉电阻,这样也节省了版面空间。
对于引脚的连接是需要分外注意的一点,一定要和单片机的外部中断引脚连接,这里讲解一下原因:如果不使用中断引脚去检测按键开关的状态话,由于按键操作的时间很短,这容易造成单片机在运行其他程序的时候错过按键检测的程序,这样按键的按下就无法检测到。如果按键连接在中断引脚,这样无论单片机在执行什么程序,都可以第一时间停止执行当前程序,进入中断服务程序去执行按键指令。对于atmgea328来说,有两个外部中断引脚,于是我将这两个按键连接到这两个引脚上。

5.boost升压电路
这一次给atmega328供电的电路是采用E50D方案的升压电路,最大输出电流800ma左右,足够使用了。在这里提醒一句,由于E50D工作频率在300khz左右,所以大家在布线的时候注意和低频线路的隔离。

火狐截图_2018-12-16T05-38-10.616Z.png


6.供电
在遥控器的供电上我好不犹豫选择了18650锂电池,这种规格的电池是市面上最常见的(许多充电宝里面都会用到)而且内阻也低,体型规整,方便布线以及固定。具体哪个牌子的18650锂电效果好,据说松下的电池不错,但是价格感人。。所以我用了神火的18650,先试试,不行的话换其他家的。

7.充电电路
充电芯片的话,对于一节锂电池的方案大家还是比较统一的,某宝上搜18650充电板一搜一大把,但是究其使用的充电IC,基本上都是TP4056。不仅便宜而且用起来反响不错,唯一问题就是发热有点大。。
我放出我的电路图,大家如果有想设计充电电路的也可以借鉴一下。

火狐截图_2018-12-16T05-38-45.151Z.png


R2连接在PROG引脚,用来设定充电电流,充电电流的设定可以参考公式:I=1/R*1200来设定,CHRG是充电状态指示引脚,当充电进行时,为低电平,充电完成后为高阻态。充电的接口用的就是micro usb,这样使用手机充电器就可以充电。

8.电压检测
关于电池保护电路我也想过,但是想到这是遥控器,万一低电量的时候保护板把输出断开了怎么办?(保护电路会在电池低电量的时候断开输出电压)那样岂不是会造成失控的后果?于是我放弃了使用保护电路,改为使用电压检测电路,这样当电池低电压的时候,可以维持整个系统的运作一段时间而不会立刻断电,从而提醒使用者更换电池。
电压检测电路的话很简单,直接连接到atmega328的A0引脚,用ADC采样电压值。而关于报警电路,我沿用上次设计最小板的报警电路,使用555构成单稳态触发器,可以控制蜂鸣器断续鸣叫。

火狐截图_2018-12-16T05-41-33.835Z.png


9.USB转TTL电路
因为使用了micro usb接口,索性再添加一个USB转TTL电路,这样烧写程序和充电就可以共用一个接口了,使用起来方便了许多。
至于TTL芯片的选用,自然是考虑CH340系列芯片了,使用范围很广而且比较稳定,在CH340的产品线中也有很多不同型号的,使用比较多的是CH340G以及CH340C的型号,但是由于他们使用的是SOIC16的封装,体积较大,所以我采用了CH340E,是CH340中最小的一款,外围电路简单,十分适合我的项目。

火狐截图_2018-12-16T05-38-58.987Z.png


其中TNOW表示串口正在发送,高电平有效,于是我接了一个LED灯来指示串口的状态,这样的设计在一些USB转TTL模块上也比较常见。

10.预留接口
由于遥控器上不会涉及到太多的外接设备,这一次我仅仅预留了少许的接口。因为atmega328需要烧写bootloader,所以我预留了一个烧写的接口,方便以后烧写。对于I2C接口我也有预留,主要是方便以后连接led显示屏使用

火狐截图_2018-12-16T05-42-03.030Z.png
                               第二部分
原理图绘制好了之后就是导出绘制PCB板了,因为要手持操作,所以对于外形还是很重要的,我绘制了一个长方形的边框,并把四周倒圆角,这样摸起来不会刮手。
经过一个多小时的布线以及摆放元件位置,我完成了设计:

火狐截图_2018-12-16T04-44-55.jpg 火狐截图_2018-12-16T04-54-48.jpg


同时,在板子上我也预留了四个安装孔,这样方便以后遥控器的固定(比如加一个外壳之类的)
火狐截图_2018-12-16T06-00-15.827Z.png 火狐截图_2018-12-16T06-00-40.358Z.png


                                                             总结
到这里,整个板子就设计完成了,我已经发送厂家打板,板子预计本周就会到货。下一章里我就会对板子焊接、测试以及做出一些必要的改进。如果有什么好的建议,欢迎在下方留言,谢谢。

发表于 2018-12-16 23:08 | 显示全部楼层
给楼主点个赞哈哈哈
 楼主| 发表于 2018-12-17 12:44 | 显示全部楼层
单片机菜鸟 发表于 2018-12-16 23:08
给楼主点个赞哈哈哈

多多交流
发表于 2018-12-28 09:06 | 显示全部楼层
够详细,楼主辛苦,关注中
 楼主| 发表于 2018-12-28 10:49 | 显示全部楼层
JasonChing 发表于 2018-12-28 09:06
够详细,楼主辛苦,关注中

这里有遥控器制作完成后的一些测试结果,你可以看看
https://www.arduino.cn/forum.php?mod=viewthread&tid=83381&page=1#pid439016
发表于 2019-1-5 08:46 | 显示全部楼层
lzy19990101 发表于 2018-12-28 10:49
这里有遥控器制作完成后的一些测试结果,你可以看看
https://www.arduino.cn/forum.php?mod=viewthread&t ...

好的,谢谢
发表于 2019-2-19 18:08 | 显示全部楼层
你好我有个FrSky遥控器编程问题需要解决,请问你可以帮忙吗,有偿qq3248237359
发表于 2019-4-8 12:02 | 显示全部楼层
感谢楼主分享!~
发表于 2019-4-8 15:32 | 显示全部楼层
能不能直接用ps的无线手柄改?
发表于 2019-4-12 13:28 | 显示全部楼层
感谢楼主分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 06:44 , Processed in 0.160279 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表