完善了环境配置说明和TODOlist

This commit is contained in:
NeoZng 2023-09-27 23:18:39 +08:00
parent 50479fc16c
commit d764e0f940
3 changed files with 47 additions and 28 deletions

View File

@ -48,6 +48,8 @@
### 待完成
Unicom
- [ ] 为键鼠/遥控器/ps手柄/视觉上位机等各种控制器提供一套统一的接口,把发来数据转化为标准的控制数据,包括底盘速度云台角度等等
- [ ] 给每个模块增加调试的条件编译并增加bsp log的输出。或直接在运行时添加log等级输出不同的信息。
@ -57,11 +59,14 @@
舵机模块需要预先定义90/180/360连续旋转的电机类型并且能够设定max和min位置。
- [x] 编写舵机模块(待测试和优化)
- [ ] 可能需要串口舵机的支持?
#### imu
- [ ] 完善bmi088模块和算法的交互添加异步量测更新的SO3上的IEKF
> 继续使用四元数S3也许是一个更好的选择改动较小且运算开销也较小。后续考虑修改一套ESKF_INS并移植到框架中。
#### ==master_machine==
- [ ] 增加IMU数据的时间戳
@ -69,6 +74,8 @@
- [ ] 重构seasky protocol的接口
- [ ] 增加数据未更新的处理
需要一个更简单的协议以加快速度。若有必要可能需要重新编写一个简单的调试上位机UI。
### 待优化
@ -78,10 +85,20 @@
当前实现为buzzer是单独的module若需要蜂鸣器警报的module可以自行包含buzzer.h以创建不同情况下的警报如电机离线、堵转、遥控器离线等。
也许还有其他方式提醒离线和异常。
目前急需一个无线遥控继电器,防止机器人的急停模式失效。
#### BMI088
- [ ] 完善和SO3 IEKF的交互增加异步任务的唤醒和数据传递IMU中断唤起任务
根据BMI088的datasheet在初始标定完成后将gyro和acc都设置为中断触发当数据准备好时传感器会在对应的引脚输出跳变通过EXTI捕获跳变并触发中断在回调函数中启动SPI DMA传输。陀螺仪数据来到时进行姿态的预测即propagation加速度计数据到来时进行量测更新correct
也许需要找到一种更好的方式构建INS任务以方便和其他模块、应用的交互。
另外若要进一步提升自瞄效果在姿态得到更新时陀螺仪和imu的数据到来时需要额外的引脚连接到相机上完成硬触发采集以获得更好的时间对齐效果防止视觉得到的姿态数据发生漂移。目前视觉端假设姿态更新的频率是1khz当前每次完成姿态解算都会向上位机发送当前的姿态
#### remote_control
- [ ] 增加长按/短按检测 (是否有必要?)

View File

@ -4,11 +4,6 @@
[TOC]
> TODO
>
> 1. 添加一键编译+启用ozone调试脚本使得整个进一步流程自动化
> 2. 增加更多的背景知识介绍
## 前言
了解过嵌入式开发的你一定接触过Keil这款20世纪风格UI的IDE伴随很多人度过了学习单片机的岁月。然而由于其缺少代码补全、高亮和静态检查的支持以及为人诟病的一系列逆天的设置、极慢的编译速度特别是在开发HAL库时很多开发者开始转向其他IDE。
@ -42,31 +37,15 @@ CubeMX进行初始化 --> VSCode编写代/进行编译/简单调试 --> Ozone变
3. C语言基础[程序设计入门——C语言](https://www.icourse163.org/course/ZJU-199001?from=searchPage&outVendor=zw_mooc_pcssjg_)
***务必学完以上课程再开始本教程的学习。***
***务必学完以上课程再开始本教程的学习,以及后续的开发。***
万丈高楼不可平地而起,地基不牢只会导致递归学习。
> 如果有可能,还应该学习:[哈佛大学公开课计算机科学cs50](https://open.163.com/newview/movie/courseintro?newurl=%2Fspecial%2Fopencourse%2Fcs50.html)。你将会对单片机和计算机有不同的理解。
## 预备知识
1. 软件安装(队伍NAS和资料硬盘内提供了所有必要的依赖,安装包和插件,目录是`/EC/VSCode+Ozone环境配置`)请以公共账号登陆网盘ip地址为`49.123.113.2:5212`,账号`public@rm.cloud`,密码`public`。
所有安装包也可以在此百度网盘链接下获得:[archive.zip](https://pan.baidu.com/s/1sO_EI4cToyIAcScOQx-JSg?pwd=6666)
```shell
# 网盘中的文件:
basic_framework.zip # 本仓库文件,注意,可能不为最新,建议从仓库clone并定时pull
daplink_register_license.rar # daplink license注册机
gcc-arm-none-eabi-10.3-2021.10-win32.zip # arm-gnu-toolchain
JLinkARM.dll # 修改过的jlink运行链接库
JLink_Windows_V722b.exe # JLink软件包
mingw-get-setup.exe # mingw工具链
OpenOCD.zip # OpenOCD
Ozone_doc.pdf # Ozone使用手册
Ozone_Windows_V324_x86.exe # Ozone安装包
VSCodeUserSetup-x64-1.73.1.exe # VSCode安装包
```
2. C语言从源代码到.bin和.hex等机器代码的编译和链接过程
1. C语言从源代码到.bin和.hex等机器代码的编译和链接过程
3. C语言的内存模型
@ -178,6 +157,28 @@ typedef struct
> ***所有需要编辑的配置文件都已经在basic_framework的仓库中提供如果不会写照猫画虎。***
- **软件安装**
队伍NAS和资料硬盘内提供了所有必要的依赖,安装包和插件,目录是`/EC/VSCode+Ozone环境配置`请以公共账号登陆网盘ip地址为`49.123.113.2:5212`,账号`public@rm.cloud`,密码`public`。
对于非队内的开发者,我们提供了网盘下载方式。所有安装包也可以在此百度网盘链接下获得:[archive.zip](https://pan.baidu.com/s/1sO_EI4cToyIAcScOQx-JSg?pwd=6666)
```shell
# 网盘中的文件:
basic_framework.zip # 本仓库文件,注意为了保证最新,建议从仓库clone并定时pull或自动fetch
daplink_register_license.rar # daplink license注册机
gcc-arm-none-eabi-10.3-2021.10-win32.zip # arm-gnu-toolchain注意这个版本太老编译最新的框架可能出现一些编译参数不支持的情况。请通过Msys2直接安装或到arm官网下载最新的12.x版本。
JLinkARM.dll # 修改过的jlink运行链接库
JLink_Windows_V722b.exe # JLink软件包
mingw-get-setup.exe # mingw工具链更推荐的方式是使用msys2安装
OpenOCD.zip # OpenOCD
Ozone_doc.pdf # Ozone使用手册
Ozone_Windows_V324_x86.exe # Ozone安装包
VSCodeUserSetup-x64-1.73.1.exe # VSCode安装包
# 最佳实践是下载msys2并在mingw64中安装软件包
# 如果你喜欢clang可以使用clang下的arm工具链。
```
> 2022-12-01更新
>
> **VSCode上线了一款新的插件**
@ -197,8 +198,8 @@ typedef struct
- **C/C++**提供C/C++的调试和代码高亮支持
- **Better C++ Syntax**:提供更丰富的代码高亮和智能提示
- **C/C++ Snippets**:提供代码块(关键字)补全
- **Cortex-Debug****Cortex-Debug: Device Support Pack - STM32F4**提供调试支持。cortex debug还会自动帮助你安装一些调试相关的插件。
- **IntelliCode****Makfile Tools**:提供代码高亮支持
- **Cortex-Debug****Cortex-Debug: Device Support Pack - STM32F4**提供调试支持。cortex debug还会自动帮助你安装一些调试相关的插件包括RTOS支持和内存查看等
- **IntelliCode****Makfile Tools**:提供代码高亮支持。喜欢clang的同学可以使用clangd。
![image-20221112172157533](../.assets/image-20221112172157533.png)

View File

@ -16,6 +16,8 @@
本框架使用stm32cubemx生成基于makefile编译系统后期拟修改为cmake+nijna+makefile以提高编译速度对于目前的版本您可以考虑自行安装ccache以提高编译速度使用arm gnu工具链开发利用arm-none-eabi-gcc编译make命令,命令行为mingw32-make
> 目前已经支持CMakeLists构建。
> ***==deprecated==***若需使用keil5开发请在stm32cubemx的`project manager`标签页下将工具链改为MDK然后在keil中自行添加所需包含的.c文件和头文件。关于如何在keil下添加dsplib请参考文档。在vscode中也有**KEIL assistant**和**Embedded IDE**插件可供使用。
>
> ***强烈推荐使用VSCode进行开发Ozone进行调试。***
@ -217,7 +219,6 @@ ROOT:.
│ STM32F407.svd # F407外设地址映射文件,用于调试
│ STM32F407IGHx_FLASH.ld # F407IGH(C板MCU)目标FLASH地址和链接规则,用于编译(作为链接阶段的链接器)
│ task.ps1 # powershell脚本,一键编译并进入ozone调试/reset开发板用
│ TODO.md # 项目待完成的任务
├─.vscode
│ launch.json # 调试的配置文件