正点原子minifly学习

2023-05-16

对正点原子的开发板学习已经好几个月了,暂且了解了一点freertos和stm32的一些知识。本着从项目入手的原则,从今天开始,对正点原子小四轴无人机minifly进行学习。

** 目录**

minifly_v1.3学习笔记(一)main.c
minifly_v1.3学习笔记(二)radiolinkTask
minifly_v1.3学习笔记(三)usblink.c
minifly_v1.3学习笔记(四) atkp.c

程序框图

minifly四轴部分由NRF51822和STM32F411两个芯片共同控制。NRF51822主要负责无线通信和电源管理;STM32F411则负责接受、发送各种数据,以及数据融合从而进行pid控制。
程序框架如下:
在这里插入图片描述

esb.c 是无线通信驱动代码;
systick.c 是系统滴答定时器驱动代码;
uart.c 是串口驱动代码;
button.c 是按键驱动代码;
pm.c 是电源管理驱动代码。
遥控器发送过来的数据包通过radiolink.c 传送至 main.c,main.c 解析数据包,如果不 是发给 NRF51822 的则通过 uartlink.c 转发给 STM32F411;当 STM32F411 接收到一条数据 包后会立即通过uartlink.c返回一条数据包到main.c,main.c再通过radiolink.c转发给遥控器。 就这样 NRF51822 起到了通信桥梁的作用。

在这里插入图片描述
STM32F411主控芯片,使用freertos实时操作系统,任务关系如下:

radiolinkTask:无线通信任务。该任务主要负责接收从 NRF51822 发送(串口方式)过 来的数据,然后对数据进行打包和校验,打包成 ATKP 格式并校验无误后发送到 atkpRxAnlTask 的接收队列里,同时回传一帧数据给 NRF51822。
usblinkRxTask:USB 通信接收任务。该任务主要负责接收上位机发下来(USB 虚拟串 口方式)的数据,然后对数据进行打包和校验,打包成 ATKP 格式并校验无误后发送到 atkpRxAnlTask 的接收队列里。
atkpRxAnlTask:ATKP 数据包接收处理任务。该任务主要是处理遥控器和上位机发下 来的数据包,解析到的控制指令则发送到 stabilizerTask 中去。
stabilizerTask:四轴平衡控制任务。该任务运行的内容比较多,也是比较关键的内容。 包括传感器数据读取,数据融合,获取控制数据,空翻检测,异常检测,PID 控制,PWM 输出控制等。
wifilinkTask:手机控制任务。该任务主要是接收 WiFi 摄像头模块的串口数据,然后按 照 WiFi 摄像头模块通讯协议解析成对应的控制指令,并将控制指令发送到 stabilizerTask。
atkpTxTask:ATKP 数据包发送任务。该任务主要是获取 stabilizerTask 中的传感器数据、 姿态数据、电机 PWM 输出数据等数据以定周期发送给 radiolinkTask 和 usblinkTxTask,由这 两个任务分别发送飞遥控器和上位机。
usblinkRxTask:USB 通信发送任务。该任务主要负责发送 atkpTxTask 发送过来的数据 包,这些数据包主要是传感器数据、姿态数据等。

两者通过串口进行通信。

  • 使用NRF51822电源管理的优势

1.可以让四轴关机时,NRF51822运行在待机模式,STN32处于断电状态,功耗极低。
2.可以控制STM32的启动模式

以下是开发手册对此的叙述:

四轴在关机状态时,NRF51822 运行在待机模式,STM32F411 属于断电状态,功耗极低。 当按键按下时,NRF51822 从待机模式被唤醒,唤醒后程序先判断当前按下时间,如果是短 按或没有按下则启动 STM32F411 到固件模式,如果是长按则启动 STM32F411 到固件升级 模式。启动方式:NRF51822 拉高 UART_RTS_PIN 引脚,使能电源芯片给 STM32F411 供电, STM32F411 上电后先运行 bootloader 程序,程序中判断 UART_RTS_PIN 引脚为高电平的话 则留在 bootloader 程序等待固件升级,如果不是高电平则跳转至固件。NRF51822 程序运行 后,main.c 中以 100ms 周期时间获取 pm.c 采集四轴电池的电压值并转发给 STM32F411。就 这样 NRF51822 起到了电源管理的作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正点原子minifly学习 的相关文章

随机推荐

  • KairosDB 1.13安装手记

    PS xff1a 为了处理监控数据 xff0c 我们需要一个时间序列数据库 xff0c OpenTSDB是前驱 xff0c 但是是基于Hbase实现的 xff0c 后来有了一个基于Cassandra的实现 xff0c 就是KairosDB
  • FreeRTOS(V8.0.1)系统之vTaskDelete()

    lt pre name 61 34 code 34 class 61 34 objc 34 gt void vTaskDelete TaskHandle t xTaskToDelete TCB t pxTCB taskENTER CRITI
  • PX4 pixhawk 和APM2.X 的USB驱动都是不能够在 windows 7 、windows 8的ghost系统下自动安装(已解决)

    PX4 pixhawk 和APM2 X 的USB驱动都是不能够在 windows 7 windows 8的ghost系统下自动安装的 xff0c 因为这ghost系统精简了一些不该精简的东西 解决方法有两个 xff1a 一 重新装完整版的操
  • Mybatis-Plus

    一 Mybatis Plus简介 1 简介 MyBatis Plus opens new window xff08 简称 MP xff09 是一个 MyBatis opens new window 的增强工具 xff0c 在 MyBatis
  • Offboard Control

    1 将RC开关映射到场外模式激活 在QGroundControl中加载参数并查找RC MAP OFFB SW参数 xff0c 您可以为其分配要用于激活板外模式的RC通道2 2 启用配套计算机界面 设置默认的随播计算机消息流TELEM 2 x
  • 用java实现歌曲大串烧

    原理 xff1a 我们使用SequenceInputStream将FileInputStream对 象进行集体整合 xff0c 实现一个大的新文件 代码如下 xff1a span style font size 16px package c
  • slam小单元——位姿矩阵

    目录 位姿矩阵测试代码 这个系列是对slam中的一些小概念做理解和简单的测试 位姿矩阵 这个反应的是坐标系和坐标系之间的关系 xff0c 作用 xff1a 移动向量将一个坐标系下的向量 xff08 坐标 xff09 表达在另一个坐标系下 如
  • 裸模张筱雨出位真艺术(1)

    网页内容已不存在
  • 张筱雨本是害羞女孩有为何如此大胆?

    网页内容已不存在
  • 张筱雨:清纯妩媚の身体对话钢筋水泥建筑

    网页内容已不存在
  • 传统行业的IT如何转向DEVOPS,运维如何转向SRE

    题记 xff1a 在菊厂这几年 xff0c 亲历了传统行业的IT部门如何在数字化转型的滚滚洪流中 xff0c 被裹挟着四处寻找光明 从15年至今 xff0c 参加了各式各样的培训 xff0c 最早是CI CD xff0c 后来推DEVOPS
  • 张筱雨是摄影界最高境界神形兼备

    网页内容已不存在
  • 张筱雨的个人简历

    生平介绍 xff1a 2000年张筱雨9月 2003年7月吉林市实验中学2003年9月 人体艺术2007年7月华北大学 ent大胆er 张筱雨 凡本网注明 来源 xff1a 华龙网 的作品 xff0c 系由本网自行采人体艺术编 xff0c
  • 西瓜书笔记5:神经网络

    目录 5 1 神经元模型 5 2感知机与多层网络 感知机 感知机模型 感知机学习策略 感知机学习算法 多层网络 5 3 误差逆传播算法 标准BP 误差逆传播 算法 变量符号 公式推导 工作流程 累积BP算法 5 4全局最小与局部极小 跳出局
  • 数据处理笔记1:类别不平衡-上采样

    类别不平衡 imblance problem 查找一些资料 样本不均讨论 https blog csdn net sp programmer article details 48047101 上采样 下采样 代价敏感 代价敏感 设计obje
  • FreeRTOS消息队列、信号量、事件组、任务通知之间的区别

    转载自 xff1a https blog csdn net p1279030826 article details 103471564 功能及区别列表 消息队列 xff08 需要传递消息时使用 xff09 在任务与任务间 中断和任务间传递信
  • AUTOSAR 基础知识简介

    目录 一 AUTOSAR 简介 二 AUTOSAR 部分术语简介 三 AUTOSAR 软件架构介绍 1 AUTOSAR的标准 xff08 1 xff09 分层架构 xff08 2 xff09 方法论 xff08 3 xff09 软件接口 x
  • CAN资料整理(二):CAN协议帧格式

    目录 一 CAN协议帧格式 1 数据帧 2 遥控帧 3 错误帧 4 过载帧 5 帧间隔 一 CAN协议帧格式 CAN协议帧的格式十分重要 xff0c 部分MCU中的CAN外设寄存器就是根据对应帧结构来进行设计的 数据帧 xff1a 用于发送
  • centOS7 系统服务配置(systemd)

    查看系统中的单元 后缀代表单元类型 xff09 及其启用状态 enable启用 xff0c 相当于systemctl enable xxxx disabled禁用 xff0c 相当于systemctl disable xxxx static
  • 正点原子minifly学习

    对正点原子的开发板学习已经好几个月了 xff0c 暂且了解了一点freertos和stm32的一些知识 本着从项目入手的原则 xff0c 从今天开始 xff0c 对正点原子小四轴无人机minifly进行学习 目录 minifly v1 3学