本帖最后由 OREO 于 2021-9-14 14:50 编辑
迷你写字机
前言: 大家已经通过激光切割机制作过很多手机支架、小装饰、笔筒等通过卡槽拼接起来的物品,但大家有没有试过用激光切割机切割机械零件呢?这个项目通过舵机配合激光切割的机械零件,实现了控制记号笔精准打点写字的功能,相信大家可以通过这个项目的设计思路,设计出更富有创造力的创客作品。
*为保证阅读体验,建议使用电脑端查看此页面教程部分 *建议在开始购买零件前,先完整阅读完毕所有教程部分
协议: 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
当您使用本作品相关图纸或源码等资料时,视为您同意并遵循此协议内容。
项目资料:
LaserMaker源文件:包含外壳、内部机械结构零件等激光切割图纸
MicroPython掌控板源码:包含掌控板程序源码
电脑端程序:包含电脑端字体解析程序,配合掌控板使用 注意事项: ·[补充]铜柱应使用六角部分20mm长度,该长度不包含外螺纹长度 ·上紧锁紧螺母时,不能上得太紧,零件互相的摩擦力以仅拿住其中一个时,另一个恰好可以自由滑落为准 ·安装舵机前,务必先使用掌控板通电复位舵机至默认角度 引脚定义: ·打点舵机:0 ·摆臂舵机:1 ·步进电机A:13 ·步进电机B:14 ·步进电机C:15 ·步进电机D:16 若手机无法跳转,请复制至浏览器地址并打开: - https://www.bilibili.com/video/BV1Lg411V7Vp/
复制代码[注意]该链接为分集连接,请点击“前往bilibili”链接跳转播放查看完整教程视频
使用教程:
迷你写字机菜单按键说明:
P:上一个选项
Y:退纸(仅特定界面可用)
T:保留
H:保留
O:走纸(仅特定界面可用) N:下一个选项
A:确认
B:返回
参数调节教程: 按照视频教程中的上传步骤,修改掌控板源码中config.py内的参数后再次上传至掌控板内即可 1.先调节摆臂舵机和打点舵机步距延时至较大数值(200ms)左右,确保舵机有足够的动作时间: 摆臂舵机 -> 步进延时:200或更高 打点舵机 -> 抬升延时:200或更高 打点舵机 -> 下降延时:200或更高 2.关闭补偿算法 在开始调节前,请先把所有补偿算法相关的参数设为0,防止补偿算法介入影响调节效果: 摆臂舵机 -> 死区补偿:0 摆臂舵机 -> angel_fix:数组内16个数字都设为0 打点舵机 -> angel_fix:0 3.选择开发调试工具中的打点校准测试,调节舵机参数至笔头能够均匀打出错行打印图案
先调节基础参数,最后调节补偿算法参数 补偿算法调节顺序: 打点舵机Angel fix -> 摆臂舵机死区补偿 -> 摆臂舵机Angel fix
关于各参数作用描述请参考配置文件内的注释说明,这里特别说明一下补偿算法参数:
摆臂舵机 -> 死区补偿:当摆臂舵机往反方向运动时(笔头回程至第一行),可能会因为死区导致精度下降(关于死区的百度百科说明),死区补偿即使用额外运动的回程角度抵消死区
摆臂舵机 -> angel_fix:开发时发现舵机对不同PWM区间的灵敏度不一致,即输出PWM与舵机角度的变化不是线性的,Angel fix参数可以对程序输出的每一步的PWM进行单独补偿,数组内从左到右16个数值对应竖向从上至下16步的额外补偿(正值往下,负值往上)在进行摆臂舵机其它参数调节前,这里的所有数值都应该为0,若任意一处数值不为0,请修改后重新调节摆臂舵机参数,Angel fix在参数调节步骤中应为最后一步
打点舵机 -> angel_fix:补偿安装时导致的抬纸结构倾斜,通常出现在舵机头一侧较高,另一侧较低的情况,当出现下半部分不能打点(笔头不与纸接触)时,设为正值;当上半部分不能打点时,设为负值
4.选择开发调试工具中的摆臂校准测试,调节步进电机的步距PWM数值直至打印图案为正方形 5.合理设置舵机延时,使舵机有足够的动作时间 舵机延时设置越小打印速度越快,但留给舵机动作的时间也越小,当数值过小时,可能会出现舵机还未到达指定角度主控就发出回程信号,导致打印效果下降 摆臂舵机 -> 步进延时 打点舵机 -> 抬升延时 打点舵机 -> 下降延时
自定义打印内容:
使用电脑端程序文件夹内的exe程序进行自定义文本文件生成
无线连接(推荐):
先在config.py中设置好WiFi和电脑IP配置,然后在迷你写字机菜单中选择无线连接(Beta)功能,并启动电脑端程序文件夹内的exe程序,输入文本和文件名,点击加载按钮即可把文件传输至掌控板中,点击打印即可立即打印文本内容
有线连接:
启动电脑端程序文件夹内的exe文件,输入文本和文件名,点击加载按钮显示成功后,进入output文件夹,找到对应的文件名,再按照视频教程的上传文件步骤,上传程序生成的.bin格式文件至掌控板内的bin文件夹中,并重启掌控板,即可看见用户文件下的新文件。
bin文件一经上传至掌控板中,即可脱机打印,再次打印时无需连接电脑,直接选择对应文件即可
疑惑/改进建议/BUG反馈:
任何关于此项目的内容,都欢迎通过评论区反馈,我看见会第一时间回复。
支持的功能: 笔头路径优化:已支持 笔头路径预测:已支持 打印预览:已支持 打印暂停:已支持
菜单功能界面:已支持
舵机死区补偿算法:已支持
舵机步距补偿:已支持 无线连接传输文件:已支持
脱机打印:已支持
自动屏保/自动熄屏:已支持
待支持的功能:(挖的坑太多了,慢慢填哈哈)
第一次使用microPython编程,很多地方还没弄明白,慢慢研究吧哈哈
双向打印:计划支持
取消打印任务:计划支持 一件刷入程序/一件更新程序:计划支持 远程打印任务:计划支持
直接使用TCP连接:计划中 电脑端程序加入自定义字符编辑器:计划中 mDNS免输IP连接电脑:计划中
解析程序优化:计划中 触摸键防误触优化:计划中 免电脑程序解析(离线解析):计划中
参数调节教程:计划中 使用教程:计划中
程序说明: 该项目程序使用多文件结构,互相调用模块实现写字功能。 一般情况下,只需更改config.py中的参数即可,若有更改代码需求,请参考下列信息定位需要更改的代码: config.py:配置文件,写字机可更改的参数均在此文件中列出 main.py:主程序,程序主循坏在此文件中实现(包括开机、菜单内容声明等) printer_core.py:核心程序,包括解析、打印等相关功能实现 printer_file_system.py:文件系统函数封装 printer_global_variable.py:全局变量统一存放在此文件中 printer_gui.py:屏幕功能实现,包括文字自动居中、自动更新显示、文件预览等 printer_gui_menu.py:菜单界面功能实现 printer_info.py:包含作者信息、程序版本等信息 *请勿随意修改版本号,后续更新中可能会按照版本号实现更新功能 printer_input.py:包含输入事件预处理实现 printer_network.py:网络相关功能实现,包括网络连接、局域网文件自动下载等 printer_servo.py:包含打点舵机及摆臂舵机的控制功能实现 printer_stepper.py:步进电机控制功能实现
更新内容: *最新版本请到上方"项目资料"中下载 210914: 掌控板程序: ·核心程序结构优化 ·笔头轨迹预测算法逻辑优化 ·舵机库优化 ·步进电机库优化 ·使用了logging模块统一管理运行产生的log ·移除了屏保功能 210830: 掌控板程序: ·解析程序改用FrameBuffer类解析,解析速度大幅提升,运存占用大幅下降 ·笔头轨迹预测算法逻辑优化 ·移除了打点校准模式(因核心程序变更,此模式在新架构下不再受支持,请使用打点校准测试替代) ·核心程序结构优化(脱离全局变量引用,改用模块内部结构体) 目录结构: ·新增材料清单 ·新增工具清单
210828:
|