圆梦小车StepByStep之四:教小车“走路.pdfVIP

  • 0
  • 0
  • 约3.3千字
  • 约 6页
  • 2026-01-25 发布于北京
  • 举报

圆梦小车StepByStep之四:教小车“走路.pdf

圆梦小车SepbySp之四

——教小车“走路”

前一篇讲述了如何使小车抬腿”,本篇该教小车“走路”了!

人学走路的第一步是“站立”,而圆梦小车有三条“腿”,这个问题就不存在了但是要想走

好还是需要“学习”的。

我们都知道,如果将人的眼睛蒙起来,他很难走直线,因为人的两条腿不尽相同,略有

长短和粗细,导致步幅不同,要靠眼睛来纠正这个偏差,这也是人们常在雪地和森林中迷路

的,雪地森林无法给眼睛可靠的参照系。

小车的两条“腿”也有同样的问题,即使是优质直流电机(步进电机可以)也难以做到

驱动特性相同,更况我们所用的是最便宜的玩具电机

圆梦小车的“眼睛”呢?

一、小车的“眼睛”

能起此作用的“眼睛”最常见的是陀螺仪、电子,还有图像识别,可这些设备一是

较贵,二是对于初学者而言难使用,且如果目的是学习而非竞赛的话,就有些不值了。

为了能起到“眼睛”的这个功能,小车设计了一个简易的码盘,用它来“腿”的行

走,在一定程度上也能满足要求,当然,要受到诸多因素制约,如地面不平整、车轮直径差

异。车轮的不统一还可加以弥补,因为不可能在短时间内把磨小了。地面不平就有些麻

了,所以这里所讨论的只是针对在较平整的地面上走直线。

本篇就是探讨这个“眼睛”如何帮助小车走好直线至于那些高档的“眼睛”,也许在

后面文章中会有所涉及。

首先分析一下这个眼睛”的组成。

它是由轮毂上的50齿码盘、遮断式光电采样器、采样电路组成,采样电路将光电信号

转换为脉冲后输入到MCU,MCU通中断方式获取。

码盘、光电采样器的作用较直观,这里不作讨论,只分下采样电路:

上图为一路采样电路,其作用是构成一个“施密特触发器”,用较大的回差消除慢速变

化的光电信号在过门槛电压时产生的误信号(此部分原理请参阅运放中的“滞回较器”

部分)。

图中可以看出:

信号从低到的比较电平为:((R5/R)/(R6+R/7)*5V

信号从高到的比较电平为:(5/(R5+6/R))*5V

(R5//R7表两个电阻并联)

读者可以分析一下是否如此,并计算出际的比较电平。

为何需要这个采样路?如下:

第一、这样可以改善输入到MCU的信号,使中断可靠。

第二,车轮在停止时,光电采样器有可能处于齿的边沿,使得光电信号正好处于门槛电

平上,如果没有上述回差处理,将会不断地发出错误信号,使程序控制失效。

至此,码盘采样的信号处理已完成,下面论其逻辑部分。

将上述脉冲信号引入MCU的外部中断口是最常见的选择,可是51单片机的外部中断

只能一个方向的跳变,也就是脉冲的下降沿。但为了提高码盘的分辨率,此处希望能够

实现上升、下降沿都能采到,从而使码盘的分辨率提升为00脉冲/圈。

正好STC12LE5412AD的PCA模块支持脉冲的正沿捕获功能:

利用这个功能,即可实现脉冲输入上升、下降沿均产生中断,所以将PCA的通道0、1

用于码盘采样,将它们设置为正、负沿捕获模式,允许中断,忽略其捕获的时间值,只需要

其生的中断信号。

根据对中断信号的计数即可知道车轮的转动情况,即掌握了小车的“步幅”,从而可以

据此小车走直线。

二、如何实现走“直线”

控制的基本逻辑是根据小车左、右轮码盘计数的差值来调整相应电机的PWM,以达到

使两个码盘的计数值相同的目的。

最初级的方式是:启动时将左、右码盘计数值清“0”,两个电机同样的PWM控制

值(PWM基值),当出现两者计数不同时,将快的那一侧电机为惰行。恢复相同后,再置

挥PWM基值。

这种模式形象的描述就像人的两条腿走路,左、右不断交替前进,只是转换速度快,

步幅很小,所以看上去像是连续行。

按这个逻辑设计的小车程序见附件。

为了避免调试时小车掉下桌子或撞墙,

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档