新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于STM32与DFS算法的电脑鼠的研究与设计

基于STM32与DFS算法的电脑鼠的研究与设计

作者:祝朝坤,韩彦净,谷会斌(郑州工商学院,郑州451400)时间:2022-06-16来源:电子产品世界收藏

摘要:随着与工业自动化的发展,机器人在各个领域的运用愈发广泛,自动化机器人逐渐代替人力已经成为社会的发展趋势。作为移动机器人的典型代表,涉及到运动控制、传感器、路径规划、机械设计等多个技术领域。本设计对当前市面上流行的机器人进行改进和优化,通过改进的整体结构,提高运行的稳定性,通过设计电脑鼠的运动驱动方案、测距方案,并深入研究电脑鼠的运动算法,并采用 算法重新设计电脑鼠的路径规划算法,实现电脑鼠的最优路径规划。并能够通过实时显示电脑鼠的电池电压、运行模式、实时位置、方向等信息,并可对电脑鼠的参数进行实时修改,以应对不同环境下参数配置的需要,在一定程度上推进了电脑鼠的在现实中的应用。

本文引用地址:http://www.eepw.com.cn/article/202206/435261.htm

关键词;电脑鼠;

1 研究背景及意义

近年来,自动化机器人在智慧工业、智慧工地、智能家居等多个领域均得到了广泛的应用,而针对机器人的自动规划路径的研究,也变得更有必要。本设计以 STM32F103RCT6 单片机为主控制器,为主要传感器,结合深度优先搜索算法 (depth-first-search, ) 算法,对电脑鼠机器人在其当前所处环境(迷宫)中,探索最优运行路径展开研究。

本设计的研究主要从以下几个方面进行。

(1)路径规划:一个好的算法可以使电脑鼠在迷宫中走最少的路线而找出迷宫的终点,所以,研究迷宫算法的过程中,需要对电脑鼠的路径进行规划,而在现实生活中,比如工业机器人在不同的工作站运送物料,就需要对路径进行规划,减少运动的轨迹,可以有效地延长机器人的使用寿命。

(2)智能避障:电脑鼠采用的,通过发射红外由墙壁反射再有红外接收管接收,再由主控制器进行 ADC 采集,计算出墙壁的距离。

(3)运动控制:电脑鼠在迷宫中运行时,需要时刻保持电脑鼠位置处于赛道的中间位置,这就需要对电机的转速进行更加精确的控制。而在电脑鼠进行转弯的过程中对转速的要求则更加严格。

(4)运动轨迹可视化:电脑鼠在运行过程中,通过调试板与 PC 进行通信,电脑鼠实时上报当前的状态,包括电池电压、运动轨迹、当前位置等信息。通过对运行轨迹的分析,可以优化出更好的算法,并且可以通过上位机对电脑鼠内部参数进行修改。

2 系统电路设计

2.1 红外发射电路

SFH4550 工作时的电流为 100 mA,所以串联 50 Ω 电阻进行限流,通过 NMOS 进行驱动,该型号的 MOS 最大电流可达到 5 A,栅源极阈值电压为 2.7 V,因此可以通过微控制器直接进行控制。该电路具有结构简单、高效、利于控制等优点,红外发射电路原理图如图 1。

1655380451138537.png

2.2 红外接收电路

TPS601A 在工作时,接收到对应波长的红外光束,形成到导通回路形成电流,通过电阻进行分压,并通过微控制器进行 AD 转换将电压的模拟量转换为数字量,根据电压的高低,来获取当前电脑鼠与墙壁的距离。红外接收电路原理图如图 2。

1655380530546855.png

2.3 电机驱动电路

电机驱动电路采用的是 TB6612,该电机驱动芯片外围电路设计简单,仅需要两个电容即可。内部具有大电流的 MOSFET-H 桥结构,并且是双通道驱动,一个芯片可以驱动两个电机,支持正转、反转、制动、停止 4 种控制模式,同时内部具有低压保护电路与过热停机保护电路。电机驱动电路原理图如图 3。

1655380582659570.png

2.4 电池电压采集电路

电脑鼠在运行过程中,为防止电池电压过低造成电池的过放电损坏电池,经过查询资料得知 8.4 V 的锂电池组当电压小于 7.4 V 时就属于亏电,所以采用了低电压待机的方案,当电压小于 7.4 V 时启动电脑鼠进入待机状态。分压电阻将电池电压调整到微控制器可以采集的范围。原理图如图 4:

1655380635118645.png

3 微控制器程序设计

3.1 运动控制程序设计

1655380732436197.png

在电脑鼠运行过程中,电脑鼠不断读取红外传感器的数据,通过比例算法实时调整左右电机的转速,实现电脑鼠的位置始终保持在赛道的中间位置。

(2)直角转弯:连续转弯的控制比较复杂,需要对电脑鼠的左右轮行驶的距离和速度进行精确的控制,连续转弯时的运行轨迹如下图 5,经过简单计算可以得出内外圈的长度比为 1:3.5,因此就需要内圈与外圈的转速比需要达到 1:3.5 才能在相同时的时间下经过 90 度转弯。

1655380801153121.png

(3)原地掉头:只需要控制电脑鼠左右轮向互斥方向转动 180 度即可。

3.2 系统程序设计

本程序的系统流程图如图 6,电脑鼠在上电的时候先对红外传感器,电机驱动等外设模块进行初始化,判断电池电压是否正常,如果电池电压过低进入待机状态不启动电脑鼠,如果电池电压正常即进入模式判断,探索模式、固定路线、调试模式三种模式。

image.png

(1)探索模式:电脑鼠在探索模式下,不断获取红外传感器信息,在没有发现路口的情况下保持直行的状态,当发现路口时首先会获取当前电脑鼠在迷宫中的坐标信息,在进行与目标点的绝对位置计算,当前进一格后到终点的绝对位置小于转弯后前进一格到终点的绝对位置,那么程序判断直行到达终点的代价会小于转弯到终点的代价,执行继续前进的指令。反之当前进一格后到终点的绝对位置大于转弯后前进一格到终点的绝对位置,那么程序判断直行到达终点的代价会大于转弯到终点的代价,执行转弯指令。直到到达终点,停止运动,进行 DFS 迷宫最短路径解算,如图 7。

1655380929600378.png

(2)固定路线模式:在电脑鼠的比赛中是允许电脑鼠进行多次测试的,当在探索下当电脑鼠到达了终点,并且经过了 DFS 算法解算出最短路径,此时的最短路径信息会被保存在微控制器内部的 Flash,做到掉电不丢失,中途更换电池也不会影响电脑鼠中储存的最短路径信息,程序流程如图 8。

1655380974856307.png

(3)调试模式:该模式主要用于电脑鼠的调试阶段的程序参数的修改,在调试模式下电脑鼠是处在一个待机的状态下的,不断接收上位机发送的信息,解析出需要修改的信息,进行指定数据的修改,在修改完成之后,返回一条修改好的数据返回给上位机软件,告诉上位机软件修改后的数据,通过该模式可以大大提高电脑鼠的调试效率,免去了修改代码、重新下载程序等的重复的步骤。调试模式程序流程图如下图 9。

1655381037336449.png

(4)DFS 是一种用于遍历或搜索树或图的算法,沿着树的深度遍历树的节点,尽可能深的搜索树的分支。而在电脑鼠到达终点时,电脑鼠在探索过程中的迷宫信息都将保留下来,将电脑鼠走过的轨迹创建为一个新的迷宫,将迷宫的数据导入到 DFS 算法中, DFS 的本质就是穷举法,DFS 开始遍历迷宫的各分支找出一个最短的分支。并将分支的位置信息保存在 Flash 中,用于电脑鼠返回的导航数据以及再次冲刺时的数据导航。DFS 算法程序流程图如下图 10。

1655381123303623.png

3.3 上位机程序设计

上位机的系统流程图如图 11,上位机在与电脑鼠进行连接时需要选择电脑鼠与电脑的端口以及波特率信息,当电脑鼠与电脑建立起连接后,电脑鼠会不断上传电压、运行模式等状态信息。在连接成功后并且电脑鼠处于调试模式时,上位机可以使用修改参数的功能,对电脑鼠的数据进行修改。如果电脑鼠处于探索模式下,程序主窗口会实时显示电脑鼠在迷宫的位置信息。

image.png

(1)主界面:主页面的主要作用就是显示运行信息、通知信息、电脑鼠的实时位置,以及电脑鼠的串口连接设置、功能按钮,如图 12。image.png

图12 主界面设计

(2)修改参数:修改参数是为在调试电脑鼠的时候方便修改电脑鼠内部的数据,如图 13。

image.png

4 结语

电脑鼠是移动机器人领域的重要分支,传统的电脑鼠运行速度、稳定性都比较差,并且大多数采用数字红外传感器技术来判断电脑鼠周围的环境,迷宫的解算算法也比较落后。本设计针对传统电脑鼠的明显的弊端,深入研究电脑鼠的红外布局、运动控制、红外测距、硬件设计等,并最终完成了电脑鼠的设计。主要研究成果如下:

(1)改进了红外传感器的布局,并采用了高聚集的红外发射管和红外接收管,使电脑鼠采集的数据更加灵敏、准确、快速;

(2)改进了传统电脑鼠的控制方案,采用编码电机实现了电脑鼠的速度、位置双闭环控制器,对行驶中的电脑鼠速度、位置进行精准的控制,设计出电脑鼠的连续转弯机制,该转弯方式可以显著提高电脑鼠的在转弯时所用的时间;

(3)改进了传统电脑鼠的调参过程,传统电脑鼠的调参需要修改代码重新下载程序,非常麻烦。特别是当到达一个新的比赛环境,这样的方式就显得不是很高效,而采用了上位机的方式来调节参数就不会有这种麻烦,修改参数只有将需要修改的数值填上,即可实现一键对电脑鼠的数据进行修改;

(4)改进了电脑鼠的迷宫解算算法,实现了 DFS 算法与电脑鼠的结合,大大提高了电脑鼠解算迷宫的准确性。

参考文献:

[1] 刘奇.吸盘电脑鼠的设计与控制算法研究[D].天津:天津工业大学,2019.

[2] 李明.迷宫电脑鼠控制系统设计与算法研究[D].赣州:江西理工大学,2008.

[3] 王远敏.深度优先搜索算法的应用研究[J].网络安全技术与应用,2022(03):40-42.

[4] 曹景铭.基于强化学习的电脑鼠优化方法研究[D].北京:北京交通大学,2021.DOI:10.26944/d.cnki.gbfju.2021.000850.

[5] 王伟强.基于电脑鼠的底层驱动库的设计与实现[J].科技创新与应用,2016(16):83.

[6] 路亮.高端电脑鼠设计与控制研究[D].天津:天津工业大学,2018.

(注:本文转自《电子产品世界》杂志2022年6月期)



评论


相关推荐

技术专区

关闭