空前绝后!史上最全的车载导航资料就它了!

拯救你的毕业设计,发现了这个设计就还不晚!

断电不断网,DC/DC UPS路由器光猫带保护电源

开源基于STC15W4K61S4的微型四旋翼

  • 开源基于STC15W4K61S4的微型四旋翼
  • 开源基于STC15W4K61S4的微型四旋翼
  • 开源基于STC15W4K61S4的微型四旋翼
  • 开源基于STC15W4K61S4的微型四旋翼
  • 开源基于STC15W4K61S4的微型四旋翼

开源基于STC15W4K61S4的微型四旋翼

开源基于STC15W4K61S4的微型四旋翼

开源基于STC15W4K61S4的微型四旋翼

开源基于STC15W4K61S4的微型四旋翼

开源基于STC15W4K61S4的微型四旋翼


前言:

       记得在上大二下的时候参加了2015全国电子设计大赛,题目刚下来便决定了做C题"多旋翼的自主飞行器"4天3夜拿到瑞萨最小系统后便开始写各个模块的驱动代码,因为有开发环境CUBE的神助攻,所以前期的驱动代码是还很顺利的。接下来便是飞行器的组装和电路板 制作,在一起就绪后花掉了2天时间,剩下的两天便疯狂调试,最苦恼的是电池供给跟不上,无奈只能调调停停,初次制作算法也还不够成熟,我直接用的以前做平衡车的经验。不过最后飞得也还算平稳,用的手机加蓝牙控制飞行(后来想一想也是胆大),但题目要求自主飞行,于是我便苦恼了,我便开始记录四旋翼起飞的油门,在起飞后直接给油门(危险)效果也还可以,就在比赛前一天晚上出事故了 一块刚充满电的电池 我装上做最后测试。电池电量过高 直接结果导致飞机飞太高撞到了天花板,结果将飞机撞坏了一个电机,桨就不用说了  惨,不过幸运的是人没事。队友也傻了,怎么办?此时已是凌晨1点。我们捡起“残骸”拍拍上面的灰,听了首“安河桥”便开始和队友一起埋头苦干。哈哈···最后在早上6点前飞机修好了 虽然效果大打折扣 不过最基本的任务还算能够完成。第二天比赛,我们是下午开始。第一次参赛,试飞的时候发现异常,冷静后发现超声波线松了 排除故障后开始比赛,比赛结果就不往下写了。(。。。。。)无论怎样我很享受这个过程。比赛结束后便有了做一个小四轴的想法,于是便在网上搜索资料,偶然看到了STC的这个开源项目,于是便自己也动手做了一个,控制代码我也有重写,现分享给大家!!!一起交流!!!

功能概述:

      本设计是基于STC15W4K61S4的微型四轴。以STC15W4K61S4为主控。硬件包括,mpu6050传感器,电源,nrf2401通信模块,720空心杯电机,PCB机架。姿态解算采用四元数,串级PID作为控制器,配合遥控器实现 俯仰,横滚,偏航姿态控制。主要用于学习和理解四轴飞行器的基本原理。

实物图:

应用场景:

      

控制思路:

        首先调整电机1,3同向 2,4同向 且相邻电机旋转反相在X型模式下首先通过mpu6050获取三轴加速度计和三轴陀螺仪数据 经过数据处理融合后 得到姿态角度pitch roll 以及Z轴陀螺仪积分出 yaw角。将得到的姿态角送入PID控制器计算输出对应的油门补偿对应的电机 从而使四旋翼平衡。简单来说飞机往那边沉 对应的电机就加速提高升力抵抗它下沉,它的下沉程度是通过角度来反映的而已,具体补偿多少合适,则是通过PID控制器计算的而已。单纯通过角度误差来控制,是属于单级的PID 控制。经过试验这种控制策略应用在小四轴效果不太理想,因此我们通常采用的串级PID控制小四轴,即引入了角速度环,通常内环使用PD(对象角速度)外环使用PI(对象角度&内环输出)这样的控制策略在测试中效果较好,但理想的参数调整比较难因此需要耐心调试才能得到较好的效果。

系统框图:







系统硬件设计组成:

     主控:STC15W4K61S4     (封装:LQFP32)

     传感器:MPU6050(三轴加速度计,三轴陀螺仪)(封装:QFN)  http://www.datasheet5.com/pn-MPU-6050-1083104

     电机:720空心杯    

     MOS管   AO3400A (封装:SOT23_M)  http://www.datasheet5.com/pn-AO3400A-1215185

    2.4G无线:NRF2401 (模块)  http://www.datasheet5.com/datasheet/NRF2401/250319...

    电源芯片:

    ME6219 (封装:SOT95) http://www.bom2buy.com/search/ME6219

    BL8530-501SM(封装:SOT89)    http://www.datasheet5.com/pdf/BL8532/1751621/BELLI...

元器件成本估算:

部分器件成本估算:http://www.bom2buy.com/list/1312-stc15w4k61s4

总结:

此项目在大三上完成,经过调试  能够实现基本飞行,同时也存在以下问题:

参数应该还不够理想(遥控器跟随效果不好)。

PCB设计过大 导致超重,因为担心手焊的MPU不好使故留了较多直插模块接口同时还考虑到十字和X型所以各留了一个这样的直插接口。

这是一次不错的动手经历吧,从原理图PCB到代码都是自己一个人完成,每当遇到问题就网上寻求答案,过程还是很坎坷的,不过也特别有意思。同时也学到很多知识,做事情也更加细心严谨!

测试结果:

     手机里翻了半天总算找到了一点视频上传与大家分享,效果不太好希望勿喷。



电路相关文件

电路图文件
PCB.zip
描述:原理图和PCB
其他文件
VisualScope.zip
描述:虚拟示波器
教程
readme.txt
描述:说明
源代码
收藏 (32)
扫码关注电路城

电路城电路折扣劵获取途径:

电路城7~10折折扣劵(全场通用):对本电路进行评分获取;

电路城6折折扣劵(限购≤100元电路):申请成为卖家,上传电路,审核成功后获取。

(版权归李某所有)

版权声明:电路城所有电路均源于网友上传或网上搜集,供学习和研究使用,其版权归原作者所有,对可以提供充分证据的侵权信息,本站将在确认后24小时内删除。对本电路进行投诉建议,点击投诉本电路反馈给电路城。

使用说明:直接使用附件资料或需要对资料PCB板进行打样的买家,请先核对资料的完整性,如果出现问题,电路城不承担任何经济损失!

换一批 more>>

大家都在看:

继续阅读

  • 【毕业设计】红外对管测风速单片机设计完整资料

    设计功能简要说明: 1.51单片机+红外对管检测+NE555电机调速+1602液晶显示; 2.通过电位器可调节电机转速,可以模拟风速,通过红外对管测电机的转速,并可液晶显示转速; 资料使用说明: 1.程序用 keil4软件打开; 2.电路图用 Altiumdesigner 软件打开;技术咨询QQ:2067054198; 功能演示视频: 上传附件截图如下:
    来自:其他时间:2018-02-19 单片机 51单片机 毕业设计
  • 【毕业设计】51单片机频率计设计——可提供技术支持

    基本部分1.被测信号的频率范围为1Hz~100KHz,分成两个频段:1Hz~999Hz,1K~100KHz。2.具有自检功能,即用仪器内部的标准脉冲校准测量精度。3.用3位数码管显示测量数据,测量误差小于10%。发挥部分1.用发光二极管表示单位,当绿灯亮时表示Hz,红灯亮时表示KHz。2.具有超量程报警功能,在超出当前量程档的测量范围时,发出灯光和音响信号。3.测量误差小于5%。技术咨询QQ:2067054198;演示视频:
    来自:其他时间:2018-02-11 51单片机 毕业设计 频率计
  • 17电赛瑞萨RX23T四旋翼飞控原理图+参考代码

    参考的小蜜蜂家的代码,原理图。 超声波定高,6050等传感器数据采集处理,姿态整合都有。用的CS++ V5编译。
    来自:飞行器时间:2017-07-22 四轴飞行器 电子设计大赛 rx23t
  • 太阳能循迹小车资料

    一、设计要求:制作一个循迹小车由多晶硅太阳能电池板供电,以STC89C51或STC89C52单片机为控制器,红外传感器发射并接收外界信号且回馈单片机处理,马达加上298驱动模块让小车正常工作。二、工作任务:流程:在有太阳光的情况下,小车利用太阳能电池板提供的电能,在画有粗黑线的轨道上利用三个红外传感器,分别对轨道中心的黑线,轨道两边界进行红外反馈,接收到的信号反馈给单片机,并由程序对其进行判断,控制舵机使小车变向,从而达到小车延黑线轨迹行驶。技术咨询QQ:2067054198;功能演示视频:http://player.youku.com/player.php/sid/XMTcxMTYxNDI0OA==/v.swf
    来自:其他时间:2018-02-13 51单片机 太阳能 循迹小车
  • 惊人的纽特之眼-电子眼睛制作原理图/源码

    我们将尽可能地建立一个紧凑小巧的电子眼睛。把它放在一个广口的瓶子里,然后加到你的药水架上,或者在皮颈上挂一条皮革的皮带。 这是一个相当先进的项目,需要在狭小的空间内进行小巧的焊接,并使用精密的零件。还有一些需要的软件设置。您可以添加自定义图像并根据需要调整代码,或者直接复制并粘贴我们的代码。这不是一个简单的项目,但最终的结果是非常酷,这是值得的努力工作! 视频观看: 元器件部分 1 x Teensy 3.2 Teensy 3.1或3.2微控制器 1 个 OLED显示屏 OLED分线板16位显示器 1 个 照片单元 光电池CdS光敏电阻 1 个 电池充电器 LiPoly背包电池充电器 1 个 电池 500毫安时LiPoly电池 1 x 10k电阻 10k电阻 1 个 开/关机 SPDT滑动开关 其他东西需要 2种/多种颜色的连接线: 坚实的芯线 硅胶绞线 烙铁和配件 热胶枪 爬行动物印花或万圣节面料 广口瓶或项链线 1.5“丙烯酸半球 (在您当地的Tap Plastics中较便宜) 针和线程软件部分开始焊接之前,让所有的软件运行并上传到您的Teensy微控制器。先将代码加载起来,以后可以更轻松地解决任何焊接问题或构建问题。 在继续之前,请确保已经安装了下面列出的所有东西。 Arduino IDETeensyduino安装程序库(通过Arduino IDE而不是Teensyduino安装程序安装): Adafruit_GFXAdafruit_SSD1351Adafruit_ST7735 4.Python的PIL库(只有当你想添加自己的自定义图像)一旦安装完毕,下载并打开草图。 然后,请确保选择72 mhz作为您的CPU速度。 如果你的眼睛看起来有颗粒感,这可能是你的问题。它在默认的CPU“超频”速度下无法正常工作。代码下载(见附件)代码将作为一个.zip文件下载。在里面,你会发现一个名为“convert”的文件夹,其中包含几个不同的图像文件夹和一个python脚本,另一个名为“uncannyEyes”的文件夹包含Arduino草图。开始上传代码,用于测试目的。在进行更改之前确保它能正常工作。看看不可思议的Eye.ino草图。在顶部你会发现几个不同的眼睛选择。取消注释#include "newtEye.h"行以打开眼睛选项,并注释掉该 #include "defaultEye.h" 行。只可以有一个人!此代码默认呈现为两只眼睛。由于我们只有一只眼睛,我们可以关闭第二只眼睛,使代码运行得更快。在代码中向下滚动到“setup”函数之前,注释掉第二个“displayType”行。眼睛的方向我们可以在代码中进行更多的更改,以更改图像的方向。如果您的版本横向或倒置,并且您想要旋转眼球进行补偿,请在代码中查找以下代码行中的最后一行:#else // OLED<font></font> eye[0].display.writeCommand(SSD1351_CMD_SETREMAP);<font></font> eye[0].display.writeData(0x76);<font></font>#endif要将眼睛旋转90度,请更改 (0x76)为(0x77)或(0x75)。或者旋转180度,使用(0x66)。我个人喜欢这个眼睛旋转180度,从原来的形象倒过来。我认为这使得眼睛看起来像是狡猾的,这正是我在“纽特之眼”中寻找的东西。部件安装准备充电器准备你的交换机准备你的光电池传感器准备你的Teensy&Display焊料电源线和充电器附加显示导线和照片单元将Photo单元中的另一根彩色导线焊接到Teensy的引脚16上,将黑色引线焊接到Teensy的复位按钮旁边的GND引脚上。做案例通过连接项链绳来完成,或保持原样,并保持在魔药瓶内。 请记住,OLED屏幕是非常微妙的,所以不要试图挤入一个紧密合适的瓶子 - 如果你挤得太紧,你可能会破坏屏幕。通过插入USB电缆对其充电 - 充满电时,充电器上的指示灯将变成绿色。
    来自:DIY创意产品时间:2018-02-09 diy制作 国外开源 电子眼
  • 51单片机主控的的12864万年历,时分秒大数字显示

    51单片机主控的的12864万年历,有图有真相附件里面有原理图,完整源代码,实物测试通过;时分秒大数字显示单片机型号:STC90C516RD+,用STC89C516RD+也可以.DS1302用现成模块,可以自己网上找电路图焊DS18B20引脚看清楚不要搞错12864为并行方式,PSB跟RST接高电平就行,对比度通过103电位器调背光,可用单片机控制或用热释电模块控制。闹钟数据掉电会丢失,可以自己改改程序,用24C02或其它芯片电路图简单,接线时看程序接或自己接好后改程序的定义所需元器件:1.单片机最小系统,包括上电复位电路跟时钟电路2.12864液晶屏1个3.DS18B20数字温度芯片(三脚)4.DS1302模块5.蜂鸣器(有源跟无源各一),三极管8050(3个),103电位器用在12864调对比度6.按键5个,开关一个,导线若干,烙铁,焊锡,7.其他自己发挥扩展
    来自:基础电路时间:2018-01-31 51单片机 万年历 课程设计
  • 【毕设作品】模拟电梯5层带电机与串口控制完整资料

    功能介绍:楼层1-5层,一楼只有上,5楼只有下。采用LED灯阵显示当前运行方向,数码管显示当前楼层采用步进电机模拟电梯上下行。采用LED灯模拟开关门的过程带有声光报警指示模拟真正的电梯运行。资料见后面的资料图,包含焊接图,源代码,PCB,论文,焊接指导,视频详解等。
    来自:其他时间:2018-02-01 51单片机 毕业设计 课程设计
  • 基于易安卓打造的蓝牙开关,手机和蓝牙模块通信

    1.首先是蓝牙APP, 易安卓编写的,说编写其实我只是修改了其中的一些内容,主要的部分都是易锦老师视频里的那个软件,不过我已经懂得了那些命令,(后面有工程文件,如果不 懂,可以去找易锦老师的视频来看,如果找不到,我这存的有),两张界面和代码截图,非常简单,功能也很简单,程序前后修改了两次主要地方,主要原因是测试 的时候发现第一种程序会出现错误,在单片机哪里会仔细说明!操作界面,很简单,打开之后打开蓝牙,然后点击搜索设备,找到你的模块名字,点击之后就可以连接了,连接之后下面会显示蓝牙的名称和地址信息2.单片机程序,这个程序也很简单,只要学过一些单片机程序的人应该都知道吧,串口通信,设置好通信的波特率,初始化工作做好,然后在串口中断程序里写上你要做的事情就可 以了,这里虽然说11.0592的晶振定时器初值为fd,但是如果用12m的晶振也是可以的,差距不多,没有问题。(说的不怎么专业,我也不是很专业的 人,所以请大神误喷,见笑了!)这里是修改前后的程序不一样的地方,前面的程序是单片机没接收到数据之后读取前一次的IO状态,然后改变其状态,但是测试 的时候发现读取状态有错误,估计是我的电路有问题,第一个继电器可以正常工作,第二个和第三个都有问题,当第一个关闭的时候可以打开,但是当打开的了却不 能关闭,只能用关闭所有的命令来关闭,(找了一下午也没发现问题,元件换了几个都没找到,后来放弃了),后来就换了后面程序,直接发送状态命令,不用判断 当前的状态了,我觉得后面这种可能更好!而且实际测试的时候也可以,没有问题。(补充一下,我发现12M的晶振不能用11.0592M的数据,原因是定时 器计数产生的波特率与9600差距有点大,误差到达了8.5%左右,理论上误差要小于4%才能正常通信,所以通信有错误,虽然能通信,但是数据不对,后来 我把晶振换回来就可以了,看来要实践才知道真理。)第 一、二张是修改之前的程序,有问题,最后一张是修改之后的,没有问题,后来仔细想了一下,后面一种才是正确的,前面一种的改变状态可能会出现错误,就是手 机上显示的开关是关的,然而实际电路中的电路是开着的(这也是没有数据回传的原因吧,现在只是单向的手机发,模块接的形式,以后再研究)!,但是后面一种 不会出现这个问题!3.实物电路连接,我也是在测试,所以先用LED 等来代替继电器输出,然后才用到继电器上面。单片机直接放在我做的最小系统版上面,然后用导线来连接到蓝牙开关的小板子上,等测试无误之后再安装在上面, 不然不好写程序上去。输出接的是一个小电机,用的一个12v蓄电池代替220V电源,如果要用220V的电源,要注意安全了!提醒一下,绝缘一定要做好, 毕竟不是开玩笑的。简单说一下电路连接,首先你得需要焊接一个51单片机最小系统板,(如果这个都不会,那你需要先学习一下,不然肯定是没办法做的)然后是由三极管驱动继电器的电路,记得加二极管,不然三极管很有几率被击穿,最后是蓝牙模块与单片机的连接,电源接好,一般蓝牙模块都是宽电压的,所以直接接到5V电源上,与单片机共用电源,不用什么电压转换,很方便的,把蓝牙模块的TX与单片机的RX连接,就是P3.0那个引脚,RX接单片机的TX,就是P3.1那个引脚,至于继电器哪里你需要接成常开还是常闭的模式就你自己决定了,当然还要加一点录滤波的,因为继电器启动的一瞬间电流很大,担心是单片机死机!这些就是主要的东西了!)前一张是之前测试用的,后面一张是后来直接把单片机装上去的,看着没有那么乱了,可以看到,当手机上的开关23打开时,电路板上的灯23也是两的,表明继电器已经被打开了。4.打完收工,作品完成好 了至此最简单的蓝牙开关就做好了,可以躺在床上遥控在远处的风扇了(好吧你们都用的是空调,当我没说!),定时关机(这个功能没做,不过原理都一样,自由 发挥了),其他神马的!感兴趣的同学可以试一下,比如说高级一点的外网控制的,把电脑作为服务器,把蓝牙模块接好,和控制器连接起来,然后让手机与电脑通 过互联网通信,用手机给电脑发送指令,再通过电脑给蓝牙模块发送指令,比如提前开个空调什么的(提前开风扇没用,还是开你们的空调吧),然后其他什么的东 西就自己发挥了!我想这个应该是属于传说中的物联网吧,虽然没有那么高大上,但是原理是一样的。
  • 基于51单片机三路zigbee温湿度传输设计/制作源资料

    分两部分 三个发射机 和一个接收机 ,发射机将温湿度(dht11)数据通过zigbee协议(cc2530模块)发送到接收机的模块,接收机再将数据传送至上位机。发射机原理图中的IP地址选择是备用的,可不做介绍,接收机原理图中有三个按键,实际只用两个,蜂鸣器是备用的。技术咨询QQ:2067054198;说明:程序用 keil4软件打开,电路图用 Altiumdesigner 软件打开。具体功能请看演示视频
    来自:其他时间:2018-01-31 51单片机 毕业设计 zigbee通讯
  • 手机APP控制,Wifi遥控小车设计资料分享

    Wifi遥控小车使用说明:本例程采用ESP8266 wifi模块与STM32串口连接,并提供AT指令封装库与STM32通讯,实现如下的通讯方式:1、硬件部分Wifi模块丝印图即引脚如下:硬件连接如下:2、手机APP部分APP部分我们采用常用的APP wifi调试软件 ITEAD WIFI,安装完成后打开如下界面,点击Set up进入设置:进入后会自动获取到手机的IP,注意手机是连接到一个路由器下的,支持局域网内调试,先设置端口,一般是 8080然后设置指令,我们使用到了如下红框内的指令,指令协议可以参考工程文件interface.h有如下描述://指令定义#define COMM_STOP 'I'//停止#define COMM_UP 'A'//前进#define COMM_DOWN 'B'//后退#define COMM_LEFT 'C'//左转#define COMM_RIGHT 'D'//右转指令设置好之后就可以启动服务了,如下点击开始就好了设置完成后如下,这里记下服务端IP和端口号,我这里是 192.168.31.195,端口 8080 ,然后返回:3、stm32软件部分设置完APP软件后,再来修改我们的工程文件,打开工程“wifi遥控小车”,打开main.c文件,修改红框内信息:HOST_NAME和HOST_PORT为手机上面的IP和端口号,SSID为您的路由器名,PSD为路由器密码,修改好后重新编译后下载。下载完成复位一下,就可以运行了,程序会自动连接手机开启的服务,实现TCP/IP通信,连接成功后,看手机端的设置会有如下提示:本程序还是用了串口1来输出调试信息,将串口1连接电脑后也会在串口调试助手看到如下信息:连接成功后即可在如下界面按键,操作小车运行:
    来自:智能车时间:2018-01-31 stm32 51单片机 wifi小车
销量
422
查看
4905
参数名 参数值
发布于 2017 年 02 月 20日
更新于 2017 年 07 月 07日
Moore8直播课堂