跳过主要内容

AN-CM-215迷宫奔跑机器人

内容

术语和定义

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

参考文献

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

//www.wsdof.com/configurable-mixed-signal

下载我们的免费GreenPAK软件设计师(1]以打开。gp文件[2],并查看所提出的电路设计。使用GreenPAK开发工具(3.可以在几分钟内将设计冻结到您自己定制的集成电路中。雷竞技电竞平台Dialog Semiconductor提供完整的申请资料库[4],包括设计实例,以及对Dialog IC的功能和模块的解释。

  1. GreenPAK设计软件,《软件下载及用户指南》,Dialog Semiconductor雷竞技电竞平台
  2. AN-CM-215迷宫奔跑机器人,绿派克设计文件,Dialog半导体雷竞技电竞平台
  3. GreenPAK开发工具, GreenPAK开发工具网页,Dialog半导体雷竞技电竞平台
  4. GreenPAK应用笔记,绿派克应用笔记网页,对话半导体雷竞技电竞平台

介绍

解迷宫机器人起源于20世纪70年代。从那时起,IEEE一直在举办被称为“微型老鼠大赛”的迷宫解决竞赛。比赛的目标是设计一个机器人,它能尽快找到迷宫的中点。用于快速解决迷宫的算法通常分为三类;随机搜索,迷宫绘图,和左右墙以下的方法。

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

硬件

这个应用程序使用:

  • 2个锋利的模拟距离传感器
  • 跟踪传感器
  • 编码器
  • 电动机和电动机驱动器
  • 对话框GreenPAKSLG46531V
  • 电压调节器、机器人底盘等。

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

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

图1:距离-电压图

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

图2:跟踪传感器

我们将使用pololu车轮编码器来计算机器人的旅行距离。这一正交编码器板的设计工作与pololu微型金属齿轮电机。它的工作原理是在Pololu 42毫米×19毫米轮毂内放置两个红外反射传感器,测量轮辋上12个齿的运动。

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

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

图5:电机驱动电路板

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

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

算法描述

这个应用笔记包含了正确的墙壁遵循的方法。这是基于通过选择最正确的可能方向来组织方向优先级。如果机器人检测不到右边的墙,它就向右转。如果机器人检测到右边的墙,而前面没有墙,它就向前走。如果机器人的前面和右边有一堵墙,它就会向左转弯。

图7:简化算法

需要注意的是,机器人刚向右转后就没有墙可以参考了。

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

图8:右转顺序

此外,机器人在前进时必须与墙壁保持一定的距离。这可以通过调整一个电机比另一个更快或更慢来实现。

图9:避免碰撞算法

流程图的最终状态如图所示图10

图10:最终算法GreenPAK

设计

GreenPAK设计由两部分组成。这些都是:

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

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

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

我们将使用3个acmp;

  • 检测前壁(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个输出GreenPAK每个马达。两个决定电机的方向,另一个输出决定电机的速度。根据这些输出电机的运动情况如下表所示:

表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:电机输出

结论

在这个项目中,我们使用了对话框GreenPAKSLG46531V创造了一个解迷宫机器人。我们解释来自多个传感器的数据,用GreenPAK然后用电机驱动器驱动电机。一般来说,微处理器用于这类项目,但是GreenPAK与MCU相比,它有几个优点:体积更小,价格更便宜,可以比MCU更快地处理传感器输出。