2016本科毕业设计——无人机姿态模拟器

发布于:2019-07-06 23:39,阅读数:523,点赞数:4


> 此设计是我在2016年的本科毕业设计,图片和视频资料来源于当年的答辩幻灯片。

# 引言

最近和朋友聊天聊到了惯性导航,再一次又想到了我的本科毕设。借此机会把毕设的一些内容也保存到博客的“时间胶囊”中吧。

# 课题

毕设的课题是“无人机姿态模拟器”,其实就是要做一款硬件来模拟无人机的姿态,并要求了一定的精度。

那么对我这样的擅长软件的同学,光做硬件肯定是不过瘾的,因此我做了 Windows 的上位机和 iOS 的 App 来协助硬件达到更加惊艳的效果。

先来看看硬件长什么样吧:

![](//cdn.blog.yuusann.com/img/corpus/19077_2.jpeg)

(遥控器只是背景,不是设计的一部分)

![](//cdn.blog.yuusann.com/img/corpus/19077_1.jpeg)

技术栈用到了:

- 硬件(电路设计、制板和C语言)
- 单片机系统
- 串口通信系统
- 步进电机驱动
- 舵机驱动
- 诺基亚 5110 液晶屏相关技术
- PC(Delphi)
- 图形相关(GLScene,基于 OpenGL)
- 串口通信(SPCOMM)
- 皮肤(SUIPack)
- iOS(Swift)
- SpriteKit(做了个动态背景)
- YSocket

现在回头看,我当时的科技树点的还是比较乱的。🤣

# 实现

## 三个平台架构

![](//cdn.blog.yuusann.com/img/corpus/19077_3.jpg)

![](//cdn.blog.yuusann.com/img/corpus/19077_4.jpg)

![](//cdn.blog.yuusann.com/img/corpus/19077_5.jpg)

## 偏航角

偏航角由步进电机带动底座旋转所得:

![](//cdn.blog.yuusann.com/img/corpus/19077_6.jpg)

## 俯仰角和横滚角

俯仰角和横滚角为两个舵机,使用脉冲占空比控制角度:

![](//cdn.blog.yuusann.com/img/corpus/19077_7.jpg)

## 通信协议

三个平台之间发送的数据包的格式。

![](//cdn.blog.yuusann.com/img/corpus/19077_14.jpg)

## 结论

- 舵机控制:信号精度0.123°,速度>180°/s
- 步进电机控制:精度0.125°,误差<0.1%,速度>120°/s
- 三平台随动60帧数据同步
- 扩展功能稳定

## 创新点

- 单片机系统菜单显示和按键控制
- 通信协议设计
- 上位机3D模型显示和控制
- 飞机模型不同机舱视角设计
- iOS App交互和 Socket 通信设计
- 录像和回放功能设计

# 演示

## 单片机系统离线运行

单片机系统菜单:

![](//cdn.blog.yuusann.com/img/corpus/19077_8.jpg)

通过方向键和确定键进行控制。

演示视频:

<video id="video" controls="" preload="none" height=1080px poster="//cdn.blog.yuusann.com/img/corpus/19077_9.jpg">
<source id="mp4" src="//cdn.blog.yuusann.com/img/corpus/19077_9.mp4" type="video/mp4">
</video>

## PC上位机联动

通过拖动三维模型的三视图进行三个角度旋转。

演示视频:

<video id="video" controls="" preload="none" width=100% poster="//cdn.blog.yuusann.com/img/corpus/19077_10.jpg">
<source id="mp4" src="//cdn.blog.yuusann.com/img/corpus/19077_10.mp4" type="video/mp4">
</video>

视频中切换视角为“头等舱”。

## 三平台随动

通过 iPhone 的传感器测量手机姿态后通过 udp 发送至上位机,上位机控制单片机系统旋转。

演示视频:

<video id="video" controls="" preload="none" width=100% poster="//cdn.blog.yuusann.com/img/corpus/19077_11.jpg">
<source id="mp4" src="//cdn.blog.yuusann.com/img/corpus/19077_11.mp4" type="video/mp4">
</video>

## 姿态录制

上位机收到 udp 数据包后将姿态数据序列化后保存成文件。

演示视频:

<video id="video" controls="" preload="none" width=100% poster="//cdn.blog.yuusann.com/img/corpus/19077_12.jpg">
<source id="mp4" src="//cdn.blog.yuusann.com/img/corpus/19077_12.mp4" type="video/mp4">
</video>

## 姿态回放

上位机通过录像文件还原姿态数据,还实现了播放速度调整和任意时刻回溯。

演示视频:

<video id="video" controls="" preload="none" width=100% poster="//cdn.blog.yuusann.com/img/corpus/19077_13.jpg">
<source id="mp4" src="//cdn.blog.yuusann.com/img/corpus/19077_13.mp4" type="video/mp4">
</video>

视频中加快了录像播放速度,以及直接在进度条上进行任意时间点姿态回溯。

# 结语

其实毕设结束以后发生了很不愉快的事情。

此设计拿到了校级优秀,但是奖金一直没有到我手里,我找辅导员去问了五六次,说早就发了,也不知道哪一级给贪了。想到2014年当时做全国大学生电子设计竞赛时候,我们队虽然拿到了一等奖,但暑期集训补贴一直没有到手,也不知道中间哪一级给贪了。

这也就是为什么我毕业以后一直对学校印象很差的原因,嗯。


评论:4条


1楼:2019-07-07 00:16:05

yuu:

求不吐槽 MacBook 装 Windows。
因为涉及硬件串口通信,Mac 上真的不知道怎么开发。
另外,这是个虚拟机,不是真的装了 Windows。?


2楼:2019-07-08 04:20:15

Alice:

小灰机模型跟着手机改变姿态真的好好玩!想知道这个传感器的工作原理是什么!


3楼:2019-07-08 11:13:09

yuu:

引用:2楼

应该就是传统的九轴传感器。
三轴加速度计:测加速度。三轴陀螺仪:测角加速度。三轴磁罗盘:测偏航角。
俩加速度计根据时间两次积分可以得到位移,配合偏航角计算欧拉角或四元数,就可以描述物体姿态了。


4楼:2019-07-08 11:47:13

Alice:

引用:3楼

tql!!!


返回列表

返回归档

返回主页