聚豐項(xiàng)目 > RedScanBoxlite
RedScanBoxlite 是一款輕量化的條碼生成器.目前條碼的協(xié)議格式有多種,現(xiàn)在實(shí)現(xiàn)了對(duì) EAN-13 協(xié)議的支持.支持通過按鍵設(shè)置編碼數(shù)據(jù),然后一鍵快速生成對(duì)應(yīng)的條碼. 整個(gè)項(xiàng)目的開發(fā)多在 Linux 上完成. 軟件開發(fā)使用 vim + gcc + openocd. 硬件開發(fā)使用 librecad + Kicad. RedScanBox 則是一款支持解析條碼功能,同時(shí),支持更多協(xié)議條碼生成的設(shè)備.
iysheng
iysheng
團(tuán)隊(duì)成員
Red 嵌入式軟件開發(fā)工程師
RedScanBoxlite 基于沁恒的 CH32V103R_NUCLE 板卡, 以擴(kuò)展版的方式實(shí)現(xiàn)了該項(xiàng)目.擴(kuò)展板上主要包括如下硬件模塊:
* 5 個(gè)按鍵,實(shí)現(xiàn) 上\下\左\右\返回\確認(rèn) 功能
* W25Q32 SPI FLASH 實(shí)現(xiàn)額外數(shù)據(jù)的存儲(chǔ)
* 24LC04 EEPROM 保存系統(tǒng)加密有關(guān)的數(shù)據(jù)
* JHD256160-G03BEW 并口顯示屏
* 擴(kuò)展版預(yù)留 UART 調(diào)試口
其中擴(kuò)展版的開發(fā) 硬件框圖:
硬件開發(fā)在 Kicad 上完成, 3D 效果圖如圖所示:
擴(kuò)展板頂視圖:
擴(kuò)展版底視圖
軟件說(shuō)明: RedScanBoxlite 使用 RT-Thread nano 操作系統(tǒng), 解碼模塊參考 zint 解碼庫(kù).線程間通訊使用多個(gè)信號(hào)量完成.
軟件流程圖:
系統(tǒng)軟件的開發(fā)調(diào)試工作均在 Linux 上完成,主要總結(jié)有如下幾點(diǎn):
* 前期 rt-thread 的移植部分,前期走了很多彎路,最后定位到是線程棧設(shè)置太小導(dǎo)致.通過這一部分的工作,讓我對(duì) RT 的線程調(diào)度有了進(jìn)一步的理解.
* 在開發(fā)條碼生成的時(shí)候,對(duì)條碼的格式有了進(jìn)一步的了解,比如 EAN-13 這種目前比較通用的格式
* 在移植 zint 解碼庫(kù)時(shí)候,首先在 Linux 上提取關(guān)鍵的部分進(jìn)行測(cè)試,其中upcean.c
文件實(shí)現(xiàn)了 EAN 條碼格式的解析,測(cè)試通過后直接移植到 RT-Thread nano 上進(jìn)行編譯.這也是后續(xù)對(duì)一些算法軟件庫(kù)移植的嵌入式設(shè)備的一個(gè)經(jīng)驗(yàn).
系統(tǒng)的演示視頻放在了 bilibili 上,視頻如圖:
項(xiàng)目在 gitee 托管,地址是: https://gitee.com/iysheng/red_scan_box.git
----------------------------------------------------------------------------------
其中,軟件的代碼在項(xiàng)目倉(cāng)庫(kù)的 submodule 倉(cāng)庫(kù)。具體的拉取過程示意如圖:
在此闡述一下倉(cāng)庫(kù)的各個(gè)目錄及其內(nèi)容:
.
├── docs -> 保存使用到的開發(fā)板原理圖\數(shù)據(jù)手冊(cè)等文檔
│ ├── CH32V103DS0.PDF
│ ├── CH32V103EVT.ZIP
│ ├── CH32V103SCH.pdf
│ ├── CH32V103╞└╣└?х╦╡├?╩щ.pdf
│ ├── CH32xRM.PDF
│ └── 學(xué)習(xí)文檔.drawio
├── misc
│ ├── extend_board_skill.dxf -> 擴(kuò)展版的 dxf 邊框文件
│ ├── hard0_simulate.png
│ ├── hard1_simulate.png
│ ├── hard_diagram.png
│ ├── hardware -> 保存擴(kuò)展板硬件原理圖和 pcb 等文件
│ │ └── extend_board_ccd
│ │ └── extend_board
│ ├── soft_diagram.png
│ └── software
│ ├── LICENSE
│ └── rt-thread -> 基于 RT-thread nano 開發(fā)的工程代碼
│ ├── AUTHORS
│ ├── bsp
│ ├── ChangeLog.md
│ ├── components
│ ├── docs
│ ├── include
│ ├── libcpu
│ ├── LICENSE
│ ├── README.md
│ ├── README_zh.md
│ └── src
├── notes -> 保存章節(jié)筆記目錄
│ ├── chapter0.md
│ └── chapter1.md
└── README.md
14 directories, 20 files
特別地 程序文件所在的目錄為 misc/software/rt-thread/bsp/ch32v103,具體如圖所示: