APP下载

竖直平面二维绘图机器人的设计

2019-06-24王铭姚泽颖许超帅刘野王艳会

科技创新与应用 2019年13期
关键词:上位绘图画笔

王铭 姚泽颖 许超帅 刘野 王艳会

摘  要:为解决机器人在绘画领域中存在的价格高、结构复杂、绘画区域有限的问题,文章设计了一种基于Arduino的竖直平面二维绘图机器人,旨在让机器人更好地应用于绘画设计领域。该设计的优势在于电控部分与机械部分可拆卸不受绘图区域大小的影响。同时,文章对机器人的软硬件选择、程序设计以及机器人本体结构进行详细的介绍。

关键词:Arduino;processing软件;矢量作图

中图分类号:TP242         文献标志码:A         文章编号:2095-2945(2019)13-0052-02

Abstract: In order to solve the problems of high price, complex structure and limited painting area of robot in the field of painting, a vertical plane two-dimensional drawing robot based on Arduino is designed in this paper, in order to make the robot better applied in the field of painting design. The advantage of this design is that the detachable parts of the electronic control part and the mechanical part are not affected by the size of the drawing area. At the same time, the software and hardware selection, program design and robot body structure of the robot are introduced in detail in this paper.

Keywords: Arduino; processing software; vector mapping

引言

随着计算机及其智能硬件的飞速发展,人们在生活和生产过程中越来越多使用机器人来代替人类的工作。绘图机器人在装饰设计、素材创作、教育教学、文化娱乐等方面的应用愈加广泛。本文设计的绘图机器人克服了传统绘图设备价格高、结构复杂、绘图区域有限的难题,具有成本低、结构简单、尺寸大小可调节、绘图性能好的特点,具有十分重要的现实意义和市场价值。

1 系统结构设计

绘图机器人是由悬吊牵引部分、机电控制部分、数据通信部分组成。上位机选取相应的图片并加载到控制部分,控制部分由Arduino mega2560承担,Arduino mega2560接收图片像素信息后,解析为驱动电机的Dir信号和Step信号,由I/O口控制A4988,驱动左右两部步进电机转动。通过两部步进电机的正反转动作,带动悬吊牵引部分按照设定的图片效果完成绘图。系统结构如图1所示。

2 机械部分设计

绘图机器人的机械部分主要由画笔支持部分和悬吊牵引部分组成。画笔支撑部分相当于机器人的手掌, 是一种用来固定画笔的装置。画笔支撑结构的示意图如图2所示。该装置使用2个6003Z的轴承堆叠在一起, 通过固定支撑连接, 使画笔可准确地保持在固定支撑正中间,并且保证开合角可随位置的改变而改变。画笔固定支撑设计可以调整重心从而稳定画笔,且在绘画时只露出一点笔径,保证悬吊牵引部分平衡, 避免抖动。

悬吊牵引部分由步进电机、链珠盘、链珠、画笔支撑部分组成。相比于传统绘图机器人,该设计在完成竖直平面内的二维绘图操作的基础上,对机器人的灵活性与实用性进行了革新,现有的绘图机器人绘图支点固定、工作区域受限,使其应用范围受到影响。而该设计的最大优势在于,机器人的機械部分可分拆和分装,牵引电机的固定方式灵活,可安装在任意作图区域,结构示意图如图3所示,此结构使机器人的绘制范围不受限制,作图区域的大小不再成为影响绘图机器人发展的限制性因素。

3 电控部分设计

本设计的核心控制器是Arduino Mega2560,晶体振荡器选择16MHz,使用uart0与上位机通信,I/O口实现对A4988的细分参数配置和驱动控制。电源部分采用两种供电方式,以适应不同的用电场合。一种是AC220V输入DC12V输出的适配器接口,另一种是DC12V60AH电池接口。DC12V直接为步进电机供电,另外DC12V经过稳压模块输出DC5V电压为Arduino Mega2560供电,正负极分别连接Arduino Mega2560的VIN和GND引脚。

根据设计需求和硬件配置要求,本设计采用步距角为1.8°的两相混合式步进电机,测试中选择型号为17SH5413(42BYGH)的两相四线步进电机,标准模式输出为200个脉冲转动一周。电机采用直流12V供电。

在步进电机驱动方面采用了A4988模块,对A4988驱动模块编程实现五种不同的步进模式:全步、半步、1/4、1/8、1/16,以达到精确控制的目的。在电路连接上,A4988驱动模块的 STEP、DIR引脚分别连接Arduino mega2560的PIO。在Arduino中定义两个object:AccelStepper stepperLeft(1,9,8)和AccelStepper stepperRight(1,7,6)。逻辑上,Arduino的pin8控制左侧电机的方向,pin9负责左侧电机的脉冲控制,pin7控制右侧电机的方向,pin6负责右侧电机的脉冲控制。

4 上位机软件设计

竖直平面二维绘图机器人采用Processing软件搭建上位机的界面,Processing是Java语言的延伸,并支持许多现有的Java语言架构。Processing将Java在语法(syntax)上作了简化,即可以完整地完成Java程序语言编程,又具有许多贴心和人性化的设计。由于其源代码是开放的,所以可依照自己的需求自由裁剪出最合适的使用模式。

绘图机器人采用矢量作图,其本质就是坐标的变换以及坐标的映射。坐标的映射是通过与控制软件通信获取到的坐标,将坐标映射为两根弦的长度。上位机负责把图片转化为信息单元点元素,其中包含坐标、大小、灰度值。Arduino mega2560主控板将坐标换算为弦长并输出。

Arduino Mega2560板与上位机正常通信后,确定做图区域大小并运行上位机软件,上位机软件的控制流程如图4所示,首先完成串行口的初始化,設置波特率和中断;然后检查是否使用上次的系统设置,不使用则重新设置画板和纸张宽高,确定零点位置,调整笔尖的大小以及电机最大转速和运行速度,保存系统设置。随后,载入一张用户图片,检查是否使用上次的图片设置参数,若不使用则重新设置图片的大小和绘图区域,改变“像素”的大小,图片的对比度,保存这些数据设置,选择串口连接和绘图风格,发送到Arduino Mega2560上,驱动电机和舵机开始绘图。

5 结束语

竖直平面二维绘图机器人的设计主要围绕电控设计、跨界软件编程、机械结构设计三个方面。具有结构简单、安装布置灵活的特点,相比于同类产品,不受绘图区域大小限制且携带方便,可以更好的应用在装饰设计、素材创作、教育教学、文化娱乐等方面。

参考文献:

[1]陈镔,张兴远.基于Arduino的绘图机器人[J].电脑知识与技术,2016,12(17):155-159.

[2]高明华,黎强,叶子恒,等.基于Arduino与Processing的悬挂画图机器人的设计[J].现代电子技术,2018,41(24):153-156.

[3]陈吕洲.ARDUINO程序设计基础[M].北京:航空航天大学出版社,2014:24-171.

[4]John BOXALL.动手玩转Arduino[M].翁恺,译.北京:人民邮电出版社,2014:264-298.

[5]于海生.计算机控制技术[M].北京:机械工业出版社,2011:55-76.

[6]Arduino中文社区.概述Arduino电机驱动扩展板L293D马达板motor control shield[EB/OL].(2013-10-13).

猜你喜欢

上位绘图画笔
小画笔 大世界
叮咚鸟
一场史无前例的乐队真人秀
小画笔 大世界
小画笔
基础油“上位”
绘图机器人
编辑部的故事
小画笔
新闻浮世绘