APP下载

基于单片机的智能小车系统

2022-05-27李建成陈先瑞

化工自动化及仪表 2022年3期
关键词:黑线循迹舵机

于 波 张 强 李建成 陈先瑞

(东北石油大学物理与电子工程学院)

随着计算机和电子技术的迅猛发展,智能产品的研究与开发愈发受到各领域学者们的重视,其中,智能车技术的发展日新月异,在工业生产、国防军工及民用生活等领域都发挥了重要作用[1]。 智能车以电子技术为背景,综合了计算机、传感器及机械等多学科技术,在众多领域被广泛应用,能够替代人类在一些特定环境工作,例如美国的“勇气”号和“机遇”号火星探测机器人为人类探索火星做出了贡献,我国自主研发的“月球车”所应用的技术也处于世界前列;智能车也应用于自动货运、无人驾驶等场合[2],并取得了相当不错的成绩。 智能车的应用正逐步渗入到工业和生活的各个层面,提高了生产效率并减少了人为失误,提升了人们的生活品质[3]。

智能小车,即轮式机器人,集环境感知、动态决策与规划、智能控制与执行等多种技术于一体[4],随着技术的不断成熟,一些前沿技术被应用于智能小车[5]。 笔者基于STM32F103 单片机,通过规划智能小车的总体设计方案,进行硬件电路设计、 程序代码编写以及软/硬件的综合测试,实现了智能小车的自动循迹避障、 红外遥控运动、上位机对智能小车的远程控制及拍照存储等功能,笔者所设计的智能小车可以在所处环境中通过传感器自行判断和分析,在无人操作的情况下自主完成任务。

1 智能小车系统整体设计

为使所设计的智能小车可以沿着黑色胶带轨迹行驶, 以STM32F103 单片机作为主控芯片,配合电源模块、L298N 电机驱动模块、循迹模块、自动避障模块、WiFi 模块和电路, 设计智能小车系统,其结构如图1 所示。

图1 智能小车系统整体结构框图

避障模块自动检测障碍物并自动调整运动轨迹,WiFi 模块实现手机和电脑端对智能小车的无线操控。

智能小车前部设有2 个HJ-IR2 红外避障模块, 可以通过红外线的发射和接收实现避障功能。 在智能小车的底盘安装了3 路红外循迹模块,保证智能小车按照预设好的路线行驶。 设计上位机APP,用以操控智能小车系统的WiFi 模块。

2 硬件电路设计

2.1 主控制器

智能小车系统的控制器选用的是STM32F103单片机,该芯片是意法半导体推出的一款32 位单片机,基于ARM Cortex-M 内核,具有实时性优异、外设丰富及价格低等特点[6]。STM32F103 单片机的内部结构如图2 所示,可以看出,芯片内部可以划分为内核和片上外设两部分。

2.2 电源模块

单片机采用线性稳压芯片AMS1117-3.3V(图3),其中电容起到滤波的作用,分别滤去高频和低频信号,C31、C6 为输入电容,作用是防止断电后出现电压倒置,C32、C2 为输出滤波电容,作用是抑制振荡和稳压输出[7]。

图3 AMS1117-3.3V 稳压模块

2.3 电机驱动模块

智能小车采用L298N 电机驱动模块,L298N是一种高电压、大电流电机驱动芯片,采用15 脚封装,内含两个H 桥的高电压、大电流的全桥式驱动器,可以驱动直流电动机、步进电机及继电器线圈等负载[8]。 使用直流两用驱动器驱动两台直流电机M1 和M2。引脚A、B 用来输入PWM 脉宽调制信号,对电机进行调速控制。 当输入信号端IN1 接高电平,输入端IN2 接低电平,则电机M1 正转; 当输入信号端IN3 接高电平, 输入端IN4 接低电平,则电机M2 正转,反之电机反转。PWM 信号端A 控制M1 调速,PWM 信号端B 控制M2 调速。 控制电机驱动方向见表1。

表1 控制电机驱动方向

2.4 3 路红外循迹模块

智能小车的避障功能采用3 路红外循迹模块,输出3 路开关量,接单片机的普通IO 口,3 路红外传感器的电路如图4 所示。

图4 3 路红外传感器电路

3 路红外传感器的GND 接地,VCC 供电,X1、X2、X3 各自对应1 对红外探头。 红外发射管发射光线到路面,遇到白底则被反射,接收管接收到反射光,经触发器整形后输出低电平,红外探头亮;遇到黑线时则被吸收,接收管接收不到反射光,经触发器整形后输出高电平,红外探头灭[9]。 3 路红外循迹模块能够使智能小车沿着黑色线路行驶,并且不脱离黑色轨道。

2.5 红外避障模块

智能小车选用的避障模块是红外光电传感器,该模块对环境光线适应能力强,有1 对红外线发射与接收管, 接通电源后红色指示灯亮起,通过发射和接收红外线判断前方是否有障碍物。可以通过电位器旋钮调节检测距离(有效距离2~30 cm),工作电压5 V,电流18~30 mA[10]。该传感器的探测距离可通过电位器调节, 具有干扰小,便与安装的优点。

2.6 红外遥控模块

如图5 所示,红外遥控模块由发射和接收两部分组成,应用编码/解码专用集成芯片进行操作控制,接收频率为38 kHz。 红外遥控器的主要作用是将遥控发射器发出的红外光信号转换成电信号,再进行放大、限幅、检波和整形处理,形成遥控指令脉冲,输出至遥控微处理器。 红外遥控方式具有体积小、功耗低、功能强和成本低的优点。

图5 红外遥控模块组成框图

2.7 WiFi 模块

WiFi 模块可以搭载其他设备模块,实现不同的控制和视频传送功能。 如图6 所示,WiFi 模块与STM32F103 单片机连接, 用于发送和接收数据。

图6 发送和接收数据模块连接结构框图

智能小车通过串口转换软件在上位机发送指令给单片机串口,经单片机串口控制IO 口的电平,驱动电机的转动,再把USB 摄像头的视频进行编码, 然后通过WiFi 模块返回给上位机软件,这样就可以在控制软件上看到图像[11]。

2.8 SG90 舵机

SG90 舵机是一种位置伺服驱动器, 接收机或单片机发出信号给舵机,舵机内部有一个基准电路,产生周期20 ms、宽度1.5 ms 的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。 舵机的转动角度是通过调节PWM 信号的占空比实现的,标准PWM 信号的周期固定为20 ms(50 Hz),控制方式是PWM 时序。舵机控制参数见表2。

表2 180°舵机控制参数

2.9 智能小车硬件

按照相应的元器件结构以及组装接线顺序完成智能小车的组装, 智能小车成品如图7 所示。

图7 智能小车成品

3 系统软件

硬件设计和安装完毕之后,需要做的是程序的编写和烧录。 智能小车的程序代码是采用C++语言编写的, 采用Keil5 软件生成智能小车需要执行的操作文件,通过ST-Link V2 调制下载器下载程序。 手机端设计HJduino-STM32 APP 对小车进行控制。

3.1 循迹功能设计

智能小车的循迹功能是通过小车前面的3路红外循迹模块实现的。 大多数红外循迹方式是当左边的红外传感器检测到偏移黑线时小车往右偏,当右边的红外传感器检测到偏移黑线时小车往左偏,这种循迹方式无法保证精度,而采用AD 模式采集红外接收管信号,精度较高。 笔者设计的智能小车循迹是根据单片机通过内部AD 采集循迹传感器模拟量,然后通过调整PID 参数控制舵机角度来实现的[12]。

循迹模块模拟图如图8 所示,左、右红外传感器的作用是判断传感器距离黑线边界的距离,离黑线边界越远则AD 值越大, 中间红外传感器的作用是判断传感器是否在黑线内。 假设左右两个红外传感器间的距离和轨道黑线的宽度同为4 cm, 则传感器从左到右移动获取的图像如图9所示。

图8 循迹模块模拟图

图9 左、右传感器向右移动获取的图像

将右传感器的值减去左传感器的值,所得结果如图10 所示,可见,获得的有限数据长度在4 cm 的黑线范围内,当数据为零时表示小车循迹方向没有偏差,当数据大于零时小车左偏,当数据小于零时往右偏,数值越大则小车偏移越大。

图10 左、右传感器相减所得的图像

当智能小车的速度过快时,小车容易冲出黑线循迹范围, 根据图10 可知有效长度左边和右边有一段区域未被使用,可以将左右两端未被使用的数据纳入到有效数据之内。 通过中传感器获得左、右阈值点,图像如图11 所示,可见,当中传感器小于阈值时,通过判断左右传感器的差值来处理左右两边的数据,数据反转斜率为原来的两倍,最终得到的数据处理结果如图12 所示,宽度是原来的3 倍,这样小车就不会偏离轨道。

图11 中传感器获得的左、右阈值点图像

图12 数据处理的最终图像

3.2 WiFi 程序

WiFi 模块是通过串口通信协议在智能小车与手机建立通信, 通过手机端发送遥控指令,物体通过镜头生成光学图像投射到图像传感器上,光信号转换成电信号,再经过A/D 后转换成数字图像信号,最后送到DSP 加工处理,由DSP将信号处理成特定格式的图像传输到手机显示屏[13]。

通过HJduino-STM32 APP 将手机连接上小车的WiFi,设置IP 地址控制端口,然后通过操控按钮发送指令,智能小车接收到指令后进行相应的动作。 通过手机软件可操控智能车。

在手机软件上,通过云台控制,调节舵机转动角度,使摄像头能够捕捉周围画面,左边按钮能够使小车完成前、后、左、右和有斜度的方向的行进, 右边按钮能够通过舵机调节摄像头角度。

电脑端同样可以连接智能小车的WiFi 模块,实现对智能小车的操控,进行拍照并以jpg 格式保存。

3.3 避障功能程序

智能小车的避障模块选择的是两个红外光电传感器,当前方有障碍物时,红外发射管发出的红外信号经红外接收管接收后,由集成芯片放大、比较后输出一个低电平信号,点亮模块上的LED 发光管。 智能小车的避障流程如图13 所示。

图13 智能小车的避障流程

由图13 可知,如果没有检测到任何物体,则小车直行;左边探头检测到物体时,则小车后退500 ms、右转500 ms;右边探头检测到物体时,小车后退500 ms、左转500 ms;左、右两侧都检测到物体时,小车后退700 ms、右转500 ms。避障程序源码如图14 所示。

4 结束语

智能小车以STM32F103 单片机作为主控核心, 对外设的驱动电机、WiFi 及传感器等模块进行控制,经过多次调试和测试验证后,成功实现了自主循迹避障、手机软件控制等功能,后期加以完善,即可投入市场,应用于勘探、消防、无人驾驶及环境探测等领域。

猜你喜欢

黑线循迹舵机
基于DFT算法的电力巡检无人机循迹检测系统设计
直升机某型舵机自动测试系统设计分析
黑线
浅谈基于机器视觉和姿态检测的循迹智能车
基于dsPIC单片机的飞艇舵机控制实现
虾背黑线真的特别“脏”吗
智能差分循迹小车设计
超音速舵机保护器
这也算海鲜
七巧数独