基于STM32的自动进样器研制
2017-05-20霍亮生李岳峰
霍亮生 李岳峰 赵 雄 刘 辉
(北京工商大学 材料与机械工程学院, 北京 100048)
基于STM32的自动进样器研制
霍亮生 李岳峰 赵 雄 刘 辉
(北京工商大学 材料与机械工程学院, 北京 100048)
根据模块化技术设计了可用于多种分析仪器的自动进样器,该系统使用STM32F411RET6的SPI接口控制4个步进电机按照可编程的路径移动,实现进样自动化,增加了摄像头接口和图像处理技术,可矫正零点偏移和轴线倾斜导致的定位误差。具备设备运行过程中的自动故障诊断功能。
步进电机 自动进样器 分析仪器 模块化设计
1 引言
当前,随着科学技术的不断发展,人们对实验设备的功能提出更高的要求,很多分析仪器都要求配备自动进样装置。采用自动进样器替代传统的由实验员完成的手工操作,既能减小人为因素对实验数据造成的影响,提高分析实验的准确性;又可以避免一些危险药品对实验员身体造成不良影响[1]。通过自动进样器替代实验员进行繁琐的具有重复性的实验操作,减轻实验员的工作量,可以提高实验效率,因此设计一款用于多平台的自动进样器就显得十分重要。
目前,市面上流行的自动进样器多数是和专用分析仪器配套使用的,不能满足多平台使用的要求。传统的进样器控制系统中,驱动器和控制器是分开的,本设计采用的自动进样器控制系统将驱动器和控制器集成在一起,减少了布线和设备所占空间。本文所述自动进样器由X、Y、Z、W四轴和持针机构组成。其中X、Y、Z、W四轴由4组步进电机实现移动,并安装有霍尔传感器,作为零点位置检测使用。
许多设备交付用户使用后,在运行的过程中,往往会出现各种故障进而影响设备的正常运行,严重者甚至会威胁到生产安全,并伴随着严重的经济损失;用户对于设备出现故障后是否能够及时维修十分关心,厂家也会对设备满足客户要求的同时,能够快速且便捷地解决设备故障问题给予高度关注。这就要求设备制造企业能对其生产的设备给予快捷的服务和技术支持,并对故障设备给予及时、灵活的诊断及维修。因此,本设计的自动进样器还具有自我故障诊断功能[2]。
该装置的特点如下:①可在多平台分析仪器上使用;②系统结构强度高,稳定性好;③系统具有自我故障诊断功能,当检测到系统中出现故障时,能够及时停止系统运行,并将故障内容上报;④系统通过图像识别技术实现精密定位。
2 系统总体方案设计
2.1 系统总体方案
基于系统模块化技术理念设计了自动进样器的总体方案,系统总体方案如图1所示。系统控制部分由上位机、下位机和控制驱动电路组成。主体机构包含机体外壳、电源、进样机构、故障诊断和精密定位组成。分析系统进样功能和故障诊断完成的原理,明确了进样机构的运行过程,并对进样方案进行了设计,进而设计了系统的总体方案。
图1 系统总体框图
仪器划分为以下几个部分:机体外壳、电源、内部硬件结构和控制系统。各部分及其功能特性如下:
①机体外壳
主要功能是连接其他结构,将机械装置、传动部分、电器和其他辅助机构连接在一起,作为承载体使用。机体外壳将整个仪器包在里面,因此其美
观性必须好,还需要有良好的防护性,能够阻挡尘土进入,防止外部环境影响系统运行[3]。
②电源
主控系统核心供电电压为5V,电机驱动系统工作电源为24V,由双路输出的开关电源完成供电功能。
③核心控制系统
核心控制系统主要由上位机系统和下位机系统构成,通过操作上位机显示页面,经由蓝牙传输信号指令到下位机,下位机做出相应判断,做出相应动作。
④进样机构
进样机构由4组步进电机和相应的执行机构组成,其功能是实现进样针的自动进给,与机体外壳和相应的执行机构共同完成样品的整个进样动作。
⑤故障诊断模块
故障诊断模块主要功能是在系统运行过程中出现故障时自我诊断,达到及时停止系统运行,并将故障内容上报。
⑥精密定位模块
精密定位模块是在初次安装仪器时,通过摄像头图像识别技术检测样品台和分析仪器的摆放位置与理想位置的偏差,待系统正常工作时,进样针能够精准定位到样品台、清洗位和分析仪器的进针位置。
2.2 进样原理
能够实现样品的自动进样是整个系统自动化的关键,系统进样模块目的是为了完成实现多个不同的样本进样自动化,系统进样拟搭载多通道平行反应装置,其取样位置为圆盘9孔式,配有3个清洗位和1个送样位(因分析仪器可三选一),如图2所示。自动进样器的功能是实现分析样品的自动进样,其关键步骤在于使进样针准确到达图2所示9孔位置(样品台),将样品通过进样针吸取一定容量,之后送到进样位(分析仪器)将样品注入指定容器中,最后到清洗位置执行进样针清洗动作。
图2 样品台、分析仪器与清洗位置示意图
3 运动控制方案
运动控制是基于模块化设计方法进行设计,模块化设计方法是在20世纪50年代提出的一种现代化设计方法,目前模块化设计思维已经应用十分广泛,通过模块化设计,可以将一个复杂的系统划分为若干简单系统的组合,这些子系统既相互独立又密切联系,这样就大大减少开发难度,并且在测试阶段也可进行独立测试,待各部分测试通过后,再进行整机测试,对产品验收效率也有较大提高[4,5]。为了有效提高产品开发效率,本系统采用模块化设计方法将系统分为:机械结构与运动模块、电气与驱动模块、速度位置控制程序模块和运动轴故障诊断模块。
3.1 机械结构与运动模块
进样方式是实现进样自动化的关键,根据进样原理的不同,其传动方案选择也不同,通常的进样方案分为转盘进样和直线运动进样[6]。由于转盘式进样不能满足本系统用于多平台使用的功能,因此选择直线运动进样。运动机械结构采用滚珠丝杆螺母导轨,如图3所示。
图3 滚珠丝杆示意图
系统运动机械结构主要由4组步进电机及滚珠丝杆螺母导轨组成,设计采用多轴实现进样自动化。丝杆螺母具有良好的自锁性能,能够使进样针保持在停机状态位置,而且其传动具有良好的直线性、可控性,能够达到进样精度要求[7]。4根导轨按照模块化思维,结构类似仅在尺寸上有所差异,4导轨之间由连接件互相连接。这样做缩短了设计制造周期,提高设计质量而且有利于设备维护。
3.2 电气与驱动模块
4组步进电机驱动器都选用ST公司的L6470智能步进电机1-128细分驱动芯片。其内部集成有两个低通电阻的DMOS全桥电路和数字控制内核,精确的片上电流检测电路有完备的电流控制能力和电流保护,并实时反馈当前电流值。数字控制内核通过配置相应寄存器能够实现步进电机的加速、匀速和减速等运动方案。L6470驱动器所有的命令和数据寄存器都由一个标准的SPI接口访问和控制,也可通过控制PWM脉冲的频率对步进电机的速度进行控制[8-10]。4个驱动器模块其中之一如图4所示。
图4 驱动方案示意图
驱动器L6470通过SPI接口与STM32F411-RET6进行通讯,SPI(Serial Peripheral Interface)接口是Motorola公司推出的4线同步串行外设总线接口,同步串行4线方式进行通信,单向传输时3线即可,分别为:一条时钟线SCLK,一条总机输入/从机输出线MISO,一条总机输出/从机输入线MOSI,还有一条用于给从机设备使能信号的线CS。
在数据传输过程中,通过主机和从机移位寄存器实现,二者连接成环,主机通过MOSI先发送1位数据,从机通过改线读取1位数据,相应的从机通过MISO线发送1位数据,主机通过该线读取1位数据。当寄存器中的内容全部移除时,就完成两个寄存器内容的交换[11,2]。SPI接口的优点主要是:支持全双工操作,数据传输效率高,虽然其缺点是只能有1个主机,但这也正符合本系统的设计要求。
由于系统工作时L6470芯片的工作电压是5V,步进电机的工作电压是24V,因此需要进行电源转换,系统采用的SKIA-120-2K开关电源输出24V/5V电压。所用4个步进电机工作电压虽都是24V,但其工作电流却不尽相同,因此需要控制对应驱动芯片L6470的输出电流,因此需要采用如图5所示的分压电路进行电流输出转换。
图5 分压电路图
图5所示分压电路输出电流需通过式1计算公式得出。
(1)
其中VCC为电源电压,这里为5V;R1R1和R2为分压电阻;Rs=0.25Ω。
3.3 速度位置控制程序模块
3.3.1 MCU介绍
控制系统采用ST公司STM32F411RET6 MCU,是LQFP64封装。拥有100MHz CPU频率,工作电压为1.7V~3.6V。STM32F411RET6是低功耗、低价格、高性能的微控制器。基于ARM Cortex-M4的32位MCU内核,单周期访问内存。内存包括:高达512KB闪存;高达128KB SRAM;6个16位TIM包括和2个32位;实时时钟,低功耗定时器,3个USART模块,12位ADC模块,5个SPI接口。以STM32F411RET6为核心,通过IO端口引出控制运动轴运动。本设计主要用到STM32F411-RET6的TIM、USART、GPIO、A/D和SPI模块[13]。
3.3.2 速度控制程序设计
STM32采用KELL MDK5作为控制程序的编译环境,KELL MDK5内置有丰富STM32固件库,可以方便地进行程序设计[14]。为简化程序开发难度,采用模块化思维进行速度控制程序设计,由于控制对象都是步进电机,故采用PWM调频调宽法控制电机转速,即所给PWM占空比固定为50%,只改变PWM脉冲周期进行调速,STM32F411RET6通过SPI接口访问或改写L6470内部寄存器对步进电机加速、减速和停止进行控制。
STM32F411RET6芯片具有完备的SPI固件库,在使用时只需以下几步设置即可:
①使能SPI接口对应的IO口控制时钟和SPI模块控制时钟;
②配置IO口输入输出工作方式,本程序设置为IO口复用方式;
③配置SPI工作模式;
④使能SPI模块。
由于4组步进电机控制方法相同,因此可以将程序集成为一个模块,以STM32F411RET6通过SPI1接口控制X轴运动举例,配置程序如下:
先进行配置SPI对应的GPIO口,并对GPIO口和SPI1接口使能,
GPIO_InitTypeDef GPIO_InitStructure;
SPI_InitTypeDef SPI_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_
AHB1Periph_GPIOA, ENABLE);//使能GPIOA时钟
RCC_APB2PeriphClockCmd(RCC_
APB2Periph_SPI1, ENABLE);//使能SPI1时钟
/* 配置 SPI1引脚: SCK, MISO and MOSI ----------*/
/* 配置 SCK and MOSI 引脚作为推挽上拉输出 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6; //PA5~6复用功能输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; //100MHz
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;//复用功能
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化
/* 配置 MISO 引脚作为输入 */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; //PA7复用功能输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//复用输入
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化
再配置SPI工作模式
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; //设置SPI单向或者双向的数据模式:SPI设置为双线双向全双工
SPI_InitStructure.SPI_Mode = SPI_Mode_Master; //设置SPI工作模式:设置为主SPI
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; //设置SPI的数据大小:SPI发送接收8位帧结构
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; //串行同步时钟的空闲状态为高电平
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; //串行同步时钟的第二个跳变沿(上升或下降)数据被采样
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; //NSS信号由硬件(NSS管脚)还是软件(使用SSI位)管理:内部NSS信号有SSI位控制
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8; //定义波特率预分频的值:波特率预分频值为8
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; //指定数据传输从MSB位还是LSB位开始:数据传输从MSB位开始
SPI_InitStructure.SPI_CRCPolynomial = 7; //CRC值计算的多项式
SPI_Init(SPI1, &SPI_InitStructure); //根据SPI_InitStruct中指定的参数初始化外设SPI1寄存器
最后使能SPI1外设并启动传输
SPI_Cmd(SPI1, ENABLE); //使能SPI外设
SPI1_ReadWriteByte(0xff);//启动传输
此程序为单轴举例程序,其他轴SPI配置与此轴类似,这样的模块化程序设计,将本来需要设计4根轴对应的程序简化到设计1个模块程序,大大减少程序员的工作量,提高程序运行效率。
3.4 运动轴故障诊断模块
运动轴所用步进电机全是两相四线步进电机,工作原理相同。系统根据L6470驱动器精准的片上电流检测功能,可以根据反馈的电流值对系统进行实时的故障诊断,一旦电流值出现异常,则视情况进行分析故障原因,进而做出相应动作维护系统安全。
预先在上位机系统中设想出因出现故障后电流值所发生的变化,通过L6470片上电流检测功能将电流值反馈到上位机与预设值进行对比,判断设备是否出现异常。常见的步进电机故障有以下几种:①驱动电源出现问题;②负载过重造成步进电机失步或停转;③驱动步进电机的脉冲频率过高,点击不能及时相应;④驱动控制电路产生问题;⑤步进电机自身绕组烧坏等问题[15]。
4 精密定位方案设计
由于系统是与多通道平行反应装置和气相色谱仪配套使用,在仪器安装时会产生零点偏移和轴线倾斜问题,为了实现进样针能够准确到达样品摆放位置和分析仪器进行取样和进样,就需要一个精准的定位方案。
4.1 摄像头定位原理
摄像头定位技术是以机器视觉为基础,综合运用光学传感、数字图像处理、模式识别、人工智能等技术的非接触式定位方法;其定位原理是摄像头采集二维图像标记,通过图像处理、分析和解释,用以指导机械运动到指定位置[16]。
系统选用Aptina(前身为 Micron 半导体的 CMOS Sensor 部门)公司生产的 1/3 英寸面阵 CMOS 传感器 MT9V032。通过MT9V032识别定位标记,采集模拟信号,再通过A/D转换成为数字图像。数字图像被分割为若干网格,也称之为像素,每个数据表示给定点的光强度,系统将所获得的数字图像信号与实现输入的标准图像信号进行对比,将得出的偏差发送到控制器,进行位置识别[17]。
4.2 定位标记
为了有利于摄像头进行识别对准,需要在样品台和分析仪器上面做定位标记,常用的定位标记有圆环形、直角形、十字形、三角形等,如图6所示。一般这些标记会进行组合使用,以便测出平面内XY两个方向的偏差。本设计选用圆环形和直角形两种标记组合使用,通过圆环形检测零点偏移位置,直角形检测XY平面上轴线倾斜位置。
图6 定位标记
4.3 图像识别流程
通过摄像头图像处理技术,首先在样品台和分析仪器上面做定位标记,将摄像头安放在进样针位置,通过摄像头识别定位标记,计算出摄像头所走坐标,再与理想定位标记位置坐标值进行比较得出偏差,经由上位机程序计算偏差,得到新的进样坐标,实现进样过程的精密定位[18]。
在摄像头图像处理过程中,因摄像头识别的位置坐标和世界坐标系之间存在差异,因此要将世界坐标系Ow-XwYwZw中的三维空间特征点P(xwywzw)变换到摄像头坐标系O-XYZ中。摄像头坐标系与世界坐标系之间存在下式的关系。
(2)
式中: (x,y,z)为特征点在摄像头坐标系中的坐标;
在检测到安装位置和理想位置有偏差后,可通过图形变换技术得到新的坐标,因设备识别是在二维平面上,且仅产生零点偏移和轴线倾斜问题,因此用到图形变化技术中的平移变换和旋转变换[19],其变换矩阵如下所示:
平移变换:
式中M为X方向的平移量,N为Y方向的平移量。
旋转变换:
式中θ为旋转角,逆时针为正,顺时针为负。
通过图形变换技术,可以将理想坐标通过变换矩阵得到新的坐标,在经由上位机计算新坐标,完成进样动作。
5 实验验证
自动进样器能够正常工作后,通过与气相色谱仪联机试验证明本系统的稳定性和实用性。将自动进样器与气相色谱仪连接后,自动进样器开始工作,待自动进样器将样品送入气相色谱仪后,自动进样器发送触发信号给气相色谱仪,气相色谱仪接收到外部触发信号后开始进行分析。表1为实验数据,图7是联机试验后分析某样品的分析结果图。
表1 实验数据
图7 分析结果图
通过图7的分析结果,经由实验员试用后,证明本系统在分析过程中不会对测试数据产生影响,能够满足气相色谱仪分析时自动进样要求。
6 结论
本文所述自动进样器以STM32F411RET6为核心,通过模块化设计方法,实现了机械结构、运动控制程序及故障诊断的集成,能够矫正设备联机过程中造成的零点偏移和轴线倾斜,实现进样针的精密定位。通过与多通道平行反应装置和气相色谱仪联机试验,证明本设计研制的自动进样器能够准确地实现自动进样功能,能够实现故障诊断功能,稳定性良好。
[1]Kong F, Zheng Y F, Chen W. Automatic liquid handling for life sciences-A critical review of the current state-of-the-art[C]// IEEE International Conference on Robotics and Biomimetics. IEEE Computer Society, 2009:169-185.
[2] 杨俊. 探究电气控制系统存在的故障及其保护措施[J]. 电工技术,理论与实践, 2015(6):12-12.
[3] 林家瑞. 微机式医学仪器设计[M]. 武汉:华中科技大学出版社, 2004:4-6.
[4] Yoo J W, Kumara S R T, Simpson T W. Modular Product Design Using Cyberinfrastructure for Global Manufacturing[J]. Journal of Computing & Information Science in Engineering, 2009, 12(3):101-110.
[5] Kreng V B, Lee T P. Modular product design with grouping genetic algorithm—a case study [J]. Computers & Industrial Engineering, 2004, 46(3):443-460.
[6]李文涛. 多平台自动进样检测系统的设计[D]. 中国地质大学(北京), 2013.
[7]万庚.重型数控立车横梁中传动部件和液压系统设计研究[D].湖南大学,2014.
[8]王凯, 韩力立. 采用STM32控制L6470步进电机驱动器[J]. 电子世界, 2012(18):51-52.
[9]L6470 datasheet[EB/OL].ST Ltd.[2011.5].http://www.st.com/dspin.
[10]Fuller B. STMicroelectronics L6470 dSpin motor controllers[J].J.am.chem.soc, 2011, 9(3):99-102.
[11]杨美刚, 李小文. SPI接口及其在数据交换中的应用[J]. 通信技术, 2007, 40(11):385-387.
[12]http://baike.baidu.com/link?url=d_iNri_D0IwAGEHERofWe88dgAikmVRA7jcBk-PmjGdDbvGtlAHDYUGHI3MSqA_IhLwto8qzao6Ah1RSJ078Za.
[13]ST:STM32F411xC STM32F411xE. http://www. st. com.
[14]张明华. 基于固件库的STM32F107的程序设计方法探讨[J]. 数字技术与应用, 2014(12):171-171.
[15]刘希璐, 李世良. 步进电机常见故障的分析和排查[J]. 黑龙江科技信息, 2012(21):38-38.
[16]李刚. 基于机器视觉的密集复杂物体识别与定位[D]. 哈尔滨工业大学, 2013.
[17] Jia X, Cui J, Xue D, et al. Near infrared vein image acquisition system based on image quality assessment[C]// International Conference on Electronics, Communications and Control. 2011:922-925.
[18]霍亮生,顾祖宝,吴垚.机器视觉技术对纸质包装切割压痕设备控制性能的改进设计[J].食品科学学报,2013,(06):72-75.
[19]葛友华. CAD/CAM技术[M]. 北京:机械工业出版社, 2004:56-69.
Development of an automatic sampling device based on STM32.
Huo Liangsheng,Li Yuefeng,Zhao Xiong,Liu Hui
(School of Materials and Mechanical Engineering,Beijing Technology and Business University, Beijing 100048,China)
This paper elaborates a new type of automatic sampleing device, which can be used in many kinds of analytical apparatuses. This system adopts SPI of the Microcontroller STM32F411RET6 to control four stepper motors. The pathways of the four motors are controlled by computer program. The interface of camera model and relevant program are also introduced into this system, by which the positioning deviation resulted from zero offset and axis tilt can also be corrected precisely. In addition, this type of device has the ability of self-diagnosis even during the process of operation.
stepper motor; automatic sampling device; analytical instrument; modular design
霍亮生,博士,教授,北京工商大学机械工程学院,硕士研究生导师,1982年7月毕业于南京航空航天大学,获学士学位,1985年10月于中北大学获硕士学位,2002年10月于北京理工大学获博士学位。曾在中北大学、太原理工大学任教,2003年调入北京工商大学,主要从事汽车电子工程、计算机及数字控制技术、智能控制技术等方面的教学和科研工作。
10.3936/j.issn.1001-232x.2017.02.002
2016-11-11