加载中
加载中
表情图片
评为精选
鼓励
加载中...
分享
加载中...
文件下载
加载中...
修改排序
加载中...
控制火箭垂直上升,鸭翼火箭飞控设计理念与制作
就是氧化铁喽2023/10/24喷气推进 IP:河北

啊,各位大佬好,作为科创新人,第一次发帖,请多多指教

做了一个火箭飞控,还有些问题详细教程及源码,我会在下个帖子公布。我见气压开伞及姿态开伞,我看很多大佬都公布过了,迟迟由于飞控这块儿没动静,所以我发一个帖。

众所周知飞控是,有控火箭的心脏,火箭飞的飞不直,就得靠飞控。

所需准备的零件

nano开发板一块

若干杜邦线

Mpu6050姿态传感器

四个舵机

这里最好建议还要准备一块洞洞板,方便连接,要不然把三根线剪掉,然后重新再接上,太难受了,后续还不好改动。

整个飞控代码其实就是个屎山代码(由于作者不是太会,只能凑合着用了,大佬们还得多多指教一下)

根本没有什么算法,这里就是运用了一下卡尔曼滤波。大家说一下代码的概述

代码是由ardino也就是c加加程序所组成

就是检测到当x轴大于多少度时,让舵机向哪个方向转,当检测到倾角大于80度时开伞。

下面是详细部分啊

屎山代码的大概讲解

在setup函数中,首先通过Serial.begin(115200)初始化串口通信,并尝试初始化MPU6050传感器。如果初始化失败,则会在串口输出"无法读取MPU6050"并进入死循环。同时,还设置了开伞引脚为输出模式。

接下来,通过mpu.setAccelerometerRange和mpu.setGyroRange函数,将加速度计的量程设置为+-8G,将陀螺仪的量程设置为+-500度/秒。然后,通过mpu.setFilterBandwidth函数将滤波器带宽设置为21Hz(卡尔曼滤波)。

在延迟300毫秒之后,通过servo1.attach(7)等语句将舵机连接到对应的引脚,并将舵机的初始角度设置为0。

在loop函数中,首先通过mpu.getEvent函数获取新的传感器事件,包括加速度和角速度。然后,通过a.acceleration.x、a.acceleration.y和a.acceleration.z获取加速度计的x、y和z方向的值。

接下来,通过一系列的if语句判断MPU6050的倾斜方向。例如,当x的值在0到10之间,且y的值在-4到4之间时,表示向上倾斜。此时,通过map函数将x的值从0到10映射到舵机的角度范围90到180,并将对应的角度值写入servo1。同时,将x的值从0到10映射到舵机的角度范围90到0,并将对应的角度值写入servo2。

类似地,根据x和y的值判断向下倾斜、向右倾斜和向左倾斜的情况,并分别控制对应的舵机(鸭翼)角度。

最后,根据x和y的值判断是否需要输出高电平(开伞)。当x和y的值在-8到8之间时,LED灯会保持关闭状态,如果大于的话则开伞;



我附上一段儿源代码,由于细节优化的还不是太好,还有一些问题,由于惯性大的话会漂移,我就简单的附上一些滤波的内容。

C++
if (!mpu.begin()) {     Serial.println("检出mpu6050");     while (1) {       delay(10);     }         pinMode(ledPin, OUTPUT);   digitalWrite(ledPin, LOW);   }   Serial.println("未检出mpu6050");     // 将加速度计范围设置为 +-8G   mpu.setAccelerometerRange(MPU6050_RANGE_8_G);     // 将陀螺仪范围设置为 +- 500 度/秒   mpu.setGyroRange(MPU6050_RANGE_500_DEG);     // 将滤波器带宽设置为 21 Hz   mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);     delay(100);   servo1.attach(7);   servo2.attach(6);    servo3.attach(5);    servo4.attach(4);      servo1.write(0);   servo2.write(0);   servo3.write(0);   servo4.write(0); }   void loop() {   //使用读数获取新的传感器事件   sensors_event_t a, g, temp;   mpu.getEvent(&a, &g, &temp);   //acceleration就是加速度的意思,   x = a.acceleration.x;   y = a.acceleration.y;   z = a.acceleration.z;

是不是写的非常的屎。

由于自己画的板还有些问题,呃,给大家附一张图


mmexport1698126051863.jpg

由一个mini接口还有type c组成,主要是怕type c用不了,所以画了个mini接口,但经过后续验证发现type c能使用,而且工作非常稳定

然后再附一个飞控的工作视频



00:00
00:00
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
mmexport1698140560589.mp4  点击下载

这里用的黑曜石舵机,Mg90,非常的垃圾,延迟还是比较大的(主要是没钱买更好的)…………

飞控的大概基本工作原理就说到这里,第一次发帖,大家多多指教一下




来自:航空航天 / 喷气推进动手实践:实验报导
11
2
新版本公告
~~空空如也
WernerPleischner
1年6个月前 IP:广东
926528

还好没飞

引用
评论
2
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
白沫0001
1年6个月前 IP:天津
926531

其实做鸭翼火箭是可以弄加上PID控制的,

如果用简单的map映射可能会导致比例错误,建议加上微分形成PD控制,也足以稳定姿态

引用
评论
4
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
smith
1年6个月前 IP:广东
926566

又一个造飞控的, 感觉AVR单片机的算力 + I2C接口的MPU6050 , 对于F450这种缓慢的无人机都已经比较吃力了, 稍微快一点穿越机也至少用了F3这种。而火箭这种速度比飞得最快的穿越机还快

现阶段各种商品穿越机飞控算力也足够了, 如果要实用化的话, 不如直接用F7之类的飞控硬件, 传感器齐全,接口丰富, 参考BF的代码,重写飞控代码, 把重心投入到软件的开发上来

引用
评论(1)
1
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
就是氧化铁喽作者
1年6个月前 IP:河北
926568
引用smith发表于3楼的内容
又一个造飞控的, 感觉AVR单片机的算力 + I2C接口的MPU6050 , 对于F450这种缓慢的...

如果用stm32呢,我看网上有些人用这东西做穿越机飞控,换上传输速率较高的姿态传感器应该也行吧



引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
smith
1年6个月前 IP:广东
926571
引用就是氧化铁喽发表于4楼的内容
如果用stm32呢,我看网上有些人用这东西做穿越机飞控,换上传输速率较高的姿态传感器应该也行吧

F3飞控就是STM32F303, F4飞控是STM32F405, F7是STM32F745, 陀螺仪建议选用SPI接口的, MPU

6500, BMI270这些, 另外为了测高度, 气压也是需要带的, GPS用UART连接,遥测数传也是用串口


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
CarrotYYDS
1年5个月前 IP:江苏
927332

楼主大概什么时候开源呢,想拿来参考一下

还有楼主做的这个适配的火箭直径多少


引用
评论(1)
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
就是氧化铁喽作者
1年5个月前 IP:河北
927760
引用白沫0001发表于2楼的内容
其实做鸭翼火箭是可以弄加上PID控制的,如果用简单的map映射可能会导致比例错误,建议加上微分形成P...


感谢指导!!目前正在去做,算法什么的还在学习

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
YONXUA
1年3个月前 IP:湖北
928523

ZEMOO团队收人吗,我会SW建模,有一定的单片机基础和PCB设计基础,有拓竹P1S能帮忙3D打印,有本地公网物理机可以提供服务,属于是什么都涉及一点但都不精的那种


引用
评论
2
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
HSH
2个月12天前 IP:山西
942456

楼主语言比较含蓄,但也是不小的成果,我这在弄STM32姿态系统


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
就是氧化铁喽
进士 学者 机友
文章
11
回复
54
学术分
1
2023/06/25注册,5天11时前活动

无限进步!

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:河北
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的