当前位置:首页 期刊杂志

基于Arduino的便携式分体收线器设计与实现

时间:2024-07-28

王奕森,祁 虔

(西南大学计算机与信息科学学院,重庆 400715)

0 引言

随着电子技术的进步和电子产品的推陈出新,各式各样的传输线给用户带来了管理和收纳的难题。目前,较为成熟的智能化收线方案主要集中在工业、通信等大型领域。在民用领域,仍缺乏智能化、便携式的收线产品,以解决生活中传输线的缠绕、打结等问题。市场上大部分收线设备虽然能收纳、规整各种线路,但其结构简单、操作不便,不具备针对性,对人的依赖性大。因此,对小型智能化收线设备的设计和研究,能够极大地便利人们的生活;将其产品化,更是能带来可观的经济效益,在切实立足生活解决问题的同时又创造了经济价值。

针对智能收线领域的研究从未停歇。近几年,在通信构建方面的研究成果如下。

2015年,Sushabhan Choudhury等研究并开发了一个蓝牙通信与Arduino控制结合的信息感知-收集系统[1]。2016年,Yasin Kabalci等研究了多种远程网络通信方案在不同领域的应用与优缺点对比[2]。

近年来,在机电设计方面的研究成果如下。

2007年,史耀耀等提出了集高精度机械、电子、控制于一体的数控布带绕线器关键技术,提高了绕线精度以及匹配精度[3]。2014年,Erik Hultman等研发了一种自动化工业电缆绕线机器人,实现了电机的高精度快速绕线[4]。2017年,Jie-Shiou Lu等提出了基于迭代学习的滑模控制方法,开发了用于精确控制电线收线张力的迭代学习滑模控制器(iterative learning sliding mode controller,ILSMC)方案[5]。2017年,Jie Xu等提出了基于西门子SimotionD平台的多轴联动绕线组,并将其应用于大型工业智能化收线。但该结构不适用于微型、集成化在民用领域的开发[6]。2017年,徐小明等提出一种基于遗传算法的模块化缠绕机。该方案适用于精度要求较高的高精度复合材料的精确收容,涉及张力、配重等计算,但转移到个人便携式产品设计上会造成功能过剩,产生不必要的成本[7]。

针对以上问题,本文设计了基于Arduino单片机的便携式分体收线器。首先,凭借Arduino成本低且开源的优势,该设计使软硬件方面的实现变得简单[8]。其次,通过3D打印技术使顶部收线结构适用于各种规格和型号的数据线、耳机线等。该收线机构既可与底部的电子转动结构契合,又可分离,实现多种线路收纳。同时,加入蓝牙通信模块、按键模块以及电机驱动模块,并通过软件控制AT系列芯片,可实现按键和远程应用(application,APP)双控制、收线长度自动测量,以及智能化收放线路[9]。同时,该设计顺应了人工智能的趋势,给出了在工业、制造业以及通信等领域的线路自动化管理解决方案。该方案节省了人力、物力,对于以电机传动为主要动作机制的控制过程与应用环节,具有重要的借鉴意义[10]。

1 系统整体结构设计

基于运算性能与成本考虑,选择以Arduino平台上的ATmaga328P作为主控芯片。该方案能够在满足处理性能的基础上实现成本的最小化。由于手机端蓝牙的通用性,考虑采用蓝牙+手机APP终端与物理按键并存的形式实现系统控制,以C/C++语言编写的Arduino应用程序作为分体式收线器的控制软件。硬件机构部分则采用L298N驱动电路,以小功耗、小体积的直流无刷电机作为转动机构,可减小功耗、缩小体积;同时,配合3D打印技术,可对不同规格的收线机构进行设计和实现。各模块相互配合,实现了预期功能。鉴于以上设计思路,系统设计总框图如图1所示。

图1 系统设计总框图

系统设计主要实现的功能如下。

①系统控制:手机终端通过蓝牙连接成功后,进入APP控制界面;用户通过手机与Arduino通信,实现收线器的收线、放线、急停、测量等功能。

②蓝牙通信:设置与蓝牙通信适应的波特率,开放允许被检测权限,可通过手机终端识别可连接的设备,输入初始密码进行通信。在此基础上,通过软件控制完成字符与十六进制数字的实时传输,传递控制信号。

③测量与显示:用户发出动作信号之后,光电编码器配合小型码盘进行光电测速,实现速度反馈;结合ATmaga328P内部集成的Timer定时器进行高电平持续时间计数,利用速度、时间与收线机构的物理参数可实现测量功能;同时,通过小型液晶屏,显示收线历史总长和单次线长的测量数据。

2 硬件设计

便携式分体收线器主要包括:Arduino单片机模块、蓝牙模块、光电测速模块、电机驱动模块、液晶显示模块、电源模块等。便携式分体收线器整体功能框图如图2所示。

图2 便携式分体收线器整体功能框图

2.1 Arduino单片机模块

Arduino作为一个开源代码的单芯片微控制器,具有Java、C/C++等多语言兼容的开发环境。其主要功能特点如下。

①拥有开源程序库,方便开发者依据自己的需求进行引用和修改。

②成本较低,使用性能梯度较为合理的微处理控制器(ATmaga128或ATmaga328),可满足不同梯度的性能要求。

③支持USB直接烧录代码,结合Arduino IDE,可方便地实现软件的编辑和烧录。

④可依据给出的硬件参数简化Arduino组件,缩小体积,提高集成度。

⑤可以直接与各种功能模块连接,如光电编码、寻迹、红外线、摄像头、温度传感等,简化了普通硬件搭建的步骤。

⑥可采用USB供电,也可采用外界5 V供电。

Arduino电机控制原理图如图3所示。

图3 Arduino电机控制原理图

2.2 蓝牙模块

系统采用蓝牙通信的方式实现Arduino与手机终端的数据传输;使用HC-06蓝牙模块中的TX、RX为其数据引脚交叉,与Arduino的RX、TX相连。使用蓝牙作为无线通信的原因如下。

①蓝牙串口模块成本较低,体积小。

②智能手机基本都配备蓝牙模块,可支持该功能的实现。

③在蓝牙连接状态时,按钮失效或按键的误触都会导致收线机构自行动作。

④蓝牙一对一通信可避免多信号的干扰。

蓝牙通信原理图如图4所示。

图4 蓝牙通信原理图

2.3 光电测速模块

系统采用小型光电编码器和码盘配合实现速度的测量和实时反馈。该模块为四线接口,分别为5 V电源、GND接地、信号输出D0与A0。速度反馈的基本原理是:用小型红外光源发射器发射方向性较强的红外光,接收器在有光照射的条件下会使内部电路保持在低电平;当光线被遮挡时,会使内部电路处于高电平。转动结构带动小型码盘的转动,可实现光线的通断;利用Arduino微处理器对时钟脉冲以及传感器脉冲进行计数,以实时地反映转动机构转速。设电机转速为φ,光电编码器脉冲数为δ,码盘空隙数为η,转动时间为T(s),则:

(1)

由于该系统使用的小型光电编码器的实际脉冲输出数目与理论值存在偏差,故需通过多次试验进行修正。修正后可得:

(2)

式中:φ为测量时的实际转速。

2.4 电机驱动模块

电机驱动和电源决定了分体式收线器的整个运行的硬件机能。电机驱动系统由驱动功率转换桥式电路、微控制器以及电机构成。在该设计中,采用TELESKY公司的L298N驱动模块作为主要驱动电路。其内置两个H桥高电压大电流全桥式驱动器,可用来同时驱动两台直流电机和一台两相制或四相制的步进电机;采用标准逻辑电平信号控制,宽电压工作在7~35 V之间,可取5 V电压供外部使用。

2.5 液晶显示模块

该系统采用LCD1602液晶显示器,在Arduino单片机系统中应用液晶显示器件,具有显示质量高、数字式接口、界面直观、体积小、质量轻、功耗低等优点。LCD1602采用16脚(带背光)接口,各引脚接口说明如表1所示。

表1 引脚接口说明

2.6 电源模块

系统采用锂聚合物可充电电池为分体式收线器供电,可充电锂电池为250 mAh、9 V。考虑到收线器本身的功耗以及可携带性,要求收线器具备体积小、质量轻的特点。故在选用供电系统时,要注意电源本身的体积、质量以及电气参数是否符合以上要求。

3 软件设计

整个软件系统可分为手机终端软件程序设计和便携式分体收线端Arduino单片机程序。

Arduino软件设计流程如图5所示。

图5 Arduino软件设计流程图

3.1 手机终端软件设计

手机软件端程序分为蓝牙模块和APP应用端。

3.1.1 蓝牙模块

HC-06指示灯闪烁表明处于蓝牙断开状态,完成蓝牙搜索并配对后指示灯常亮。

进入搜索界面后,如果蓝牙未开启,软件会自动提示用户开启蓝牙,并执行开启蓝牙动作。此时,弹出对话框询问权限,用户授予允许的权限后,蓝牙开启,自动进入设备搜索状态。用户可在设备列表中查看周边可用的蓝牙设备,选取分体式收线机器人对应蓝牙设备进行连接。手机连接蓝牙模块流程如图6所示。

图6 手机连接蓝牙模块流程图

3.1.2 APP应用端

用户在应用端控制界面完成交互。启动安装在手机上的APP软件,若蓝牙未开启,则自动弹出蓝牙开启对话框,由用户选择同意开启进行授权。蓝牙配对成功后,进入虚拟按键控制界面。用户可通过手机控制收线器,实现收线、放线、急停、测量等功能。

3.2 Arduino单片机软件设计

Arduino单片机程序主要分为测量与显示模块、蓝牙模块以及光电编码模块。

3.2.1 测量与显示模块

测量与显示模块由微控制器进行时间测量,使用millis()函数命令对转动机构前后经历时间进行测量,并结合光电编码脉冲计数与收线机构物理参数进行线长计算。液晶显示模块使用LCD1602液晶显示屏,数据处理后使用lcd.setCursor()命令设置光标位置,并使用lcd.print(“”)命令输出显示内容。

3.2.2 蓝牙模块

蓝牙模块通过串口接收手机终端发送的控制命令。程序设计遵循初始化、扫描串口、接收数据、匹配、执行调用的思路。首先,将设备间通信波特率设置在相同波段;然后,设置字符空白变量与函数标志符,调用串口扫描函数,获取变量并与预先设置的标志符相匹配;最后,执行对应函数,实现对应功能。

3.2.3 光电编码模块

光电编码模块发送连续的光电脉冲信号至微控制器。微控制器接收脉冲以下降沿计数。同时,设置检测周期,利用试验矫正后的公式进行实际转速计算,并反馈给微控制器作为执行的参考因数。

4 系统调试

将Arduino与各硬件模块组合,检查线路连接是否对应。通电后,蓝牙模块指示灯闪烁,指示蓝牙处于断开状态,按下物理按钮可执行测量、收线、放线等功能,液晶显示屏正常工作。将手机端蓝牙开启,扫描可连接设备建立蓝牙连接。成功后,蓝牙模块指示灯常亮,可通过手机端APP控制界面实现与物理按键相同功能。Arduino接收到控制信号进行筛选比对,并执行相关动作。

试验还进行了300 ms的实时控制试验,对比了Arduino输出的理论控制信号与实时采样所得实际动作信号的大小与执行时间的差别。理论控制信号与实时动作信号对比如图7所示。

图7 理论控制信号与实时动作信号对比图

由图7可知,在执行收放线动作时,实时信号的大小没有产生衰减,但时间上均滞后理论控制信号约10 ms。这是由小型光电编码器的精度、直流电机本身的机动特性以及当前系统的老化或损耗状态等因素共同造成的。但此延时很短,在可接受的范围之内,故在使用时并不会影响用户的使用体验。所以可得出结论,该系统可较快地对控制指令作出响应,并在较为精准的时间范围内,稳定地实现收放线等基本功能,达到设计预期目标。

5 结束语

本文设计并实现了一种基于Arduino的便携式分体收线器,给出了所述功能模块的设计和具体实现方法。完成了系统实际物理按键以及远程APP终端遥控,从而灵活地实现了分体式收线器的各项功能。测试结果表明,该系统控制简单、运行稳定,在生活应用产品领域有较为广阔的市场前景,并为研究工业、通信等领域的线路管理和收纳问题提供了新颖的思路,具有重要的参考价值。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!