基于单片机的工件位置控制系统设计
摘要:现代工业自动化生产的工件位置的精确控制,是保证高效稳定的生产过程的技术环节。传统的工件输送和定位系统大多依靠复杂的机械限位装置或者人工操作来实现定位,定位精度低、灵活性差、不能满足多工位生产的需要。对于中小型自动化设备或者教学实训模型来说,需要一种成本低、控制准确、操作直观、人机交互功能好的工件位置控制系统。因此本设计提出了一种以单片机为控制单元的工件位置控制系统。
本设计用STC89C52单片机作为控制核心,设计出一个集位置校准、模式选择、自动/手动驱动、状态监测、声光提示为一体的完整控制系统。系统主要的工作流程如下,首先通过安装在机械零位的光电传感器对系统进行位置校准,保证每次启动或者复位后,工件转台或者输送机构都能准确回到绝对零点,为后面的精确定位打下基础;用户可以设置目标工位编号,选择手动或者自动两种运行模式。手动模式下,用户按下启动按键后,系统根据当前工位和目标工位的相对位置、方向,自动驱动四相步进电机带动工件转台以最优路径旋转到指定工位;自动模式下,系统通过安装在工件输送路径上的红外避障传感器实时检测工件是否到位,一旦传感器检测到工件到达上料位置,系统就无需人工干预,自动触发转位动作,驱动步进电机将工件准确输送至用户预设的目标工位。整个运行过程中的OLED液晶显示屏是人机交互的主要界面,可以随时清楚地显示出系统的回零状态(已回零或者未回零)、当前所在的工位号、用户设定好的目标工位号以及系统目前的运行模式(手动模式或自动模式)。系统集成红色、黄色、绿色三种颜色的指示灯和有源蜂鸣器,在不同的状态发出不同的声音和光线信号,回零完成时绿灯一直亮着,运行时黄灯不停地闪烁,设备发生故障或者接近边界的时,红灯亮并且响起蜂鸣器的声响,使用户能直接看出系统的状况。
本设计采用四相步进电机作为执行机构,用ULN2003驱动芯片来实现转台位置的开环控制。位置检测用光电传感器的开关量特性进行零位校准,用红外避障传感器的非接触式特性进行工件到位检测,两者共同保证了系统的精度和可靠性。系统软件使用模块化编程思想,在Keil uVision5开发环境里用C语言来实现主控逻辑、按键扫描、传感器数据读取、步进电机调速和定位算法、OLED显示驱动、声光报警等各个功能模块。经过系统的硬件搭建、软件调试和联合测试,结果表明,本设计所实现的工件位置控制系统可以稳定、准确地完成零位校准、手动/自动转位控制等主要功能,定位精度满足设计要求,人机交互界面友好,声光提示清晰有效。该系统结构简单、成本低,具有良好的可扩展性以及教学演示价值,可以应用于小型自动化生产线、物料分拣装置、实训教学平台等,为解决类似的位置控制问题提供了一种可行的技术方案。
关键词:STC89C52;工件位置控制;步进电机;光电传感器;红外避障传感器;OLED显示
Design of Workpiece Position Control System Based on Single-Chip Microcomputer.
Abstract:Accurate control of the position of workpieces is required in modern industrial automation to achieve high efficiency and stability of production. Traditionally, the workpiece conveyance and positioning system of a conventional machine-tooling device are usually a simple mechanical limit device or manual operation; therefore, there are problems such as poor positioning accuracy, lack of flexibility, and it cannot meet the requirements for multi-station production. Small and medium-sized automation equipment, teaching and training models, etc., are relatively cheap, but they need workpiece position control systems with good precision, simple operation, excellent human-computer interaction, etc. Therefore, the Design of a Workpiece Position Control System Solution Based on a Single-chip Microcomputer for the Main Control Unit is introduced here.
The main part of the Design is the STC89C52 microcontroller, and based on this, a whole control system for position calibration, mode selection, automatic/manual driving, status monitoring and audible/visual warnings has been built. In short, it will be as follows: First, a photoelectric sensor is installed at the mechanical zero position; then, position calibration will be performed to ensure that after every start or reset, the workpiece turntable or conveyor can return accurately to the absolute zero point and provide a reference for the next precise positioning. Set the target station number and select manual or automatic operation mode by pressing the three independent buttons. In manual mode, after the user presses the Start button, the system will use an optimal path according to the relative position and direction of the current station and the target station to drive the four-phase stepper motor and automatically move the workpiece turntable to the preset station. Infrared obstacle-avoidance sensors have been set up at different points along the path of the workpieces in the automatic mode to ensure that they are in the right positions. When the sensor is to find that the workpiece has reached the loading position, a transfer will be automatically started by the system; at that time, a stepper motor will be used to accurately move the workpiece to the destination station without manual operation. All the time during operation, the OLED liquid crystal display will show the current status of the system, such as whether it has been returned (returned/not returned), the station number, the target station number set by the user, and the operating mode of the system (manual/automatic). At the same time, the system also has a red, yellow and green three-color indicator light and an active buzzer for various types of sound and light alarms in different situations; for example, after completing the zero-return task, it will be a solid green light; during operation, it is a flashing yellow light; and if there is equipment failure or an exceedance of the boundary limit, a red light and buzzer will be sounded promptly to inform users of the current status of the system.
A four-phase stepper motor will be selected for the actuator in this Design, and a ULN2003 driver chip will be employed to control the Position of the turntable accurately in an open-loop mode. For position determination, zero calibration is performed using the switching characteristics of the photoelectric sensor, and because it does not touch, an infrared obstacle avoidance sensor can be employed to detect the approach of the workpiece; both are very accurate and reliable. The structure of the system software is modular, and it is developed in the Keil uVision5 development environment using the C language; among its multiple functions, there is the main control logic, key scanning, sensor data acquisition, stepper motor speed control and positioning algorithms, OLED display driving, audible and visual alarms, etc. Through systematic hardware construction, software debugging and joint testing, it was found that the designed workpiece position control system can stably and accurately perform the main function of zero calibration, manual/automatic indexing control, etc. The positioning accuracy is in line with the design requirements, it is simple to use, and the sound and light alarms are clear and effective. It has a simple structure and is low-cost; at the same time, it is easy to expand and suitable for teaching demonstrations. It can be used in a wide range of places, such as small-scale automated production lines, material sorting devices, training and teaching platforms, etc., to provide a practical technical solution for the problem of position control.
Keywords:STC89C52; Workpiece position control; Stepper motor; Photoelectric sensor; Infrared obstacle avoidance sensor; OLED display
目录
1 绪论
1.1 研究背景及意义
1.2 国内外研究现状
1.2.1 国内研究现状
1.2.2 国外研究现状
1.3 主要内容
2 系统方案设计
2.1设计要求
2.2 设计方案
2.3 主要模块方案选择
2.3.1 主控模块方案选择
2.3.2 零位校准传感器方案选择
2.3.3 工件到位检测传感器方案选择
2.3.4 执行电机及驱动方案选择
2.3.5 显示模块方案选择
2.3.6 声光提示模块方案选择
2.3.7 按键模块方案选择
3 系统硬件设计
3.1 总体硬件框架
3.2 主控模块电路设计
3.2.1 主控芯片简介
3.2.2 单片机最小系统
3.3 光电传感器零位校准模块电路设计
3.4 红外避障传感器工件检测模块电路设计
3.5 步进电机及驱动模块电路设计
3.6 独立按键模块电路设计
3.7 OLED液晶显示模块电路设计
3.8 三色指示灯与蜂鸣器声光提示模块电路设计
3.9 电源模块电路设计
4 系统程序设计
4.1 编程软件介绍
4.2 系统主流程设计
4.3 零位校准子流程设计
4.4 独立按键扫描与模式设置子流程设计
4.5 手动运行模式子流程设计
4.6 自动运行模式子流程设计
4.7 步进电机控制与定位算法子流程设计
4.8 OLED显示子流程设计
4.9 声光提示控制子流程设计
5 实物制作与功能测试
5.1 实物制作
5.2 零位校准与回零状态显示功能测试
5.3 按键设置与模式选择功能测试
5.4 手动模式运行与转位功能测试
5.5 自动模式与工件到位检测功能测试
6 总结
6.1 结论
6.2 展望
参 考 文 献
致 谢
附录A 原理图
附录B PCB
附录C 主程序
1 绪论
1.1 研究背景及意义
在当今制造业快速向智能化、柔性化转变的大背景之下,工业自动化的主要目的就是提高生产效率、保证产品质量稳定、降低人力成本。自动化生产线、装配流水线、加工中心以及各种专用设备中,工件(即被加工或者搬运的对象)在各个工位之间精确、快速的输送和定位,是决定整个系统性能的重要环节之一[1]。无论简单地搬运一个物料,还是复杂的多工序协同加工都需要对工件的位置有准确的控制。一个稳定的、可靠的工件位置控制系统可以保证物料准确地到达预定的工位,避免由于定位偏差造成的加工失误、设备碰撞甚至生产事故[2]。
传统的工件位置控制大多采用机械挡块、行程开关或者完全依靠人工操作的方式。机械限位方式成本低,但是存在明显的物理磨损,长期使用后定位精度下降,不能适应多品种、小批量生产中频繁更换工位的要求[3]。人工操作方式效率低、定位精度无法保证、存在较大的安全隐患,已经不能满足现代自动化生产的需要。随着传感器技术、微电子技术、控制理论的不断发展,基于单片机的嵌入式控制系统由于具有高性价比、设计灵活、抗干扰能力强等特点,在工业控制中得到了广泛的应用[4]。将单片机技术应用到工件位置控制中,可以实现对执行机构(步进电机、伺服电机等)的数字化、智能化控制,配合各种非接触式传感器(光电传感器、红外传感器等),可以构建出响应快、精度高、适应性强的位置控制系统[5]。
但是目前市场上的专用工件定位控制器大多功能复杂,面向大型工业机器人或者数控机床,成本高、操作门槛高,对于小型自动化设备、实验教学平台或者DIY创客项目来说并不适用[6]。另外,许多系统没有友好的用户交互界面(实时状态显示)以及直观的声光提示功能,使得操作人员很难在第一时间了解系统的运行状态(是否回零、当前所处的位置、处于何种模式等),在教学演示和调试过程中更加不方便[7]。
因此本课题设计出一套基于单片机的工件位置控制系统。该系统以典型的工件转台为被控对象,主要解决以下几个问题,如何利用传感器保证系统每次启动都有一个绝对准确的零位参考点;如何给用户提供灵活、简单的操作方式,使其可以自由选择目标工位和运行模式(手动/自动);如何在手动模式下实现一键转位,在自动模式下实现工件到位的自动触发;如何通过OLED屏幕、三色指示灯、蜂鸣器等手段,给用户提供全面、直观的系统状态反馈[8]。
本设计的实现有重要的现实意义和应用价值,第一,它提供了一套完整的、低成本的、易于实现的工件位置控制方案,可以广泛应用于小型自动化改造项目、高校机电一体化实训教学、电子爱好者的DIY制作中;第二,系统所采用的模块化设计思想、步进电机开环定位算法、传感器融合技术,对相关专业学生的学习和实践有很好的参考价值;第三,本设计注重人机交互的友好性,用OLED屏幕和声光提示大大降低了操作者的认知负担,提高了系统操作的安全性、便捷性,符合现代工业设备对“人机友好”的设计要求。因此,本文不但可以解决工件位置控制的实际技术问题,也可以给同类嵌入式控制系统的设计提供一些借鉴。
1.2 国内外研究现状
1.2.1 国内研究现状
在国内,基于单片机的工业自动化控制技术研究十分活跃,针对工件位置控制这一细分领域,众多学者和工程技术人员做了大量的富有成效的探索。从研究内容上看,国内研究主要是高精度定位算法、多轴联动控制、低成本嵌入式系统、物联网技术集成这四个方面的研究[9]。
在国内,许多研究采用类似本设计的传感器、单片机、电机的结构。有研究用STM32单片机设计了一种物料分拣系统,用光电传感器检测物料颜色,用步进电机驱动分拣转盘,实现了物料按颜色分类。该研究证明了步进电机在小型转台定位控制中是可行的[12]。定位精度的提高,一些研究者使用细分驱动技术,利用步进电机驱动器(A4988)的细分功能,把步距角从1.8度细分到更小的步进角度,从而大大提高了定位分辨率。另外为了防止步进电机高速运转时出现失步或者堵转的情况,部分设计中加入了S形曲线加减速算法,使电机的启动、停止过程更加平滑,对工件精确定位起着重要的作用[13]。
在国内的研究中,使用多种传感器组合来实现位置状态感知的传感器应用研究很多。光电传感器、红外传感器由于成本低、响应快、易于与单片机接口,被广泛应用于工件到位检测、位置计数[14]。零位校准除了普通的光电开关外,对精度要求较高的系统还会使用霍尔传感器配合磁钢或者精度更高的编码器进行闭环反馈。但是考虑到本设计面向的是成本敏感的教学和小型应用场景,使用简单的光电开关进行零位校准仍然是一种性价比很高的主流方案[15]。
国内的设计越来越重视用户交互。从最早的LED数码管显示、LCD1602字符液晶,发展到现在流行的OLED液晶显示屏。因为有高对比度、低功耗、支持中文字库、图形显示等特点,所以极大地丰富了人机交互界面[16]。为了提高系统的可操作性,独立按键结合菜单式设置界面的设计模式已经成为一种标准的做法[17]。声光提示中三色指示灯(红、黄、绿)常用来表示设备的不同状态(停止、运行、报警),蜂鸣器常用来做按键反馈和故障报警[18]。
总体上,国内对于基于单片机的工件位置控制研究已经比较成熟,技术路线清晰,模块化程度高,为本设计方案的选择提供了丰富的参考。在此基础上又对零位校准、模式选择、手动/自动运行、状态显示等进行了改进,从而得到一套完整的、功能齐全、有逻辑的小学机械制图简易教学系统。
1.2.2 国外研究现状
相比国内,国外在工件位置控制及相关的运动控制方面起步更早,技术积累也更深厚,高端工业应用方面处于领先地位。其研究特点就是高性能硬件平台的应用、先进的控制算法的融合、系统的开放性、标准化等[19]。
国外高端定位系统早已不是8/16位单片机,而是广泛使用DSP(数字信号处理器)和ARM Cortex-M系列高性能32位微控制器(STM32F4/H7系列)[20]。这些芯片具有更强的浮点运算能力以及更多的外设,可以运行复杂的闭环控制算法,如矢量控制(FOC)和模型预测控制(MPC),从而达到伺服电机高精度、高动态响应控制的目的。国外对于步进电机的研究大多集中在开环失步检测和补偿、自适应微步进控制等高级课题上[21]。
国外对于传感器融合和定位技术的研究更侧重于多传感器信息的综合处理。除了光电、红外传感器之外,机器视觉技术也被广泛地应用到工件位置检测中。通过摄像头获取工件图像,使用OpenCV等开源视觉库进行处理,可以得到工件的准确位置、姿态甚至识别工件的身份信息,这是传统光电传感器所不能比拟的[22]。柔性制造系统(FMS)中工件的位置控制已经和AGV(自动导引车)或者传送带系统深度耦合,实现了物料的全流程追踪和动态调度。另外,编码器反馈已经成为了工业级定位系统的一种标准配置,形成了全闭环控制,从根本上消除了步进电机失步造成的定位误差[23]。
国外的自动化系统大多支持工业以太网协议,也就是Profinet、EtherCAT、Modbus TCP/IP等。因此工件位置控制系统可以无缝地集成到更高级别的制造执行系统(MES)中,实现生产数据的实时上传和远程监控。本设计所用的蓝牙或者串口通信方式更适合作为低成本的独立设备或者教学场景使用[25]。
虽然国外高端技术发展迅速,但是高昂的成本、复杂性高,不能满足本设计目标的中低档市场以及教育应用领域。因此,在吸收国外系统模块化、人机交互设计先进理念的基础上,利用我国低成本嵌入式方案成熟的经验,走一条性价比高、功能清晰、操作简便的设计之路,才是符合本课题要求并且可行的。
1.3 主要内容
本文以STC89C52单片机为控制核心,设计并实现工件位置控制系统的控制程序。该系统的主要目的就是对工件转台的精确位置进行控制,并且提供灵活的操作模式以及丰富的人机交互功能。系统把零位校准、按键输入、模式选择、步进电机驱动、工件到位检测、OLED显示、声光提示等各个功能模块放在一起。本文将从硬件设计、软件设计和系统测试三个方面详细阐述该系统的实现过程,其具体功能和设计要点如下:
零位校准功能,系统上电或者接收到复位指令的时候,首先驱动步进电机反向旋转,直到安装在机械零位处的光电传感器被触发。此过程保证转台或者输送机构有一个唯一的、绝对的机械参考零点。只有完成零位校准之后,系统才会允许执行后面的定位操作,把“已回零”状态实时显示在OLED屏幕上。这是保证整个系统位置精度的基本条件。
目标工位设置及模式选择功能,用三个独立的按键(功能键/设置键、加键、减/确认键)分别来设置目标工位编号(1-8号工位)。用户还可以通过长按或者在特定菜单项中选择手动模式或者自动模式。手动模式下,系统运行由用户主动控制;自动模式下,系统运行由工件到位信号触发。
手动运行模式功能,在手动模式下,当用户设置好目标工位之后要按下一个启动/确认键。系统接收到启动指令之后,会先读取当前工位编号(用软件位置变量记录),然后计算出从当前工位到目标工位的最短旋转方向(顺时针或者逆时针),再计算出需要转动的步数,最后驱动步进电机带动工件转台转动到目标工位。到位之后,电机停止,并在屏幕上更新当前工位信息。
自动运行模式功能,系统处于自动模式的时候,用户设定好目标工位之后不需要再按启动键。系统会实时监测安装在工件上料口处的红外避障传感器的输出信号。当红外传感器检测到一个工件到位的时候(传感器输出电平发生变化),系统就会自动触发一次转位动作,执行逻辑和手动模式一样,即驱动步进电机将工件从当前工位(通常是上料工位)输送至用户预设的目标工位。该功能模拟的是生产线上“来料即加工”的自动化场景。
OLED实时显示模块是以0.96英寸OLED显示器为载体的。该屏幕会分区域实时显示以下信息,第一行显示回零状态(Zero:OK / NO),第二行显示当前工位(Cur:X),第三行显示目标工位(Tar:Y),第四行显示运行模式(Mode:Manual/Auto)。界面设计得好,系统状态一览无遗。
声光提示功能,系统中设红、黄、绿三种颜色的LED指示灯和一个有源蜂鸣器。具体的提示逻辑如下,绿色指示灯常亮表示系统已经成功完成回零,处于待机状态;黄色指示灯在步进电机运行过程中闪烁,表示系统正在执行转位动作;红色指示灯和蜂鸣器联动,当系统出现异常(回零超时、步进电机运行超时未到位、传感器故障等)时,红灯常亮并且蜂鸣器发出报警声,提醒用户检查。另外,在每次有效的按键被按下时,蜂鸣器就会发出一个短促的“嘀”声作为按键的反馈。
本设计不增加任何超出以上所述的其他功能,所有硬件选型、软件逻辑、测试方案都以这六个核心功能为中心展开,保证系统目标的专一性、完成度。
2 系统方案设计
2.1设计要求
本设计提出的工件位置控制系统要达到以下设计要求,在功能上系统要具备上电或者复位后的零位校准功能,保证有一个统一的机械参考零点;提供手动和自动两种运行模式,手动模式下用户通过按键设定目标工位并主动触发转位,自动模式下通过红外传感器实时检测工件到位信号并自动完成输送和定位;配备OLED显示屏实时显示回零状态、当前工位、目标工位和运行模式,集成三色指示灯和蜂鸣器,在待机、运行、报警和按键响应时给出明确的声光提示。性能指标的精度达到工位级(每一个工位对应的步进电机的步数是512)重复定位误差在允许的范围内,步进电机轻载的时候可以平稳运行不会丢失步序,按键响应时间不大于50ms,传感器触发转位的时间不大于100ms。操作交互方面三个独立按键的功能明确、防抖动处理、短按和长按都可以,OLED界面简洁直观、声光提示区分开来。系统的可靠性和安全要加回零、转位超时的保护措施,可以防止传感器失灵、电机倒转等情况的发生,发出警报信号,硬件电路中还要做好滤波、抗干扰处理以使系统正常运行。从经济性和可扩展性两个方面考虑,选择STC89C52、28BYJ-48步进电机、ULN2003驱动芯片等低成本、易得的元器件,整体硬件成本可以控制在一定的范围内,系统采用模块化的设计,方便以后再增加通信接口或者实现闭环控制。
2.2设计方案
本系统以STC89C52单片机为控制器,建立工件位置控制平台。系统整体是由控制中心、输入部分、输出部分和人机界面四大部分组成。各个模块有不同的功能,互相配合就可以组成一个参数设定、信号采集、逻辑运算、驱动执行、状态反馈的闭环控制系统。
控制核心模块采用的是STC89C52单片机加上最小系统(时钟电路、复位电路、电源电路)。该单片机为经典的8位微控制器,成本低、技术成熟、稳定性好、I/O口资源丰富(4个8位并行I/O口)等优点,可以满足本设计对多个传感器信号读取、步进电机脉冲控制、按键扫描、OLED通信、声光器件控制等的要求。内部集成定时器/计数器、UART串口等,可以实现步进电机速度控制(定时器产生脉冲),以及后面扩展的功能。本模块接收到来所有的输入信号之后就会启动核心控制算法,并将输出模块所需要的控制信号发出。
输入部分由以下模块组成,第一部分为位置和状态监测模块,包括一个零位校准的光电传感器和一个工件到位检测的红外避障传感器。光电传感器安装在转台的机械零位处,输出开关量信号(TTL电平)到单片机I/O口;红外避障传感器安装在工件上料位置,当有工件遮挡时输出电平变化。第二部分为用户指令输入模块,用三个独立的按键来实现设置/切换、加/上移、减/下移/确认的功能,从而设定目标工位编号和切换运行模式(手动/自动)。第三部分是电源模块,给单片机、传感器、步进电机驱动器、OLED等供电。
输出部分是由执行模块,也就是步进电机和驱动电路构成的。单片机通过I/O口输出脉冲信号(PUL)和方向信号(DIR)给步进电机驱动器(ULN2003复合晶体管阵列)供电,驱动器将控制信号放大后驱动四相步进电机转动,带动与之连接的工件转台转动。第二部分为人机交互与显示模块,使用一块0.96英寸I2C接口的OLED液晶显示屏,实时显示回零状态、当前工位、目标工位、运行模式;第三部分为声光报警模块,有红色、黄色、绿色三色LED指示灯和一个有源蜂鸣器,分别对应不同的状态。
系统的整体工作流程就是系统上电之后,先对各个模块进行初始化,再强制或者等待用户指令进行零位校准。校准完成后,系统进入待机状态。用户用按键来设定要到达的工位和运行模式。手动模式下用户还要再按启动键,系统才驱动电机转位;自动模式下系统会持续监测红外传感器,一旦检测到工件就自动触发转位。在过程当中,OLED屏幕不停的刷新显示所有状态信息,指示灯以及蜂鸣器根据系统的状态(待机、运行、报警)发出相应的声光提示。系统的总体设计框图如图2-1所示。
以上为部分内容节选,如您需要获取完整版,欢迎随时联系我们
