1.以STM32微控制器作为核心单元
在智能小车的设计中,我们选择STM32微控制器作为核心控制器。该微控制器具有丰富的外设接口和强大的处理能力,能够满足智能小车对实时性和准确性的要求。选择STM32芯片作为主控芯片有以下原因,并介绍了该芯片的特点:
(1)强大的计算能力:STM32芯片基于ARM Cortex-M3内核,具有高性能的计算能力。它的主频较高,可以处理复杂的算法和任务,适用于要求较高处理能力的应用。
(2)丰富的外设接口:该芯片拥有丰富的外设接口,包括多个通用输入输出口 (4P10)、模拟输入输出口 (ADC、DAC)、通用定时器(TIM)、串口通信接口 (USART、SPI.12C)等。这些接口可以与其他硬件设备进行连接和通信,满足系统的各种需求。
(3)低功耗设计:STM32F具有较低的待机功耗和运行功耗。这对于需要长时间运行的嵌入式系统日非常重要,可以延长电池寿命或减少功耗消耗。
2. 系统主要由以下几个模块构成
(1)电机驱动模块
电机驱动模块采用L298小电机驱动芯片,能够驱动两路直流电机或步进电机,通过PWM信号控制电机的转速和方向,实现小车的前进、后退、左转、右转等动作。
选择L2981电机驱动模块作为电机驱动模块有以下原因,并介绍了该模块的功能特点:
① 高电流和高电压输出能力:L298N电机驱动模块采用L298N芯片作为驱动器,具有较高的电流和电压输出能力。它可以支持最大2A的输出电流和最大46V的输入电压,适用于驱动各种类型的直流电机
② 双路电机控制:L2981电机驱动模块具有两个独立的电机驱动通道,可以同时控制两个直流电机的转速和方向,这使得它非常适合用于双轮驱动的小车和机器人项目。
③ 支持PWM控制:该模块支持脉宽调制 (PWM) 控制,可以通过调整PWM信号的占空比来控制电机的转速。这使得用户可以根据需要精确控制电机的速度和运动。
④ 内置保护功能:L298N电机驱动模块内置了过流保护和过热保护功能。当电机电流超过设定值或模块温度过高时,模块会自动停止电机驱动,以保护电机和模块的安全性。
⑤ 简单易用:L2981电机驱动模块接口简单,使用方便。它具有标准的接线引脚,可以直接与主控芯片或其他控制器连接。同时,该模块也有大量的使用案例和示例代码可供参考,便于开发者快速上手。
(3)传感器模块
传感器模块包括超声波测距传感器、红外避障传感器、陀螺仪等。超声波测距传感器用于测量小车与障碍物之间的距离;红外避障传感器用于检测小车前方是否有障碍物;陀螺仪则用于测量小车的姿态和角度。
图4 传感器模块原理图
(4)电源模块
电源模块采用锂电池供电,通过电压转换电路为STM32微控制器和电机驱动模块提供稳定的电能。同时,设计有充电电路和电池电量检测电路,确保小车能够持续稳定地工作。
(5)红外避障模
红外避障模块选用不怕光的HJHIR2传感器,它相当于一个红外电子开关,检测到障碍输出低电平,一般情况下为高电平。当前方有障碍物时,红外管发出的红外信号经红外接收管接收回来后,经集成的芯片放大,比较后,输出一低电平,点亮模块上的LED发光管,同时可以输出一个低平信号,信号可以作为单片机的信号输入检测控制外部各种驱动模块之用。HJ-IR2传感器具有模块三线制的特点,VCC为电源+5V, OUT为信号输出端,GND接电源负极。探测距离大概为1-30CM(探测距离的长短和供电电压、电流还有周围环境有关)。工作电压为5V,工作电流为18-30ma左右。
图5 红外避障模原理图
(6)红外循迹模块
(a) 循迹系统设计
红外循迹模块由智能小车底板上 2 组红外对管、一个灰度传感器、电压比较芯片、电位器、状态指示 LED 灯组成。
(b) 循迹系统原理
图6循迹程序流程图
利用判断黑白线来完成循迹,红外光有一个反射特性:不同的物体反射特性不同,尤其对白色反光的物体,红外光的反射量相对会多一些。通过发射和接受红外线将光信号转变为电信号,从而控制小车运动,即循着黑线行走。底板的两组红外管分别对应两个轮子的路线检测。控制底部两传感器不断发射红外光。若两个红外传感器均接收到信号则说明黑线处于两传感器之间,即车轮之间,此时小车保持直线行驶。若左侧传感器未接收到返回的信号,则说明此时左侧车轮已驶出黑线外,此时需控制小车左侧电机正转,右侧电机停转,即小车向右转弯,直至两传感器再次均接收到信号时,小车恢复直行状态。若右侧传感器未接收到返回的信号,与上述操作同理,方向相反。在需要倾倒的地点,通过改变黑线的颜色深浅,设定一固定值,当灰度传感器检测到这一固定值时,小车关闭循迹系统,执行抓取或放置任务,当完成抓取或放置任务后,重新开启循迹系统。
(7)手机控制模块
通过编写手机app,借助蓝牙或wifi,实现无线通信,完成对小车的遥控。
(8)机械臂模块
图7 机械臂模块流程图
(a)机械臂模块的主体结构
机械臂模块的主体结构由多个关节和连杆组成,这些关节和连杆在控制系统的指导下进行协调运动。主要部分包括:
① 基座:通常固定在智能搬运小车的车身上,是机械臂的支撑部分。基座需要足够坚固,以承受机械臂的重量和操作时的力矩。
② 关节:通常使用伺服电机、步进电机或液压驱动。常见的机械臂结构有旋转关节(用于实现旋转动作)和线性关节(用于实现线性位移)。
③ 连杆:将各个关节连接在一起,起到传递运动和力量的作用。通常采用轻质合金材料,如铝合金,既保证强度又能减少重量。
末端执行器是机械臂与外部环境进行交互的部分,具体选择取决于搬运物品的性质和需求。此项目采用的是电动式夹爪,其通常由两个或多个爪片组成,通过闭合/张开动作实现物品抓取。而机械臂的各个关节由电动机控制。其系统包括:伺服电机(Servo Motors)和步进电机(Stepper Motors)是最常见的驱动方式,能够实现精确的位置控制。伺服电机常用于高精度和高负载的应用中。机械臂传动装置:通过齿轮、皮带、滑轨等传动方式实现机械臂关节的运动。
(b)机械臂控制系统
控制系统是智能搬运小车机械臂模块的“大脑”,负责协调各个部分的运动,确保任务的顺利完成。主要组成包括:
① 运动控制器:负责机械臂的运动学和动力学计算,如反向运动学(IK)和前向运动学(FK),确保机械臂在目标位置进行精准操作。
② 传感器接口:与传感器系统(如力传感器、位置传感器、摄像头等)连接,反馈环境信息,以便实时调整机械臂的动作。
③ 任务调度模块:控制整个机械臂执行任务的顺序和逻辑,如抓取、移动、放置等操作。
④ 通信模块:确保机械臂与智能小车的其他部分(如导航系统、传感器、云平台等)进行实时数据交换。
(c)机械臂传感器系统
传感器系统帮助机械臂实现精确定位、避障、抓取和精密操作。常见传感器包括:
① 位置传感器:如旋转编码器、光电编码器等,用于检测机械臂各关节的角度位置。
② 力/扭矩传感器:安装在机械臂末端或关节处,用于实时监测施加的力和扭矩,帮助防止过载和保证物品的安全搬运。
③ 摄像头/深度相机:用于物体识别、抓取位置定位、避障等任务,配合视觉算法进行环境感知。
④ 激光雷达(Lidar)或超声波传感器:用于避免机械臂在操作过程中的碰撞和避障。
(d)机械臂电源系统
电源系统负责为机械臂提供稳定的电力供应,特别是在电动机和传感器工作时。一般包括:
① 电池:用于提供移动平台和机械臂的电力,特别是对于无轨小车来说,电池是非常重要的。
② 电源管理系统:负责电池的充电、分配和监控,确保电力的高效利用和安全。
(e)冷却与散热系统
为了避免过热,特别是在高负载和长时间运行的情况下,机械臂的电机、控制器和驱动系统通常需要配备冷却装置。这可以通过散热片、风扇或者液冷系统来实现。
(f)移动平台
对于智能搬运小车,机械臂通常与移动平台结合,实现自主搬运。移动平台的结构包括:
① 轮式驱动系统:通常使用电动轮或者履带,提供运动的动力。
② 导航系统:包括视觉、激光雷达(Lidar)、IMU等,用于实现自主导航和定位。
③ 传感器系统:帮助小车进行环境感知,确保机械臂在搬运过程中不发生碰撞。
2. 拟解决的问题
(1)物品识别算法的设计与优化
物品识别是智能模式运行时的一项重要内容,智能搬运小车识别区别于其他图像识别:
① 在识别的过程中可能会遇到极端天气,如强光或下雨,对识别产生的干扰更大。
② 智能搬运小车搭载的芯片内存有限,用于识别的垃圾图片数据库相对较小,对识别算法的精准度要求更高。提升物品识别的精度与灵敏度对物品分类的效率与质量的提升将有非常大的帮助,因此,需对物品分类识别的算法进行优化设计,使其能够更好服务于物品分类搬运。
(2)对数据集收集的优化
由于我们从网络上收集到的数据集是一个较小的数据集,仅有两千多张图片,但通常训练深度学习模型都要求有上万张乃至更多的图片。去网上采集更多的图片扩充数据集显然是最理想的方法,但那样会花费大量的时间与精力,所以对于扩充数据集数据能避免因为数据集太少导致在模型训练过程可能出现的过拟合现象,以此来提高模型泛化能力,达到更好的效果解决途径。
(3)避障算法准确度的提高
避障算法受制于传感器限制,目前只能实现较近距离的避障,这仍然会带来一定的风险,我们将通过改进传感器及算法的设计,实现更稳定的避障系统。
3. 解决途径
(1)物品分类识别部分,主要使用CNN算法识别,我们将查阅相关书籍、文献以及互联网资源等,借鉴其他的主流识别算法,对CNN算法做进一步的优化。
(2)数据增广就是对基础数据集进行扩充,根据扩充数据集的来源可分为两类:内部数据增广是对基础数据集进行水平翻转、垂直翻转、高斯噪声以及高斯模糊等变换操作,来产生新的特征;而外部数据增广是引入新的高质量外部数据来扩充数据集,包括数据爬取与数据筛选两个步骤。
4. 预期成果
(1)研究报告
基于STM32的智能搬运小车搬运物品一体化系统创新项目研究报告一份。
(2)论文撰写
发表“基于STM32的智能搬运小车搬运物品一体化系统”相关的学术论文1篇,对最终的整个系统构造和技术进行阐述。
(3)申请软著
申请“基于STM32的智能搬运小车搬运物品一体化系统”的软件著作权1项。
(4)研制产品
研制出基于STM32的智能搬运小车搬运物品一体化系统。
(5)竞赛获奖
依托此次研究设计经验,有利于项目组成员提升自己的专业知识和科研能力,积极参加创青春,挑战杯,互联网+等竞赛。