设为首页收藏labplus社区产品资料库
24
积分值+2
9
掌控币+1
0  关注
1  粉丝
1  帖子
OREO
2021年09月24日

#第二届掌控板教学应用设计大赛#迷你写字机


[项目原理]

使用符合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激光建模软件绘制:


[项目资料下载]

文件名:迷你写字机_210914 (1).zip

3

点赞

783 次阅读4 条评论3 人赞1 人订阅
4条评论