QQ登录

只需一步,快速开始

查看: 13772|回复: 13

[课程作品] 迷你写字机

  [复制链接]

该用户从未签到

1

主题

11

回帖

278

积分

高级创客

Rank: 3Rank: 3

积分
278
发表于 2021-7-28 14:35:50 | 显示全部楼层 |阅读模式
本帖最后由 OREO 于 2021-9-14 14:50 编辑

迷你写字机

前言:
    大家已经通过激光切割机制作过很多手机支架、小装饰、笔筒等通过卡槽拼接起来的物品,但大家有没有试过用激光切割机切割机械零件呢?这个项目通过舵机配合激光切割的机械零件,实现了控制记号笔精准打点写字的功能,相信大家可以通过这个项目的设计思路,设计出更富有创造力的创客作品。

    *为保证阅读体验,建议使用电脑端查看此页面教程部分
    *建议在开始购买零件前,先完整阅读完毕所有教程部分

demo169.jpg

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

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


材料准备/软件安装:
    材料清单:
    [注意]程序基于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
    材料清单.jpg
    工具清单:
    工具清单.jpg
    使用到的软件:
    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
    微信图片_20210829134314.png
若手机无法跳转,请复制至浏览器地址并打开:
  1. 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.选择开发调试工具中的打点校准测试,调节舵机参数至笔头能够均匀打出错行打印图案
    adj6.png
    adj5.png
        先调节基础参数最后调节补偿算法参数
        补偿算法调节顺序:
        打点舵机Angel fix -> 摆臂舵机死区补偿 -> 摆臂舵机Angel fix

        关于各参数作用描述请参考配置文件内的注释说明,这里特别说明一下补偿算法参数:

        摆臂舵机 -> 死区补偿:当摆臂舵机往反方向运动时(笔头回程至第一行),可能会因为死区导致精度下降(关于死区的百度百科说明),死区补偿即使用额外运动的回程角度抵消死区

        摆臂舵机 -> angel_fix:开发时发现舵机对不同PWM区间的灵敏度不一致,即输出PWM与舵机角度的变化不是线性的,Angel fix参数可以对程序输出的每一步的PWM进行单独补偿,数组内从左到右16个数值对应竖向从上至下16步的额外补偿(正值往下,负值往上)在进行摆臂舵机其它参数调节前,这里的所有数值都应该为0,若任意一处数值不为0,请修改后重新调节摆臂舵机参数,Angel fix在参数调节步骤中应为最后一步

        打点舵机 -> angel_fix:补偿安装时导致的抬纸结构倾斜,通常出现在舵机头一侧较高,另一侧较低的情况,当出现下半部分不能打点(笔头不与纸接触)时,设为正值;当上半部分不能打点时,设为负值

    4.选择开发调试工具中的摆臂校准测试,调节步进电机的步距PWM数值直至打印图案为正方形
    adj2.png
    5.合理设置舵机延时,使舵机有足够的动作时间
        舵机延时设置越小打印速度越快,但留给舵机动作的时间也越小,当数值过小时,可能会出现舵机还未到达指定角度主控就发出回程信号,导致打印效果下降
        摆臂舵机 -> 步进延时
        打点舵机 -> 抬升延时
        打点舵机 -> 下降延时

自定义打印内容:
    使用电脑端程序文件夹内的exe程序进行自定义文本文件生成
    soft.png
    无线连接(推荐):
    先在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:
        下载该旧版本: 迷你写字机_210830.zip (9.87 MB, 下载次数: 126)
        掌控板程序:
            ·解析程序改用FrameBuffer类解析,解析速度大幅提升,运存占用大幅下降
            ·笔头轨迹预测算法逻辑优化
            ·移除了打点校准模式(因核心程序变更,此模式在新架构下不再受支持,请使用打点校准测试替代)
            ·核心程序结构优化(脱离全局变量引用,改用模块内部结构体)
        目录结构:
            ·新增材料清单
            ·新增工具清单
    210828:
        下载该旧版本: 迷你写字机_210828.zip (9.71 MB, 下载次数: 129)
        ·项目开源首个版本


回复

使用道具 举报

该用户从未签到

0

主题

1

回帖

44

积分

创客新人

Rank: 1

积分
44
发表于 2021-8-14 19:22:48 | 显示全部楼层
很是期待哦
回复 支持 反对

使用道具 举报

  • TA的每日心情
    郁闷
    2020-2-20 18:59
  • 签到天数: 1 天

    [LV.1]初来乍到

    0

    主题

    38

    回帖

    471

    积分

    高级创客

    Rank: 3Rank: 3

    积分
    471
    发表于 2021-8-21 16:51:05 | 显示全部楼层
    支持对这样的好项目进行开源!钦佩您的创新热情,期待您的下一步分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    11

    回帖

    278

    积分

    高级创客

    Rank: 3Rank: 3

    积分
    278
     楼主| 发表于 2021-8-29 13:03:38 | 显示全部楼层

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

    使用道具 举报

    该用户从未签到

    1

    主题

    11

    回帖

    278

    积分

    高级创客

    Rank: 3Rank: 3

    积分
    278
     楼主| 发表于 2021-8-29 13:03:50 | 显示全部楼层
    haodong 发表于 2021-8-21 16:51
    支持对这样的好项目进行开源!钦佩您的创新热情,期待您的下一步分享

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

    使用道具 举报

  • TA的每日心情
    开心
    2019-5-29 17:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    40

    主题

    81

    回帖

    2379

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    2379
    发表于 2021-8-30 09:27:35 | 显示全部楼层
    前排支持
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:24
  • 签到天数: 1506 天

    [LV.Master]伴坛终老

    174

    主题

    749

    回帖

    3万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    37585

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    发表于 2021-8-30 10:34:23 | 显示全部楼层
    后排支持!Congrats
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    11

    回帖

    278

    积分

    高级创客

    Rank: 3Rank: 3

    积分
    278
     楼主| 发表于 2021-8-31 11:51:11 | 显示全部楼层

    哈哈哈谢谢支持 1234.jpg
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    11

    回帖

    278

    积分

    高级创客

    Rank: 3Rank: 3

    积分
    278
     楼主| 发表于 2021-8-31 11:51:27 | 显示全部楼层

    哈哈哈谢谢支持 1234.jpg


    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    回帖

    76

    积分

    中级创客

    Rank: 2

    积分
    76
    发表于 2021-10-18 13:52:59 | 显示全部楼层
    上传程序后,重启报错!请问大神是哪里出问题了?
    无标题.png
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    激光创客社区

    Laserblock社区      激光建模     设计图库

    赛事专区      开源课程

    Laserblock激光论坛是一个开源结构件的学习和分享平台。为创客,学生和老师提供了丰富的激光切割图纸、交流论坛、项目分享及学习教程。我们秉承开源、开放的理念,让分享产生更多价值。

    Powered by 激光切割开源论坛 © 2010-2022 Thunder Laser

    科创教育|CO2激光切割机|激光建模软件|Laserblock开源激光社区 ( 粤ICP备14004319号 )

    GMT+8, 2024-4-26 15:27 , Processed in 0.043885 second(s), 31 queries .

    快速回复 返回顶部 返回列表