自动移液系统的设计与实现

2023-12-18 08:58杜胜宇赵子恺饶宾期王栋益
现代电子技术 2023年24期
关键词:移液主控板安卓

杜胜宇, 赵子恺, 饶宾期, 黄 哲, 王栋益

(中国计量大学 机电工程学院, 浙江 杭州 310018)

0 引 言

在现代生物学实验、化学实验中,液体的处理起着核心作用[1]。实验室的液体样品制备步骤非常耗时、繁琐且重复,对通量、精准度和效率有比较高的要求[2]。精确的液体处理是必不可少的操作。传统的手动移液方式需要操作员用手动移液枪把样本液体从源试管移到目标试管中,操作效率较低而且容易引入实验误差,造成样本液体的污染,在需要处理大量样本液体的场景下无法满足快速准确的要求[1-3]。因此,自动移液系统的开发和应用成为化学分析和生物医学实验的研究热点。自动移液系统可以实现自动化移液操作,不仅可以提高操作效率和准确性,还可以大大降低实验操作的难度和复杂度。李增设计了以机械臂为主要结构的全自动移液工作站,集成化程度高,提高了移液效率,但系统较为复杂,移液精度不够高[4];魏翱翔设计了基于STM32F1系列芯片、步进电机、传感器和移液泵等的全自动移液工作站,移液效率高,同时还实现了对系统压力的监测,但是缺乏对移液状态的监测[5]。李锦赫设计了微流量移液工作站,移液精度高,人机交互性强,但目前只针对银基催化的高通量移液工作,兼容性不够好[6]。

本文提出了一种以ESP32 为主控方案,使用步进电机组带动移液枪和扫码器进行移液和扫码操作,使用安卓上位机进行系统的逻辑控制和人机交互。对步进电机控制算法进行研究,实现了步进电机多轴联动和速度规划,提高了系统稳定性和移液精度。

1 系统整体框架设计

1.1 移液系统设计

移液系统架构图如图1 所示,整个系统分为嵌入式硬件平台、机械设备和嵌入式软件系统三部分。

图1 移液系统架构

1.2 机械结构设计

自动移液系统的机械结构如图2 所示,整个系统的机械结构分为移液部分和扫码部分,移液部分主要有源试管架、枪头架、目标试管架、废料盒、xyz三轴步进电机和移液枪等部件;扫码部分主要有xy两轴步进电机和扫码器等部件。

图2 自动移液系统机械结构

1.3 嵌入式硬件平台设计

图3 所示为嵌入式硬件平台的结构框图,移液系统的嵌入式硬件部分主要包括ESP32 主控板、电机驱动板、继电器板。ESP32 主控板是嵌入式硬件平台的核心,负责处理系统中的各种信息;电机驱动板驱动步进电机转动,从而带动移液枪和扫码器移动到指定位置进行移液和扫码操作;继电器板则是用来控制一些外接设备的通断,比如照明灯带、紫外线灯等设备。

图3 嵌入式硬件平台结构框图

2 自动移液系统工作流程

自动移液系统工作流程如图4 所示,安卓上位机创建扫码工单,通过超文本传输协议(Hyper Text Transfer Protocol, HTTP)把工单传输给负责扫码部分的ESP32主控板,其解析工单数据得到需要扫码的源试管的位置,驱动步进电机把扫码器带到指定位置进行二维码扫描操作,待所有二维码扫描完毕,把二维码信息和坐标信息关联后打包,通过HTTP 协议上报给安卓上位机。安卓上位机通过人机界面把扫描的二维码信息展示给用户,根据用户的选择来创建移液工单,并通过HTTP协议下发移液工单给移液部分的ESP32 主控板,其解析工单数据得到移液步骤,驱动xyz三轴步进电机和移液枪执行相应的步骤,每完成一个步骤给安卓上位机上报一组移液的数据包。

图4 自动移液系统工作流程

3 自动移液系统嵌入式硬件平台

3.1 ESP32 主控板

ESP32 主控板主要包括ESP32 核心电路、RS 485 电路、输入/输出(Input/Output, I/O)扩展电路和限位开关等。图5 所示为ESP32 主控板原理框图,ESP32 是一款由乐鑫科技(Espressif Systems)开发的低功耗、高性能的无线保真(Wireless Fidelity, WiFi)和蓝牙双模系统芯片[7]。移液系统选择ESP32 作为主控核心的主要原因是其内置高性能WiFi,便于和安卓上位机进行通信。ESP32 主控板采用了低功耗技术,可以长时间稳定运行,支持多种睡眠模式[8],不足之处是I/O 口较少,用来作为移液系统的核心控制器I/O 口资源比较紧张,所以该移液系统采用I/O 扩展电路实现ESP32 I/O 口的扩展。

图5 ESP32 主控板原理框图

图6 所示为ESP32 控制板的I/O 扩展电路图,采用了74HC595D 芯片实现I/O 口扩展功能。74HC595D 是8 位串行输入、8 位并行输出的移位寄存器,它可以将串行输入的数据转换为并行输出,通过这种方式实现扩展I/O 口的目的。

图6 I/O 扩展电路图

RS 485 模块电路图如图7 所示,RS 485 通信硬件设计简单、应用广泛[9],它是一种串行通信协议,可以实现多个设备之间的通信,采用半双工的通信方式,同一时刻数据只能向一个方向流动,所以数据的发送和接收不能同时进行。它还可以实现多点通信,在一条RS 485总线上可以连接多个地址不同的设备。由于RS 485 使用两条相互独立的传输线,通过两条线的电平差来传递数据,所以具有良好的抗干扰能力。

图7 RS 485 模块电路图

除上述模块,ESP32 主控板还提供了限位开关接口,作为移液系统的边界标识点。限位开关可以检测步进电机是否到达预定位置或者已经超过最大位置,从而保障移液系统的稳定运行。

3.2 电机驱动板

电机驱动板提供两路步进电机的控制,可以通过拨码开关调节电流、步进电机细分等。该电路采用了TMC2160-TA 这款高性能的步进电机驱动芯片,图8 为该芯片的引脚图,它支持1 256 步进分辨率,可以实现高精度的步进控制。在实现高精度的基础上,它可以输出4 A 的大电流来驱动更高功率的步进电机,具有过流、过压等保护,提高了移液系统的安全性。

图8 TMC2160-TA 引脚图

3.3 继电器板

继电器板主要实现了多路的继电器输出,可以控制一些外围开关设备的通断,其中一路继电器电路图如图9 所示。

图9 一路继电器电路图

4 自动移液系统嵌入式软件系统

4.1 ESP32 主控板程序

ESP32 主控板移液程序流程如图10 所示,程序进行一系列的初始化后,在主循环中等待安卓上位机的下发指令,根据指令选择功能驱动步进电机转动。步进电机的控制是ESP32 主控板程序的关键,其中最重要的是步进电机的速度规划和多轴联动。

图10 移液程序流程

4.1.1 速度规划

自动移液系统对步进电机的控制精度和稳定性有比较高的要求,它需要步进电机能够稳定、准确地把移液枪和扫码器移动到指定的位置,从而进行扫码和移液操作。如果步进电机出现失步情况,就会造成扫码器读不到对应的二维码信息或者移液枪吸液、吐液不准确的问题,甚至会对移液枪和扫码器产生不可逆的损伤。对步进电机进行速度规划可以解决这些问题,由于成本和硬件资源的限制,本系统使用开环的方式控制步进电机的速度,主要对步进电机的加减速过程进行研究。常见的速度规划算法有梯形加减速算法、抛物线加减速算法、五段式S 曲线加减速算法和七段式S 曲线加减速算法[10-11]。根据表1 中速度规划算法的对比以及ESP32 硬件资源的限制,本文系统选择五段式S 曲线加减速算法来进行速度规划。

表1 速度规划方法对比

图11 所示是五段S 曲线加减速的特性曲线,其中T1为加加速阶段,T2为减加速阶段,T3为匀速阶段,T4为加减速阶段,T5为减减速阶段。五段S 曲线加减速具有对称特性,所以可以得到T1=T2,T4=T5。

图11 五段S 曲线加减速算法特性曲线

在进行S 曲线加减速过程中,起点速度记为vs,加加速度记为J,可以得到加加速度-时间、速度-时间、加速度-时间和路程-时间的关系式为:

如式(1)~式(4)所示,只要确定T1、T3、T4的值,上述公式的所有值都可以确定。在自动移液系统的步进电机速度控制过程中,初速度和末速度是相同的,加速过程和减速过程互为倒序,所以加速过程和减速过程的时间可以看成是一致的,能够得到T1=T4。加加速度、最大加速度、最大速度以及距离都是人为设定的已知量,通过这些参数就可以得到T1、T3、T4的值,从而得到整个五段式S 曲线加减速过程的速度。距离设置为20 m,最大速度设置为10 m/s,最大加速度设置为20 m/s²,最大加加速度设置为30 m/s³,采用Matlab 对五段S 曲线加减速过程进行仿真,得到的距离-时间、速度-时间、加速度-时间和加加速度-时间曲线如图12 所示。

图12 五段式S 曲线加减速算法仿真曲线

4.1.2 多轴联动

自动移液系统涉及到多轴步进电机,其中移液部分有xyz三轴步进电机,扫码部分有xy两轴步进电机。传统方法往往是把各轴的步进电机进行单独的控制,先控制x轴电机转动,再控制y轴电机转动,最后控制z轴电机转动。该方法控制效率低下,不符合自动移液系统高效率、高精度的步进要求,所以本文提出一种基于布雷森汉姆(Bresenham)直线算法的多轴电机联动算法。

在计算机图形学中,Bresenham 直线算法被广泛用于位图图像中绘制直线[12],由Jack E.Bresenham在1962年发明。这个算法相比于其他直线算法,例如数值微分算法和中点画线法,具有更快的速度和更小的计算成本。该算法的基本思想是从起点开始逐个选择直线上离目标点最近的像素点进行绘制。在绘制过程中,利用差分算法来计算直线的路径,规避除法运算,从而得到精确的结果[13]。

根据直线斜率,可以得到以x轴步进或y轴步进为基准的初始直线,如图13 所示。斜率k的绝对值|k|<1,同时假设步长为1,在画直线时,当前的点是(xi,y)i,第i+1 个位置可能是(xi+ 1,y)i或(xi+ 1,yi+ 1),这取决于yi和yi+ 1 与实际y坐标的距离,选取近的作为第i+1 个位置[14]。

图13 初始直线示意图

首先设直线的方程为y=kx+b,yi和实际y的距离为d1:式中k是不确定的变量,它可能引入浮点数从而增加计算难度。直线的起始坐标和终点坐标值已知,所以通过起始坐标和终点坐标值可以得k=dy dx。

为了消除浮点数的影响,将式(7)左右两边同乘以dx可以构建一个pi,公式如下:

基于式(10),可以用循环迭代来计算pi的值,代入起始坐标点可以得到p1= 2dy-dx,最终得出:

把式(11)和式(12)结论应用到步进电机组上就可以达到多轴联动的目的。Bresenham 算法程序流程如图14 所示。

图14 Bresenham 算法程序流程

用移液部分的xyz三轴来举例,假设初始位置为(1,2,3),目标位置是(20,8,9),此时步长最大的轴为x轴电机,所以运用上述Bresenham 算法x轴步进1 步,y轴和z轴电机不步进或者步进1 步。图15 为Matlab 对该过程的仿真轨迹,其中实线为使用Bresenham 算法插补后的轨迹,虚线则为未进行插补的初始直线轨迹。

图15 Bresenham 算法直线插补轨迹

4.2 安卓上位机

安卓上位机使用Java 语言和XML 语言进行开发,开发环境是Idea 搭建的安卓开发环境。

上位机主要有主界面、工单界面、移液枪调试界面和系统调试界面,如图16 所示,主要实现一对一移液模式、多对多移液模式、空跑、单步调试和工单导出等功能。使用HTTP 协议和ESP32 控制板进行通信,是自动移液系统的控制核心。

图16 安卓上位机界面

5 自动移液系统实验研究

自动移液系统使用的移液枪为ADP1000,它是一款高精度的微量移液模块。为验证本文设计系统的合理性,使用自动移液系统进行移液实验,测试条件为:在室温下使用纯净水作为待测溶液,选择200 μL 的枪头,分别进行50 μL 和100 μL 的移液实验各10 组,其中每种容量分别使用底部吸液模式和液面探测、液面跟随吸液模式,每次实验后更换枪头。采用如下步骤来进行测试:

1) 移液枪初始化;

2) 一次回吸空气;

3) 吸液;

4) 二次回吸空气;

5) 吐液;

6) 退枪头。

使用图17 所示的TP-214 高精度电子天平来测试吐液量,每次测试前先对深孔板进行称重,使用此重量作为标准,完成实验后再进行称重得到实际的吐液量。表2 所示为移液实验所测得的数据。

表2 移液实验数据

图17 电子天平测量图

使用这4 组数据分别计算准确性A和精密度CV,准确度和精密度的公式如下:

式中:Cavg表示每组10 个数据的平均值;Cmax表示每组数据的最大偏差值;SD 表示标准差。

计算数据如表3 所示。实测发现4 组测试结果的准确性都小于2.00%,精密度均满足0.75%的要求;使用液面探测、液面跟随测试的数据组的准确性和精密度都好于底部吸液数据组,这是由于底部吸液枪头侧壁容易挂液,所以吐液容量相比正常设置的吐液量会偏大。

表3 计算数据

6 结 语

本文从机械设备、嵌入式硬件平台和嵌入式软件系统这三部分介绍了自动移液系统的设计。嵌入式硬件平台主要是ESP32 主控板、电机驱动板和继电器板,嵌入式软件系统主要是安卓上位机和ESP32 主控板程序。本文使用Bresenham 直线算法和五段S 曲线加减速算法来控制步进电机组,实现了步进电机多轴联动和平滑加减速,提高了系统移液的效率和精度。最后通过移液实验验证了本文系统的可行性。

后续主要从两个方面对本文系统进行研究:一方面进行更多的移液实验,根据结果对移液系统进行更深入的研究,进一步提高移液精度;另一方面,完善人机交互的细节,添加自动移液过程中出现异常情况的报警机制。

注:本文通讯作者为赵子恺。

猜你喜欢
移液主控板安卓
iPhone不卡的秘密曝光:安卓也能享受
一种自动称重移液设备设计与实现
一种快速可靠的主控冗余及切换机制的设计与实现
文物表情包
你一直想知道的移液知识
升级双主控板交换机ISO
一种基于安卓系统的手机侧抓包分析方法
变频器检测台的设计、制作及主控板的维修
有关移液枪使用方法对移液准确性影响的讨论
SOLO分类评价理论在高中化学实验教学中的运用