基于Arduino 单片机的全地形小车设计

2019-10-26 02:51张峻源杨明月侯尚步姚世平
海峡科技与产业 2019年4期
关键词:循迹直角小车

陈 奎 张峻源 杨明月 侯尚步 姚世平

重庆科技学院机械与动力工程学院,重庆 401331

在当今的智能小车研究中,人们设计了很多能在平整地形中运动的智能小车,但适用于多种地形的智能小车的设计仍然是一个大的空白。设计并制造一种适用于多种地形的智能小车很有必要[1]。本文设计了利用Arduino 单片机来实现智能循迹和翻越多种障碍的全地形小车。利用灰度传感器即时读取黑线信息并反馈给Arduino 单片机即可实现全地形小车的智能循迹,同时车身的机械结构采用可在一定程度之内上下翻转的前后车身结构,保证了全地形小车翻越障碍时的稳定性与可靠性。

1 机械结构设计

机械结构设计是本次设计的主要部分。机械结构的好坏将直接影响全地形小车翻越障碍的效果和循迹的准确性。通过车身结构的设计可实现全地形小车的稳定行驶和对多种障碍的翻越;限位结构的设计使小车在翻越障碍时车身在一定范围内活动,保证了小车的稳定性和可靠性。

1.1 车身结构

全地形小车的车身采用缓冲结构,由两块铝合金结构件连接构成。 铝合金板构成了小车的前半部分,后半部分则由舵机和铝合金板组成。当小车行驶在高低不一致的地形时,通过舵机与前半部分车身的连接,小车可在一定范围内进行上下的移动,起到了缓冲的效果,极大地保证了小车行驶的稳定性。同时在通过例如栅栏等可导致小车连续抖动的障碍时,缓冲结构的设计可保证小车在行驶时自动调节平衡。小车的车身结构如图1 所示。

图1 车身结构设计

1.2 限位结构

小车的限位结构位于小车的后半部分,该结构可将小车的上下移动保持在一定的范围内,避免了小车在翻越障碍时可能出现的小车后半部分与前半部分的干涉现象。 同时限位结构的设计可为小车在翻越阶梯障碍时提供支撑力,保证了小车翻越阶梯类障碍时的效果。

2 硬件设计

全地形小车的硬件组成包括:Arduino 单片机、Bigfish 扩展板、电机驱动模块、灰度传感器模块、步进减速电机模块、电源模块。

2.1 Arduino 单片机

本次项目使用的是Arduino Uno 开发板。Arduino Uno 是基于 ATmega328 的单片机开发板[2]。同时Arduino Uno 开发板是当前主流的开发板,其拥有所有Arduino 系列单片机的功能,同时Arduino Uno 开发板供给ATmega328 芯片的电压是5.0 V,理论上可以工作在20 MHz以内任何时钟频率上。

2.2 Bigfish 扩展板

Basra 主控板总共有20 个I/O 口,理论上能同时连接的传感器上限是20 个,同时驱动数字量传感器和简单的模拟量传感器只需要3 根针:GND、VCC、信号针(D 口或A 口)。 因此我们可以把红色接口的两个信号针,用杜邦线单独引出来用。这种灵活的做法,可以最大限度地利用针脚,并且尽量减少了对舵机数量的影响。

2.3 电机驱动模块

L298N 模块是电子产品中常用的电机驱动芯片[3]。其芯片内含有驱动器,可较好地驱动步进减速电机转动保证小车的运动。由于本次设计包含6 个步进减速电机的使用,其电流大的特点可较好地满足工作要求及环境要求。

2.4 灰度传感器模块

灰度传感器模块是智能小车实现循迹的主要电子产品之一,在0.5~3.2 cm 的有效距离范围内它可以利用不同颜色对光的反射程度不同的原理,对所处的环境进行颜色深浅检测,从而达到检测的目的,实现循迹的效果。 同时Arduino Uno 开发板供给的电压为5.0 V,其灰度传感器工作电压为4.7 ~5.5 V[4],符合电压规定。

2.5 步进减速电机模块

本次设计的电机驱动部分采用步进减速电机,它具有扭矩大、重量轻、耐久度高等特点。通过采用步进减速电机可保证全地形小车行驶的稳定性,其重量轻的特点可大大减少小车的重量,保证了小车的行驶速度和灵活性。

2.6 电源模块

本次设计的电源模块采用11.1 V、3 s、2200 mah的航模锂电池进行电源供电,可保证对Arduino Uno单片机的正常、安全的供电,同时该型号航模锂电池工作温度范围较大、动力强劲、足容足量高倍率,可保证电源的使用寿命和减少环境因素的影响。

3 软件设计

软件是全地形小车执行命令的核心。本次软件设计采用3 个灰度传感器对黑白线进行识别,其中左右两个传感器分别位于黑线的两侧用于检测白线,中间的传感器位于黑线上进行黑线的识别,保证了直角转弯时小车的正确循迹。在中间传感器始终位于黑线时,当左边传感器触碰黑线时,左边电机正转,右边电机正转,小车快速左转;当右边传感器触碰黑线时,左边电机反转,右边电机反转,实现小车快速右转。当3个传感器均检测到白线时,小车后退,延迟2 min。重新进行检测识别。其软件流程如图2 所示。

图2 软件流程图

4 问题与解决措施

在进行全地形小车的设计过程中,其主要问题为循迹时的直角转弯失误;传感器误触发;小车无法翻越阶梯障碍;小车无法走直线。

4.1 循迹时的直角转弯失误

小车在直角转弯时大多都有直接冲出跑道,无法正常循迹的现象,其主要原因为小车在行驶时因行驶速度过大导致惯性较强,小车无法在直角位置进行及时的调整,导致小车直接冲出预定轨迹。

为此,本次全地形小车在程序设计方面增加了传感器全部识别黑线后进行后退的指令,当小车冲出跑道时进行后退并重新进行循迹,进而达到正确行驶的目的。同时为实现较好的准确性,当小车遇到直角路口时触发一个短暂的原地转向动作,先保证小车快速转向,其后传感器继续进行检测,保证小车可以完成直角转弯。

4.2 传感器误触发

小车在翻越障碍时,由于车身高度的变化和环境因素的影响,传感器会出现误触发的现象。

为此,我们设计调整程序的延时的时间长度,尽量降低误触发引起的动作影响。同时采用模拟量对灰度传感器的读取值进行输入,极大地减少了环境因素对灰度传感器值的影响,保证了灰度传感器检测数值的准确性。

4.3 小车无法翻越阶梯障碍

阶梯障碍是全地形小车行驶的主要难点,在小车翻越过程中常会出现卡轮和顶死的现象导致小车无法继续行驶。

本次设计,通过在小车的前部与后部各设计一个辅助轮辅助小车翻越阶梯障碍,当小车卡轮时,后部辅助轮可以帮助后部车身上扬,进而实现小车的翻越。 同时本次辅助结构的设计,使小车重心靠前,在保证小车通过阶梯障碍的同时,也可以通过其他障碍。

4.4 小车无法走直线

在小车搭建后在未加载传感器进行行驶时,我们常发现小车行驶过程中处于斜向行驶无法正常行驶直线。为此我们提供了以下解决方法。

调整结构:支架组装拧紧、联轴器和圆周舵机的输出头拧紧、更换使用长久导致零件磨损变形的零件、竖直方向不对称可以增加纸张、塑料带等不超出5mm的薄片;对电机转速进行调整,可以通过程序进行微调,同时可在电机部分加上编码器通过控制电机转速对其进行速度统一;如果小车始终向某侧偏斜,可以尝试调换左右两边的部分机构,以平衡误差;设计缓冲结构,在小车因左右位置机构高度差而发生偏斜时,通过缓冲机构对其自身进行调整。

5 实验与调试

对全地形小车整体进行设计和安装之后,将其放入实验场地进行调试和实验。实地观察其行驶过程发现:全地形小车在通过阶梯和栅栏及石块地形时,可自行进行车身的调整,保证了其自身的稳定性,同时其限位结构可控制其上下移动范围,对于小车的平衡有极大的作用。在小车转弯过程中,当小车轻微偏转时,小车可快速地进行调整,保证直线行走,小车进行直角转弯时,每次基本都能直角转过。当小车惯性过大,直接冲出线路时,小车仍可以退回,重新进行循迹。

实验结果表明:本次设计的全地形小车,适用于大多数地形,并具有一定的自我平衡调整能力,其循迹能力较强,可保证循迹的顺路完成,各项功能均正常。

6 发展与改进

本次全地形小车设计主要是通过简单的方式实现自主循迹和翻越障碍的状态,在完成现有目标的情况下,同时还可以通过增加超声波传感器模块、倾斜传感器模块、摄像头模块对其进行强化。

超声波传感器模块可对前方的障碍进行检测和反馈,使小车可以在通过障碍之前进行速度的调整,保证小车对障碍的平稳通过。

倾斜传感器模块可置于小车的两部,在全地形小车上下障碍时,实时的对所处状态进行检测,同时当小车即将倾斜时通过倾斜传感器模块的检测可以及时调节车身的状态位置,极大地保证了小车通过障碍的安全性和可靠性。

摄像头模块可使用在直角转弯问题的改进上,当摄像头模块检测到位于直角时,此时可通过所处的位置对其进行程序处理,增加直角转弯时的稳定性和可靠性,同时摄像头模块也可以用于障碍的检测功能,通过对障碍的识别和算法分析,小车可以及时对所处的位置和情况进行实时处理,增加了越障性能。

本次全地形小车在现有的模块基础上通过加入通信模块也可以进行远程使用的功能,这些模块的使用极大地丰富了全地形小车的使用功能和范围。

7 结语

本次设计的智能小车适用于大多数复杂地形,并可进行自动的循迹调整,同时较传统的全地形小车而言,本次设计的小车在保证稳定性的前提下,可较大幅度地提升速度和灵活性。本次实验得出的经验对越野车和智能小车的发展具有一定的积极作用和重要的现实意义。

猜你喜欢
循迹直角小车
缘起“一线三直角”
基于DFT算法的电力巡检无人机循迹检测系统设计
大车拉小车
自制小车来比赛
多少个直角
化归矩形证直角
刘老师想开小车
基于单片机的智能循迹小车的设计
两轮自平衡小车的设计与实现
初识“一线三直角”