『匿名四轴』再次给国赛的同学一个意见【【注意啦】】@@@
本帖最后由 wangjt1988 于 2013-8-30 22:39 编辑想到个好主意,关于有我们匿名飞控的或者其他开源飞控的同学一个建议,可以稍加修改程序,将成品飞控的姿态角通过串口输出,我们匿名四轴的飞控是留有串口的,这样相当于将我们飞控作为一个能够直接输出姿态角的传感器来用,再外接一个单片机,例如瑞萨,不是能加分吗,或者大家熟悉的,甚至51就可以胜任!!!!直接读取飞控输出的姿态角,再自己写一个pid来控制电机就行了,直接绕过四轴里面姿态解算这个大骨头!!
我马上写程序,但是因为所有套件都已经发给参赛同学了,我也没法测试,所以不保证写出来的能用。
改动很少,我就不上传工程了,我就把改的的方跟大家说下:
1:在系统初始化,初始化串口:Uart1_Init(115200); 波特率例如115200
2:在APP_UART UART.C里面增加一个函数,并在.h中声明:
void Uart1_Send_Angle(void)
{
vs16 temp = 0; //定义一个临时变量
Uart1_Put_Char(0x88);//发送帧头,我设的两个0x88,表示数据帧的开始
Uart1_Put_Char(0x88);
temp = Q_ANGLE.X*10;//姿态角乘以10,赋值给临时变量,然后发送
Uart1_Put_Int16(temp);
temp = Q_ANGLE.Y*10;
Uart1_Put_Int16(temp);
temp = Q_ANGLE.Z*10;
Uart1_Put_Int16(temp);
}
3:根据自己想要的发送频率,在不同的定时器中断调用Uart1_Send_Angle();,例如我想5ms发送一次:
在stm32f10x_it.c中,这样改
if(ms5==10)
{
ms5=0; //5ms执行一次
Uart1_Send_Angel();
}
完事!!!!!
总结:就是飞控程序原封不动,仅仅增加将飞控计算出的姿态角经串口输出的程序,相信大家也能轻易完成!!!! 茶大呵呵真是尽心尽力啊,,, seeyou2013 发表于 2013-8-30 22:38 static/image/common/back.gif
茶大呵呵真是尽心尽力啊,,,
喜欢比赛,喜欢竞争,哈哈,给大家出出主意也不错
PS灰常留恋大学参加比赛时通宵搞程序调试的感觉哈哈 真是个好人,可惜我还看到你的板子呢
感谢茶大! wangjt1988 发表于 2013-8-30 22:40 static/image/common/back.gif
喜欢比赛,喜欢竞争,哈哈,给大家出出主意也不错
PS灰常留恋大学参加比赛时通宵搞程序调试的感觉哈哈 ...
没有,我是没有参加那个啥比赛的,
顺便问问茶大你的遥控式直接上位机遥控吗??
这个建议好,不管用不用都焊个瑞萨的片子上面岂不更好 顶一个!加油! 比赛时不能用成品的。任何有记号的集成PCB都视为违规,
多谢茶大的无私分享 确实能避开很难的部分,秒 好厉害的说,搞定了没? 好主意!不过官方的板子也不知道到底怎么样啊 seeyou2013 发表于 2013-8-30 23:32 static/image/common/back.gif
没有,我是没有参加那个啥比赛的,
顺便问问茶大你的遥控式直接上位机遥控吗??
我用的航模遥控来遥控
good idea!! 正在调试用51控制 其实MWC那些飞控也有这个功能的.,. 今天有人找我做的我说时间太紧了!!!虽然都点成品但是要求加传感器!!! 把logo去掉 现在,什么都有现成的了,有赛还有意义吗?
wangqing_gxu 发表于 2013-9-1 00:14 static/image/common/back.gif
现在,什么都有现成的了,有赛还有意义吗?
看比赛的侧重点了,很多模块貌似也是做好的,貌似也能用吧,控制题目出来,不知道会不会禁用这种能输出欧拉角的伪"飞控",如果不让用,必须要自己写姿态解算,那难度确实不小,我也是提个建议,让大家知道有这个方法,比赛肯定有规则,到时能不能这样用就知道了,或者还有可能不是四轴题目呢,只是现在大家都这样说,提个这样的建议总比买成品飞控来负责飞控控制好多了吧,也保险多了 顶茶大{:victory:} 给力。。。。
页:
[1]