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

发布于:2019-07-06 23:39,阅读数:737,点赞数: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!!!


返回列表

返回主页