完善了环境配置说明和TODOlist
This commit is contained in:
parent
50479fc16c
commit
d764e0f940
17
.Doc/TODO.md
17
.Doc/TODO.md
|
@ -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
|
||||
|
||||
- [ ] 增加长按/短按检测 (是否有必要?)
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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 # 调试的配置文件
|
||||
|
|
Loading…
Reference in New Issue