基于STM32的自主跟随平衡车

时间:2022-07-06 10:17:20

基于STM32的自主跟随平衡车

[摘 要]自主跟随是服务机器人领域的研究热点之一,平衡车则是一种便捷美观的交通工具,针对这两点设计出一台基于STM32、超声波定位的可自主跟随的平衡车。平衡车以STM32F103C8T6为主控芯片,开机后可选择自主跟随模式或蓝牙遥控模式。在自主跟随模式下,通过平衡车前端左右两个超声波模块对跟随目标定位,进而通过PWM控制左右电机差速转动实现自主跟随。在蓝牙遥控模式下,可手机遥控实现平衡车的前进,后退,左转,右转。实验结果显示,平衡车可自主跟随设定目标,有效跟随距离不大于40cm,响应时间不超过0.45s。该设计具有外形美观、跟随稳定等特点,适用于会场、展览厅等公开场合作为服务机器人应用。

[关键词]服务机器人;平衡车;超声波定位;自主跟随

中图分类号:TE922 文献标识码:A 文章编号:1009-914X(2016)27-0175-02

1 引言

在机器人领域,随着人们对高科技产品需求的增加,相对于传统的工业机器人,服务机器人的研究意义和应用价值在逐步提升。服务机器人的应用范围很广,主要从事修理、运输、救援、监护等工作,因而服务机器人能够被大量的应用。

而自主跟随则是服务机器人的研究热点之一。本项目研究的具体内容是设计一台可自主跟随的平衡车。在它的的基础上,可以扩展导航,通讯,负重,蓝牙遥控等功能。这些功能的实现可以解决人们对服务机器人的基本需求,其研究价值和研究意义十分显著。

2 系统原理与硬件设计

2.1 系统原理

系统共可分为三个部分,分别为平衡车的设计、自主跟随的实现和蓝牙遥控功能。系统的总体结构图如图1所示。

2.1.1 平衡车原理

世界上还没有任何一个天才杂技演员可以蒙着眼睛使得木棒在自己指尖上直立,因为没有了眼睛观察进行负反馈。

要保持平衡车的直立状态,就要有外加力“抵消”使车体倾倒的重力分量。即在平衡车倾斜过程中,通过车轮的加速运动来维持水平方向的受力平衡。

平衡车采用STM32F103C8T6作为主控芯片,MPU6050模块采集车体的倾斜角和角加速度,把姿态信号转变成电信号传递给单片机。单片机接受到传回的电平信号,对数据进行处理后,通过调节PWM进而调整左右电机的转速,从而实现车体直立。

2.1.2 自主跟随原理

要实现自主跟随功能首先需要对跟随目标进行定位。超声波传感器具有灵敏度高,适用性强等优点,借助两个超声波接收器和一个超声波发射器即可实现对目标的定位。首先平衡车向跟随目标发射无线电信号,同时开始计时,在跟随目标接收到无线电信号后向平衡车发射超声波信号,由于超声波发射端与平衡车左右的两个超声波接收端距离不同,则超声波信号到达两个接收端的时间不同,如图2所示。根据超声波定位算法即可计算出跟随目标在平衡车所建立坐标系中的具体坐标,从而得到跟随目标相对于平衡车的方位,最后调节PWM控制左右电机转速实现平衡车的自主跟随。

2.1.3 蓝牙遥控原理

基于安卓机平台,借助于蓝牙技术,可以实现对平衡车的无线可控,增加了这一功能后,平衡车在外界干扰严重,地形复杂的情况下依然可以通过蓝牙遥控跟随目标。

手机蓝牙作为客户端,平衡车上的蓝牙模块HC-05作为服务端,客户端采用Eclipse开发环境,JAVA编程,服务端采用STM32控制。双方通过串口进行通信,车体上的蓝牙模块接收从手机端发送过来的动作指令,把指令再传递给单片机,单片机通过分析处理指令,而运行不同的子程序来控制电机驱动,进而实现小车的前进、后退、左转、右转等不同的动作。

2.2 超声波发射端和接收端电路设计

超声波接收电路采用CX20106A集成电路,对接收到的信号进行放大和滤波。管脚1是超声波信号输入端;管脚2的C6、R1决定接收换能器的总增益,增大电阻R或者减小C,将使放大倍数下降,负反馈量增大,电容C的改变会影响到频率特性,使用中一般不改动,选择参数 R=4.7Ω,C=3.3μF;管脚3与GND之间连接检波电容,由于检波输出的脉冲宽度变动大,选择参数3.3μF;管脚5上的连续电阻R2用以设计带通滤波器的中心频率,阻值越大,中心频率越低,取R=200kΩ时,中心频率约为42kHz;管脚6与GND之间接入一个330p F的积分电容,如果该电容取得太大,会使探测距离变短;管脚7是命令输出端,它是集电极开路的输出方式,因此该引脚必须接上一个上拉电阻R5=220kΩ到电源端,没有接收信号时该端输出为高电平,有信号时则会下降;管

脚8接电源正极5 V。

3 软件与算法设计

3.1 主程序设计

单片机上电后首先进行系统的初始化,包括时钟配置、延时函数初始化以及调试程序时所需串口的初始化。其次由矩阵按键进行模式的选择,分为自主跟随模式和蓝牙遥控模式。

3.2 平衡车PID参数调试

3.2.1 直立环调试

平衡车直立环使用PD(比例微分)控制器,其实一般的控制系统单纯的P控制或者PI 控制就可以了,但是那些对干扰要做出迅速响应的控制过程需要D(微分)控制。下面是直立环PD控制的代码:

3.2.2 速度环调试

平衡车速度环使用PI(比例积分)控制器,这也是速度控制最常使用的控制器。PI控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差,将偏差的比例(P)和积分(I)通过线性组合构成控制量,对被控对象进行控制。

3.2.3 转向环调试

平衡车转向环使用P(比例)控制器或者P(比例)D(微分)控制器,一般的控制系统单纯的P控制或者PI控制就可以了,转向环就是这种“一般的控制系统”,对响应要求不高,所以只使用P控制即可。

3.3 超声波定位算法

将超声波发射端和接收端控制在同一水平面上,以平衡车前端中点作为坐标原点建立平面直角坐标系,跟随目标的超声波发射端坐标为(a,b),两个超声波接收端的坐标分别为(0,x1)和(0,x2),由解析几何两点间距公式:

可得两个超声波接收端距离超声波发射端的距离L1和L2:

当L1

4 测试结果及误差分析

4.1 测试结果

测试分为两项,首先测试在不同跟随距离下平衡车自主跟随的成功率。具体内容是在外界条件不变的情况下,统计小车在不同距离下分别完成十次自主跟随的成功次数,这一结果对改进平衡车的PID参数十分有用,可增加系统的稳定性。其次测试在不同跟随距离下,平衡车响应的快慢。具体内容是在外界条件不变的情况下,测量响应时间的长短,这一结果有利于优化超声波定位算法,加快系统的响应速度。测试结果如表1所示:

4.2 误差分析

4.2.1 误差来源

1)超声波传感器的测量范围有限。超声波传感器不是全向传感器,而是具有一定的方向性,它的测量范围是前方60°范围内的有效区域,当位于测量范围的临界边缘时会增加系统误差。

2)超声波信号的衰减。超声波信号在传播的过程中会随着距离的增加而衰减,跟随距离越大,衰减情况越严重,造成的误差就越大。

3)检测到超声波信号的迟滞时间。

这与超声波信号的强弱、接收电路的设计有关,这也是超声波定位过程中误差最大的环节。

4.2.2 减小误差的措施

AGC环是闭环电子电路,是一个负反馈系统,它可以分成增益受控放大电路和控制电压形成电路两部分。增益受控放大电路位于正向放大通路,其增益随控制电压而改变。控制电压形成电路的基本部件是AGC检波器和低通平滑滤波器。放大电路的输出信号Uo经检波并经滤波器滤除低频调制分量和噪声后,产生用以控制增益受控放大器的电压Uc。当输入信号Ui增大时,Uo和Uc亦随之增大。Uc增大使放大电路的增益下降,从而使输出信号的变化量显著小于输入信号的变化量,达到自动增益控制的目的。因此在不同的跟随距离下可以改变增益大小,维持恒定的信号强度,缩短检测过程中的迟滞时间。

另一个减小误差的措施是增大超声波信号的发射功率或发射的持续时间,并在跟随过程中尽可能的缩短距离,减小衰减误差。

参考文献

[1] 王薇.探究超声波传感器及其应用[J].中国新通信.2016(18).

[2] 赵昊宁,聂宪波,关立强,巩文文,邵泽健.自动跟随运输系统设计[J]. 自动化应用.2015(12).

[3] 陈波.基于神经网络PID控制的两轮自平衡小车研究[D].西南交通大学 2014.

作者简介

彭远哲,男,1995年出生,汉族,本科生,研究方向:嵌入式开发。

基金项目

西南科技大学大学生创新基金项目资助。项目编号CX2016-103。

上一篇:临汾区块煤系地层天然气集输管线安全管理分析 下一篇:油井井口盘根更换器