- 本课程为精品课,您可以登录eeworld继续观看:
- 讲座视频 - 转速计 - 接口
- 登录
- 课程目录
- 相关资源
- 课程笔记
大家好,我是 Jon Valvano,在本视频中,
我们将讨论码盘。
在前一个视频中,
我向您展示了如何使用输入捕获来测量周期,
在本视频中,我们希望具体
讨论一下码盘,包括我们将如何
连接它以及它的数字意味着什么。
那么,让我们开始吧。
好,那么当我们搭建码盘时,它必须
包含一个传感器。
如果您看看这里,您会看到这些部件,
它们就是传感器。
这个 -- 这个小圆盘固定在
电机轴上,随着该圆盘
在传感器旁边旋转,
您将获得脉冲信号,它们
是电机旋转速度的函数。
那么,我们在前一个实验中搭建了该编码器,
现在我们要把它连接到微控制器。
好,那么这里是将要发生的事情。
由于该码盘的特定工作方式,
我们可以 --
我们知道,轮子每转动一周,
我们将得到 360 个脉冲。
那么,如果您愿意,我们可以看到,
我们在这里有一个角分辨率约为 1 度的角,
即此处的 θ,它是该码盘的分辨率。
但我们将尝试测量速度,因此,
如果我们在这里对速度方程进行
量纲分析,我们从旋转一周
是 360 个脉冲这个知识点开始,现在,
我们想把它转换为 RPM --
因此我要把秒转换为纳秒。
一秒包含十亿纳秒。
一分钟包含 60 秒。
现在,正如您从前一章
了解到的,我的测量的分辨率
将是每次测量每个脉冲 83.33 纳秒。
那么,这个变量是由
输入捕获测量得到的,
然后,在您完成上面的运算之后,
将得到一个相当简单的转换公式,
这个公式将输入捕获测量到的周期
转换为以 RPM 为单位的速度。
有关该传感器的另一件事 --
实际上,这只是连接在双通道
示波器上的码盘中的一个。
它是 -- 码盘上实际上有两个引脚,
一个引脚连接到输入捕获,
因此如果我们连接好以后,
将测量这里的周期。
但实际上还有第二个信号,
我们可以通过两种方法来使用它。
在本章中的使用方法是
在该边沿时 --
您应该记得,这是一个上升沿中断。
如果您在发生该中断时查看另一个引脚,
您可以测量方向。
因此,我们用到的测量是 --
不仅测量您的电机旋转速度有多快,
您还可以测量它在向哪个方向旋转。
现在,您差不多知道了它在向
哪个方向旋转,因为您编写了输出该方向的代码,
但这只是一个应用场景。
如果您愿意,您可以使用第二个引脚完成的功能是
可以在每个边沿设置一个
输入捕获。
如果您在两个信号的每个上升沿
进行输入捕获,现在我们将得到的是
四倍数量的脉冲。
那么,如果您仅查看上升沿,
每一圈有 360 个上升沿,
但如果您查看两个波形的所有边沿,
您实际上会实现四倍的分辨率。
现在,实际上我们并不需要这么高的分辨率,
因此我们不会这么做。
好,这里是硬件电路。
在前一个实验中,我们向您展示了如何连接它。
这些是每个码盘的引脚,
这些是每个码盘的引脚,
因此,对于左侧和右侧码盘,
我们将连接引脚 A 和 B。
那么,我们将在一个引脚上使用输入捕获,
在另一个引脚上使用常规 GPIO。
可以使用 5 V电压为编码器本身供电。
输出实际上 --
编码器的输出有两种状态。
它有一个低电平状态和一个悬空状态。
我们要做的是,使用这里连接到 3.3V 的上拉电阻,
以便在这里为我们的微控制器
获取 3.3V 的信号。
这些引脚是用于电机的引脚,
我们不会在本实验中连接它们。
因此,为了使这一切发生,
我们必须切断这里的导线,
我们必须切断这里的导线,
然后把 VPU 连接到 3.3V。
电机驱动板上的这两处硬件改动是
为了使码盘工作而必须进行的修改,
我将会把输入捕获连接到这里。
我将会把输入捕获连接到这里。
因此,我们将使用两个捕获引脚,8.2 和 10.4,
然后,如果您需要,使用两个 GPIO 引脚进行方向测量。
而本幻灯片的有趣之处实际上
在于设计。
在整个机器人系统中,您将使用
许多模块、许多引脚,您的任务是
把它们全部整合在一起,把所有 I/O 应用都整合在一个
微控制器中。
这里只是完成它的一种可能方法,
但它不是唯一的方法。
您可以看到,该芯片上几乎
到处都有计时器。
再说一次,我们将在这里,在端口 10.4 和端口 8.2 上
进行输入捕获,然后在这里的其他两个引脚上使用
常规 GPIO 引脚。
事实证明,如果该引脚为高电平,
那么您的电机向前旋转,如果该引脚
为低电平,那么电机向后旋转。
向前和向后是指相对于机器人
的行进方向。
在前一个视频中,我们有单个输入捕获,
现在,您将有两个输入捕获,
因此您将看到 --
您将有两个中断服务例程,
一个用于左侧电机,一个用于右侧电机。
由于中断向量(不同),
因此我们将有两个中断服务例程。
因此,我们必须要
设置两个优先级寄存器,
我们必须要设置两个嵌套矢量中断控制器
的使能位。
这些功能都要通过阅读数据手册
和改变系统来实现,
改变系统是指把一个中断更改为两个中断。
让我们来讨论如何使用它。
现在,可以测量速度之后,我们可以做一些
非常有趣的事情。
我在下一个模块将进行介绍,
但在这里,在本实验中,
您可以做一些有趣的事情。
那么现在,正如您知道的,如果您输入占空比,
如果我们看看占空比,
它是电机的输入,我们把速度看作输出,
您可能会问这样一个问题,该响应看起来是什么样的?
我们现在可以这么做。
我们现在可以测量速度,把它作为占空比的函数,
在我们这么做之后,我们可以查看一些指标,
比如它的增益是多少,该响应的斜率是多少,
形状看起来是什么样的。
我们还可以做另一件事情,
如果我们将这里的占空比从 25% 增大为 50%,
我们这么做之后,会发生了什么情况?
嗯,电机原来具有一定的速度,
然后电机又提高到一个新的速度。
该时间常数,
即达到该差值的 e 的负 1 次方所需的时间,
如果您在这里有一个 ΔS,
上升到 63% 需要多长时间?
这是一个很有趣的参数,称为时间常数,
它将告诉您电机
的响应速度有多快。
您知道这样一个事实,
它不会响应 PWM 的各个高电平和低电平,
但您可能想知道该数字来自哪里。
它实际上来自该实验。
让我们看看一些实际数据。
这是该模块中我的实验的结果。
我所做的是,我做了刚才所说的事情。
我有一个占空比,
然后,嘣,让我们把它从 25% 增加到 50%,
接下来,我测量电机转速,以 RPM 为单位。
那么,这是初始速度,
这是最终速度,那里是该变化的 63%。
您可以在这里看到,电机花费了大约 50 毫秒的
时间进行响应。
我在实验 10 里进行了这个测试,因为我可以
在机器人沿着赛道行进时做这个实验。
那么,这个测试可以
在机器人移动时执行,
因为我把该数据存储到了微控制器的 ROM 中。
如果我建立一种非常简单的关系,我们可以 --
这称为线性模型,
它是电机最简单的模型。
它也许不是那么简单,但这个模型允许
我们估算电机的速度,
以及电机的时间常数。
总结一下,我们在本模块中了解到了输入捕获。
我们知道了可以通过预分频
来调节分辨率和测量范围之间的差异。
来调节分辨率和测量范围之间的差异。
通过输入捕获测量周期,
用周期计算速度,然后通过该速度,
我们可以推导出时间常数。
在下一个模块中,我们要做的是,
把该速度运用到一个控制系统中,
以使得电机能够以任意所需要的速度进行旋转,
这将通过反馈环路完成。
这将是下一个模块的主题。
好的,希望您喜欢本次实验。
电机正在旋转,
我们很快将可以进行比赛。
课程介绍
共计3课时,30分17秒
猜你喜欢
换一换
推荐帖子