[项目原理]
使用符合GB2312国家标准的16×16点阵字库,把汉字转为像素之间的关系,即每bit标记着每一个像素点的[亮]和[灭],其中
8bit = 1Byte,即每行由2Byte表示该行所有bit的状态,即一个汉字为16 x 2 = 32Byte,依次类推把所有汉字的像素点关系保存
至一个文件中(*.bin),并传输至掌控板使用FrameBuffer类进行解析和处理,[亮]的像素点为打点,[灭]的像素点为空白,实现写
字效果,配合误差补偿算法,大幅提高了写字精度,具有优秀的使用和教学意义
[效果演示]
写字效果演示:
歌词/语句:
备忘/提醒:
菜单操作演示:
文件预览演示:
无线文件传输演示:
完整运行视频、安装教程:https://www.bilibili.com/video/BV1Lg411V7Vp?zw
[支持的功能]
笔头路径优化:已支持
笔头路径预测:已支持
打印预览:已支持
打印暂停:已支持
菜单功能界面:已支持
舵机死区补偿算法:已支持
舵机步距补偿:已支持
无线连接传输文件:已支持
脱机打印:已支持
自动屏保/自动熄屏:已支持
[协议]
项目使用CC-BY-NC-SA协议进行开源
[代码及图纸]
该项目程序使用多文件结构,互相调用模块实现写字功能。
一般情况下,只需更改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:步进电机控制功能实现
主循环(部分):
零件图纸使用LaserMaker激光建模软件绘制:
[项目资料下载]
点赞