首页 > 应用与设计 > 电器 > Service Robots > 服务型机器人 > TI机器人系统学习套件(TI-RSLK) >

服务型机器人

最新课程

热门课程

TI-RSLK 模块 8 - 讲座视频第一部分 - 开关

大家好,我是 Jon Valvano。 在本视频中, 我将向您 展示如何把开关 连接到微控制器。 我们将首先介绍一下 开关的定义及其工作原理。 首先,让我们 把物理器件, 即此处的开关连接到 微控制器输入 引脚。 然后,在我们把它 连接到微控制器之后, 我们将需要一系列 函数,这些 函数允许我们进行 初始化并执行 与该器件相关的 I/O。 我们把所有这些函数 整合在一起,并把它们 称为软件驱动程序。 现在,我们在该模块中 讨论开关的原因是, 我们要实际 将碰撞开关 放置在机器人前部,以便 在机器人接触到墙时 -- 这不是一件好事。 但是,如果发生这种 情况,机器人中的软件 将会知道发生了 糟糕的事情。 让我们开始吧。 大家都知道, 开关的工作原理相当简单。 它要么处于未按下状态, 要么处于按下状态。 如果它未按下, 那么它近似于开路。 但更正式地讲, 当开关未按下时, 开关的两个端子之间 存在大约 100 兆欧的电阻。 如果它按下,两个端子 之间将存在大约 0.1 欧姆的电阻。 现在,您将在实验中 使用的特定开关 实际上是一个单开关, 但它连接了四条导线。 您可以看到, 一连接到二, 三连接到四。 因此,开关本身 就存在于这里, 比如在端子二和四之间。 这是我们在实验中 必须处理的物理部件。 那么,接下来, 我们必须要做的 是对它进行连接, 以形成接触状态 -- 当开关被按下时 存在 0.1 欧姆电阻, 我想把它映射到 逻辑信号。 我可以通过两种方法来实现它。 我可以把它 映射到 3.3V, 当它未按下时, 100 兆欧电阻,开路状态 映射到零伏。 我将使用连接下拉电阻的方法来实现它。 您在那里看到它了吗? 下拉电阻。 我要使用一个 下拉电阻来实现 该映射功能。 这意味着, 这里是我的开关。 这是当它按下时 电路的样子。 这是当它未 按下时的同一电路。 因此, 下拉电阻器用于 在开关未按下时 创建逻辑低电平。 现在,如果开关按下, 正如您知道的, 这在本质上是 0.1 欧姆电阻。 因此,微处理器引脚的电压 变为大约 3.3 伏。 但开关打开时, 这将变为 100 兆欧电阻。 这将显示为 0 伏。 因此,您会看到 选择了该 10k下拉电阻, 从而使它远远 大于短路电阻, 并且使它远远 小于开路电阻。 现在,我们要把 该下拉电阻器 接口归类为 正逻辑,因为 真条件 -- 开关按下,真条件 -- 将映射到一个高电压。 假条件 -- 换句话说, 开关未按下 -- 映射到低电压 或小电压。 我把它称为正逻辑。 我本来是可以 使用负逻辑的。 换话句话说, 进行相反的映射。 采用 0.1 欧姆电阻, 把它映射到零伏。 采用 100 兆欧电阻, 把它映射到 3.3 伏。 我本来是可以这么做的。 这就是 负逻辑。 我可以使用一个 上拉电阻来实现它。 您可以看到, 电阻器位于另一侧。 这里是开关。 这里还是开关, 闭合然后断开。 现在,如果 开关闭合, 该 0.1 欧姆阻抗 是如此之小, 以至于这会变成零伏。 如果开关断开, 那么该 100 兆欧 电阻是如此之大, 以至于这会变成 3.3 伏。 但是,我要把它 归类为负逻辑, 因为这里的 真条件,按下开关 会产生 低电压,零电压。 开关的 假条件,打开开关 被转换为数字 高电平,或 3.3 伏。 请注意,有时 我们使用正逻辑。 有时我们使用负逻辑。 这通常没有问题, 只要硬件和软件 保持一致并且 您知道它们的 对应关系就可以了。 具体来说, 在 LaunchPad 本身上 -- 这是您的红色小电路板 -- 位于您的红色电路板 一侧的两个开关,在这里 连接到 P1.4 和 P1.1 -- 这已经通过导线在您的 电路板上进行物理连接 -- 它们采用的是负逻辑。 有一个内部电阻器, 它将针对其中的每个 引脚进行设置。 但您可以看到, 在接触状态下 会产生0V的电压。 松开状态,即未被接触时, 会产生 3.3V的电压。 我们将会看到, 在初始化期间, 软件将要求我们 设置该内部上拉电阻。 那么,让我们来讨论一下软件。 既然我们已经对它进行了连接, 那么让我们来执行有趣的部分。 这就是编写驱动程序。 驱动程序就是 一系列允许您快速 配置硬件的函数。 那么,有两种 类型的函数。 一种是发生一次以 进行初始化的函数。 另一种是 一系列 您不断调用以 执行操作的函数。 在本例中,它们 用于实现开关的输入。 因此,这是一个输入器件。 那么,我们将在 MSP432 中 设置方向寄存器 以便将这个 引脚指定为输入。 这里是一个示例, 在该示例中,如果 我采用一个开关 -- 再强调一次,无论这是正逻辑 还是负逻辑都没有关系。 我将采用正逻辑。 把这个点连接到 P1.0。 然后,如果我要 使该引脚实现输入, 那么我首先 要做的是, 获取端口P1上的8位数值-- 我将获取该端口的 全部8个位。 然后,我将做的是, 仅选择 我感兴趣的位。 在本例中,我 对Bit0感兴趣。 因此,我要使用 1 对它进行选择。 现在,该信号,如果 这是一个正逻辑 开关,当开关 按下时,该信号, 变量 n,将为真。 如果开关未按下, 它将为假。 这就是我 要对该器件进行 操作的方法, 使用掩码来选择 我感兴趣的位。 这里是用于 与 LaunchPad 上 两个开关连接的实际代码。 在来自德州仪器 (TI) 的 特定实例中, 开关连接到 -- 负逻辑开关 连接到 P1.4 和 P1.1。 我们将使这些 输入 -- 这些引脚 成为输入。 我们确实希望有 一个上拉电阻器。 要配置一个 上拉电阻, 需要执行两个步骤。 我将设置 相应的位。 那么,为了实现 上拉,我要将 REN 设置为 1,并且将 输出寄存器设置为 1。 对于该相应的位, 方向寄存器配置为 1、 输出寄存器 配置为 1、电阻 使能寄存器 配置为 1 的组合 将配置一个 内部上拉电阻。 当我对这进行读取时, 我可以读取输入。 然后,再针对我使用的位 对它进行掩码。 这是一种实现它的简单方法。 不幸的是 -- 这 实际上会起作用。 但不幸的是, 您可以看到, 我对设置每个寄存器中的 两个位感兴趣,因为我 需要这样。 但它也产生了 不利的后果, 它实际上将这里的 寄存器的其他六个位 都设置成了 0。 您的实验伙伴可能 希望发生这种情况, 也可能不希望。 现在,我要调用该函数, 它将设置比您的需要 更多的位,这不是 友好的行为。 相反,如果您通过 正确的方法的实现它 -- 这位于这里的 特定行中, 我们需要BIT4 和BIT1为零。 我们需要清除这两个位。 我将使用读取、 修改、写入操作 来清除我 感兴趣的位, 并使其他六个 位保持不变。 再说一次, 在本例中, 我希望BIT4 和BIT1变为 1。 同样这里希望BIT4 和BIT1变为 1。 这是一种 有效得多的 -- 我把它称为友好的 -- 对该初始化的访问。 那么,正如我说过的, 我们要实现它的方法是, 我们要将碰撞开关 连接到机器人前部。 它们看起来是 什么样的关系并不大。 我们要将 该开关连接到 微控制器。 总之,在这里, 您了解了 什么是 正逻辑 和负逻辑。 它并不十分复杂, 但它要求您至少 基本了解 欧姆定律, 从而理解上拉和 下拉是怎样工作的。 然后,能够了解 LaunchPad 的驱动程序 然后,为该实验编写 您自己的驱动程序软件。 具体来说,正如您 在采用外部下拉 电阻的 正逻辑中 看到的,您要将 三个开关连接到 微控制器, 这将是您的 实验任务的 前半部分。 在下一个视频中, 我们将讨论 LED, 但这是一个 有趣的实验, 因为它是第一个物理实验, 您必须在该实验中到处布线。 您可能会犯错。 希望您喜欢本次实验。 拿出您的电压表吧。 218

大家好,我是 Jon Valvano。

在本视频中, 我将向您

展示如何把开关 连接到微控制器。

我们将首先介绍一下 开关的定义及其工作原理。

首先,让我们 把物理器件,

即此处的开关连接到 微控制器输入

引脚。

然后,在我们把它 连接到微控制器之后,

我们将需要一系列 函数,这些

函数允许我们进行 初始化并执行

与该器件相关的 I/O。

我们把所有这些函数 整合在一起,并把它们

称为软件驱动程序。

现在,我们在该模块中 讨论开关的原因是,

我们要实际 将碰撞开关

放置在机器人前部,以便 在机器人接触到墙时 --

这不是一件好事。

但是,如果发生这种 情况,机器人中的软件

将会知道发生了 糟糕的事情。

让我们开始吧。

大家都知道, 开关的工作原理相当简单。

它要么处于未按下状态, 要么处于按下状态。

如果它未按下, 那么它近似于开路。

但更正式地讲, 当开关未按下时,

开关的两个端子之间 存在大约 100 兆欧的电阻。

如果它按下,两个端子 之间将存在大约

0.1 欧姆的电阻。

现在,您将在实验中 使用的特定开关

实际上是一个单开关, 但它连接了四条导线。

您可以看到, 一连接到二,

三连接到四。

因此,开关本身 就存在于这里,

比如在端子二和四之间。

这是我们在实验中 必须处理的物理部件。

那么,接下来, 我们必须要做的

是对它进行连接, 以形成接触状态 --

当开关被按下时 存在 0.1 欧姆电阻,

我想把它映射到 逻辑信号。

我可以通过两种方法来实现它。

我可以把它 映射到 3.3V,

当它未按下时, 100 兆欧电阻,开路状态

映射到零伏。

我将使用连接下拉电阻的方法来实现它。

您在那里看到它了吗?

下拉电阻。

我要使用一个 下拉电阻来实现

该映射功能。

这意味着, 这里是我的开关。

这是当它按下时 电路的样子。

这是当它未 按下时的同一电路。

因此, 下拉电阻器用于

在开关未按下时 创建逻辑低电平。

现在,如果开关按下, 正如您知道的,

这在本质上是 0.1 欧姆电阻。

因此,微处理器引脚的电压 变为大约 3.3 伏。

但开关打开时, 这将变为 100 兆欧电阻。

这将显示为 0 伏。

因此,您会看到 选择了该 10k下拉电阻,

从而使它远远 大于短路电阻,

并且使它远远 小于开路电阻。

现在,我们要把 该下拉电阻器

接口归类为 正逻辑,因为

真条件 --

开关按下,真条件 --

将映射到一个高电压。

假条件 -- 换句话说,

开关未按下 -- 映射到低电压

或小电压。

我把它称为正逻辑。

我本来是可以 使用负逻辑的。

换话句话说, 进行相反的映射。

采用 0.1 欧姆电阻, 把它映射到零伏。

采用 100 兆欧电阻, 把它映射到 3.3 伏。

我本来是可以这么做的。

这就是 负逻辑。

我可以使用一个 上拉电阻来实现它。

您可以看到, 电阻器位于另一侧。

这里是开关。

这里还是开关, 闭合然后断开。

现在,如果 开关闭合,

该 0.1 欧姆阻抗 是如此之小,

以至于这会变成零伏。

如果开关断开, 那么该 100 兆欧

电阻是如此之大, 以至于这会变成 3.3 伏。

但是,我要把它 归类为负逻辑,

因为这里的 真条件,按下开关

会产生 低电压,零电压。

开关的 假条件,打开开关

被转换为数字 高电平,或 3.3 伏。

请注意,有时 我们使用正逻辑。

有时我们使用负逻辑。

这通常没有问题, 只要硬件和软件

保持一致并且 您知道它们的

对应关系就可以了。

具体来说, 在 LaunchPad 本身上 --

这是您的红色小电路板 --

位于您的红色电路板 一侧的两个开关,在这里

连接到 P1.4 和 P1.1 --

这已经通过导线在您的 电路板上进行物理连接 --

它们采用的是负逻辑。

有一个内部电阻器, 它将针对其中的每个

引脚进行设置。

但您可以看到, 在接触状态下

会产生0V的电压。

松开状态,即未被接触时, 会产生 3.3V的电压。

我们将会看到, 在初始化期间,

软件将要求我们 设置该内部上拉电阻。

那么,让我们来讨论一下软件。

既然我们已经对它进行了连接, 那么让我们来执行有趣的部分。

这就是编写驱动程序。

驱动程序就是 一系列允许您快速

配置硬件的函数。

那么,有两种 类型的函数。

一种是发生一次以 进行初始化的函数。

另一种是 一系列

您不断调用以 执行操作的函数。

在本例中,它们 用于实现开关的输入。

因此,这是一个输入器件。

那么,我们将在 MSP432 中 设置方向寄存器

以便将这个 引脚指定为输入。

这里是一个示例, 在该示例中,如果

我采用一个开关 -- 再强调一次,无论这是正逻辑

还是负逻辑都没有关系。

我将采用正逻辑。

把这个点连接到 P1.0。

然后,如果我要 使该引脚实现输入,

那么我首先 要做的是,

获取端口P1上的8位数值--

我将获取该端口的 全部8个位。

然后,我将做的是,

仅选择 我感兴趣的位。

在本例中,我 对Bit0感兴趣。

因此,我要使用 1 对它进行选择。

现在,该信号,如果 这是一个正逻辑

开关,当开关 按下时,该信号,

变量 n,将为真。

如果开关未按下, 它将为假。

这就是我

要对该器件进行 操作的方法,

使用掩码来选择

我感兴趣的位。

这里是用于 与 LaunchPad 上

两个开关连接的实际代码。

在来自德州仪器 (TI) 的 特定实例中,

开关连接到 --

负逻辑开关 连接到 P1.4 和 P1.1。

我们将使这些 输入 -- 这些引脚

成为输入。

我们确实希望有 一个上拉电阻器。

要配置一个 上拉电阻,

需要执行两个步骤。

我将设置 相应的位。

那么,为了实现 上拉,我要将 REN

设置为 1,并且将 输出寄存器设置为 1。

对于该相应的位, 方向寄存器配置为 1、

输出寄存器 配置为 1、电阻

使能寄存器 配置为 1 的组合

将配置一个 内部上拉电阻。

当我对这进行读取时, 我可以读取输入。

然后,再针对我使用的位 对它进行掩码。

这是一种实现它的简单方法。

不幸的是 -- 这 实际上会起作用。

但不幸的是, 您可以看到,

我对设置每个寄存器中的 两个位感兴趣,因为我

需要这样。

但它也产生了 不利的后果,

它实际上将这里的 寄存器的其他六个位

都设置成了 0。

您的实验伙伴可能 希望发生这种情况,

也可能不希望。

现在,我要调用该函数, 它将设置比您的需要

更多的位,这不是 友好的行为。

相反,如果您通过 正确的方法的实现它 --

这位于这里的 特定行中,

我们需要BIT4 和BIT1为零。

我们需要清除这两个位。

我将使用读取、 修改、写入操作

来清除我 感兴趣的位,

并使其他六个 位保持不变。

再说一次, 在本例中,

我希望BIT4 和BIT1变为 1。

同样这里希望BIT4 和BIT1变为 1。

这是一种 有效得多的 --

我把它称为友好的 -- 对该初始化的访问。

那么,正如我说过的, 我们要实现它的方法是,

我们要将碰撞开关 连接到机器人前部。

它们看起来是 什么样的关系并不大。

我们要将 该开关连接到

微控制器。

总之,在这里, 您了解了

什么是 正逻辑

和负逻辑。

它并不十分复杂, 但它要求您至少

基本了解 欧姆定律,

从而理解上拉和 下拉是怎样工作的。

然后,能够了解 LaunchPad 的驱动程序

然后,为该实验编写 您自己的驱动程序软件。

具体来说,正如您 在采用外部下拉

电阻的 正逻辑中

看到的,您要将 三个开关连接到

微控制器, 这将是您的

实验任务的 前半部分。

在下一个视频中, 我们将讨论 LED,

但这是一个 有趣的实验,

因为它是第一个物理实验, 您必须在该实验中到处布线。

您可能会犯错。

希望您喜欢本次实验。

拿出您的电压表吧。 218

视频报错
手机看
扫码用手机观看
收藏本课程

相关下载

查看全部

视频简介

TI-RSLK 模块 8 - 讲座视频第一部分 - 开关

所属课程:TI机器人系统学习套件(TI-RSLK) 发布时间:2018.08.27 视频集数:69 本节视频时长:11:26
利用LED和开关将输入和输出设备相连接。
已有6人参与了讨论去论坛跟帖交流