一次制作写字机器人的过程(含制作教程)

由于在家上网课的原因,老师让开学交学习笔记,内容为网课课上所讲的所有内容(意思就是把整个课本抄下来QAQ),然后我就萌生出了做个写字机器人的想法(买一个太贵了,只能自己做)

由于网上的写字机器人种类和样式都非常多,我就挑了个结构相对简单的,如下:
在这里插入图片描述

制作教程

其中包含完整的所需零配件清单,机器人运动原理,零配件安装指南,arduino烧录代码,机器人控制软件及软件教程等信息
下载链接(当时设置的1积分,不知道为什么自己往上涨)

结构原理

机器人结构如图:
在这里插入图片描述
A、B均为一个步进电机,两个电机通过同步带链接并带动整个写字机器人的X、Y轴运动

A顺时针旋转,B逆时针旋转,机器人向+Y轴运动;
A逆时针旋转,B顺时针旋转,机器人向- Y轴运动;
A顺时针旋转,B顺时针旋转,机器人向+X轴运动;
A逆时针旋转,B逆时针旋转,机器人向- X轴运动

遇到的问题

打印件扩孔

写字机器人需要购买打印件作为框架,在打印件上安装零件,当我买到打印件后,兴冲冲地网上按零件时发现根本安不上去
如图,将一个光轴导轨按到打印件上:
在这里插入图片描述
我买来的打印件与光轴并不匹配,询问卖家才知道打印件还需要扩孔(吃了没文化的亏)

直线轴承安装后并不顺滑,直线轴承的上下翻盖弯曲不能重和

扩孔需要一定的技术,比如下面这个安装直线轴承的操作:
在这里插入图片描述
如果扩孔不当,就会导致直线轴承塞不进去,硬塞就会使得打印件弯曲,然后再合并两个翻盖的时候发生空位对不准的情况

将光轴按到直线轴承里后,有可能会发现不顺滑甚至有卡顿情况,有可能是因为直线轴承本身坏了,也可能是因为两个指向轴承没有对齐,在安装指向轴承到翻盖的时候,一定要使得四个指向轴承处于同一个水平面,不然光轴就会变形
在这里插入图片描述

将轴承套到打印件时套不进去或者打印件损坏

为了固定同步带,不让其跑偏,需要将轴承推入打印件之中,如:
在这里插入图片描述
当时打印件可能和轴承并不匹配,压根塞不进去,甚至有可能至极把打印件崩裂。。

可以使用带法兰(凸缘轴承)轴承,比如我就将原本的624zz轴承使用两个f624zz轴承替换
在这里插入图片描述

抬笔角度过大导致舵机烧毁

写字机器人需要一个舵机用于抬笔落笔操作,舵机将会被安装在写字机器人头部:
在这里插入图片描述
主要作用是将笔抬起:抬笔由舵机完成,落笔由弹簧或皮筋完成
在这里插入图片描述
由于舵机是可以旋转180度的,而安装后的舵机的旋转范围不足180度,所以如果控制写字机器人的软件不能设置舵机角度,从而导致舵机无法转向就会烧毁
在这里插入图片描述

软件问题

我使用的软件是inkscape矢量绘图工具,然后使用inkscape的插件生成G代码,然后在GrblController中执行G代码

使用inkscape的原因是inkscape的插件可以控制舵机角度,不至于将舵机烧毁,但是inkscape画图还行,使用其中自带的文字输入会发生只能写轮廓字的现象

在这里插入图片描述
这个现象我看网上有解决方法,但是我不会QAQ,想要写出单线字可以使用微雕大师这个软件,我试了试确实可以写出来单线字,但是界面过于简练,堪称傻瓜操作,我实在找不到在哪设置舵机角度,写了几个字舵机就发烫的不行。。。。

也许想真的写出手写字体就只能用奎享了吧,看网上说的解决方法最后都变成了奎享。。
由于没钱买奎享,我也无从得知奎享到底好不好用(= =),不过写字机器人确实已经做出来了

### C# 手写机器人创建教程 #### 使用Windows Forms实现手写识别功能 为了构建一个能够模拟手写的程序,可以利用 Windows Forms 和 System.Drawing 命名空间来绘制线条。通过捕捉用户的鼠标事件并将其转换成平滑曲线的方式模仿书写效果。 ```csharp using System; using System.Drawing; using System.Windows.Forms; public class HandwritingForm : Form { private Pen pen = new Pen(Color.Black, 2); private Point lastPoint; public HandwritingForm() { this.DoubleBuffered = true; // 减少闪烁 this.Paint += OnPaint; this.MouseDown += (sender, e) => { lastPoint = e.Location; }; this.MouseMove += DrawLine; this.MouseUp += ClearPen; } private void DrawLine(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { using(Graphics g = CreateGraphics()) { g.DrawLine(pen, lastPoint, e.Location); lastPoint = e.Location; } } } private void ClearPen(object sender, EventArgs e) { pen.Dispose(); pen = new Pen(Color.Black, 2); // 可选:更换颜色或宽度 } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); // 绘制背景或其他初始化图形 } } ``` 此代码片段展示了如何监听鼠标的按下、移动以及释放动作,并据此画线[^1]。然而这只是一个简单的例子,在实际应用中可能还需要考虑更多因素如压力感应支持(如果硬件允许)、路径优化算法等以提高书写的自然度。 对于更复杂的手势识别或者字符输入,则建议集成第三方库比如 Microsoft Ink 或者 Tesseract OCR 是否有其他更适合做手写识别的.NET框架? 3. 怎样保存由上述方法产生的绘图数据以便后续处理? 4. 能否让这个应用程序适应触摸屏设备上的多指触控操作?
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

列队猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值