跳到主要内容

AN-CM-215迷宫跑步者机器人

内容

术语和定义

asm.异步状态机
集成电路集成电路
IEEE.电气和电子工程师学会
红外红外线的

参考文献

有关文件及软件,请浏览:

https://www.dialog-seminile.com/configurable-mixed-signal.

下载我们的免费格林帕克软件设计师(1]以打开。gp文件[2]并查看所提出的电路设计。使用格林帕克开发工具[3.]在几分钟内将设计冻结到您自己的定制IC中。yabo国际娱乐对话框半导体提供完整的应用程序笔记库[4.]具有设计示例以及对话框IC中的功能和块的说明。

  1. GreenPAK设计软件,软件下载和用户指南,对话框半导体yabo国际娱乐
  2. AN-CM-215迷宫跑步者机器人.GP,绿派克设计文件,Dialog半导体yabo国际娱乐
  3. GreenPAK开发工具,GreenPak开发工具网页,对话框半导体yabo国际娱乐
  4. GreenPak应用笔记,绿派克应用笔记网页,对话半导体yabo国际娱乐

介绍

迷宫解决机器人来自20世纪70年代。从那时起,IEEE一直持有迷宫竞争,称为微小鼠比赛。比赛的目的是设计一个机器人尽可能快地找到迷宫的中点。用于快速解决迷宫的算法通常分为三类;随机搜索,迷宫映射和右或左壁跟随方法。

这些方法中最有用的是墙壁跟随法。在这种方法中,机器人沿着迷宫的左右侧壁行走。如果出口点与迷宫的外墙相连,机器人就会找到出口。本应用笔记使用正确的墙遵循的方法。

硬件

此应用程序使用:

  • 2尖锐模拟距离传感器
  • 跟踪传感器
  • 编码器
  • 电机和电机驱动器
  • 对话格林帕克SLG46531V
  • 电压调节器,机器人机箱等

我们将使用模拟距离传感器来确定距离右墙和前墙。Sharp距离传感器是许多需要精确距离测量的项目的流行选择。这种红外传感器比声纳测距仪更经济,但它提供了比其他红外替代品更好的性能。

传感器的输出电压与测量距离之间存在非线性的逆关系。图中显示了传感器输出与测量距离之间的关系图1

图1:距离电压图

黑色背景下的白线被设定为目标。我们将使用跟踪传感器来检测白线。跟踪器传感器有5个模拟输出,输出的数据受被测物体的距离和颜色的影响。红外反射率越高(白色)的测点输出值越高,红外反射率越低(黑色)的测点输出值越低。

图2:跟踪器传感器

我们将使用Pololu滚轮编码器计算机器人旅行的距离。这种正交编码器板旨在与柏鲁微金属齿轮电机配合使用。它通过在波尔鲁42mm×19mm的轮毂的轮毂内保持两个红外反射传感器,并测量十二齿沿着车轮的边缘的运动。

图3:Pololu车轮编码器,电机和车轮
图4:编码器输出

电机驱动电路板(L298N)用于控制电机。INx引脚用于引导电机,ENx引脚用于设置电机的速度。

图5:电机驱动电路板

此外,电压调节器用于降低电压从电池到5 V。

图6:GreenPak芯片的输入和输出

算法描述

此App Note包含以下方法的右壁。这是基于组织方向优先级,优先于最右边的方向。如果机器人无法检测到右侧的墙壁,则转向右侧。如果机器人检测到右壁,前面没有墙壁,则会前进。如果机器人右侧有墙壁和前部,则转向左侧。

图7:简化算法

重要的是,在机器人刚转向右侧后,没有墙是参考。

因此,“右转”分三步完成。向前走,右转,向前走。

图8:右转顺序

此外,机器人必须在向前移动时保持距离墙壁的距离。这可以通过调节一个电机更快或比另一个电机更快或慢。

图9:碰撞避免算法

流程图的最终状态显示在图10.

图10:最终算法GreenPak

设计

格林帕克设计由两部分组成。这些都是:

  • 从距离传感器ASM的解释/处理数据
  • 状态和电机输出

从距离传感器的解释/处理数据

解释来自距离传感器的数据是很重要的。机器人的动作是根据距离传感器的输出进行深思熟虑的。由于距离传感器是模拟的,我们将使用acmp。通过将传感器的电压与预定的阈值电压进行比较,确定机器人相对于墙壁的位置。

我们将使用3 acmps;

  • 检测前壁(ACMP2)
  • 检测右壁(ACMP0)
  • 保护右壁距离(ACMP1)

由于ACMP0和ACMP1依赖于相同的距离传感器,因此我们对两个比较器使用相同的IN+源。给ACMP1 25mv的迟滞可以防止信号的恒定变化。

图11:ACMP的设置

我们可以根据acmp的输出来确定方向信号。如图所示的电路图12.描绘概述的流程图图7.

图12:墙壁检测电路

同样,指示机器人相对于右壁位置的电路如图所示图13.

图13:墙壁碰撞电路

ASM状态和电机输出

此应用程序利用异步状态机或ASM来控制机器人。ASM中有8个州,每个州的8个输出。输出RAM可用于调整这些输出。各州列在下面:

  • 开始
  • 控制
  • 远离右墙
  • 靠近右边的墙
  • 向左转
  • 移动Forward-1
  • 向右转
  • 移动Forward-2

这些状态决定了电机驱动器的输出并指导机器人。有3个输出格林帕克对于每个电动机。两个确定电机的方向,另一个输出决定了电机的速度。根据这些输出的电机运动如下表所示:

表1:根据输入的运动情况
三机一体
IN2
定义
0.
0.
电机仍然关闭
0.
1
电机顺时针旋转
1
0.
电机逆时针旋转
1
1
电机仍然关闭
表2:PWM表
脉宽调制
定义
0.
高速
1
低速
表3:机器人按输入的运动情况
M1-A.
M1-B.
m2
M2-B
运动
0.
0.
0.
0.
停止
1
0.
0.
1
前进
0.
1
1
0.
向后移动
1
0.
1
0.
向右转
0.
1
0.
1
向左转
表4:带有PWM的机器人运动
M1-A.
M1-B.
m2
M2-B
PWMA
PWMB
运动
1
0.
0.
1
0.
1
靠近右边的墙
1
0.
0.
1
1
0.
远离右墙

ASM输出RAM是从这些表派生出来的。它显示在图14.

图14:连接矩阵输出RAM

除了电机驱动程序还有两个输出。这些输出转到相应的延迟块以允许机器人行进一定距离。

图15:移动前向延迟设置和电路

这些延迟块的输出也连接到ASM的输入端。

图16:ASM输入和输出

pwm被用来调节电机的速度。ASM被用来确定什么PWM电机将运行。PWMA-S和PWMB-S信号被设置为mux选择位。

图17:电机输出

结论

在这个项目中,我们使用了一个对话框格林帕克SLG46531V创建一个迷宫解决机器人。我们解释了来自多个传感器的数据,控制了机器人的状态格林帕克在ASM,用电机驱动器推动电机。通常,微处理器用于此类项目,但是格林帕克在MCU上有一些优点:它更小,更实惠,并且可以比MCU更快地处理传感器输出。