术语和定义
参考文献
https://www.dialog-seminile.com/configurable-mixed-signal.。
下载我们的免费格林帕克软件设计师(1]以打开。gp文件[2]并查看所提出的电路设计。使用格林帕克开发工具[3.]在几分钟内将设计冻结到您自己的定制IC中。yabo国际娱乐对话框半导体提供完整的应用程序笔记库[4.]具有设计示例以及对话框IC中的功能和块的说明。
- GreenPAK设计软件,软件下载和用户指南,对话框半导体yabo国际娱乐
- AN-CM-215迷宫跑步者机器人.GP,绿派克设计文件,Dialog半导体yabo国际娱乐
- GreenPAK开发工具,GreenPak开发工具网页,对话框半导体yabo国际娱乐
- GreenPak应用笔记,绿派克应用笔记网页,对话半导体yabo国际娱乐
介绍
迷宫解决机器人来自20世纪70年代。从那时起,IEEE一直持有迷宫竞争,称为微小鼠比赛。比赛的目的是设计一个机器人尽可能快地找到迷宫的中点。用于快速解决迷宫的算法通常分为三类;随机搜索,迷宫映射和右或左壁跟随方法。
这些方法中最有用的是墙壁跟随法。在这种方法中,机器人沿着迷宫的左右侧壁行走。如果出口点与迷宫的外墙相连,机器人就会找到出口。本应用笔记使用正确的墙遵循的方法。
硬件
此应用程序使用:
- 2尖锐模拟距离传感器
- 跟踪传感器
- 编码器
- 电机和电机驱动器
- 对话格林帕克™SLG46531V
- 电压调节器,机器人机箱等
我们将使用模拟距离传感器来确定距离右墙和前墙。Sharp距离传感器是许多需要精确距离测量的项目的流行选择。这种红外传感器比声纳测距仪更经济,但它提供了比其他红外替代品更好的性能。
传感器的输出电压与测量距离之间存在非线性的逆关系。图中显示了传感器输出与测量距离之间的关系图1。
黑色背景下的白线被设定为目标。我们将使用跟踪传感器来检测白线。跟踪器传感器有5个模拟输出,输出的数据受被测物体的距离和颜色的影响。红外反射率越高(白色)的测点输出值越高,红外反射率越低(黑色)的测点输出值越低。
我们将使用Pololu滚轮编码器计算机器人旅行的距离。这种正交编码器板旨在与柏鲁微金属齿轮电机配合使用。它通过在波尔鲁42mm×19mm的轮毂的轮毂内保持两个红外反射传感器,并测量十二齿沿着车轮的边缘的运动。
电机驱动电路板(L298N)用于控制电机。INx引脚用于引导电机,ENx引脚用于设置电机的速度。
此外,电压调节器用于降低电压从电池到5 V。
算法描述
此App Note包含以下方法的右壁。这是基于组织方向优先级,优先于最右边的方向。如果机器人无法检测到右侧的墙壁,则转向右侧。如果机器人检测到右壁,前面没有墙壁,则会前进。如果机器人右侧有墙壁和前部,则转向左侧。
重要的是,在机器人刚转向右侧后,没有墙是参考。
因此,“右转”分三步完成。向前走,右转,向前走。
此外,机器人必须在向前移动时保持距离墙壁的距离。这可以通过调节一个电机更快或比另一个电机更快或慢。
流程图的最终状态显示在图10.。
设计
这格林帕克设计由两部分组成。这些都是:
- 从距离传感器ASM的解释/处理数据
- 状态和电机输出
从距离传感器的解释/处理数据
解释来自距离传感器的数据是很重要的。机器人的动作是根据距离传感器的输出进行深思熟虑的。由于距离传感器是模拟的,我们将使用acmp。通过将传感器的电压与预定的阈值电压进行比较,确定机器人相对于墙壁的位置。
我们将使用3 acmps;
- 检测前壁(ACMP2)
- 检测右壁(ACMP0)
- 保护右壁距离(ACMP1)
由于ACMP0和ACMP1依赖于相同的距离传感器,因此我们对两个比较器使用相同的IN+源。给ACMP1 25mv的迟滞可以防止信号的恒定变化。
我们可以根据acmp的输出来确定方向信号。如图所示的电路图12.描绘概述的流程图图7.。
同样,指示机器人相对于右壁位置的电路如图所示图13.。
ASM状态和电机输出
此应用程序利用异步状态机或ASM来控制机器人。ASM中有8个州,每个州的8个输出。输出RAM可用于调整这些输出。各州列在下面:
- 开始
- 控制
- 远离右墙
- 靠近右边的墙
- 向左转
- 移动Forward-1
- 向右转
- 移动Forward-2
这些状态决定了电机驱动器的输出并指导机器人。有3个输出格林帕克对于每个电动机。两个确定电机的方向,另一个输出决定了电机的速度。根据这些输出的电机运动如下表所示:
三机一体 |
IN2 |
定义 |
---|---|---|
0. |
0. |
电机仍然关闭 |
0. |
1 |
电机顺时针旋转 |
1 |
0. |
电机逆时针旋转 |
1 |
1 |
电机仍然关闭 |
脉宽调制 |
定义 |
---|---|
0. |
高速 |
1 |
低速 |
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 |
向左转 |
M1-A. |
M1-B. |
m2 |
M2-B |
PWMA |
PWMB |
运动 |
---|---|---|---|---|---|---|
1 |
0. |
0. |
1 |
0. |
1 |
靠近右边的墙 |
1 |
0. |
0. |
1 |
1 |
0. |
远离右墙 |
ASM输出RAM是从这些表派生出来的。它显示在图14.:
除了电机驱动程序还有两个输出。这些输出转到相应的延迟块以允许机器人行进一定距离。
这些延迟块的输出也连接到ASM的输入端。
pwm被用来调节电机的速度。ASM被用来确定什么PWM电机将运行。PWMA-S和PWMB-S信号被设置为mux选择位。
结论
在这个项目中,我们使用了一个对话框格林帕克SLG46531V创建一个迷宫解决机器人。我们解释了来自多个传感器的数据,控制了机器人的状态格林帕克在ASM,用电机驱动器推动电机。通常,微处理器用于此类项目,但是格林帕克在MCU上有一些优点:它更小,更实惠,并且可以比MCU更快地处理传感器输出。