机器人手持示教器

我要开发同款
GaussCheng2024年01月29日
272阅读
开发技术javascript、sqlite、架构、qt嵌入式、C/C++

作品详情

## 机器人手持示教器

### 功能模块

1. 通信处理模块
1. 基于modbus RTU 修改的变体协议,满足上下位机通信。主要通信内容为客户编辑的程序,设定的参数和按键指令。
2. 数据存储接口模块
1. 系统基于sqlite作为存储数据库
2. 提供程序和参数存储,备份和还原接口
3. 报警记录和操作记录存储
3. 程序指令编译模块
1. 将JSON格式的程序指令输出为HMI可以使用的内容
2. 将JSON格式的程序指令输出为下位机控制器支持的格式
3. 程序规范性检查
4. 人机界面模块
1. 利用QML实现
2. 提供项目内常见的人机交互控件
3. 报警信息显示
4. 操作记录显示
5. Linux 操作系统
1. 提供定制的驱动程序
2. 提供生产和重装的U盘启动脚本
3. 裁剪后的文件系统

### 负责的内容

1. 整体程序框架设计
2. 基础的交互控件库设计
3. 程序编译器设计
4. Linux内核裁剪优化,驱动程序实现。包括屏幕驱动,触摸驱动,按键驱动和LED控制
5. 整套系统方案采用了QML 人机界面 + C++ 控制器+Linux操作系统的方案。通过RS422线缆和下位机处理器通信,实现机器人的控制。QML负责界面渲染,指令的触发和程序显示与调试,C++控制器负责程序的编译和程序运行信息的处理和参数的存储,Linux操作系统提供底层驱动程序。

### 项目中的难点

1. 程序的编译器设计
1. 我们提供的程序提供了类似汇编语言的标签,然后可以通过条件判断语句来跳转到标签来实现程序的分支处理。标签在下位机执行器中为了节省空间,是没有占指令行的,所以显示的指令行和执行的指令行步序是不一致的。该问题我们在编译的过程中,使用了Map的数据结构存储了标签的位置,并且利用Map的信息实现了行号的映射,最后达成执行指令行和显示指令行一致的效果。
2. 嵌入式系统中文编码和PC中文编码的兼容性问题
1. 系统中有一个通过U盘导出参数的功能,前期发现导出后的文件名在windows上显示为乱码。后面通过创建文件名强制为UTF8编码解决
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论