本文设计实现了一种基于Arduino UNO R3的写字绘图机械装置,本次设计综合考虑装置的功能与技术指标,经过设计方案的选择,进行细致的调试与测试最终确定画笔驱动控制算法、画笔路径规划算法、计算机与主控芯片的通讯方式等一套可实现的系统设计方案。本次设计主要完成了如下工作:系统的硬件设计与选择,包括系统的电路设计、主控芯片与拓展板的选择、步进电机的选择、抬笔舵机的选择、支撑框架的选材和相关通信连接线的选择等。系统的软件算法设计,包括各模块驱动算法的设计开发、画笔行走路径的规划算法和绘出基本图形文字的算法等。依据系统设计原理进行硬件搭建并运行程序算法,可以实现理想文字和图形的绘出。测试结果表明,本次设计达到预期目标。 This paper designs and implements a writing and drawing mechanical device based on Arduino Uno R3. This design comprehensively considers the functions and technical indicators of the device. After comparison and selection of design schemes, and detailed debugging and testing, the final brush drive control algorithm, brush path planning algorithm, computer program and the main control chip communication mode, such as a set of realizable system design scheme is determined. This design has mainly completed the following work: the hardware design and selection of the system, including the circuit design of the system, the main control chip and the selection of the expansion board, the selection of the stepper motor, the selection of the steering gear, the selection of the support frame and the selection of the relevant communication lines. The software algorithm design of the system includes the design and development of the module driven algorithm, the planning algorithm of the brush walking path and the algorithm of drawing the basic graphics and words. According to the system design principle, set up hardware and run the program algorithm, and ideal text and graphics drawing can be achieved. The test results show that the design reaches the expected goal.
本文设计实现了一种基于Arduino UNO R3的写字绘图机械装置,本次设计综合考虑装置的功能与技术指标,经过设计方案的选择,进行细致的调试与测试最终确定画笔驱动控制算法、画笔路径规划算法、计算机与主控芯片的通讯方式等一套可实现的系统设计方案。本次设计主要完成了如下工作:系统的硬件设计与选择,包括系统的电路设计、主控芯片与拓展板的选择、步进电机的选择、抬笔舵机的选择、支撑框架的选材和相关通信连接线的选择等。系统的软件算法设计,包括各模块驱动算法的设计开发、画笔行走路径的规划算法和绘出基本图形文字的算法等。依据系统设计原理进行硬件搭建并运行程序算法,可以实现理想文字和图形的绘出。测试结果表明,本次设计达到预期目标。
机器人,写字机,Arduino,路径规划,写字绘图
Fuyang Guo1, Wenfang Dong1, Guilin Chi2
1First Aircraft Institute of AVlC, Xi’an Shaanxi
2Luoyang Institute of Electro-Optical Equipment, AVIC, Luoyang Henan
Received: Jun. 25th, 2023; accepted: Jul. 16th, 2023; published: Jul. 27th, 2023
This paper designs and implements a writing and drawing mechanical device based on Arduino Uno R3. This design comprehensively considers the functions and technical indicators of the device. After comparison and selection of design schemes, and detailed debugging and testing, the final brush drive control algorithm, brush path planning algorithm, computer program and the main control chip communication mode, such as a set of realizable system design scheme is determined. This design has mainly completed the following work: the hardware design and selection of the system, including the circuit design of the system, the main control chip and the selection of the expansion board, the selection of the stepper motor, the selection of the steering gear, the selection of the support frame and the selection of the relevant communication lines. The software algorithm design of the system includes the design and development of the module driven algorithm, the planning algorithm of the brush walking path and the algorithm of drawing the basic graphics and words. According to the system design principle, set up hardware and run the program algorithm, and ideal text and graphics drawing can be achieved. The test results show that the design reaches the expected goal.
Keywords:Robot, Writing Machine, Arduino, Path Planning, Writing Drawing
Copyright © 2023 by author(s) and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
写字是人类基本行为习惯之一,仿人功能写字机器人的研究是目前机器人发展的一个重要分支,国内外对于写字机器人的研发和应用 [
本系统旨在设计并实现一个完整统一的竖直平面写字机,具体包括电源驱动模块、上位机控制软件、下位机主控芯片模块、画笔驱动模块、硬件连接支撑部件等。该写字机首先能够实现硬件搭建并具备一定的抗干扰能力,在此基础之上实现各功能算法子系统能够正常运作,从而使写字机能够完成对人们给定坐标串进行解析转化为电机与舵机的相关动作,从而实现预定轨迹路径的写字作图功能并可通过调节参数和起始落笔点从而实现工作区域大小和位置的改变。
实现画笔写字绘图功能的关键是使画笔运动与使画笔按照预期轨迹运动。在电源设备的供能下,主控芯片通过引脚接线即可以使电机使能而运动,而控制电机按照预期轨迹运动则需要通过主控芯片通过算法逻辑解析电机与舵机的运动行为从而控制控制画笔的按照预期规划运动。为体现自主性,本次设计通过人工规划文字路径并设计相关路径坐标串储存在程序中,主控芯片运行至数据坐标串时顺序读取坐标串从而控制画笔一步接一步按照预期轨迹移动从而写出相关文字。通过所建立的各种运动子程序,以画笔起始点为坐标原点,通过画笔移动连接按顺序所给出的各坐标点,以此完成写字作图功能。
系统整体结构包括电源驱动模块、上位机控制软件、下位机主控芯片模块、画笔驱动模块、硬件连接支撑部件等,具体系统工作流程如图1所示。
图1. 系统硬件工作原理图
写字机系统以Arduino Uno R3为主控板 [
由以上可知硬件电路模块包含主控芯片、串口通信模块(配置在主控芯片内)、步进电机及驱动模块、抬笔舵机模块、电源等五个模块。主控芯片图、系统总体电路连接图,整体电路连接图如图2所示。
图2. 整体电路连接图
Arduino Uno板内部具有智能电源切换电路 [
图3. 智能电源切换电路
智能电源切换电路的存在使得主控芯片可以同时连接多个电源 [
Arduino Uno板通过扩展插座提供14个数字I/O口,引脚编号为0~13。数字I/O口作为输出口使用时具有一定的带负载能力,此时需要注意的是每个I/O口的平均电流不宜超过20 mA,峰值电流不能超过40 mA,且所有I/O口的电流总和不要超过200 mA。
14个数字I/O口中的3、5、6、9、10、11引脚支持PWM输出,应用在本次设计中,两步进电机记为M1、M2,两步进电机驱动器的各4条信号线IN1~IN4分别对应连接Arduino Uno板的2、3、5、6和7、8、9、10引脚来进行控制信号的传递。
考虑本次设计的技术指标要求如精确控制画笔走停,停电后不会因负载而被反向拉动且考虑经济性与操作方便等因素,决定采用步进电机,具体型号采用28BYJ-48步进电机,通过驱动板的连接即可进行供电,不用外加电源,自带减速齿轮,力道可以满足我们的需求,且有成熟的实际工业应用案例,如一般空调的导风板就是用此电机进行拉动。
该步进电机可在5~12 V的直流供电电压下进行工作,常采用单四拍、双四拍和八拍作为电机的通电驱动方式,本次电机驱动型别是四相八拍,电机的通过接受电脉冲信号而进行相应驱动,每接受一个电脉冲信号电机就会转过一个最小的基本角度(步距角),通过给定电机不同数量与性质的电脉冲信号就可控制电机进行相应的转动。
图4. 步进电机驱动示意图
ULN2003步进电机驱动板与Arduino Uno控制板进行图4相应的电路连接 [
舵机,英文名称servo,是一个处于闭环工作状态的伺服单元,因此有着较为精准的输出和稳定的工作性能,且有这体积小、重量轻、输出稳定且输出力矩大的特性。内部一般包括电机及其控制器、减速器等部件,如上所述舵机是一个闭环系统,舵机内有一个对转轴转角进行实时监测的角度传感器,通过检测到的实际输出转角与理想输出转角的差值可以相应的产生控制信号控制舵机的运动从而转到理想的角度。
舵机有输出保持功能,即当给定电脉冲调制信号的宽度以后,舵机执行机构就会产生与之对应的转角,在保持供电的情况下,此角度可在施加外界转矩的作用下而保持固定,直至下一个驱动控制调制电脉冲信号的到来,此特点非常适合作为本次的抬笔与落笔动作的控制机构,以此来保证画笔的正常抬起与落下。
硬件支撑传动部件 [
图5. 系统整体硬件组装外观图
采用USB数据线进行供电,既可以与笔记本电脑相连,也可与移动电源等相连。
写字机器人雏形机之所以不能称之为完全意义上的写字机器人,是因为它只有硬件结构而不具备软件编程功能。本次设计主控芯片采用Arduino Uno控制板,主控芯片需要被写入代码程序才能工作运行,对主控芯片的算法编写与录入由上位机编译平台Arduino IDE来完成。
Arduino IDE是一款开源软件并支持代码程序的在线烧录,打开Arduino IDE,Arduino IDE界面的上方、中间与下方分别是工具栏、代码编辑区和消息通知区。
主控芯片通过设定的算法逻辑解析坐标串代码 [
本设计采用步28BYJ-48步进电机,一周步长2048步转360度。又本设计采用线轴直径35 mm,周长为110 mm,通过计算可知步进电机步距为0.0537 mm,即每步线绳被拉动的距离的最小分辨率为0.0537 mm。
为了写出来的汉字平滑,步进电机每步运动后要进行相应的等待延时时间设定且转弯等待时间也要进行设定,应等待笔静止后再运动。为了确定画笔的行走路径可遍历平面,则要实现画笔即可前进又可后退,映射到电机的正反转带动线绳的卷入与卷出。
本设计中,以竖直面为基准平面通过调整程序参数以此来控制舵机相对于竖直基准面的旋转角度从而控制画笔抬起与落下。按照下图所示方式安装画笔及其固定装置,通过实际现场调试可知,抬笔参数可选择范围为:120˚~180˚,落笔参数可选择范围为:0˚~110˚。
完成以上硬件连接后,要进行舵机与Arduino Uno主控板的通信。
画笔要实现如图6所示的移动,即要从D移动到D′的位置,只需要通过相应的算法分别计算出画笔移动前与移动后AD和AD′的差,BD和BD′的差,即得出两线轴要放多少线或收多少线和舵机的动作,从而可确定电机应该正转还是反转及转过的步数,至此就完成了画笔按照预期轨迹的一步移动,重复上述操作,就可以实现画笔的按照给定数据坐标串的规划路径的移动。
图6. 画笔移动示意图
完成系统各参数设定后,以画笔初始落点为坐标原点,以给定坐标点为目的点,依据勾股定理原理,可反解出电机的相应动作,具体实现流程如图7所示。
图7. 画笔按照预期轨迹移动流程图
第一步首先在Arduino开发板上装上原型扩展板和面包板,并用导线连接电路。
第二步用USB线将Arduino Uno板连到电脑,连接成功后,电源指示灯亮起。
第三步用鼠标点击“这台电脑”,并单击右键/管理/设备管理器/端口,查看Arduino Uno连接的COM口并记录,后续下载程序在此端口进行。
第四步是在代码输入后,进行代码的编译工作。如果显示没有错误,设置Arduino IDE板子型号以及相应的串口号后,进行代码的上传工作。
第五步是观察测试结果,面包板上的LED每隔一秒交替亮灭一次,说明主控芯片正常工作。
在本次设计中,依据实际现场情况,主控芯片通电后相应指示灯亮且与之相连的面包板上的LED等按照设定规律变化,说明主控芯片处于正常工作状态。
已知实际系统的水平距离参数(单位为mm)为400,即X = 400;竖直距离参数(单位为mm)为150,即Y = 150。现进行距离参数的不同对实际绘图效果的影响测试 [
图8. Y = 80时实际绘出图
图9. Y = 150时实际绘出图
图10. Y = 250时实际绘出图
图11. 不同变量值组合下的综合对比图
依据现场设备实际距离数据调整相应距离参数并设置由测试得出的合理延时等待时间,以画笔初始落点为坐标原点,在画笔的最佳工作区进行直线、矩形与菱形图形的实际绘出效果如图12所示。
图12. 直线图形测试运行图
以上图形的正确绘出说明在各硬件处于正常工作状态且各参数选择合理的情况下,此直线子程序可正确运行。
依据现场设备实际距离数据调整相应距离参数并设置由测试得出的合理延时等待时间,以画笔初始落点为坐标原点,在画笔的最佳工作区进行圆形、心形与蝴蝶曲线的绘出效果如图13所示。
图13. 曲线图形测试运行图
以“谷”字为例,“谷”字的笔画数为七、端点(端点在本文中的含义是字体各笔画的起点、终点及笔画中的各拐点)数为十二且书写笔画顺序如图14所示。以初始画笔落点为坐标原点即(0, 0)点,画板右侧为X轴正方向,画板下方为Y轴正方向。端点坐标即代表了画笔实际运行的具体行进路径,分析可知各端点坐标分别是(−32, 65),(−36, 71),(−28, 65),(−24, 71),(−30, 68),(−37, 80),(−30, 68),(−23, 80),(−34,77),(−34, 85),(−26, 77),(−26, 85)。
图14. “谷”字的书写笔画顺序
书写“谷”字的具体过程如图15描述,首先 [
图15. “谷”字的实际写出效果图
本文设计实现了一种基于路径规划的绘图写字机器人的解决方案,具体包括硬件选择及电路搭建、机械传动结构选择与搭建、画笔运动算法程序开发等。该方案具有结构紧凑合理、搭建简单、工作稳定、调试方便等优点,可以按照规划好的字体笔划进行书写。且本次设计所开发采用的算法逻辑简单、灵活而且实用性高,同时通过添加延时等待程序得出理想的延时等待参数,可以实现在整体工作时间与写字绘图的流畅与平滑性之间达到一个较好的均衡,延时等待程序也可以减少书写毛刺的产生并增加画笔移动运行的平稳。
郭付阳,董文方,池桂林. 基于Arduino UNO R3的画画写字机的设计与实现Design and Implementation of Picture Writer Based on Arduino UNO R3[J]. 动力系统与控制, 2023, 12(03): 173-185. https://doi.org/10.12677/DSC.2023.123019