聚丰项目 > RedScanBoxlite

RedScanBoxlite

RedScanBoxlite 是一款轻量化的条码生成器.目前条码的协议格式有多种,现在实现了对 EAN-13 协议的支持.支持通过按键设置编码数据,然后一键快速生成对应的条码. 整个项目的开发多在 Linux 上完成. 软件开发使用 vim + gcc + openocd. 硬件开发使用 librecad + Kicad. RedScanBox 则是一款支持解析条码功能,同时,支持更多协议条码生成的设备.

iysheng iysheng

分享
0 喜欢这个项目
团队介绍

iysheng iysheng

团队成员

Red 嵌入式软件开发工程师

分享
项目简介
RedScanBoxlite 是一款轻量化的条码生成器.目前条码的协议格式有多种,现在实现了对 EAN-13 协议的支持.支持通过按键设置编码数据,然后一键快速生成对应的条码. 整个项目的开发多在 Linux 上完成. 软件开发使用 vim + gcc + openocd. 硬件开发使用 librecad + Kicad. RedScanBox 则是一款支持解析条码功能,同时,支持更多协议条码生成的设备.
硬件说明

RedScanBoxlite 基于沁恒的 CH32V103R_NUCLE 板卡, 以扩展版的方式实现了该项目.扩展板上主要包括如下硬件模块:

* 5 个按键,实现 上\下\左\右\返回\确认 功能

* W25Q32 SPI FLASH 实现额外数据的存储

* 24LC04 EEPROM 保存系统加密有关的数据

* JHD256160-G03BEW 并口显示屏

* 扩展版预留 UART 调试口

其中扩展版的开发 硬件框图:

hard_diagram.png

硬件开发在 Kicad 上完成, 3D 效果图如图所示:

扩展板顶视图:

扩展版底视图

hard1_simulate.png

软件说明

软件说明: RedScanBoxlite 使用 RT-Thread nano 操作系统, 解码模块参考 zint 解码库.线程间通讯使用多个信号量完成.

软件流程图:

soft_diagram.png

系统软件的开发调试工作均在 Linux 上完成,主要总结有如下几点:

* 前期 rt-thread 的移植部分,前期走了很多弯路,最后定位到是线程栈设置太小导致.通过这一部分的工作,让我对 RT 的线程调度有了进一步的理解.

* 在开发条码生成的时候,对条码的格式有了进一步的了解,比如 EAN-13 这种目前比较通用的格式

* 在移植 zint 解码库时候,首先在 Linux 上提取关键的部分进行测试,其中upcean.c文件实现了 EAN 条码格式的解析,测试通过后直接移植到 RT-Thread nano 上进行编译.这也是后续对一些算法软件库移植的嵌入式设备的一个经验.

演示效果

系统的演示视频放在了 bilibili 上,视频如图:


项目在 gitee 托管,地址是:  https://gitee.com/iysheng/red_scan_box.git

----------------------------------------------------------------------------------

其中,软件的代码在项目仓库的 submodule 仓库。具体的拉取过程示意如图:

Image 3.png

在此阐述一下仓库的各个目录及其内容:

.

├── docs   -> 存使用到的开发板原理图\数据手册等文档

│   ├── CH32V103DS0.PDF

│   ├── CH32V103EVT.ZIP

│   ├── CH32V103SCH.pdf

│   ├── CH32V103╞└╣└░х╦╡├ў╩щ.pdf

│   ├── CH32xRM.PDF

│   └── 学习文档.drawio

├── misc

│   ├── extend_board_skill.dxf   -> 扩展版的 dxf 边框文件

│   ├── hard0_simulate.png

│   ├── hard1_simulate.png

│   ├── hard_diagram.png

│   ├── hardware  -> 保存扩展板硬件原理图和 pcb 等文件

│   │   └── extend_board_ccd

│   │       └── extend_board

│   ├── soft_diagram.png

│   └── software

│       ├── LICENSE

│       └── rt-thread  -> 基于 RT-thread nano 开发的工程代码

│           ├── AUTHORS

│           ├── bsp

│           ├── ChangeLog.md

│           ├── components

│           ├── docs

│           ├── include

│           ├── libcpu

│           ├── LICENSE

│           ├── README.md

│           ├── README_zh.md

│           └── src

├── notes ->  保存章节笔记目录

│   ├── chapter0.md

│   └── chapter1.md

└── README.md


14 directories, 20 files


特别地 程序文件所在的目录为 misc/software/rt-thread/bsp/ch32v103,具体如图所示

Image 4.png

评论区(0 )