智能车制作

标题: 新手求助:航模6通道遥控器+51单片机+L298N+2个减速电机控制原理 [打印本页]

作者: 瓦力他爸    时间: 2013-11-20 21:47
标题: 新手求助:航模6通道遥控器+51单片机+L298N+2个减速电机控制原理
想DIY个履带小车,能遥控实现基本的前进、后退、加速、减速、拐弯、自转(将来随着单片机的学习再增加循迹、避障等高阶功能),用51单片机学习板+L298N动力驱动模块+2个直流减速电机(一个电机带动一边履带的主动轮),打算用直升机航模的6通道遥控器控制(混控)。

用单片机输出PWM信号控制L298N,驱动直流电机实现前进后退等功能,研究网上现成的程序后基本能够搞定。

现在的问题是不知道怎么将航模的6通道遥控器对单片机进行混控,遥控器配一个6通道的接收器,是将接收器的信号作为单片机的输入还是怎么搞,目前单片机的学习还没有学到这,请各位帮助大致指导一下是怎么个实现方法。[attach]52495[/attach][attach]52494[/attach]

作者: Jyoun    时间: 2013-11-20 22:25
如果是图上的天地飞6一代,则不能设置混控,但是可以在单片机里再对捕获到的信号做一次处理,即自己写混控的程序,输入信号就是从接收机捕获到的50hzpwm。

如果是带屏幕的控,则一般可以直接在控上设置混控,具体去查看对应遥控的说明书。
作者: 瓦力他爸    时间: 2013-11-20 22:30
Jyoun 发表于 2013-11-20 22:25
如果是图上的天地飞6一代,则不能设置混控,但是可以在单片机里再对捕获到的信号做一次处理,即自己写混控的 ...

多谢元老回复。
我刚入门,自己再潜水继续研究。

作者: Jyoun    时间: 2013-11-20 22:44
瓦力他爸 发表于 2013-11-20 22:30
多谢元老回复。
我刚入门,自己再潜水继续研究。

如果从来没接触过航模遥控,建议还是多用示波器打一打,航模遥控很简单的,接收机出来就是几路高电平1-2ms的50hz的pwm。

作者: 瓦力他爸    时间: 2013-11-21 22:27
Jyoun 发表于 2013-11-20 22:44
如果从来没接触过航模遥控,建议还是多用示波器打一打,航模遥控很简单的,接收机出来就是几路高电平1-2m ...

恩,刚买了个示波器,过几天就到货。
准备用示波器测一测,加深了解。

作者: 瓦力他爸    时间: 2013-12-6 21:21
Jyoun 发表于 2013-11-20 22:44
如果从来没接触过航模遥控,建议还是多用示波器打一打,航模遥控很简单的,接收机出来就是几路高电平1-2m ...

这几天用示波器测了一下航模块遥控接收机每个通道的波形,确实是PWM信号。

现我想把要实现混控的2个通道的PWM信号作为输入与单片机通讯,再让单片机输出同步的PWM信号到l298n驱动板,来控制小车左右2个电机的转速。

还在继续研究中。。。。。。


作者: Jyoun    时间: 2013-12-6 23:17
瓦力他爸 发表于 2013-12-6 21:21
这几天用示波器测了一下航模块遥控接收机每个通道的波形,确实是PWM信号。

现我想把要实现混控的2个通 ...

嗯嗯,不难的,稍微有点想法就能弄出来了。其实就是捕获pwm和输出pwm,当然51只能用模拟的方法去捕获和输出,自己去想办法吧,过程才有意义。

作者: 瓦力他爸    时间: 2013-12-6 23:35
Jyoun 发表于 2013-12-6 23:17
嗯嗯,不难的,稍微有点想法就能弄出来了。其实就是捕获pwm和输出pwm,当然51只能用模拟的方法去捕获和输 ...

Jyoun兄:感谢鼓励!再稍微提示一下如何捕获PWM,是用A/D(D/A)模块还是用单片机的INT0/INT1外部中断来捕获?
我自学51单片机时间加起来不超过2周,现在还没有入门{:soso_e106:},你的提示可以让我明确学习的方向,少走很多弯路。
毕竟,现在不能像在学校那样系统的学习,只能用哪学哪啦。


作者: Jyoun    时间: 2013-12-7 00:11
本帖最后由 Jyoun 于 2013-12-7 00:17 编辑
瓦力他爸 发表于 2013-12-6 23:35
Jyoun兄:感谢鼓励!再稍微提示一下如何捕获PWM,是用A/D(D/A)模块还是用单片机的INT0/INT1外部中断来捕 ...

精度不高的捕获很简单,接到io口,然后定时中断,比如定50us,定时中断后去查询io口,这样,输入的pwm(50hz)变化时就能得到20个等级(对应算成5%递增的占空比)的高电平时间。精确的捕获我也只在理论阶段,还没试,不过近期要做东西,也许会尝试。
精确的捕获就需要用外部中断和定时器中断,51这两种中断都很少,不够用,就需要一定的算法或者硬件来处理了,也许其他地方有资料,我没去查,自己想出了算法,还没尝试。反正粗略的捕获和输出是很容易的,我也用过很多次了。
作者: 瓦力他爸    时间: 2013-12-7 23:45
Jyoun 发表于 2013-12-7 00:11
精度不高的捕获很简单,接到io口,然后定时中断,比如定50us,定时中断后去查询io口,这样,输入的pwm(5 ...

Jyoun兄,感谢你的指点。我整理了一下,你看看是不是这么个意思。
[attach]53240[/attach]

对于初选单片机的我来说,有个问题不太明白:
1,我学过怎么用单片机的I/O口捕获一个脉冲的宽度(就是测试一个按键按下时间的长度),这个能够理解。但是航模遥控器到通道的脉冲是连续的,且高电平宽度是随着遥控器摇杆的拨动动态变化的,这个怎么去捕获?


作者: Jyoun    时间: 2013-12-8 00:07
瓦力他爸 发表于 2013-12-7 23:45
Jyoun兄,感谢你的指点。我整理了一下,你看看是不是这么个意思。

遥控摇杆变化,下一个周期脉宽才会改变,一个周期之内是不会变的。你发的图,跟我说的粗略捕获的方法是一个意思。

作者: Jyoun    时间: 2013-12-8 00:11
瓦力他爸 发表于 2013-12-7 23:45
Jyoun兄,感谢你的指点。我整理了一下,你看看是不是这么个意思。

虽然不了解l298,不过目测右边的图是错的,不然还要单片机干什么?如果输入输出一样的话,干嘛不接收机直接给l298。

作者: Jyoun    时间: 2013-12-8 00:11
瓦力他爸 发表于 2013-12-7 23:45
Jyoun兄,感谢你的指点。我整理了一下,你看看是不是这么个意思。

虽然不了解l298,不过目测右边的图是错的,不然还要单片机干什么?如果输入输出一样的话,干嘛不接收机直接给l298。

作者: Jyoun    时间: 2013-12-8 00:16
瓦力他爸 发表于 2013-12-7 23:45
Jyoun兄,感谢你的指点。我整理了一下,你看看是不是这么个意思。

测试时间长度,不能用while,for之类的循环一直占用cpu的方法,不然你的cpu就没法干别的事了,只能用来测时间。最简单的也是要用定时器中断,然后再查询io口高低,用累加计数的方式记时间。(例如0.01ms中断,中断后查询到高,加一,连续100次高,那么就是1ms了,而这1ms内cpu可以执行其他指令,而不是只在计数)

作者: 瓦力他爸    时间: 2013-12-8 07:45
Jyoun 发表于 2013-12-8 00:11
虽然不了解l298,不过目测右边的图是错的,不然还要单片机干什么?如果输入输出一样的话,干嘛不接收机直 ...

L298n是个专门的电机驱动板,可以解决高电压和大电流驱动电机的问题(我做的这个机器人要使用12V的电压驱动电机)。
不直接让接收机连接电机驱动板,必须通过单片机的原因是考虑:
1、L298N电机驱动板上还有4个IN口,要编程通过单片机输出高低电平组合(与遥控器摇杆对应)来控制电机的正反转和刹车。
2、将来我DIY的这个小车还要加上循迹、避障等功能,所有的模块都想接在51单片机上,所以单片机是作为一个基本平台。
下面这个链接是我做的瓦力机器人,Jyoun兄帮给点建议吧
http://www.znczz.com/thread-213378-1-1.html

[attach]53242[/attach]

作者: Jyoun    时间: 2013-12-8 09:02
瓦力他爸 发表于 2013-12-8 07:45
L298n是个专门的电机驱动板,可以解决高电压和大电流驱动电机的问题(我做的这个机器人要使用12V的电压驱 ...

嗯,那个图右边应该是错了的。

作者: 311实验室    时间: 2015-10-7 21:02
楼主 给个联系方式呗?  我现在也在做遥控器和单片机,有点没有头绪




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2