APP下载

基于Arduino单片机的智能机器人小车的研究

2021-07-07黄传翔

电子测试 2021年7期
关键词:黑线小车驱动

黄传翔

(江苏安全技术职业学院电气工程学院,江苏徐州,221000)

1 机器人小车总体设计方案

1.1 机器人小车组成结构

机器人小车常见的运动方式包括:轮式、履带式、步行式和蛇行式等。轮式移动平台具有结构简单、驱动控制便捷、接触面积大、承载能力强、推进力好、转向灵活以及移动迅速平稳等优点,适用于现代农业、工业生产、智能家居和航空航天等科技领域。本文采用四轮式移动平台。通过建立小车的质心速度以及各轮速间的模型,运用PID控制算法,实现车体的稳定的和灵活性。

1.2 Arduino平台的介绍

Arduino的硬件电路板由一个微控制器IC、一组用于连接其他电路的母线、几个用于为整个电路供电的稳压器IC和一个用于连接计算机的USB组成。Arduino软件包括一个文本编辑器,开发人员可以使用它来编写和修改程序,并将程序编写到Arduino板上。Arduino目前最新的控制板型号为Arduino Uno R3。

2 机器人小车硬件设计

2.1 主控制器模块

本文所使用的Arduino Uno R3开发板采用的ATmega328p作为主控制芯片,ATmega328p是一款具有优越的性能、功耗较低、性价比较高的AVR 8位微控制器,采用先进的RISC结构,拥有131条指令,绝大多数为单时钟执行,包括32个8位通用工作寄存器。

2.2 电机驱动模块设计

机器人小车最重要的功能是它可以在地面上灵活地移动。小车的整体动力来自电机,本文选用直流减速电机作为小车的驱动电机,选择L293D芯片作为驱动控制芯片,它是利用H桥路驱动器驱动电机的,而H桥路驱动器能够在电机正向和反向上对绕组供电。L293D电机驱动芯片是一个集成的4通道高电压、大电流芯片,用于将控制信号连接到电机逻辑门输出。电机驱动电路如图1所示。

图1 L293D电机驱动原理图

首先Arduino为电机驱动系统供电,或者接5V外接电源供电。ENABLE1、INPUT1和INPUT2作为一组驱动接口,其中ENABLE1与Arduino板上的PWM输出端相连,实现PWM的输出。INPUT1和INPUT2为电机提供的电流可以改变电机的转向,当INPUT1高电平输出时,INPUT2端的输出是低电平,此时电机正转,否则电机反转。

2.3 电源模块设计

在整个系统的设计之中,电池体系的规划不仅要对必要的电压、电流等额定参数进行确定,还应就电池总体转化效率以及对散热和抗干扰能力的提升上有充分的考虑。本文采用了两节电压为3.7V的Ni-Cr可充电电池来为系统供电,MCU主控系统、各种传感器和电机驱动电路需要供5V电压,舵机工作电压通常在4V~6V之间,但舵机工作电压越高,其反应时间越短,所以本文让舵机工作在6V电压的环境下。电源系统框图如图2所示。

图2 电源系统框图

2.4 测速模块设计

光电编码器的速度测量最准确,使用方便,但是价格更高;霍尔传感器在测量速度时更可靠,但安装繁琐;对射光电传感器只需在电机的长尾轴上放一个码盘,然后采用FC-33单路测速模块进行检测,就可以满足小车的精度要求。所以综合考虑,本文将选用对射光电传感器进行机器人小车的速度检测。

由于需要使用Arduino的外部中断来不断检测并读取编码器的输出,而Arduino Uno R3上只有2和3引脚能够触发外部中断,因此,将FC-33测速模块上的两个输出OUT分别连接到Arduino Uno R3的引脚2和3上。将被测转速转换为电压信号,然后需要对信号进行分析、放大、运算,所以如图3所示的中间转换电路就是根据以上系统要求设计的。其中,R1、R2起到限流作用,R3起到分流作用,R4为输出电阻。

图3 FC-33信号变换电路

2.5 避障模块设计

机器人小车运行在复杂环境中时难免会遇到障碍物,如何在碰到障碍前探测到并有效进行躲避,将是本文研究的重点。超声波进行距离测量的原理是通过测量发射与接收的反射和散射的超声波之间的差异来确定前方物体的距离。本文选用型号为HC-SR04的超声波测距传感器。红外线测距原理主要基于发射光波的时间和反射光波的到达时间来计算测量距离。本文所用红外传感器硬件包括LM324、发射管、接收管和两个变阻器。

2.6 循迹模块设计

本文选用了红外光电传感器使小车能够实现循迹。发射器发出的红外线经过地面反射,使接收管接到信号并通过LM339电压比较器进行电压比较后,将电平传送到Arduino系统,来判断黑线是否被检测到。为了能更准确地检测到黑线,本文在车体底盘上装设三个TCRT5000型号的红外光电传感器,分别设定为A、B、C,使循迹模块的可靠性更好,其安装位置如图4所示。通过LM339得到的三个输出OUT1~OUT3分别连接到Arduino的D11~D13引脚。

图4 红外对管安装位置示意图

如果红外光电传感器检测不到信号,则LM339输出信号为111,或者检测到的黑线一直处于B的正下方, LM339电压比较器输出信号为101,将结果传送给Arduino后,驱动小车的车轮向前转动,使小车沿着黑线向前行驶。

当仅有A或者有A和B传感器检测到路径上的黑线时,LM339电压比较器的输出信号将分别为011和001,传送给Arduino后,驱动小车的左轮向后转动,右轮向前转动,使小车向左偏转并沿着黑线行驶。

当仅有C或者有B和C传感器检测到路径上的黑线时,LM339电压比较器的输出信号将分别为110和100,并传送给Arduino后,驱动小车左轮向前转动,右轮向后转动,使小车向右偏转并沿着黑线行驶。

当所有TCRT5000都检测到路径上的黑线时, LM339电压比较器的输出信号000被送到Arduino,电机驱动模块将无信号输出,电机将停止运转,表明车辆已到达终点。

3 机器人小车的建模与分析

机械系统或机器人系统由不同级别的模型组成,可以将其视为可通过程序模拟建模的混合系统。小车的系统模型可以由运动学、动力学和车轮驱动模型组成,如图5所示。车轮驱动模型用于发现信号和输入之间的关系;动力学模型考虑受力的情况,研究小车的运动;运动学模型不考虑小车受力的情况,主要分析运行的数学运算。本文根据小车在平地面上运行具有非完整约束方程,而建立了小车轮胎的横向滑移及纵向滑转的运动学及动力学模型,以解决小车的控制问题提供模型支持。

图5 机器人小车的模型框图

4 结束语

本文设计了基于Arduino控制的嵌入式机器人小车系统,确定选择机器人四轮小车作为典型代表进行研究。对机器人小车的总体方案进行了设计,对小车车体的结构以及驱动方式进行了分析对比,同时对小车检测系统进行研究,确定了使用红外光电传感器实现循迹功能,采用超声波和红外距离测量传感器综合复用来采集距离信息,以实现小车自动避障功能,选择对射红外传感器完成速度检测功能。完成了机器人小车的软硬件设计。分析了机器人小车建立系统模型的必要性,阐述了运动学模型和动力学模型的建模过程,分析了这两种模型对小车运行过程的各种性能参数的影响。

猜你喜欢

黑线小车驱动
基于模糊PI控制的驱动防滑仿真系统分析
大车拉小车
屈宏斌:未来五年,双轮驱动,砥砺前行
黑线
自制小车来比赛
轨旁ATC系统门控柜接收/驱动板改造
刘老师想开小车
两轮自平衡小车的设计与实现
虾背黑线真的特别“脏”吗
这也算海鲜