基于arduino板的写字机设计(支持资料参考_相关定制)

摘    要

为了提高人类生产生活的工作效率,减轻人工抄写的工作强度,顺应科学技术的飞速发展,利用开发板为主控制器,通过下达指令控制位于3D打印写字板下方的舵机来控制笔距离纸面的高低位置,以达到模仿人类抬笔落笔的目的。同时控制位于3D打印机械臂连接处的左右舵机,带动左右小臂进行运动,控制笔尖在板上的位置,配合着底部舵机的运动实现对数字等字体的书写。

结果表明,基于Arduino板的写字机能够代替人工手写,与此同时,整套装置也表现出极好的灵活性、智能化。同时也说明,智能机器人对于帮助人类完成书写工作以及提高人类的书写效率起到了至关重要的作用,机器人书写技术可以使机器人在通过对字体的学习后进行自主书写。而由于机器人写字技术具有灵活性、智能化、高可靠性、高精度的特点,因此,人们致力于将此项技术应用于生活实际工作中,以提高工作效率,并不断拓展写字机的功能。目前,写字机的应用领域已经大大拓宽,这意味着该课题的可行性。

关键词:机械臂; 舵机; 灵活性; 智能化

Abstract

In order to improve the efficiency of human production and life, reduce the intensity of manual transcription, and comply with the rapid development of science and technology, Arduino board is used as the main control chip to control the servo located below the 3D printing board by issuing instructions to control the height of the pen tip from the paper surface, so as to achieve the purpose of imitating human lifting and writing. At the same time, control the servo located at the connection of 3D printing forearm, drive the left and right forearms to move, control the position of the pen tip on the board, and write the number and other fonts according to the movement of the steering gear at the bottom.

The results show that the writing machine based on Arduino board can replace manual handwriting, and has a speed and stability exceeding that of human handwriting. At the same time, the whole device also shows excellent flexibility and intelligence. At the same time, it also shows that intelligent robots play a crucial role in helping humans complete writing and improving their writing efficiency. Robot writing technology can enable robots to write independently after learning fonts or after receiving instructions from clock modules.Thanks to the flexibility and intelligence of the writing machine, people will be able to apply this technology to their lives and constantly exploit its functions. At present, the application field of writing machine has been greatly expanded, which means the feasibility of the subject.

Keywords: mechanical arm; servo; flexibility; intelligent

引    言

由于Arduino入门简单,对电路知识的要求并不高,并且发展前景好,所以人们越来越重视此领域的开拓,同时,由于5G时代的到来,VR、AR等可穿戴设备的应用将会更加普及,这就为Arduino提供了更多的发展机会,而且随着科技的进步,人们创新意识显著增强,Arduino这种易上手、稳定性高的的技术将会更受人们的青睐。本项目主要研究写字机实现书写数字并记录时间的问题,比较深入地研究了Arduino板、动力学、轨迹规划、舵机驱动等问题。

文字是人类文明延续的重要媒介,知识经济时代已经到来,生产化的高科技产品已经逐渐融入到人类的生活中。机器人技术是一种新的科技领域,生产与生活中不可或缺的一部分。并且为国家的制造业打下了新的基础。不仅如此,这项技术正在逐渐的改变我们的生活,原本繁杂的工作变得越来越简单易处理,原本靠人类自身无法实现的工作也逐渐变成了可能,可以说是开创了一个新时代。

目前为止,人类记录时间的、记录数据的方式还停留在手动阶段,虽然很多电子设备中都内置了精密的时钟,但并不能人性化的将时间或重要的数据自动记录下来,而智能写字机的出现将代替人类完成这些繁杂的工作。智能写字机综合了计算机、控制论、仿生学等多学科知识的技术产品,其应用场景广泛,不仅是AI技术的新思维,更是对提高人类书写工作效率有着重大意义。不仅如此,写字机的功能极具开发价值,不仅可以成为记录时间的工具,也可以加入激光头进行激光雕刻,甚至还可以绘制一些复杂的绘画作品。可以说写字机不光是一台会写字的机器,还是一个多功能的艺术创作机器人。

 在写字机进行绘画的实验中,王晓丽、宫晓博等改善了笔架的运行轨迹,使绘画作品更加生动;此外,在写字机汉字书写实验中,南京林业大学机器人研究所也取得不错的成果,成功的对笔的运行轨迹进行了重新编程,拓展了更多书写字体。

与此同时,写字机在国外也有了多项研究成果。MF Crainic等人提出了一种促进证书或传统信用证创建的方法,实现了写字机的机械臂可以在斜面上进行书写。K Tahara等人还提出了一种新的控制方案,该方案实现了使笔尖可以从初始位置运动到平面指定任意位置

当前,写字机器人存在如下三个方面的问题:①写字机器人不够智能,太过于依赖已有的程序,如果程序发生错误,就会影响整个写字过程。系统缺乏异常容错能力,且系统自身并不能找到错误原因。②当前的写字机器人只是在同一水平面简单的程序化的进行书写,不能实施多角度的操作,只局限一个方向。③当前的写字机器人只局限于纸质品上绘画,写字操作不够精细,且需要人工辅助。最重要的是写错之后不能自动修改。

本项目围绕如下几个方面进行研究:①关于机械控制,结合机械结构、前进和后退运动学、工作空间、力学和轨迹规控制写字机。②对在空间平面、柱面及球面的多角度绘制。③模块化设计,针对不同材料、笔触模块的相应设计。④标绘时钟,为了能够有效地记录时间数字,需要对时钟模块进行学习。仿生人写字绘画的动作,使得绘制的作品更具人性。

本文的主要工作如下:

第一章重点说明了系统的方案设计,主要阐述了系统的功能和设计目标,并根据设计目的选择合适的驱动模块,做出了系统的总体方案设计框图。

第二章介绍了写字机的硬件设计,其中包含各个模块的设计原理,并根据系统的设计要求选取Arduino板的型号,选择最适合要求的舵机时钟模块。本章重点介绍了舵机模块的电路设计,以及舵机Arduino板之间的协作

第三章讲述了系统的软件设计;简要介绍了系统的开发环境以及重要函数和系统流程图。

第四章是写字机的调试部分,囊括了系统的硬件测试以及软件测试,并就本设计出现的问题,做了简单的论述以及解决办法


1 总体方案设计

    1. 系统方案设计

写字机系统是由一个主控制器、一个执行环节来完成对笔的控制,使笔能够在写字板上写出简单的字体,通过对资料的采集,本系统的可供选择的有步进电机控制执行和舵机控制执行,具体方案如下:

方案一:写字机的整体系统由计算机、Arduino板、步进电机以及舵机组成,其中Arduino板为主控制器,步进电机和舵机则控制笔移动。文本信息由计算机转换成G代码传送给Arduino板,其内部程序会将G代码转换成相应的程序代码来控制步进电机和舵机的运动写字机的主要动力驱动是由步进电机完成的,实践中控制每输出一个控制脉冲,电机就运转带动笔架,进而实现仿写字体。此方案可以仿写人类字体,精度高,但价格高,结构复杂,难实现。

方案二:写字机的整体系统由计算机、Arduino板、时钟模块和舵机四部分组成,其中Arduino板主要作为主控制器,三个舵机主要控制笔的抬落以及书写工作。主要由上位机将信号传送到下位机Arduino板中,在经过简单的几个坐标运算,计算出每个要写的数字或汉字中笔画的重要连接点,同时根据机械臂的几何原理,控制左右机械臂的舵机齿轮在0至180度之间转动,从而带动机械臂与笔的运动,进而进行写字。再利用时钟模块,可以书写出实时的时间。此方案的最大优点是拓展了智能写字机的功能,使其能够自动记录时间,并且价格便宜,结构简单,易实现,并且方便携带。其缺点是写字精度不够且只能写一些简单的汉字。

经上述比较,虽然方案一可以写出大量的切精度高的仿写字体,但是研究范围太大,且价格昂贵,而方案二价格便宜并且全舵机控制写字更容易实现,并且增加时钟模块拓展了传统写字机的功能,更具创新意义,故选择方案二通过舵机带动机械臂进行书写。

1.2 系统工作原理

智能写字机系统采用自动化控制,要求实现抬笔落笔、写字、记录时间,所以系统分为左右以及抬臂舵机部分、控制器部分、时钟模块部分,其中控制器采用Arduino板来控制写字信号的传输,时钟模块部分则采用时钟芯片传输实时时间信号,舵机部分则采用微型舵机完成对写字信号的执行,系统可以在每一分钟记录一下时间,也可以自行安排写字内容,即一个Arduino控制器,操控写字机系统中若干组成模块的正常运作,其控制系统框图如图1.1所示。

                   

1.1 控制系统框图

     

2 硬件电路的设计

2.1 主控模块设计

2.1.1 主控模块的选择

Arduino是个基于开放源代码的软硬件平台他的硬件具有丰富的接口,有数字 I/O 口、模拟 I/O 口,同时支持 SPIIIC、UART 串口通信。常见的主板型号有Arduino UNO、Arduino Mega 2560、Arduino101、Arduino Leonardo 等。其中适用于本设计的型号有Arduino Uno和Arduino101[2]。

方案一:Arduino101是一款拥有入门级别的主板,其拥有高性能、低功耗的特点,同时拥有神经元功能,适用于机器学习,但是其价格昂贵,有时则会出现手动复位的问题,其强大的功能反而被UNO的外形所限制。

方案二:Arduino UNO作为主控芯片时,实物如图2.1所示,其选用ATmega328 MCU控制器为基础,具备14个数字输入/ 输出引脚(其中6路可用于PWM输出)、6路模拟输入、一个 16MHz陶瓷谐振器、一个USB接口、一个电源插座、一个 ICSP接头和一个复位按钮[3]。其优点主要是性价比很高,同时提供了自动复位的设计,可以通过软件自动复位,不需要再按复位按钮,同时具有极高的稳定性,其缺点是性能中庸。

综上对比,UNO作为Arduino平台的参考标准模板,其价格便宜,更适合入门学习,并且相较于Arduino 101拥有更高的稳定性,所以选择Arduino UNO作为主控芯片,其具体实物如图2.1所示。

图2.1 Arduino UNO实物图

2.1.2 Arduino的最小系统

最小系统主要由两个部分组成,分别为:ATmega328p芯片 、晶振电路,其电路设计如图2.2所示

图2.2 Arduino UNO最小系统

本设计中Arduino板的电压在4~5V之间可以正常工作。电源部分使用的是USB电源线,可以连接手机充电插头或者5V的移动电源给系统供电。

在晶振电路中有两个独立的反向放大器,即输入端XTAL1和输出端XTAL2,它们不仅可以与石英晶振配合,作为单片机的内部振荡器。而且能够单独作为一个元器件,需要被外部时钟驱动来使用。图2.3就是内部时钟模式。也就是说,晶振电路中的输入端和输出端分别连接两个电容和一个1MHz的石英晶振,内部振荡器便产生了。而与其连接的两个电容C4和C3会对振动频率起作用,进而起到调节频率的效果。

图2.3 晶振电路

2.2 驱动模块设计

本设计主要靠舵机驱动,其内部结构主要有小型马达、小型电路板、齿轮等,舵机的外部接线为黄、红、棕三种颜色。当舵机接收到接收机的信号后,其内部控制电路会检测此时舵机轴的角度,如果此时轴的角度与控制信号不同,则内部的小型马达就会转动到指定的角度,如果轴的角度与信号相一致,则马达不会转动。

方案一:SG90型号舵机是最基础,使用最广泛的舵机,并分为90度、180度、360度旋转角度版本,可以控制机械臂摆动并且调整笔的高度,其价格便宜,属于模拟舵机类型,适用于固定翼、直升机KT、小型机器人、机械手等模型。优点是性价比高,缺点是不够耐磨,实物如图2.4所示。

图2.4 SG90舵机实物图

方案二:MG90舵机相当于SG90舵机的金属齿轮加强版,可以控制机械臂的摆动以及调整笔架的高度,安装尺寸与SG90略微不同,其优点是采用金属舵机齿轮,更加耐磨,但是缺点是其价格也更贵,而且重量达13.6g,不够轻便,适用于450直升机斜盘舵机、小型机器人、航模遥控飞机等。

综上比较,SG90舵机更加便宜与轻便,并且能够契合本设计功能的需要,与MG90舵机想比性价比更高。所以选择SG90型号舵机作为驱动,其具体电路图如图2.5所示。

图2.5 SG90舵机电路图

2.3 时钟模块设计

时钟模块是通过Arduino板内部或者外部振荡器,处理所提供的高频脉冲,成为Arduino板内部时钟信号。作用是来配合外部晶体实现振荡的电路,提供给Arduino板一个运行时钟。

方案一:DS1302时钟的优点是功耗较低并且性能高,采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAI数据。与此同时,DS1302拥有主电源/后各电源双电源引脚,具备了电流充电的能力。但是DS1302时钟的缺点也很明显,其精度不够高,容易受到外部环境影响[4]。

方案二:DS3231时钟的优点是当电源断开时仍能计时,并且精确度高、成本低、使用寿命长。晶振不仅提高了元器件的精确度,还减少了生产线的元件数量。与此同时,DS3231还提供商用级和工业级温度范围,采用16引脚、300mi1的S0封装[5]。高精度的电压基准和比较器电路用来监视VCC状态,检测电源故障,提供复位输出,能够及时自动切换到备份电源。

除此之外,DS3231还有其他一些优点,其高稳定性保证了控制电路可以进行自动的检测,实现主电源与备用电源的切换。当主电源重新加电或电压值返回到容许范围内时,片上复位功能可用来重新启动系统微处理器。实物如图2.6所示。

图2.6 DS3231模块实物图

综上方案比较,由于DS1302模块精度不高而且不够稳定,在设计中并不容易控制,所以最终采用DS3231模块,其具体电路图如图2.7所示。

图2.7 DS3231模块电路图

2.4 总电路设计

在总电路设计之前,将左右臂舵机以及抬臂舵机固定好,再将机械臂组装好,其中,先将Arduino板与拓展版相连接,各个插口一一对应,再将三个舵机的红、黄、棕接线分别接到拓展板的对应位置,DS3231模块的VCC和GND分别对应着接到拓展板的IIC口,将左舵机的信号线接 Arduino拓展板的三口,右舵机信号线接 Arduino拓展板的四口,抬臂舵机信号线接 Arduino拓展板的五口,最后DS3231模块的SCL对应着接 Arduino拓展板的SCL口,DS3231模块的SDA对应着接 Arduino拓展板的SDA口。具体电路图如图2.8所示。

图2.8 总电路设计图

3 软件设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值