OREO 发表于 2021-7-28 14:35:50

迷你写字机

本帖最后由 OREO 于 2021-9-14 14:50 编辑

迷你写字机
前言:    大家已经通过激光切割机制作过很多手机支架、小装饰、笔筒等通过卡槽拼接起来的物品,但大家有没有试过用激光切割机切割机械零件呢?这个项目通过舵机配合激光切割的机械零件,实现了控制记号笔精准打点写字的功能,相信大家可以通过这个项目的设计思路,设计出更富有创造力的创客作品。
    *为保证阅读体验,建议使用电脑端查看此页面教程部分    *建议在开始购买零件前,先完整阅读完毕所有教程部分

协议:    本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
    当您使用本作品相关图纸或源码等资料时,视为您同意并遵循此协议内容。

项目资料:
    LaserMaker源文件:包含外壳、内部机械结构零件等激光切割图纸
    MicroPython掌控板源码:包含掌控板程序源码
    电脑端程序:包含电脑端字体解析程序,配合掌控板使用    *此版本更新内容及历史版本下载请到本贴尾部"更新内容"中查看
   


材料准备/软件安装:
    材料清单:
    [注意]程序基于microPython编写,但并不保证所有运行microPython的平台都能正常运行代码。
    程序目前针对以下硬件进行了适配/验证,保证程序的正常运行:
    掌控板:
      盛思LABPLUS掌控板,固件版本V2.3.0,购买地址:https://m.tb.cn/h.fYCjvsX?sm=c6a13a
      DFROBOT掌控板,固件版本V2.1.0,购买地址:https://www.dfrobot.com.cn/goods-1902.html
        工具清单:        使用到的软件:    LaserMaker:免费激光建模软件,官网:https://www.lasermaker.com.cn/    mPython:盛思LABPLUS推出的图形化编程软件,官网:https://labplus.cn/software    Mind+:DFROBOT推出的图形化编程软件,官网:http://mindplus.cc/
制作教程/演示效果:    注意事项:      ·[补充]铜柱应使用六角部分20mm长度,该长度不包含外螺纹长度      ·上紧锁紧螺母时,不能上得太紧,零件互相的摩擦力以仅拿住其中一个时,另一个恰好可以自由滑落为准      ·安装舵机前,务必先使用掌控板通电复位舵机至默认角度    引脚定义:      ·打点舵机:0      ·摆臂舵机:1      ·步进电机A:13      ·步进电机B:14      ·步进电机C:15      ·步进电机D:16    若手机无法跳转,请复制至浏览器地址并打开:https://www.bilibili.com/video/BV1Lg411V7Vp/[注意]该链接为分集连接,请点击“前往bilibili”链接跳转播放查看完整教程视频https://www.bilibili.com/video/BV1Lg411V7Vp/
使用教程:
    迷你写字机菜单按键说明:
      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:      下载该旧版本:
      ·项目开源首个版本

simplesky999 发表于 2021-8-14 19:22:48

很是期待哦

haodong 发表于 2021-8-21 16:51:05

支持对这样的好项目进行开源!钦佩您的创新热情,期待您的下一步分享

OREO 发表于 2021-8-29 13:03:38

simplesky999 发表于 2021-8-14 19:22
很是期待哦

感谢支持!项目现已完整开源,欢迎关注

OREO 发表于 2021-8-29 13:03:50

haodong 发表于 2021-8-21 16:51
支持对这样的好项目进行开源!钦佩您的创新热情,期待您的下一步分享

感谢支持!项目现已完整开源,欢迎关注

唐西岳 发表于 2021-8-30 09:27:35

前排支持

雷宇激光-李老师 发表于 2021-8-30 10:34:23

后排支持!Congrats

OREO 发表于 2021-8-31 11:51:11

唐西岳 发表于 2021-8-30 09:27
前排支持

哈哈哈谢谢支持

OREO 发表于 2021-8-31 11:51:27

雷宇激光-李老师 发表于 2021-8-30 10:34
后排支持!Congrats
哈哈哈谢谢支持


linuxearth 发表于 2021-10-18 13:52:59

上传程序后,重启报错!请问大神是哪里出问题了?
页: [1] 2
查看完整版本: 迷你写字机