littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于FreeRTOS和RP2040的飞行器软件系统

项目简介

本项目是基于FreeRTOS实时操作系统和RP2040微控制器的飞行器软件系统,采用pico-sdk作为硬件抽象层,为Crater Maker Special飞行器提供稳定高效的控制软件,涵盖多种硬件设备驱动开发,具备硬件初始化、网络通信、任务调度和状态管理等功能。

项目的主要特性和功能

  1. 多硬件驱动支持:包含对AD S13xMXX ADC、MAX31856温度传感器、W25N01闪存、W5500以太网控制器等多种硬件设备的驱动。
  2. 高效通信机制:使用FreeRTOS和自定义的SPI、UART、DMA驱动,实现多任务间的高效通信和数据传输。
  3. 网络通信功能:借助W5500以太网控制器,支持TCP和UDP协议进行网络数据的接收和发送。
  4. 任务调度管理:利用FreeRTOS的任务调度功能,实现多任务并发处理,提高系统的性能和响应速度。
  5. 状态管理机制:通过状态机实现系统状态的有效管理,涵盖设备的启动、运行和停止状态。
  6. 数据处理与传输:具备数据处理能力,可读取和转换ADC数据、读取和记录温度数据,并能将数据通过传感器网络发送。
  7. 错误处理与日志:提供错误处理和日志记录功能,方便调试和监控系统运行状态。

安装使用步骤

准备依赖

确保已安装以下依赖: - git:用于复制项目仓库。 - make:用于运行CMake。 - ninja:作为CMake的后端。 - cmake:项目的构建系统。 - compdb:编译数据库,可选。 - gcc - arm - none - eabi:编译器。 - ccache:编译器缓存,可选。 - newlib - arm - none - eabi:C标准库。

复制项目

使用git命令复制项目仓库: bash git clone <项目仓库地址>

项目构建

  • 调试构建:运行makemake build
  • 发布构建:运行make release
  • 清理构建:运行make clean,此命令将删除构建文件夹。

构建完成后,各板卡的输出二进制文件将存于build/bin/目录,ELF二进制文件可在build/bin/elf/目录找到。

远程开发与代码烧录(针对Bang Bang Boom Box)

环境依赖

  • Zerotier VPN
  • SSH
  • VSCode(可选)

环境设置

  1. 安装Zerotier,向Sagar获取网络ID并加入网络。
  2. 通过SSH登录到树莓派。

VSCode设置(可选)

安装Remote SSH扩展,使用该扩展连接到树莓派。飞行器软件位于~/Documents/FlightSoftware_CMS

代码烧录

  1. 选择要使用的Pico板(A或B)。
  2. 运行./scripts/pico.py <A/B> bootsel,将Pico板置于可烧录状态,可通过lsusb命令验证。
  3. 运行./scripts/flash.sh <board - name>,烧录代码到Pico板。
  4. 查看输出,运行cat /dev/ttyACM0,若有多个Pico板连接,使用ls /dev/ttyACM*列出所有输出端口,尝试不同端口查看输出。

若要重置Pico板,运行./scripts/pico.py <A/B> reset

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】