基于单片机的机床切屑运输系统设计

目 录

摘 要 I
Abstract II
引 言 1
1 机床切屑运输系统方案设计 3
1.1 方案论证 3
1.2 项目总体设计 4
1.3 机床切屑运输系统的优势 4
2 机床切屑运输系统总体设计 6
2.1 主控模块设计 6
2.2 AGV运输模块 9
2.3 寻迹模块 10
2.4 切屑检测模块 10
2.5 卸载模块 11
2.6 总体设计电路图 12
3 机床切屑运输系统软件设计 13
3.1 软件开发环境的介绍 13
3.2 主函数设计 13
3.3 AGV部分子程序设计 15
3.4 切屑检测模块子程序设计 15
3.5 卸载模块子程序设计 15
4 项目调试 16
4.1 系统硬件测试 16
4.2 系统软件测试 16
结 论 19
参考文献 20
附录1 源程序清单 22
致 谢 32

摘 要

中国2011年大约产生了1亿1570万吨的废铁屑,而2011年中国的铁屑消费量约为1亿2250万吨[1]。回收的切屑除了熔块再加工外,其自身的强还原性也经常被工厂用于含磷、含铬污水的处理以及铅、锰等物质的提取。近年切屑被回收后的利用率极高。但切屑的收集运输方面仍存在较大的问题,即使经过切削液的降温,也仍然很热,且格外锋利,因此在回收切屑的过程中经常会造成回收车间环境的污染,甚至划伤、烫伤工作人员。切屑的形状各异且不规则,所以其收集和运输常常要耗费大量的人力和物力。
针对目前金属减材加工制造行业中存在的切屑处理问题,本文设计了一种基于单片机控制的切屑运输系统,此系统提供了切屑由机床排屑器到切屑处理车间过程中所需面临的切屑收集、运输、排放等全部问题的自动化解决方案,并通过对比,选择了性价比更高的设计方案,具有较高的可推广性。
最后通过模型对厂区布局及本系统进行还原,实践证明了本系统在工厂中可使切屑处理的工作效率得到了显著的提高,并对智能工厂建设起到了推进作用。

关键词: 切屑运输;单片机; 生产安全; 智能工厂

Abstract

China produced approximately 115.7 million tons of scrap iron scrap in 2011, while China’s iron scrap consumption in 2011 was about 122.5 million tons [1]. In addition to the large amount of swarf, it is often used for the extraction of lead and manganese and the treatment of sewage containing phosphorus and chromium in addition to the reuse of the furnace frit. In recent years, the utilization rate of chips after recycling is extremely high. However, there is still a big problem in the collection and transportation of chips. Even after the cooling of the cutting fluid, it is still very hot and extremely sharp. Therefore, these chips often cause pollution in the recycling workshop environment, and even scratch and scald workers, affecting safety Sex. The shape of the chips is different and irregular, so the collection and transportation often consume a lot of manpower and material resources.
In view of the current chip processing problems in the metal subtractive processing and manufacturing industry, this paper designs a chip transportation system based on Single-Chip Microcomputer. This system provides chip collection from the machine tool chip conveyor to the chip processing workshop. , Transportation, emissions, and other automatic solutions to all problems, and through comparison, choose a more cost-effective design solution, with high scalability.
Finally, the model is used to restore the plant layout and the system. Practice has proved that the system can significantly improve the efficiency of chip processing in the factory, and it plays a role in promoting the construction of smart factories.

Keywords: Chip transportation; Single-Chip Microcomputer; production safety; smart factory

引 言

在机械加工行业中,通常将加工过程中产生的铁屑、铝屑及由于切削产生的热量将铁屑熔接结所产生的不定型金属物统称为切屑[1]。
在使用车削、铣削、磨削等加工方法时均会产生切屑[2],所产生的切屑不仅锋利,且经常混有大量的切削液,因此在对其进行收集和处理时经常会污染处理车间的环境,划伤车间地面,甚至导致工作人员的划伤与烫伤,其收集和运输工作经常会导致人力和物力的不必要损耗。因此关于切屑的收集和运输方案困扰了很多加工厂。
近年,随着机床自动化程度的提升,往往会使用排屑器将机床内部的切屑转运至机床外部,再由人工完成由机床到处理车间的工作。虽然转运工作会额外产生一定的工作量,但经过预处理后的切屑可直接回收进行再利用,在极大程度上减少了环境污染和金属资源的浪费[3]。
但是问题也随之产生:虽然排屑器可以直接将机床内部的切屑转运出来,但排屑器出口处仍需设置新的转运装置,并通过工人的手动操作将切屑装入编织袋后运输至切屑处理车间,针对此问题,在加工行业中存在着三种不同的解决方案。第一种方案是目前使用较为广泛的一种,即在排屑器出口处放置手推车,此方案需要安排专人进行转运及后续压块处理,且此方案对切屑排放量有较大的限制,一旦设备开粗,手推车将很快被切屑填满,且无法处理,一旦移动手推车,切屑就会散落一地,影响加工现场的整洁度,在运输过程中无法保证切屑的稳定,仍会导致切屑散落,且工人的安全无法得到应有的保障,人工成本较高,失去了压块机回收切屑的意义;第二种方法是在排屑器出口下方地面设计地沟,将切屑排入地沟,后续仍需专人进行收集及后续处理,本方案可以保证加工现场的整洁度,但地沟所需场地较大,工人安全无法得到保障,需专门设立标识提醒,且后续人工处理难度增加,转运仍需使用手推车;尽管这两种方案已较为成熟,但由于人力的介入,仍无法避免切屑划伤工人以及切削液污染环境等问题。
当工厂采用切屑运输系统后,其切屑转运能力提高50%以上,且人力几乎完全被本系统所取代。首先,当切屑由排屑器排出时,直接进入本系统设置的货仓内,此时系统会通过切屑检测模块对仓内切屑容量进行检测。当确定切屑装满货仓,系统会触发AGV转运功能。
AGV运转技术是全自动化技术,通过传感器数据规划路径信息,并反馈给微控制器,并发送控制信息给电机驱动模块,以驱动整体进行转运工作。因此,AGV技术具有以下几点优点:一、AGV系统可在设备不停机的情况下实现运输,缩短人工运输过程中的搬运准备工作,部分AGV可实现自动充电或快速换电功能,从而达到7×24小时不间断工作,工作效率更高[4];二、随着AGV技术的发展与成熟,其性价比显著提高,同时随着人口红利的逐渐消失,人工成本逐年升高,两者相比较,少人化,无人化的AGV优势更大,成本费用更低[5]。三、相较于人工运输的低效率以及行驶路径、速度、安全性的未知性,AGV的行驶路径和速度可控,定位精准,从而大大提高了运输的效率,同时,多AGV可配套选择管理系统,可以对AGV进行全程监控,可靠性和安全性得到极大提高[6]。四、较好的系统拓展性,通过管理系统或简单更改程序,可最大限度的修改AGV的行驶路线,分配不同的任务[6]。
本文是基于单片机设计的机床切屑运输系统,本篇论文共分三个章节,主要内容如下:
第一章:机床切屑运输系统方案设计。着重系统设计目标和设计原则,提出系统方案并结合实际情况,选择合适的处理方案及执行机构选型。
第二章:机床切屑运输系统硬件设计。根据需求及执行机构选型,搭建并焊接,单片机模块、电源供电模块、切屑识别模块、AGV运输模块、卸载模块及软件编写的方法介绍。
第三章:机床切屑运输系统软件设计。本章节主要对程序软件的设计原理及总体进行介绍。介绍了系统的设计原理以及系统流程图。
第四章:项目调试。对程序的编写及硬件连接部分的调试。完成本系统中,AGV路径识别及切屑运载量检测的程序调试过程及系统整体联调。

1 机床切屑运输系统方案设计

1.1 方案论证
本设计要求在实现切屑运输及切屑卸载过程中,既要保证系统对切屑运输的速度,又要确保在此过程中切屑和切削液不会洒落,因此在进行了多方调研后提出了如下两套设计方案。
方案一:本方案采用缆车式运输方式实现切屑运输,在本方案中,设计采用重力传感器检测切屑是否装满,并通过电机转动实现切屑的运输[7]。综合分析此方案,切屑长度不同,因而在落入缆车时体积不同,无法保证相同质量时,切屑均在缆车内,本方案中,缆车由一根缆绳进行路径规划,在转运过程中,缆车不可避免的会发生晃动,此时切屑有很大几率散落到车间地面,易出现环境污染及人员伤亡等问题。
在切屑卸载模块的设计上,本方案拟采用由液压装置控制的仓门,当检测到缆车位于压屑机上料口上方时,单片机发出控制信号控制继电器衔铁吸和,进而控制液压装置打开仓门,该方案中,仓门打开的瞬间,切屑即落入料斗中,但由于切屑并非完整的整体,切屑由于重力因素及环境中风的影响会散落到料斗以外,造成环境污染。
方案二:在本方案中采用AGV模块运输的方式实现切屑运输,在AGV模块运输系统中,设计使用红外模块检测切屑是否装满货仓,并通过寻迹模块识别运输路径,并对路线进行规划,最后检测运输模块所处位置并在自动执行切屑卸载任务后返回排屑器端。综合分析该方案,AGV模块可通过磁导航、红外信号导航、雷达导航、视觉导航等多种方法进行路径规划,且速度恒定,极大程度上减少切屑洒落的风险[8]。
在切屑卸载模块的设计上,本方案设计采用传送带作为卸载模块的主要动力,当运输系统位于压屑机上料口处时,单片机发出指令控制继电器衔铁吸和,从而控制传送带将切屑排入压屑机上料口处,从而实现切屑卸载的效果,该方案中传送带结构简单可靠,易于操作维修,且传送带运行速度恒定,切屑能稳定落入压屑机上料口,避免污染环境[9]。
综合分析上述两种方案,方案二中所提出的切屑运输模块和卸载模块的设计方案易于操作维护,安全性高,实用性强,性价比较高,更符合本系统的设计需求。因此,拟采用方案二进行系统设计。
1.2 项目总体设计
系统硬件设计主要由主控芯片、AGV运输模块、寻迹模块、切屑检测模块和卸载模块组成。主控芯片由单片机作为控制核心,主要负责处理传感器传回的数据,并通过驱动模块控制系统中AGV运输模块的运行[10]。AGV运输模块的驱动部分主要由电机驱动芯片构成,当芯片接收到来自单片机的信号时,会将放大后的信号输出给电机,从而控制整车的移动与转弯;寻迹模块主要负责将路径信息转换为电信号,并经过比较器比较后传回至单片机,单片机将信号输出给AGV运输模块,实现整车的转向及行驶;切屑检测模块由传感器组成,主要负责对货仓内切屑容量进行检测,当小车位于排屑器下方时,切屑检测模块会启动,当单片机获取到由切屑检测模块传回的反馈信息时,意味着货仓已经装满切屑,即开始向切屑处理车间移动。当本系统位于切屑处理车间的压屑机上料口时,卸载模块即开始工作,将切屑全部置于压屑机中,完成卸货工作后,系统将自动返回至机床排屑器处,各模块间关系如图1.1所示。
在这里插入图片描述

图1.1 各模块间关系图
1.3 机床切屑运输系统的优势
在应用了机床切屑运输系统后,可以很好的避免在转运过程中人力的不必要损耗,同时有效的避免了工人在转运切屑过程中被划伤烫伤的风险,对安全生产起到了很大的帮助。此外,系统运输过程中,转运速度可由系统进行统一调整,极大程度上减少了不必要的时间损耗,切屑也不会因操作不当导致的洒落而污染环境,影响加工现场的整洁度,同时系统中可安排多套转运车进行转运,每台机床也可配置多台转运车进行切屑的转运,极大程度的减少了转运过程中的等待时间,切屑运输效率得到了极大提升,在7×24小时不间断加工过程中,切屑转运效率提高两倍以上。此外,随着夜间切屑转运的问题解决后,也为工厂中黑灯工厂及自动化工厂项目的普及起到了推动作用,可以更加放心的推进项目改进的进程[11]。

2 机床切屑运输系统总体设计

2.1 主控模块设计
2.1.1 单片机模块
整个设计方案的核心就是主控模块,它控制了切屑检测、AGV运行、传送带控制电路的启动及系统的路径规划。本项目拟采用单片机作为中央处理器,分别调研了STC89C52单片机和STM32系列单片机,对比两种单片机性能进行方案选择。
方案一:STC89C52单片机。STC89C52单片机。STC89C52单片机内部工作流程简单快速,并且具有可编程特性。单片机内部包含128字节可读写存储器(RAM),以及内部装有2个16位可编程定时器和计数器。此外STC89C52单片机具有以下特性:
(1)12个增强型时钟/机器周期;
(2)工作温度范围-40~75℃;
(3)512字节RAM数据存储器;
(4)工作电压为3.4V~4.4V;
(5)全双工串行通信接口;
(6)监视定时器。
这些特性使得STC89C52单片机的使用方式更加多样化。且此款单片机使用C语言进行编程,使得程序便捷易懂[12]。
方案二:STM32单片机。STM32单片机主要服务于Cortex-M内核,含有1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,但由于性能优异,使用起来比STC89C52单片机复杂的多[13]。
本方案需要选择一种价格低廉,易于设计且能长时间适应工厂环境的单片机作为主控芯片,因此在本设计中拟采用STC89C52单片机,该单片机价格便宜、使用要求低、功能齐全,且在恶劣环境中可以实现更全面的功能,单片机引脚图如图2.1所示。
在这里插入图片描述

图2.1 单片机引脚图
2.1.2 单片机电路工作原理
STC89C52单片机的工作电路由电源电路、时钟电路和复位电路三个主要部分构成。
在单片机最小系统中,首先要解决的就是电源供电部分,电源电路的稳定可靠是整个系统平稳运行的前提和基础。在本设计中,电源部分由锂电池提供稳定的供电,同时电源电路中接入了LED作为电源指示,单片机电源电路如图2.2所示。
在这里插入图片描述

图2.2 单片机电源电路
单片机时钟电路是晶体振荡器以及单片机的内部电路所构成。其主要作用是为单片机提供信号脉冲。在STC89C52单片机内部存在一种高增益反相放大器。其输入引脚为XTAL1,输出引脚为XTAL2。在这两个引脚与晶体振荡器之间接入两个微调电容C1和C2,就可以构造出稳定的自激振荡回路。该设计使用了如图2.3所示的电路。通常,晶体振荡器或晶体振荡器的频率范围为1.2MHz~12MHz,一般使用振荡频率为6MHz或12MHz的晶体振荡器。此次设计中选用12MHz的晶体振荡器。
在这里插入图片描述

图2.3 时钟电路原理图
复位电路是使单片机回到初始状态的重要电路,其一般由电解电容、按钮和电阻组成,在本设计中采用了按键复位和上电复位两种复位方式,按键复位即用户手动按下系统中的按键S1,单片机的RST引脚采集到高电平信号,以此来使单片机会进行复位;除此之外,在本设计中同时利用了电容储存电荷的特性来实现单片机复位,即在系统上电的瞬间单片的RST引脚电位与VCC相同,随着电流的减少,RST的电位逐渐降低。由此完成的复位功能叫做上电复位,单片机最小系统原理图如图2.4所示。
在这里插入图片描述

图2.4 单片机最小系统原理图
2.2 AGV运输模块
2.2.1 电机驱动芯片的选择
本设计的电机驱动芯片应具备连接方便、耐腐蚀、能在不同电压下驱动电机,同时应满足在不改变连接方式的情况下实现电机的正转与反转调速控制等功能,L293D电机驱动芯片的内部集成了双极型H桥电路,这种双极型脉冲调宽方式具有很多优点,如电流连续;电机可四角限运行;电机停止时有微振电流,起到“动力润滑”作用,消除正反向时的静摩擦死区,低速平稳性好[14]。
因此本设计选择采用L293D芯片对电机驱动模块进行设计。
2.2.2 电机驱动芯片的工作原理
L293D芯片采用DIP-16方式封装。其内部H桥电路的输入量用来决定所控制电机的转动方向,另外L293D芯片内集成了两个H桥电路,这意味着仅仅需要使用一片芯片即可同时控制两个电机。每一个电机需要三路控制信号对其进行控制,即芯片的EN1、IN1、IN2三个引脚。其中,EN1是使能信号,IN1、IN2为电机转动方向的控制信号,当IN1引脚为高电平,IN2引脚为低电平时,电机正转,反之,则电机反转。同时选用单片机的一路PWM引脚连接芯片的EN1引脚,即可通过调整PWM的占空比来调整电机转速[15]。L293D工作原理图如图2.5所示。
在这里插入图片描述

图2.5 L293D工作原理图
2.3 寻迹模块
2.3.1 寻迹传感的选择
由于工厂改造耗时较长,如大规模进行改造易导致工厂暂时停工,如产生烟尘对加工设备影响较大,因此本设计需要选取一种体积小,识别对象易于安装维护的传感器作为本设计的寻迹模块。经过调研,共有如下两种传感器适合本次设计。
方案一:电磁寻迹传感器。电磁寻迹传感器通过检测导线周围的电磁场进行路径规划,识别率高,路径规划精准,但在进行工厂环境改造时,需在路径中预埋导线,工程量较大,施工成本较高,当工厂停电时,路径规划任务无法进行,如遇到导线老化的情况,无法及时维修,其路径的维修维护成本较高。
方案二:两路红外寻迹传感器。两路红外寻迹传感器通过检测路面反射的红外线强度进行路径规划,不同的路面颜色,对红外线反射强度不同,且大部分工厂均已使用不同颜色对道路进行规划,因此,可直接利用此道路作为路径规划依据。
通过综合考虑,本设计选择了两路红外寻迹探头进行路径规划,寻迹探头使用红外对管寻迹传感器,其接收端内部是一个具有红外光敏感特征的PN节,属于光敏二极管,但是它只对红外光有反应。无红外光时,光敏管不导通,有红外光时,光敏管导通形成光电流,并且在一定范围内电流会随着红外光的强度的增强而增大。
2.4 切屑检测模块
2.4.1 检测模块传感器的选择
在设计切屑检测模块所使用的传感器时,由于切屑形状不固定,且切屑中可能混有切削液或切削油的问题,要求所选用的传感器必须耐腐蚀,因此考虑如下两种传感器选择方案。
方案一:使用重力传感器,一般的重力传感器采用弹性敏感元件制成悬臂式位移器与同样由弹性敏感元件制成的储能弹簧来驱动电触点,以此来完成从重力变化到电信号的转换,可以将系统中的切屑重量作为检测标准,达到检测切屑是否装满的目的。
方案二:红外对管传感器,红外对管传感器一般由红外线的发射装置和接收装置共同组成,红外接收装置内部是一个具有红外光敏感特性的PN节,属于光敏二极管。无红外光时,光敏管不导通,有红外光时,光敏管导通形成光电流,并且在一定范围内光电流会随着红外光的强度增强而增大[17]。典型红外对管传感器如图2.6所示。
在这里插入图片描述

图2.6 典型红外对管传感器
在本设计中,由于不同加工方式所产生的切屑在同等体积下重量无法保证相等,且每次携带的切削液与切削油的重量无法进行统计,因此本设计选择检测方式更为灵活的红外对管传感器进行满载检测。
2.5 卸载模块
在本设计中需要选择一种效率高,维修保养简单,耐腐蚀且使用方便的切屑排出方案,共有如下两种方案可供选择:
方案一:使用钢板焊接制作矩形货仓,在尾部设计应用液压挺杆作为支撑,并在头部设计为仓门,待系统运行至处理车间时,通过程序控制液压挺杆升高,制造斜坡使切屑依靠重力打开仓门排入压屑机上料口。
方案二:使用钢板进行货仓制作,将货仓形状设计为底边较短的梯形,在货仓前端设计一个高度为整体高度1/4的仓门,并在梯形底部安装传送带,当系统运行至切屑处理车间时,通过程序控制传送带运行,通过传送带将切屑排入压屑机上料口。
综合考虑上述两种方案,在方案一中,主要依靠切屑自身重量进行切屑的排放,在无人监管的条件下,无法保证切屑完全排入上料口,有较大概率存在切屑残留,同时有很大概率会出现一部分切屑保持在货仓外,另一部分在货仓内的情况,会对沿途道路产生污染和划伤,对比方案二,切屑的排出由传送带提供动力,且由于倒梯形及仓门的设计使切屑始终保持等量排出,既保证了效率,也避免了由于速度过快切屑飞溅导致的环境污染。且传送带机构维修更换成本远低于整体货仓的更换。
因此,综合上述条件进行考虑,本设计选取了方案二作为本设计的卸载模块主要构成部分,当AGV模块将切屑运输至压屑机时,传送带即开始工作将货仓内的切屑排入压屑机上料口[18]。
2.6 总体设计电路图
综合上述各部分的考虑,本设计方案决定采用STC89C52单片机作为主控芯片的主控模块,以L293D芯片作为核心的AGV运输模块,使用红外对管传感器搭建的的寻迹模块和切屑检测模块及通过电磁继电器控制的传送带构成的卸载模块五部分组成,各部分统一使用由锂电池组成的电源供电模块供电,本设计总体电路图如图2.7所示。
在这里插入图片描述

图2.7 总体电路图

3 机床切屑运输系统软件设计

3.1 软件开发环境的介绍
该设计使用Keil μVision4实现[19]。Keil C51是一个软件开发系统,其中兼容C语言。相比于汇编语言来说,C语言具备可移植、易于维护和修改、方便调用模块、简单易学的优点。Keil提供了完整的开发计划,包括C编译器,库管理,宏程序集,连接器以及将这些组件组装到集成开发环境(Vision)中的非常强大的模拟器调试器[20]。而使用它则因为其集成环境很方便,并且适用于STC89C52单片机。
3.2 主函数设计
切屑由排屑器排入装载车车斗,当切屑装填时低位红外传感器检测到物体遮挡,装满时切屑检测模块检测到物体遮挡,将信号传输给单片机,小车开始运行,当巡线模块同时获取到数据传送给单片机时,即到达压块机料斗处,传送带开始运行将切屑排出,当切屑排空时,切屑检测模块检测不到遮挡,小车全速返回排屑器端,完成一次运输。设计流程图如图3.1所示。

在这里插入图片描述

图3.1 程序设计流程图
3.3 AGV部分子程序设计
系统执行前进函数时,单片机先向L293D芯片发送指令,同时由单片机向L293D输入端输入PWM信号,L293D芯片的输出引脚驱动电机执行正转或反转动作。
3.4 切屑检测模块子程序设计
本设计中的切屑检测部分应用了红外对管传感器对切屑进行检测,由于接收到的红外线亮度不同,所产生的电流值也不同,此时通多LM324N芯片的放大后,与单片机中电压相比较,当单片机检测到为高电平时则代表货仓中切屑满载,此时程序即触发AGV运输部分。反之则在原地进行等待。
3.5 卸载模块子程序设计
当AGV运输部分运行至切屑处理区时,单片机会发信号控制继电器线圈得电,此时,衔铁吸和,传送带开始工作,将切屑经由货仓排入压屑机料斗进行后续处理工作。

4 项目调试

4.1 系统硬件测试
在系统中,对于硬件电路的检测主要是看焊接时是否有毛刺、无光泽,电路是否有短路、开路、一些具有方向的元件是否方向弄错、电路设计错误等情况。
对于元件方向错误及元件漏焊的检测方法是将实物电路板与原理图的线路进行对照,仔细检查每个器件和导线有没有出现在实物中。如果发现实物与原理图对不上的情况下需及时的确认,当确定存在漏焊时,要对元件进行补焊,之后再进行后续检测。
对于短路、断路、虚焊这些情况,应采用数字万用表检测。将数字万用表打到蜂鸣档,当红表笔与黑表笔导通导通,万用表会发出蜂鸣声提示使用者。根据这个原理就可以用来检测短路、断路或虚焊。在需要检测的元件或导线的两端分别连接两支表笔,如果蜂鸣器响了,则线路导通,如果蜂鸣器不响,则说明电路可能存在短路、断路或虚焊。
经过测试,实物电路板与原理图一致,所有元器件的插接、方向均正确,本系统最终实现了所有硬件功能。
确定电路连接正确后,制作压屑机上料口模型,并铺设道路制作厂区模型,再将本设计置于模型中进行模拟实验,在进行模拟实验的过程中,检测各模块间配合是否合理,通过模拟实验,发现切屑检测模块对切屑的检测不够灵敏,通过调整切屑检测模块灵敏度,使系统更加完善,再次测试时,发现轮胎抓地力较弱,在转弯时会产生空转,导致切屑无法转运,经过多次实验,在轮胎上贴一圈胶带即可将此问题解决。经过反复测试,本设计能够成功实现切屑的转运工作。
4.2 系统软件测试
本设计基于STC89C52单片机进行设计,利用单片机主程序完成对切屑检测模块及执行机构之间的联系和控制。使用的单片机型号为STC89C52系列,这个系列的单片机应用非常广泛,编译语言以C语言为主。Keil uVision4软件界面如图4.1所示。
在这里插入图片描述

图4.1 Keil uVision4软件界面
Keil uVision 4使用的基本方法,首先需要建立一个新的项目,选择使用的单片机类型(AT89C52),可以编写一个新的文件,编写完程序后进行编译,编译就是检测程序是否有错误和警告,警告不会影响程序的运行。在编译程序之后,生成.HEX文件。将十六进制文件编译并写入单片机[20]。
单片机控制测试:程序写入控制芯片STC89C52后,接通电源,电源指示灯亮,系统启动。切屑检测模块开始工作,如果货仓装满,则执行运输作业;如果未装满,则继续停在原地等待。
STC-ISP是将程序下载到单片机的软件工具,适用于STC系列单片机,首先选择。将单片机按照方向置于烧写器中,安装好驱动程序连接好计算机,启动软件选择对应的COM口。选中事先编辑好的.HEX文件,确定后点击下载,断电上电令单片机进行重启。此时软件会先对单片机里的原程序就行擦处,擦除后进行新程序的下载,这样单片机程序就烧写成功了,STC89C52烧录软件STC-ISP软件界面如图4.2所示。
在这里插入图片描述

图4.2 STC-ISP软件界面
程序烧写完成后,将本设计置于模拟环境中进行测试,在系统运行过程中,发现AGV转运模块速度过快导致系统无法对路径进行合理规划,修改程序中的PWM参数后,再一次烧写程序,AGV转运模块速度降低,系统可以顺利对路径进行规划。此外,在测试中还发线,程序会因同时检测到多个信号导致陷入死循环,重新修改程序,将判断条件进行修改,并在部分条件中增加延时条件,尽量避免较多信号导致的死循环产生,多次烧写程序,完成测试,通过多次修改程序,系统软件部分更加完善。

结 论

控制器方面采用STC89C52单片机完全符合本设计的控制需求,拥有数据处理功能的CPU、随机存储器RAM、只读存储器ROM、多个I/O口和中断系统、定时器/计数器等功能;L293D电机驱动芯片可以与STC89C52单片机完美的融合兼容,小车运行平稳;传动带机构运行稳定可靠,准确。电源可以共用整合,该设计方案达到了我们的预期设计。
在机床或加工中心加工过程中产生的切屑将会通过排屑器排入到系统的货仓中,此时系统检测模块将对切屑运载量进行检测,并将信号传回给单片机,当切屑满载时,单片机会优先使AGV运输模块及寻迹模块上电,并通过寻迹模块反馈的路径信息控制本系统进行切屑的运输工作,当系统检测到运输模块位于切屑处理端时,单片机即通过控制继电器使传送带开始平稳运行并将切屑排入压屑机料斗进行后续处理,当检测模块检测到货仓空载时,系统运输模块即执行返回程序。当运输模块返回至排屑器处即完成一次完整的切屑处理过程。
采用了切屑运输系统后,机床切屑的处理效率大大提高,极大地减少了人力物力的损耗,避免了工人被烫伤划伤的风险。由此,更快速、便捷的完成切屑后处理过程中运输的问题。

参考文献

[1] 王兴涛. 铁屑收集器系统设计与传动系统优化[D]. 山东大学, 2015
[2] 刘超. 丝杠旋风铣削加工区域瞬态温度建模方法研究[D]. 重庆大学, 2017
傅扬烈. 单片机原理与应用教程[M]. 北京:电子工业出版社, 2002.2:19-65
[3] 万兵兵, 陈维平, 刘健, 徐士尧, 李文辉. 废铝屑回收利用技术进展[J]. 特种铸造及有色合金, 2015, 35(05) :477-481
[4] 马雪丽, 樊钺骄, 王宏阳, 孙进龙. D2-1型巡线小车的设计[J]. 汽车实用技术, 2019, (16) :105-107
[5] 任翠平, 左毅鹏, 卢军. 基于PID算法的巡线小车的设计与实现[J]. 电子技术与软件工程, 2016, (12) :251-252
[6] 惠鸿忠, 李健, 成敬敏, 温洲, 邢彦杰. 基于单片机控制的智能巡线小车的研制[J]. 电工技术, 2009, (10) :41-42
[7] 赵恬. AGV在仓储作业中的应用[J]. 计算机产品与流通, 2020, (01) :103-104
[8] 邱丹. 基于组合传感器的AGV控制系统的研究和设计[J]. 电子测试, 2019, (23) :23-25
[9] 胡文华, 周新志. 智能巡线小车的多模式速度控制系统[J]. 微计算机信息, 2008, (19) :4-5+16
[10] 吴功平, 戴锦春, 郭应龙, 于俊清, 袁文华. 具有自动越障功能的高压线巡线小车[J]. 水利电力机械, 1999, (01) :46-49+54
[11] 闫书燕, 基于单片机控制AGV小车设计及应用[J]. 商洛学院学报, 2018, 32(06) :15-19
[12] 杨桃月, 阳悠悠. 基于单片机的可避障AGV控制系统设计[J]. 机电技术, 2014, (05) :21-23+28
[13] 刘映群. 一种竞赛机器人小车的设计与实现[J]. 福建电脑,2012,28(09): 20-21+32
[14] 刘勇. 数字电路[M]. 天津:电子工业出版社, 2012.5:201-209
[15] 谭浩强. C程序设计[M]. 北京:清华大学出版社, 2010.6:45-78
[16] 黄泽乾, 丁涛, 王雅. 自动化集装箱码头AGV调度研究[J]. 武汉理工大学学报(交通科学与工程版), 2019, 43(06) :1165-1168
[17] 耿永刚. 单片机技术与应用[M]. 上海:上海科学技术出版社, 2012.8:156-352
[18] 胡学海. 单片机原理及应用系统设计[M]. 北京:电子工业出版社, 2010.9:66-156
[19] 乐江波. 环境温度监测机器人的设计与实现[D]. 西华大学, 2010
[20] 赵月静, 张永弟, 翟卫贺. Proteus 和 KeilC 在开发单片机控制系统中的 应用[J]. 实验科学与技术,2013,11(02):31-34

附录1 源程序清单

#include<AT89X52.H>
#include<HJ-4WD_PWM.H>
#include <intrins.h>
void main(void)
{
P1=0X00;
TMOD=0X11;
TH0= 0XFc;
TL0= 0X18;
TH1= 0X00;
TL1= 0X00;
TR0= 1;
ET0= 1;
TR1= 0;
ET1= 1;
EA = 1;
while(1)
{
measurement();
if(Right_B_led == 0)
{
if(S>10)
{
GO();
CSD == 1;
}
}
else
{
GOBACK();
if(Left_B_led == 0)
{
stop();
}
}
}
}
void timer0()interrupt 1 using 2
{
TH0=0XFc;
TL0=0X18;
systime++;
pwm_val_left++;
pwm_val_right++;
pwm_out_left_moto();
pwm_out_right_moto();
if(systime%1000)
{
trigger = 1;
}
if(systime%2
0)
{
Display();
}
}
void time1() interrupt 3
{
flag=1;
} #include <intrins.h>
#ifndef LED_H
#define LED_H
unsigned long systime=0;
unsigned long time=0;
unsigned char posit=0;
unsigned long S=0;
bit trigger = 0;
bit flag =0;
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit IN3=P1^2;
sbit IN4=P1^3;
sbit IN5=P1^4;
sbit IN6=P1^5;
sbit IN7=P1^6;
sbit IN8=P1^7;
sbit BUZZ=P2^6;
#define Left_X_led P3_6
#define Right_X_led P3_5
#define Right_B_led P3_4
#define Left_B_led P3_7
#define CSD P2_1
#define Left_moto_go {IN5=1,IN6=0,IN7=0,IN8=1;}
#define Left_moto_back {IN5=0,IN6=1,IN7=1,IN8=0;}
#define Left_moto_stop {IN5=0,IN6=0,IN7=0,IN8=0;}
#define Right_moto_go {IN1=1,IN2=0,IN3=0,IN4=1;}
#define Right_moto_back {IN1=0,IN2=1,IN3=1,IN4=0;}
#define Right_moto_stop {IN1=0,IN2=0,IN3=0,IN4=0;}
#define RX P2_4
#define TX P2_5
unsigned char pwm_val_left =0;
unsigned char push_val_left =0;
unsigned char pwm_val_right =0;
unsigned char push_val_right=0;
unsigned char LeftMotoStatu = 0;
unsigned char RightMotoStatu = 0;
unsigned char const discode[] ={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0xff/-/};
unsigned char const positon[3]={ 0xfe,0xfd,0xfb};
unsigned char disbuff[4] ={ 0,0,0,0,};
void Display(void)
{
P0=discode[disbuff[posit]];
P2=positon[posit];
if(++posit>=3)
posit=0;
}

void Conut(void)
{

time=TH1*256+TL1;
TH1=0;
TL1=0;

S= time*17/1000;
if((S>=700)||flag==1)
{
flag=0;
disbuff[0]=10;
disbuff[1]=10;
disbuff[2]=10;
}
else
{
if(S<100&&S>9)
{
disbuff[0]=11;
disbuff[1]=S/10;
disbuff[2]=S%10;
}
else if(S<10)
{
disbuff[0]=11;
disbuff[1]=11;
disbuff[2]=S;
}
else
{
disbuff[0]=S/100;
disbuff[1]=S%100/10;
disbuff[2]=S%10;
}
}
}
void StartModule()
{
TX=1;
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
nop();
TX=0;
}
void measurement()
{
if(trigger)
{
StartModule();
while(!RX);
TR1=1;
while(RX);
TR1=0;
Conut();
trigger = 0;
}
}
void delay(unsigned int k)
{
unsigned int x,y;
for(x=0;x<k;x++)
for(y=0;y<2000;y++);
}
void run(void)
{
push_val_left=4;
push_val_right=4;
LeftMotoStatu = 1;
RightMotoStatu = 1;
}
void back(void)
{
push_val_left=4;
push_val_right=4;
LeftMotoStatu = 2;
RightMotoStatu = 2;
}

void leftrun(void)
{
push_val_left=4;
push_val_right=4;
LeftMotoStatu = 1;
RightMotoStatu = 0;
}
void rightrun(void)
{
push_val_left=4;
push_val_right=4;
RightMotoStatu = 1;
LeftMotoStatu = 0;
}
void leftback(void)
{
push_val_left=4;
push_val_right=4;
LeftMotoStatu = 0;
RightMotoStatu = 2;
}

void rightback(void)
{
push_val_left=4;
push_val_right=4;
RightMotoStatu = 0;
LeftMotoStatu = 2;
}
void stop(void)
{
RightMotoStatu = 0;
LeftMotoStatu = 0;
}
void pwm_out_left_moto(void)
{
if(LeftMotoStatu1)
{
if(pwm_val_left<=push_val_left)
{
Left_moto_go;
}
else
{
Left_moto_stop;
}
}
else if(LeftMotoStatu
2)
{
if(pwm_val_left<=push_val_left)
{
Left_moto_back;
}
else
{
Left_moto_stop;
}
}
else if(LeftMotoStatu0)
{
Left_moto_stop;
}
if(pwm_val_left>=10)
{
pwm_val_left=0;
}
}
void pwm_out_right_moto(void)
{
if(RightMotoStatu
1)
{
if(pwm_val_right<=push_val_right)
{
Right_moto_go;
}
else
{
Right_moto_stop;
}
}
else if(RightMotoStatu2)
{
if(pwm_val_right<=push_val_right)
{
Right_moto_back;
}
else
{
Right_moto_stop;
}
}
else if(RightMotoStatu
0)
{
Right_moto_stop;
}
if(pwm_val_right>=10)
{
pwm_val_right=0;
}
}
void GO(void)
{
if(Right_X_led0&&Left_X_led0)
run();
else if(Right_X_led1&&Left_X_led0)
leftrun();
else if(Right_X_led0&&Left_X_led1)
rightrun();
else
stop();
}
void GOBACK(void)
{
if(Left_B_led == 1&&Right_B_led == 1&&Right_X_led0&&Left_X_led0)
back();
else if(Left_B_led == 1&&Right_B_led == 1&&Right_X_led1&&Left_X_led0)
leftback();
else if(Left_B_led == 1&&Right_B_led == 1&&Right_X_led0&&Left_X_led1)
rightback();
else
stop();
}
#endif

致 谢

在这次毕业设计过程中,随着项目和论文的完善,不仅强化了我的基础知识和动手能力,同时也给了我更加强大的信心去面对以后的工作。
本设计从选题研究到设计制作的过程中,得到了许多老师和同学们的帮助,非常感谢沈洪洋老师和台闯老师对我的帮助,在本次设计过程中,我遇到了很多的问题,但每次与老师沟通后都能找到解决思路,同时本次设计的完成也离不开在实习单位时各位前辈的帮助,如果不是通过与他们的沟通调研,也不会在选题时如此顺利。
在着手进行设计的过程中,个人的力量是有限的,很多时候都需要其他人去帮忙提供一个思路,在这里很感谢沈洪洋老师和台闯老师为我提供的一个个宝贵的思路,更要感谢在完成设计的过程中遇到的每一个人,感谢身边的朋友在我意志消沉的时候能够听我诉苦,陪我散心,在这里也很感谢他们的包容与陪伴。同时也由衷地感谢我的母校沈阳城市学院,在我一直最消沉的时候,是校训的“我行我能”一直在激励着我,让我能够尽快的调整好心情,继续投入到毕业设计的研究工作中,作为一名“绿岛”学子,在未来的日子里,无论经历再多的困难,校训的“我行我能”也会一直激励着我更加努力的去克服困难,完成挑战。

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值