基于arduino 的麦克纳姆轮智能车设计

2023-07-26 10:09方海峰
装备制造技术 2023年5期
关键词:舵机麦克测距

薛 梁,方海峰,黄 迪

(江苏科技大学苏州理工学院,江苏 张家港 215600)

0 引言

如今,智能科技正深刻改变着我们的生产方式、生活方式、学习方式。智能车作为智能科技的代表,因其灵活性、智能化在仓库、车间、危险区域都扮演着重要的角色。本文设计的智能小车基于arduino 开发板,小车底盘采用麦克纳姆轮,能够实现智能车各个方向的运动以及避障和跟随功能。该小车具有两种模式:一种是在狭小的环境利用超声波传感器进行测距实现避障功能;另一种是利用超声波和红外传感器对移动目标进行跟随。该智能车在物流运输、科学勘测、跟踪识别、抗震救灾等方面具有广阔的应用前景[1]。

1 智能车的整体方案设计

智能车包括机械、电路硬件、软件三个主要部分,它们之间相互影响。搭载麦克纳姆轮的小车能够实现全方位运动,配合适当的传感器,当执行避障模式时,可以准确检测到前方障碍物,主动避开障碍物;当执行跟随模式时,超声波模块检测与前方目标距离,红外传感器检测左右两侧目标所在方向,实现目标的精准跟随。

1.1 智能车底盘机械结构

该智能车底盘主体采用铝合金板,4 个车轮为麦克纳姆轮结构,采用两左旋、两右旋的组对安装形式,形成X形如图1 所示。麦克纳姆轮通过联轴器与固定在底板上的电机相连接,且每个麦克纳姆轮由电机独立驱动[2]。

图1 麦克纳姆轮安装位置

通过对4 个电机旋转方向的控制可以使车实现不同的操作[3]。当轮1、2、3 和4 同时向前或向后旋转时,小车可以实现相应的向前或向后平移;

当轮1 和轮3 向前运动,轮2 和轮4 不动时,小车实现向右前方45°平移;

当轮1 和轮3 向后运动,轮2 和轮4 不动时,小车实现向左后方45°平移;

当轮2 和轮4 向前运动,轮1 和轮3 不动时,小车实现向左前方45°平移;

当轮2 和轮4 向后运动,轮1 和轮3 不动时,小车实现向右后方45°平移;

当轮1 和轮3 向前运动,轮2 和轮4 向后运动时,小车向右平移;

当轮1 和轮3 向后运动,轮2 和轮4 向前运动时,小车向左平移;

当轮1 和轮4 向前运动,轮2 和轮3 向后运动时,小车原地顺时针旋转;

当轮1 和轮4 向后运动,轮2 和轮3 向前运动时,小车原地逆时针旋转。

1.2 智能车电机驱动模块

本设计采用Arduino AFMotor 电机扩展板来驱动4 个直流电机,板载2 块L293D 芯片负责电机驱动的核心工作,并配合Arduino Uno R3 开发板共同运行。AFMotor 电机扩展板上配有外接电源接口,该接口所连接的直流电源可以为电机和Arduino 开发板供电。AFMotor 扩展板中的L293D 芯片所允许的直流电源电压范围是4.5 ~25 V。本文使用两节18650 锂电池串联供电,电压为7.4 V。

1.3 超声波测距模块

本设计使用HC-SR04 超声波测距模块,性能稳定,距离测量精确。超声波测距工作原理:通过IO 口Trig 触发测距,发出高电平信号,接收器收到返回信号停止计时,根据声波在空气中的传播速度,计算距离。

Arduino 连接方法:

(1)HC-SR04 引脚VCC 连接到Arduino 引脚+5VDC;

(2)HC-SR04 引脚Trig 连接到Arduino 引脚A1;

(3)HC-SR04 引脚Echo 连接到Arduino 引脚A0;

(4)HC-SR04 引脚GND 连接到Arduino 引脚GND。

1.4 舵机模块

舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统[4]。舵机包含一个小型电动机,内部电机内置电路可将电机输出轴的位置进行反馈,因此它的输出轴可以被Arduino 等控制在某一个固定角度。本设计采用MG90S型号舵机,它能够在0~180°的范围内旋转,用于带动超声波测距模块的转向,以实现智能车前、左、右方向的测距。

1.5 红外传感器模块

红外传感器模块采用安装在智能车侧面的两对红外传感器来探测周围目标情况,完成智能车跟随功能的实现。红外传感器具有一对发射和接收管,当检测到目标物时输出指示灯亮起。可以通过电位器调节检测距离,检测范围为2 ~30 cm,角度为35°,工作电压为3.3 ~5 V,红外传感器通过发射红外线反射并探测是否存在物体[5]。

1.6 麦克纳姆轮智能车实物制作

在铝合金底板上安装有4 个独立驱动的电机分别驱动四个麦克纳姆轮,底盘上还安装了电源、Arduino UNO R3 开发板、AFMotor 扩展板,舵机用支架安装在智能车的正前方,舵机的输出轴上还安装了另一个支架。该支架中间安装超声波测距模块,两侧分别安装红外传感器,使得智能车前方的舵机能够同时带动超声波测距模块和红外传感器左右偏转,制作的麦克纳姆轮智能车实物如图2 所示。

图2 麦克纳姆轮智能车实物

2 智能车程序设计

2.1 全方位移动控制程序

结合麦克纳姆轮的运动原理,通过串口通讯控制4 个独立的直流电机驱动车轮,实现全方位运动。串口控制具体操作:输入“5”执行停止;“2”执行后退“8”执行前进;“4”执行左转;“6”执行右转;“7”执行向前逆时针旋转;“9”执行向前顺时针旋转;“3”执行向后逆时针旋转;“1”执行向后顺时针旋转;“a”执行左移;“d”执行右移;“q”执行左前移;“e”执行右前移;“z”执行左后移;“c”执行右后移。

2.2 避障功能程序

避障功能中会使用到舵机、超声波和电机驱动模块,因此首先确定程序中需要的库文件:Servo 和AFMotor;对智能车所运行的状态进行宏定义,对电机变量、脉冲引脚、舵机变量名、超声波信号引脚、串口波特率等进行定义并在set up()函数中进行相关变量的初始化;定义电机驱动函数,设置4 个电机的运动方式驱动小车实现相应运动;定义测距程序,使超声波模块发出高低电平,读出脉冲时间,并将时间转换成距离并输出。在主函数中运行舵机和测距的程序:默认小车向前方运动,超声波模块对准正前方;当前方有障碍物,且距离小于30 cm 时,停止前进;舵机带动超声波模块向左转,测量与左侧物体的距离;随后舵机右转,测量右测与物体的距离,然后比较左右两侧距离,如果右侧距离比左侧小,则左转,否则右转,实现避障功能。

2.3 跟随功能程序

跟随功能中使用红外传感器、超声波、舵机、电机模块,使用库文件有:NewPing、Servo 和AFMotor;同样对电机、舵机、超声波、红外传感器进行定义和初始化;在主程序中调用测距函数,并读取红外传感器I/O口状态:如果左右两边红外传感器没有检测到信号,且超声波检测到物体距离在10 ~30 cm 之间,说明物体在智能车正前方,则向前跟随目标运动;当超声波检测到的距离超出30 cm,右侧红外传感器检测到信号,左侧没有,则右转,左侧红外传感器检测到信号,右侧没有则左转;如果左右两侧同时检测到物体则停止运动;当超声波检测到与目标距离小于10 cm时,智能车停止运动。

2.4 模式切换程序

根据设计要求,实现智能车的避障和跟随功能并通过电路的设计使两个模式可以互相切换。其运行流程如下:

模式1:当检测到D2 口的状态为1 时执行跟随模式。执行超声波测距,检测前方的距离执行前进或停止;通过两侧的红外传感器检测左右的距离,调整智能车方向,以此来实现智能车的跟随。

模式2:当检测到D2 口的状态为0 时执行避障模式。通过超声波测距,检测前方是否有障碍物来决定小车是前进或停止。当前方有障碍物时停止,舵机带动超声波模块左右转向检测智能车左右两侧的空间距离,当左侧距离大于右侧,小车左转,否则右转,以此来实现智能车的避障。

3 实验验证

3.1 避障功能实验

为了验证麦克纳姆轮智能车设计是否符合要求,进行避障实验。先让智能车前方没有障碍物,把智能车调到避障模式,打开电源,智能车前进。随后人站在智能车前方模拟障碍物,当智能车距离前方障碍物小于30 cm 时,智能车停止前进,将一本书立在智能车的右侧,舵机带动超声波测距模块左右旋转,智能车左侧与环境物体距离大于右侧,智能车向左旋转后再次测量正前方与障碍物的距离是否满足大于30 cm,满足条件后继续前进;用同样的方法,将书立在智能车的左侧,智能车左侧与环境物体距离小于右侧,智能车向右旋转朝向距离大的那侧,满足与前方物体距离大于30 cm 时继续前进;当前方又遇到障碍物时再次停下,测量智能车左右两侧物体与智能车之间的距离,控制智能车向更空旷的方向前进,如此循环往复,实验表明该麦克纳姆轮智能车能够实现避障功能。

3.2 跟随功能实验

把智能车调到跟随模式,打开电源,此时智能车静止,把手掌放在智能车正前方30 cm 处,作为跟随目标,智能车前进靠近手掌,当手掌与智能车之间距离小于10 cm 时智能车停止;把手掌靠近智能车左侧,智能车向左转向,手掌靠近智能车右侧,智能车向右转向;将手掌保持与智能车20 cm 左右并且移动,智能车会靠近手掌运动,手掌向左前方移动时,智能车跟随手掌往左前方运动,手掌向右前方移动时,智能车跟随手掌往右前方运动,手掌停下,智能车靠近手掌并且距离在10 cm 左右时也停止。实验表明,该麦克纳姆轮智能车能够实现跟随功能。

4 结语

本文设计一辆基于arduino 的麦克纳姆轮智能车,采用安装在车头的舵机带动超声波模块检测智能车与左、前和右侧障碍物之间距离,通过改变4 个麦克纳姆轮转向,使智能车避让障碍物,实现避障功能;采用超声波模块测量与目标物体之间的距离是否在设定的区间,以及左右两侧的红外传感器判断目标的左右位置,控制智能车准确实现目标的跟随,并且完成了麦克纳姆轮智能车的制作。实验结果表明,该智能车运动灵活,稳定可靠,能够满足功能要求,这将在智能仓储搬运小车或智能跟随行李箱等智能化产品领域有很大的发展应用前景。

猜你喜欢
舵机麦克测距
1/2的魔法
小王子
生活很艰难,但你被爱着
类星体的精准测距
含齿隙弹载舵机的全局反步模糊自适应控制
基于dsPIC单片机的飞艇舵机控制实现
浅谈超声波测距
基于高速同步485总线通信的多通道舵机控制器设计
2017年西麦克展览公司展览计划
基于PSOC超声测距系统设计