5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
楼主: xunicheng
打印 上一主题 下一主题

大家齐动手,跟我来做头部运动传感器。终于成功了,感谢Gale兄的辛苦!

[复制链接]
41
发表于 2008-5-14 00:15 | 只看该作者
加油

欢迎继续阅读楼主其他信息

42
发表于 2008-5-14 08:50 | 只看该作者
把空闲的管脚焊上LED用作指示


插上芯片的样子


反面的ISP插针飞线,不包括后来交换管脚的飞线,照完照片写程序才发现的。
43
 楼主| 发表于 2008-5-14 20:27 | 只看该作者
加油!!如果字节数超的不多,拿汇编捋一遍是不是会小些??
44
发表于 2008-5-14 21:07 | 只看该作者
原帖由 xunicheng 于 2008-5-14 20:27 发表
加油!!如果字节数超的不多,拿汇编捋一遍是不是会小些??

我可没动力用汇编写啊,业余制作,芯片贵一点也无所谓啊,不是工厂为了降成本。今天没法干了,有其他事情。
45
发表于 2008-5-14 21:37 | 只看该作者
分析了一下PPM波形,是以400us的脉冲系列构成一个数据帧,脉冲和脉冲之间的间隔(位置,所以叫做PPM:PLUS POSITION MODULATE)决定比例,我用LAMA控做试验:
副翼1通道:500us~1600us 代表-100% ~ +100%
升降2通道:500us~1600us 代表-100% ~ +100%
油门3通道:600us~1500us 代表-100% ~ +100%
方向4通道:600us~1500us 代表-100% ~ +100%
又测量了TDF9,发现也是差不多。那么单片机就是要捕获每个上升沿,找出间隔时间就可以了,这个算法还不是很复杂,应该1个小时可以搞定,不过今晚要收摊啦
46
 楼主| 发表于 2008-5-14 21:45 | 只看该作者
呵呵,标准PPM编码就是1ms正负0.5ms,也就是0.5ms-1.5ms之间。
47
发表于 2008-5-15 08:44 | 只看该作者
原帖由 xunicheng 于 2008-5-14 21:45 发表
呵呵,标准PPM编码就是1ms正负0.5ms,也就是0.5ms-1.5ms之间。

这下麻烦了,准备动手写程序,发现TINY13只有一个8位定时器,而这个FPV传感器最好是PPM分析用一个定时器,PPM重构用一个定时器,主循环做AD以及运算。现在只有1个定时器,还是8位的,需要合并定时器,对精度有影响。。。
48
 楼主| 发表于 2008-5-15 08:59 | 只看该作者
嗬嗬,这才是你等高手考虑的问题啊!!
49
 楼主| 发表于 2008-5-15 09:04 | 只看该作者
前面四个通道脉冲可以直接移到输出端吧?只需构建5、6通道,这两个通道的精度不需要很高。6通以后直接舍弃。
50
 楼主| 发表于 2008-5-15 09:07 | 只看该作者
gale兄,太麻烦的话,就不用tiny13,直接画个mega8的图给我吧,我来做板子……唉!!!二十几片废板……
51
发表于 2008-5-15 09:15 | 只看该作者
进展很快嘛!真羡慕gale,还有时间琢磨这个,光上班就快把我累死!
52
发表于 2008-5-15 10:03 | 只看该作者
这个东西原理是很简单的,但是要想做好(精度做高)不太容易,它是用500us来表达100%,也就是1%=5us,这对于主频在M级的芯片来说不太容易。不过实际上很多接收机也不会做得那么精细。

我先把框架搭好,再优化精度了。

已经写好了PPM分析和重构的代码,虽然没有调试OK,但可以估计出大致的代码量,目前是:378字节。现在就差最复杂的传感器分析运算了。。。不知道能不能装得下:em17:

简单写了一遍传感器分析,现在代码750字节。

先由电压得到角加速度,然后由角加速度得到角速度改变量,计算出角速度,接着由角速度计算出角度改变量,并计算出当前角度。这就是陀螺仪锁尾算法,当然现在的很粗糙,如果用强劲的CPU来计算,配合好的感应器,就是一个好的陀螺仪了,呵呵。


  a=GetAD(VS1)-Vc1; //求角加速度a
  v1+=a*t;   //a.t=角速度改变量
  Angel1+=v1*t;  //v.t=角度改变量
  Channel[4]+=Angel1;//叠加到PPM信号上


[ 本帖最后由 gale 于 2008-5-15 13:10 编辑 ]
53
发表于 2008-5-15 13:22 | 只看该作者
原帖由 gale 于 2008-5-15 10:03 发表
这个东西原理是很简单的,但是要想做好(精度做高)不太容易,它是用500us来表达100%,也就是1%=5us,这对于主频在M级的芯片来说不太容易。不过实际上很多接收机也不会做得那么精细。

我先把框架搭好,再优化 ...

:em26:
54
 楼主| 发表于 2008-5-15 14:19 | 只看该作者
:em26: :em26: :em26: :em26:

越来越期待了…………:em24:
55
发表于 2008-5-15 17:57 | 只看该作者
加油阿,就看你的了,我现在眼镜还没动过呢
56
发表于 2008-5-15 20:13 | 只看该作者
调了一会,这个板子基本宣告失败,因为TINY13主频只有9.6/8=1.2M,没有足够的效能执行PPM分析、重构、传感器运算的工作。

我接下来就分别试验一下各个模块,合起来是不行了——CPU算不过来。

补充一下:光是低主频还可以想技巧解决,可是只有1个定时器,本身就需要用软件模拟出2~3个定时器,这样效率就很差了。

另外,还要抱歉一下,我看错了,TINY13 5脚是PCINT0,不是INT0,所以5还是做输出 6做输入。。。

又发现一个问题,PPM信号的幅度只有1.2V左右,不能触发5V供电的TINY13中断,解决方法是加一级驱动,或者用1.8V供电。

[ 本帖最后由 gale 于 2008-5-15 20:53 编辑 ]
57
 楼主| 发表于 2008-5-15 20:41 | 只看该作者
:em25: :em25: :em25: :em25: :em25: :em25:
58
 楼主| 发表于 2008-5-15 20:45 | 只看该作者
gale兄,辛苦了…………

这个板子,改成不进行PPM分析,直接输出两路PPM信号,就像接收机的输出,行不行?



要不,

换芯片吧……
59
发表于 2008-5-15 20:55 | 只看该作者
原帖由 xunicheng 于 2008-5-15 20:45 发表
gale兄,辛苦了…………

这个板子,改成不进行PPM分析,直接输出两路PPM信号,就像接收机的输出,行不行?



要不,

换芯片吧……


我明白你的意思,直接输出驱动舵机的PWM信号,这个应该没有问题,我就打算先这么试验了。

另外,刚才编辑了楼上的帖子,关于PPM1.2V驱动不了TINY13中断的问题,重新画板时,记得放一个三极管反向哦
60
 楼主| 发表于 2008-5-15 21:12 | 只看该作者
原帖由 gale 于 2008-5-15 20:55 发表


我明白你的意思,直接输出驱动舵机的PWM信号,这个应该没有问题,我就打算先这么试验了。

另外,刚才编辑了楼上的帖子,关于PPM1.2V驱动不了TINY13中断的问题,重新画板时,记得放一个三极管反向哦



这个我记下了。

呵呵,理论和实际还是相差很远啊,纸上谈兵,有很多问题是想不到的,做过以后才知道。

前两天调332的充电板,比较器的指示电路死活调不出来,然后才发现原理图有错误,管脚接错了,继续调试,又发现,电路实现的方法根本就是错的,板子废掉一半。只有另一面的332控制电路可以用。

这次打板,时间赶得很急,没仔细设计,做了4种电路,废掉了两种,失败失败……
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表