基于Arduino主控板的智能写字机器人设计与实现

2021-09-01 07:47王昆李昊天时一顺张硕宋艳芳
科学与生活 2021年9期

王昆 李昊天 时一顺 张硕 宋艳芳

摘要:本文基于嵌入式系统技术设计开发了一款智能写字机器人。可以用于替代人类完成书写任务,以及应用于基础教育领域。

关键词:Arduino、辅助教育、写字机器人

1.总体技术框架

整体系统由电脑端、手机移动端、Arduino UNO控制器、電机驱动设备、舵机和电机6部分组成。电脑端和手机移动端是上位机控制器、下位机控制器由Arduino UNO系统构成、电机和舵机是下位机的执行器。上位机电脑端将想让机器人写的内容经过奎享软件转换成文件后缀为.nc或.gcode的文件。然后电脑端通过串口将文件发给下位机使智能书写机器人执行文件中的坐标信息。由下位机控制器控制电机和舵机的程序控制机器人完成写字的动作。

电机和同步带组合是机器人的执行器。当电机收到控制器发来的脉冲时,就能让写字臂前进或后退。步进电机通过施加足够功率和频率的电脉冲依次控制绕组进行操作。控制脉冲信号和电平方向是由脉冲分配器来负责接收,各相状态控制绕组会依次给电机信号,电机根据信号做出反应。电机转动的速度和舵机升降都是由控制脉冲控制。

2.写字机器人算法

2.1像素扫描算法

上位机PC端将想要写的图片内容经过可以转换的图片处理软件转换成坐标文件。之后的操作就转到上位机写字软件或者上位机手机APP使用最后生成的文件发送给下位机控制器,控制器经过内部程序的转换后输出脉冲控制电机和舵机。

2.2直线插补算法

字体的基础是由直线构成,写字机械臂末端无法像真正人类的手臂一样地沿着一条直线运动,所以当折线足够多的时候就能够将其近似的认为是直线。插补就是在起点到终点两点路径间算出多个坐标点,这些坐标点的精度会对控制速度直接产生影响。这一种方法会把当前的坐标点的形状跟指定的图形轨迹进行对比,然后对两者的轮廓进行偏差判断,才会对下一步进行选择。

2.3圆弧形插补算法

文字中撇和捺的曲线也是写字的一个难点,这边使用了圆弧插补算法来解决这个问题。写一个圆弧,把写字点到圆心的距离相对于圆的半径的差值计算出来。假设圆弧的位置是在X轴和Y轴正半轴的区域,那么E点作为圆弧的起点,A点作为终点。利用偏差判别式,即获得近似圆弧。

3.写字机器人硬件

3.1写字机器人结构

整体的框架用的是一种经典结构 CoreXY 结构。采用光轴作为写字机器人的运动轴与框架。用solidworks绘制3D模型作为外壳与连接框架。

CoreXY 它的原理是通过两个电机同时控制 XY 的移动,A 顺时针 B 逆时针,向+Y 轴运动;A 逆时针 B 顺时针,向- Y 轴运动;A 顺时针 B 顺时针,向+X 轴运动;A 逆时针 B 逆时针,向- X 轴运动。

Arduino UNO 系统作为下位机的核心控制器,借助串口或者蓝牙接收转换成坐标形式的 G 代码文件,再通过内部写字算法程序转换,输出控制脉冲和方向电平控制步进电机运作和舵机的抬笔和落笔。

Arduino UNO 开发板基于 ATmega328P 控制器, 晶体振荡器频率达到 16MHz,内部含有 14 个数字 I/O 引脚(其中含 6 路 PWM 输出)、6 个模拟输入引脚、一个 USB 接口、一个 DC 接口、一个 ICSP 接口和一个复位按钮。

3.2A4988 电机驱动模块

该设计的电机驱动模块通过与 Arduino UNO进行连接,接受Arduino UNO 发出来的控制脉冲和方向电平来驱动电机和舵机的转动以实现字的书写。

电机驱动模块需要单独提供电源来进行供电,与 Arduino UNO 所需要的电源区分开, 这样做的目的是为了保障 Arduino UNO 能够稳定工作,电机和舵机也能够有足够的动力输出。

A4988内部存在一个编译器。这个编译器的功能就是充当单片机与驱动之间的桥梁,进行信号传输。同时编译器还可以生成DA信号。

3.3步进电机

将电脉冲信号传输给步进电机,步进电机通过其内部的绕子,将其转化角位移或者线位移,步进电机有不同的型号,比如三线、四线、五线式。根据对本次设计所需要带动负载的重量结合不同步进电机的参数,选择了型号为 42HB34A 的步进电机。

3.4舵机模块

舵机的作用是抬笔和落笔,不然字迹连在一起就无法达到写字的效果。舵机是一种特殊的电机。当存在角度命令时,会根据命令转到命令给的角度。当下的大多数机器人关节都由舵机构成。例如,一些大型机器人可用于手臂、膝盖等。这种类型的电动机可以通过简单的操作旋转,并且机器人的控制相对容易。

通过PWM脉宽调制信号就可以控制电机打角。不同的PWM,对应不同的角度。同时可以看出,通过控制具体给舵机通电了多长时间,然后根据反馈回来的信号结合上角度传感器,来对舵机进行精确角度转动的控制。

3.5蓝牙模块

系统采用的蓝牙模块为 HC-06,HC-06 蓝牙模块是专门为智能无线数据传输而打造, 采用英国 CSR 公司芯片,遵循 V2.0 蓝牙规范,通信范围为 10 米,共四个引脚,VCC、GND、TXD 和 RXD,可以方便地连接到 Arduino UNO 的串口,被广泛地用在了具备蓝牙通讯功能的设备上。

4.结论

本文通过对写字机器人的机械结构、算法设计、硬件结构。写字机器人能完整且稳定地写出想写的内容,在电脑上通过串口将文件发给下位机或者手机APP,再通过蓝牙将文件发给下位机,下位机的 Arduino UNO通过内部的程序将发送过来的文件完成翻译并发送到A4988 电机驱动模块来驱动电机和舵机完成内容的书写。具有良好的应用价值与市场前景。

参考文献:

1.黄传翔 基于 Arduino 单片机的智能机器人小车的研究[D] 江苏安全技术职业学院.2021

2.林建勇 基于Arduino的智能爬臂机器人系统设计探析[A] 山东理工大学.2021.

注:2021年山东协和学院实验室开放项目,项目名称:智能书写机器人,项目编号:2021SYKF04。

山东协和学院