完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
` 6.2 电机驱动模块调试 6.2.1 调试前准备 电机驱动部分程序已全部编完,进入实际调试阶段,为了便于调试,在PC机上编写了一个测试程序,以实现发送PWM控制值、转速控制值,以及设置PWM频率、PID参数,使调试的过程更方便。 由于电机驱动部分支持了转速测量的功能,为了在调试中能直观的看到转速的变化,增加一个读转速命令,命令帧格式如下: 0x55 0xAA 0x02(帧长) 0x04 (读转速命令) 电机序号(1字节)校验和(1字节)PC机调试界面如下:
按下“读取”按钮后程序每秒读一次速度值并显示,再按则停止读取。 在单片机程序中也要加入相应的程序。见程序附件。 利用上述程序实现了参数设置和转速读取的功能,但是对于小车这类移动性的应用,使用有线的方式通讯将给调试带来困难,因为小车自身重量和动力都有限,如果拖上一根通讯电缆,将影响小车的运动,使得调试时观察的结果大打折扣。而且运动范围也受到影响,可能无法实现调试的目的,因为小车还没有运动到稳态就被电缆拖住了。 所以上述调试软件如果要切实发挥作用,还必须有一个无线的信道,而且要是使用串口的,否则单片机很难支持(或者要花费较大精力),成本还不能高。 正巧找到了一个低价的无线收发模块,加了一片单片机控制,构成了一个无线串口转换器。这个转换器对于通讯的双方而言是“透明”的,与原来有线通讯一样,只是中间有些延时。 因为目前笔记本电脑很少有串口了,所以在这个转发器上设计了USB转串口的功能,提供一个TTL电平的串口,这一方面为无线转发器接入PC提供了方便,另一方面为STC12系列单片机提供了一个USB口的ISP(在线编程器),为那些没有串口的PC机学习者提供了方便。 串口无线转发器的功能示意如下:
转发器的内部结构如下:
作为PC机侧的串口无线转发应用模式如下:
作为单片机侧的串口无线转发应用模式如下:
作为STC12系列单片机ISP(在线编程)使用如下:
对于PC机侧,使用USB口入(在PC机内虚拟为一个串口,程序按串口控制),无线出。对于单片机(小车)侧,使用TTL电平串口信号入,无线出。 目前所做的转发器为固定波特率,串口为 19200bps 8 N1,无线为19200bps。因为使用的也是STC12系列单片机控制,所以修改很方便,自身的USB转换器就可以为自己编程。 这个串口无线转发器对于调试移动类的机器人项目应当很有帮助,拿最常见的轨迹项目来说,如果能在调试时不断返回小车的速度、控制状态、采集的信号,我想调试者也不用一次次盲目地改变参数。在走线失败的情况下,也不至于靠猜测的原因来修改程序了。 6.2.2 调试步骤 1)调试测速脉冲输入 —— 确定采样器的位置和对应电路中的参数,以使输入MCU的脉冲信号尽量为50%占空比;6.2.3 调试记录 电机驱动器内部结构如下:
电机驱动器外形:
6.2.3.1 码盘采样调试 码盘安装:
采样器输入波形:
从输入波形(码盘采样电路中U5的2脚)看,输入的电压最大值3.16V,最小值1.88V,中心值为 2.52V,VCC为3.3V,由此可算出,比较器的判断中值应该为0.76VCC,这样可以得到:
根据信号的幅度(2.52 +/- 0.6V)可以将比较器的回差定为0.3V,即输入上升时大于2.8V、下降时小于2.2V时输出发生翻转。 根据上限计算:R7 = 14.39k —〉15k, 根据下限计算:R7 = 50k, 因为上下分压电阻的差异,所以导致不对称,同样的电阻,对上限的作用小,下限的作用大,用适当抬高判断的中心值来弥补,即将R6 改为43k, R7 选用 43k,根据这个值计算出实际的上下限为:
基本符合所期望的值。 按上述参数焊接的电路结果如下:
6.2.3.2 电机PWM控制调试 因为衡量PWM的效果需要测量速度,而测速时出现以下问题: 在测量转速中发现,转速有跳变的现象,结合上面的波形分析,估计是毛刺干扰造成,应当在设计硬件时加以防护,目前硬件已做好,且是表贴器件,不易加装滤波元件,故考虑用软件消除。 从波形上可以看出,毛刺通常为负尖脉冲,影响正跳边沿。所以考虑: 1)以负跳的周期为基准,当正跳周期相对于对应的负跳周期偏差大于一定值时,则不要此次的正跳数据。 但是,程序修改后效果仍不理想,用示波器观察后发现,电机在高速转动时带来的干扰很大,而且所用的两个电机干扰还不同,一个略好,这可能与所用电机的电刷质量有关,我目前所用的是奥迪291系列玩具遥控车的电机,工作电压3V,可能性能一般。基于这个情况,我只能将调试的大概情况汇总一下,抛砖引玉,供日后有意尝试者参考。 测量的转速波动见前面的PC调试界面。 PWM控制的效果汇总如下: 1)由于采用的电机供电电压是5V,而电机额定工作电压是3V,所以可使电机转动的PWM值范围可从25% ~ 100%;小车测试的状态如下: 由于直行会很快遇到障碍物,来不及测量、观察,所以采用了单轮转动模式测量,这样可以在原地不动。调试时使用了无线串口转换器,效果很好。 从图中可以看出,这样的结构有些累赘,正好有个大学生基于这篇文章设计了一个方案,使用一片MCU实现完整的小车寻迹,所有电路在一片PCB上,单片机仍然使用的是STC12C5412AD,我觉得这样更合理,所以准备着手基于这个方案继续,完成小车寻迹功能。而前面所做的电机驱动器可以用在一些要扩充电机驱动能力和改善电机驱动的场合,如增加RCX的驱动能力,或者让RCX能够驱动非LEGO电机等。 单板方案的PCB如下:
因为目前的转速测量存在问题,PID转速控制暂时无法调试,待转速测量问题解决后再进行。 6.3 补白 以上调试的纪录主要目的是为了能让有意学习者了解如何去实施,需要什么手段?应该如何着手?遇到问题该如何处理?那段输入采样电路的计算、调试过程本打算忽略,但我尝试问了一下周围的大学生,很遗憾。所以我还是详细的记录了这个过程,希望能够帮助学习者了解理论、实践的关系,学会分析问题。 出现的干扰问题是意料之中的,因为这是直流电刷电机的最典型特点,但是对于学习者而言,如何能消除这个干扰,却是一个很好的锻炼机会,因为在工业控制中,抗干扰是个非常重要的课题,而火花干扰是最常见的干扰形式。 当然,如果是以小车的性能为核心目标,那不妨尝试使用无刷直流电机。 程序在调试中做了多处修改,望及时更新,以免前面的Bug产生误导。 (未完待续) 附件: 1)
更新后的电机驱动程序压缩包(含调试用PC侧程序).rar
(22.22 KB, 下载次数: 38
)
2)
调试过程片断(视频).wmv
(211.71 KB, 下载次数: 29
)
`
|
|
相关推荐
5 个讨论
|
|
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
140 浏览 0 评论
483 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
815 浏览 0 评论
1346 浏览 2 评论
804 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16904 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 19:35 , Processed in 0.770715 second(s), Total 65, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3828