QQ登录

只需一步,快速开始

查看: 3779|回复: 12

[课程作品] 迷你写字机

  [复制链接]

该用户从未签到

1

主题

9

帖子

242

积分

高级创客

Rank: 3Rank: 3

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

迷你写字机

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

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

demo169.jpg

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

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


材料准备/软件安装:
    材料清单:
    [注意]程序基于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, 下载次数: 50)
        掌控板程序:
            ·解析程序改用FrameBuffer类解析,解析速度大幅提升,运存占用大幅下降
            ·笔头轨迹预测算法逻辑优化
            ·移除了打点校准模式(因核心程序变更,此模式在新架构下不再受支持,请使用打点校准测试替代)
            ·核心程序结构优化(脱离全局变量引用,改用模块内部结构体)
        目录结构:
            ·新增材料清单
            ·新增工具清单
    210828:
        下载该旧版本: 迷你写字机_210828.zip (9.71 MB, 下载次数: 58)
        ·项目开源首个版本


回复

使用道具 举报

该用户从未签到

0

主题

1

帖子

44

积分

创客新人

Rank: 1

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

使用道具 举报

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

    [LV.1]初来乍到

    0

    主题

    7

    帖子

    258

    积分

    高级创客

    Rank: 3Rank: 3

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

    使用道具 举报

    该用户从未签到

    1

    主题

    9

    帖子

    242

    积分

    高级创客

    Rank: 3Rank: 3

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

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

    使用道具 举报

    该用户从未签到

    1

    主题

    9

    帖子

    242

    积分

    高级创客

    Rank: 3Rank: 3

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

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

    使用道具 举报

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

    [LV.1]初来乍到

    40

    主题

    107

    帖子

    1965

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

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

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 987 天

    [LV.10]以坛为家III

    166

    主题

    1055

    帖子

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

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

    使用道具 举报

    该用户从未签到

    1

    主题

    9

    帖子

    242

    积分

    高级创客

    Rank: 3Rank: 3

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

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

    使用道具 举报

    该用户从未签到

    1

    主题

    9

    帖子

    242

    积分

    高级创客

    Rank: 3Rank: 3

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

    哈哈哈谢谢支持 1234.jpg


    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4

    帖子

    64

    积分

    中级创客

    Rank: 2

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

    使用道具 举报

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

    本版积分规则

    激光创客社区

    Laserblock社区      激光建模     设计图库

    赛事专区      开源课程

    Laserblock官方社区是Laserblock开源结构件的学习和分享平台。为创客,学生和老师提供了丰富的学习资讯、交流论坛、项目分享及学习教程。我们秉承开源、开放的理念,让分享产生更多价值。

    Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.

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

    GMT+8, 2022-1-26 14:13 , Processed in 0.182859 second(s), 37 queries .

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