news 2026/7/15 2:46:03

Day41:四轴飞行器控制系统 (基础)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day41:四轴飞行器控制系统 (基础)

项目功能:
姿态检测 (MPU6050 陀螺仪 + 加速度计)
电机控制 (4 个电调 + PWM)
遥控器信号接收 (PWM 输入捕获)
平衡控制 (PD 控制算法)
硬件连接:
MPU6050:I2C(PB6-SCL, PB7-SDA)
电调:4 个 PWM 输出 (PA0-PA3)
遥控器:PWM 信号输入 (PA4-PA7)
软件架构:
姿态解算:读取 MPU6050 数据→计算欧拉角
控制算法:PD 控制器调节 PWM 占空比
输入处理:捕获遥控器 PWM 信号→解析控制指令
核心代码:(MPU6050 读取 + 姿态计算)

// 读取MPU6050加速度和陀螺仪数据
void MPU6050_Read_Data(mpu6050_data_t *data){
uint8_t buf[14];

// 读取加速度、陀螺仪、温度数据
HAL_I2C_Master_Transmit(&hi2c1, MPU6050_ADDR, &reg_addr, 1, 1000);
HAL_I2C_Master_Receive(&hi2c1, MPU6050_ADDR, buf, 14, 1000);

// 转换为实际值(注意小端模式)
data->ax = (int16_t)(buf[0] | (buf[1] << 8));
data->ay = (int16_t)(buf[2] | (buf[3] << 8));
data->az = (int16_t)(buf[4] | (buf[5] << 8));
data->gx = (int16_t)(buf[8] | (buf[9] << 8));
data->gy = (int16_t)(buf[10] | (buf[11] << 8));
data->gz = (int16_t)(buf[12] | (buf[13] << 8));

// 转换为g和°/s单位
data->ax *= 0.000061; // LSB/(g) = 16384
data->ay *= 0.000061;
data->az *= 0.000061;
data->gx *= 0.061; // LSB/(°/s) = 131
data->gy *= 0.061;
data->gz *= 0.061;
}

// 姿态计算(简化版)
void Attitude_Calculate(mpu6050_data_t *data, float *roll, float *pitch){
// 使用加速度计计算倾角(简化,忽略陀螺仪积分)
*roll = atan2(data->ay, data->az) * 57.3; // 横滚角(°)
*pitch = atan2(-data->ax, sqrt(data->ay*data->ay + data->az*data->az)) * 57.3; // 俯仰角(°)
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 21:29:27

Gin框架基础篇005_静态文件服务

Web应用通常需要提供静态资源&#xff0c;如CSS、JavaScript、图片等。Gin框架提供了多种方法来处理静态文件。 1. 静态文件服务方法 Gin提供了以下静态文件服务方法&#xff1a; Static() &#xff1a;提供静态文件服务StaticFile()&#xff1a;提供单个静态文件服务StaticFS(…

作者头像 李华
网站建设 2026/7/10 0:38:59

JS逆向 - 某程 w-payload-source 纯算、补环境分析

文章目录概要整体架构流程技术名词解释小结概要 提示&#xff1a;仅供学习&#xff0c;不得用做商业交易&#xff0c;如有侵权请及时联系 也是很久没有更新教学文章了&#xff0c;这次就更新一波纯算和补环境 逆向&#xff1a;某程 header请求头参数 w-payload-source 纯算、补…

作者头像 李华
网站建设 2026/7/14 18:02:18

SQL学习应用工作场景(2)--执行优先级+语法顺序+保留2位小数

前言&#xff1a;我们先看需求&#xff0c;拆解分析思考。然后再实操写SQL。然后分析我中途写的时候遇到的问题以及解决方法&#xff0c;最后在此基础上优化扩展~~~~想看哪个部分的根据目录跳转吧(*^▽^*)一、需求描述&#xff1a;我们需要计算在2025-12-24之后的2条listing的净…

作者头像 李华
网站建设 2026/7/13 23:33:12

Scala 数组

Scala 数组 概述 Scala 是一门多范式编程语言,它结合了面向对象和函数式编程的特性。在 Scala 中,数组是一种基本的数据结构,用于存储一系列有序的元素。本文将详细介绍 Scala 数组的概念、创建方法、操作方法以及一些高级特性。 创建数组 在 Scala 中,数组的创建主要有…

作者头像 李华
网站建设 2026/7/13 23:35:07

MySQL 知识点:函数索引(Functional Index)

MySQL 技术文档&#xff1a;函数索引&#xff08;Functional Index&#xff09; 1. 概述 在 MySQL 8.0.13 之前&#xff0c;索引必须关联到表的列或列的前缀。如果查询条件对列使用了函数&#xff08;如 WHERE UPPER(name) TOM&#xff09;&#xff0c;即使 name 字段有索引…

作者头像 李华