在下新人,第一次发帖。还望各位前辈多多关照。
前一阵子看过一个视频,是一个日本人制作的遥控坦克。还记得那个视频叫“技术宅自制遥控坦克”。坦克使用的是现成的航模遥控接收器和单片机进行控制。那坦克能制动装填“弹药”(钢珠),并且能用线圈炮发射炮弹。射出的炮弹能对穿可乐罐。视频中作者还简单介绍了制作的过程,看的我是心潮澎湃,也想自己制作一台。
看完视频后,我认为制作成功的关键是用于转换接收器信号的单片机的系统。于是我决定先制作信号于转换器。
我先买来了一款合适的航模遥控器,再以边学单片机边实验的方式制作信号转换器(由于我是机械专业的学生,没怎么接触过单片机。)。
闲言少叙,先就信号转换器简单解释一下。 由于航模接收器输出的是PPM信号,而驱动电机的是PWM信号。所以需要将接收器信号先进行转换,再用于驱动电机。
视频中,这个转换器使用的是PIC单片机。而我使用的是51单片机。型号是STC的12C2052AD。至于这样选择的原因,51单片机资料多便于入门是一方面,其他方面的的后面再说。
视频中使用的编程语言是汇编语言,较为繁琐。所以我使用的是c语言。
下面说说我这个转换器的转换方式。此转换器可转换2路接收器信号,用于控制两台电机(由于坦克的前进转向之类的运动需要两台电机)。转换器根据接收的信号,调控两台电机的转向和转速。用图说明,请看下图:
左图为接收器,ABCDEF为六个遥控通道的输出口,输出PPM信号。这六个通道分别对应着右图遥控器操纵杆的6个自由度(D,F处是一个2自由度摇杆,E,G处是一个2自由度摇杆,C处是一个单自由度旋钮,A处是一个单自由度拨开关。)。我的转换器转换的是D和F通道输出的信号。也就是遥控器左手位摇杆两个自由度活动产生的遥控信号。
由于纯数字系统不能输出真正的连续信号,只能输出阶跃的近似连续的信号(比如接收器输出的信号本来是让电机的转速从0~100%连续变化,但经过单片机取样处理以后只能让电机转速以0%,10%,20%...80%,90%,100%这11个档位阶跃变化。)。所以我把转换器输出PWM的占空比分为5档:0%,25%,50%,75%,100%
为了更形象的解释,请看下图:
这是我从那个日本人的网站的资料里截取的。天蓝色那一条线标明的方向是摇杆在F通道的自由度。绿色那一条线标明的方向是摇杆在D通道的自由度。上面一个一个深蓝色有黄色标记的表达的是坦克的地盘。黄色短线表明的是,摇杆在此位置时坦克底盘左右履带的转动方向和转速大小。如最左上角那一个表示的是左右履带均正转,左履带25%油门,右履带100%油门。最右下角那一个表示的是左右履带均反转,左履带25%油门,右履带100%油门。
于是我为了总结履带的运动规律画了如下一个表,以便帮助编程。
和上图相似,天蓝色那一条线标明的方向是摇杆在F通道的自由度。绿色那一条线标明的方向是摇杆在D通道的自由度。数字的绝对值代表油门的大小(5最大,0最小)数字的符号代表此位置的履带的旋转方向(如(1,-1)表示左履带正转右履带反转)。画此图时画错了一点,把5个档位画成了6个档位,不好意思。
把各个档位都量化后,就容易编程了。至于程序怎么编的,由于我表达能力不是很好,恐怕不能让每个人都很明白,还是大家自己看程序吧。最下面有我发的程序,有需要的人请下载来看吧。其中PWM的输出信号使用单片机内置的PCA/PWM模块产生。由于我电机的驱动频率在20KHz左右(消除马达鸣叫,降低马达自感尖峰),所以光用程序产生PWM信号很不好操作。我做过实验,晶振12MHz在单片机扫描输入信号的频率不变的情况下,用程序产生PWM信号在5KHz左右就封顶了。不管怎么减小延时时间,频率依然上不去。这就是我选12C2052AD的另一个原因,因为他自带2个PCA/PWM,省去了程序延时的麻烦。
你们可能会说,视频里那个日本人用的单片机是怎么操作的呢?
我的解释是:从他给出的资料看(我去他网站下的)他用的是PIC的16F84A单片机,该单片机没有PCA/PWM模块。但他的机器时钟为20MHz。再加上PIC是1T的单片机,他又用汇编语言编程,易于精准控制延时时间。在他那种情况下,用程序延时可输出比我更高的信号频率。最重要的是,他马达的驱动频率为区区20Hz左右。(因为他使用的是微型马达,产生的尖峰电压很小。而且20Hz的声波,人耳基本听不见。)
再下面是电路图。
这是最小系统板图。
这是左右两个电机的全桥驱动。由于使用的是IR2104这款自举驱动芯片,所以我程序中设定PWM的最大占空比为96%,以保证MOS管的正常工作。
下面是实际测试的图(还没做电机驱动板):
我一个学电的同学在看完我的制作后建议我自己做一个遥控器。用滑变电阻做摇杆,用A/D采样,再用2.4G通信模块完成信号传输。我想说这是个好点子,不过我还只是一个初学者(我还没用过通信模块),要一下学通所有的方面暂时有些困难。不过我一定会努力,争取让上面的新点子早日成真。
还有,因为是新手,程序编写的可能比较臃肿、粗糙。还请各位高手海涵。
以上就是我这次发的全部内容,感谢大家不厌其烦的听我念叨,很荣幸能在科创这个平台上与大家分享交流资料和经验。
如有意见请轻喷,谢谢。
转换器程序和电路图.rar
211.62KB
RAR
178次下载
200字以内,仅用于支线交流,主线讨论请采用回复功能。