项目简介
本项目是基于FreeRTOS实时操作系统和RP2040微控制器的飞行器软件系统,采用pico-sdk作为硬件抽象层,为Crater Maker Special飞行器提供稳定高效的控制软件,涵盖多种硬件设备驱动开发,具备硬件初始化、网络通信、任务调度和状态管理等功能。
项目的主要特性和功能
- 多硬件驱动支持:包含对AD S13xMXX ADC、MAX31856温度传感器、W25N01闪存、W5500以太网控制器等多种硬件设备的驱动。
- 高效通信机制:使用FreeRTOS和自定义的SPI、UART、DMA驱动,实现多任务间的高效通信和数据传输。
- 网络通信功能:借助W5500以太网控制器,支持TCP和UDP协议进行网络数据的接收和发送。
- 任务调度管理:利用FreeRTOS的任务调度功能,实现多任务并发处理,提高系统的性能和响应速度。
- 状态管理机制:通过状态机实现系统状态的有效管理,涵盖设备的启动、运行和停止状态。
- 数据处理与传输:具备数据处理能力,可读取和转换ADC数据、读取和记录温度数据,并能将数据通过传感器网络发送。
- 错误处理与日志:提供错误处理和日志记录功能,方便调试和监控系统运行状态。
安装使用步骤
准备依赖
确保已安装以下依赖:
- git
:用于复制项目仓库。
- make
:用于运行CMake。
- ninja
:作为CMake的后端。
- cmake
:项目的构建系统。
- compdb
:编译数据库,可选。
- gcc - arm - none - eabi
:编译器。
- ccache
:编译器缓存,可选。
- newlib - arm - none - eabi
:C标准库。
复制项目
使用git
命令复制项目仓库:
bash
git clone <项目仓库地址>
项目构建
- 调试构建:运行
make
或make build
。 - 发布构建:运行
make release
。 - 清理构建:运行
make clean
,此命令将删除构建文件夹。
构建完成后,各板卡的输出二进制文件将存于build/bin/
目录,ELF二进制文件可在build/bin/elf/
目录找到。
远程开发与代码烧录(针对Bang Bang Boom Box)
环境依赖
- Zerotier VPN
- SSH
- VSCode(可选)
环境设置
- 安装Zerotier,向Sagar获取网络ID并加入网络。
- 通过SSH登录到树莓派。
VSCode设置(可选)
安装Remote SSH扩展,使用该扩展连接到树莓派。飞行器软件位于~/Documents/FlightSoftware_CMS
。
代码烧录
- 选择要使用的Pico板(A或B)。
- 运行
./scripts/pico.py <A/B> bootsel
,将Pico板置于可烧录状态,可通过lsusb
命令验证。 - 运行
./scripts/flash.sh <board - name>
,烧录代码到Pico板。 - 查看输出,运行
cat /dev/ttyACM0
,若有多个Pico板连接,使用ls /dev/ttyACM*
列出所有输出端口,尝试不同端口查看输出。
若要重置Pico板,运行./scripts/pico.py <A/B> reset
。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】