本帖最后由 黄瓜 于 2014-3-2 21:39 编辑 在2012年,帖子“圆点博士微型四轴飞行器开工拉...有钱出钱,没钱出力” http://www.amobbs.com/thread-5504090-1-1.html得到坛友的大力支持。经过2013年的全年发展,资料已经相当成熟。楼主把全部资料整理到了一起,方便大家下载。 首先给大家介绍下这些资料的内容:(全部是源代码,豪无保留): 1,小四轴飞行器源码:包括陀螺仪芯片驱动代码,数字滤波,四元数姿态解算和电机控制代码,此外,还包括蓝牙无线传输代码,NRF24L01+无线传输代码,小四轴无线更新固件代码。 2,小四轴手持遥控器源码。包括USB转COM口代码,蓝牙编程代码,摇杆控制代码,和液晶屏显示代码。通过该代码,用户可以学习USB编程,蓝牙编程,摇杠编程,液晶屏显示编程能知识。 3,基于windows/Linux下的上位机代码,能过获取小四轴姿态,并对小四轴进行飞行控制。该代码使用垮平台算法QT编写。 4,基于Android的手机遥控器代码,可以实现对小四轴的飞行控制 5,对国外著名开源crazyflies开源算法的姿态部分的移植(已修改成大家熟知的MDK环境),带FreeRTOS操作系统。
标签: 姿态解算
上传时间: 2015-04-14
上传用户:wusheng4495
Aidaohuakai( 楼主 ) 2013-8-22 11:45:24 只看该作者23307 | 41倒序浏览 论坛上对mpu6050的资料和讨论并不多,很多坛友都说驱动失败,老是显示0. 以下就谈谈我的一些血与泪的教训: 昨天开始接触mpu6050,在网上查了很多资料,下载程序,准备一展身手。首先看了mpu6050中文资料,之后又看了那个mpu6050的测试程序,把这些看明白之后就开始写程序了。我不是直接把程序复制过去,只是复制mpu6050的地址和初始化,IIC并没有复制,就复制我上次写的24C02的那个程序,想不到,这给了我血与泪的教训,我原来是直接把IIC复制过来的,并没有多留意。之后初始化mpu6050,写入地址,读出数据,下载到单片机之后,LCD上显示000001,我感到郁闷,之后又调试,以为是显示不对,又写显示,之后又下载,结果还是老样,这样半天就过去了。驱动没成功,又怀疑芯片或引脚有问题,继续调试,也没成功。就一一对应地看了地址,又看了初始化,发现没错,调试还是不成功。最后干脆不接IIC总线,竟然发现了个天大的秘密,接不接IIC,LCD都显示000001,我又用示波器测试波形,发现波形正确。在网上又查了别人的资料,在论坛上也很少有关于mpu6050的资料,也看了比别人的一些讨论。很多坛友都说驱动失败,老是显示0. 没办法,一天就这样过去了,今天早上,我又仔细看了程序,出乎我的想象,竟然是IIC的那个地址没改,原来写24C02的那个地址是a0,还是原封不动,把我吓了一跳。把这些改过来之后,一切正常,能显示加速度和陀螺仪。血与泪的教训啊,是自己不细心造成的,忘记改地址!今天早上竟然花了不到2个钟就调出来了,惊喜之时就写了这个分享,希望对大家有用。
标签: 圆点博士小四轴
上传时间: 2015-04-14
上传用户:wusheng4495
杨教授的计算辐射, 计算全国各地区的太阳辐射
上传时间: 2016-05-29
上传用户:wu1285568193
三种SMA接口pcb封装 捕获1.PNG (16.1 KB, 下载次数: 86) 捕获2.PNG (17.35 KB, 下载次数: 39) 捕获3.PNG (19.16 KB, 下载次数: 37)
上传时间: 2017-03-06
上传用户:qjjjjwqvc
课件和视频 使用Kmplayer打开视频.md 课程介绍.png 接受捐赠鼓励.png 收获技能.png 课程结构.png 基本环境.png 学习目标- 适合人群.png 课前鸡汤.png
上传时间: 2017-07-30
上传用户:baibin8899
AMS1117-3.3是一个正向低压降稳压器,在1A1.2VAMS1117有两个版本:固定输出版本和可调版本,固定输出电压为1.5V、1.8V、2.5V、2.85V、3.0V、3.3V、5.0V,具有1%的精度;固定输出电压为1.2V的精度为2%。AMS1117内部集成过热保护和限流电路是电池供电和便携式计算机的最佳选择。 附上Altuim Dsigner 14绘制的封装。
上传时间: 2018-03-17
上传用户:Johns
ZCORE系列NBIOT开发底板资料开源。 NBIOT开发板主要接口: Micro USB *1 3.7V电池充电电路 庆科WIFI模块支持 贴片SIM卡支持 STM32L433全部外围接口已拉出为2.0排针
上传时间: 2018-04-25
上传用户:pshr960405
参照栈类模板的例子编写一个队列类模板class <T> Queue,私有成员包括:队首指针Front,队尾指针Tail,队列容积max。实现:构造函数Queue,复制构造函数Queue,析构函数~Queue,入队函数In,出队函数Out(每次出队,后面的元素自动前移一位),判队列空函数empty。并分别用队列类模板定义int和double对象,通过实例调用各个成员函数。
标签: Queue 函数 double class Front empty 队列 Tail 模板 Out
上传时间: 2020-05-04
上传用户:1qw2e3r4t5y6u7i8
Artificial Intelligence (AI) is a big field, and this is a big book. We have tried to explore the full breadth of the field, which encompasses logic, probability, and continuous mathematics; perception, reasoning, learning, and action; and everything from microelectronic devices to robotic planetary explorers. The book is also big because we go into some depth. The subtitle of this book is “A Modern Approach.” The intended meaning of this rather empty phrase is that we have tried to synthesize what is now known into a common frame- work, rather than trying to explain each subfield of AI in its own historical context. We apologize to those whose subfields are, as a result, less recognizable.
标签: A-Modern-Approach Intelligence
上传时间: 2020-06-10
上传用户:shancjb
FPGA片内FIFO读写测试Verilog逻辑源码Quartus工程文件+文档说明,使用 FPGA 内部的 FIFO 以及程序对该 FIFO 的数据读写操作。FPGA型号Cyclone4E系列中的EP4CE6F17C8,Quartus版本17.1。timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////module fifo_test( input clk, //50MHz时钟 input rst_n //复位信号,低电平有效 );//-----------------------------------------------------------localparam W_IDLE = 1;localparam W_FIFO = 2; localparam R_IDLE = 1;localparam R_FIFO = 2; reg[2:0] write_state;reg[2:0] next_write_state;reg[2:0] read_state;reg[2:0] next_read_state;reg[15:0] w_data; //FIFO写数据wire wr_en; //FIFO写使能wire rd_en; //FIFO读使能wire[15:0] r_data; //FIFO读数据wire full; //FIFO满信号 wire empty; //FIFO空信号 wire[8:0] rd_data_count; wire[8:0] wr_data_count; ///产生FIFO写入的数据always@(posedge clk or negedge rst_n)begin if(rst_n == 1'b0) write_state <= W_IDLE; else write_state <= next_write_state;endalways@(*)begin case(write_state) W_IDLE: if(empty == 1'b1) //FIFO空, 开始写FIFO next_write_state <= W_FIFO; else next_write_state <= W_IDLE; W_FIFO: if(full == 1'b1) //FIFO满 next_write_state <= W_IDLE; else next_write_state <= W_FIFO; default: next_write_state <= W_IDLE; endcaseendassign wr_en = (next_write_state == W_FIFO) ? 1'b1 : 1'b0; always@(posedge clk or negedge rst_n)begin if(rst_n == 1'b0) w_data <= 16'd0; else if (wr_en == 1'b1) w_data <= w_data + 1'b1; else w_data <= 16'd0; end///产生FIFO读的数据always@(posedge clk or negedge rst_n)begin if(rst_n == 1'b0) read_state <= R_IDLE; else read_state <= next_read_state;endalways@(*)begin case(read_state) R_IDLE: if(full == 1'b1) //FIFO满, 开始读FIFO next_read_state <= R_FIFO; else next_read_state <= R_IDLE; R_FIFO: if(empty == 1'b1)
上传时间: 2021-12-19
上传用户:20125101110