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

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

共轴双桨自动驾驶直升机

[复制链接]
181
 楼主| 发表于 2008-6-15 14:41 | 只看该作者
刚刚完成51上的I2C客户端代码。

22Mhz的51,IO口模拟I2C的速度没有能够达到ARM7提供的400KHz快速模式,在100KHz的标准模式下还是蛮稳定的。

100KHz也够用了,只不过是几个马达而已,太快了也没用。

目前的代码支持从设备的读和写,都是100KHz的。

调试这东西真麻烦,没有示波器,只好用猜的来判断到底是哪里卡住不动了。

[ 本帖最后由 c_nmusic 于 2008-6-15 20:35 编辑 ]

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

182
 楼主| 发表于 2008-6-15 20:33 | 只看该作者
下面还有一个SPI接口的代码,用来和SD卡通讯,记录飞行数据。

不准备用任何文件系统,直接一个扇区一个扇区记录。反正计算机上可以非常方便地按照整个磁盘进行读取。
一个FAT文件系统的解析代码也要好大呢,而且速度还慢。
183
发表于 2008-6-16 22:12 | 只看该作者
我就是指你做板的费用,应该一千多了吧,呵呵

楼主用了几个单片机啊?建议楼主学一下AVR,51太差了,我原来用51,现在都转向AVR,ARM不错,但是用来做控制好像有点不好用。

要是照楼主的方法,SD卡用之前要用软件初始化一下,出厂时都格式化为FAT,如果这时你直接写的话,好像写进去是错的。

[ 本帖最后由 dan_xb 于 2008-6-16 23:23 编辑 ]
184
发表于 2008-6-17 00:26 | 只看该作者
支持!!!楼主太厉害了哈。陀螺的工作输出是什么,是个模拟电压?电压高低==加速度??
能自己玩转ARM的焊接,很牛B哈。
185
 楼主| 发表于 2008-6-17 08:46 | 只看该作者
原帖由 dan_xb 于 2008-6-16 22:12 发表
我就是指你做板的费用,应该一千多了吧,呵呵

楼主用了几个单片机啊?建议楼主学一下AVR,51太差了,我原来用51,现在都转向AVR,ARM不错,但是用来做控制好像有点不好用。

要是照楼主的方法,SD卡用之前 ...


做板费用何止1000啊,3千都有了。主要是开始时拼板被发现,交了2个900块。倒霉啊....

目前就是51和ARM这2种芯片,现在51的任务简单了,只要根据I2C的数据驱动电机就可以了,没有任何导航信息要计算。
我用ARM来做导航计算,只是看重它的浮点性能,而且也只是让它提供I2C数据给51,没有打算直接让ARM来驱动电机。
这是目前的策略,等算法什么的稳定了,我想尝试用AVR来做这2件事呢。51光做驱动有些浪费,ARM在算法简单的情况下做导航计算有些大才小用。
AVR里有完全符合这2种要求的芯片。不过目前还是先这样吧,毕竟我51和ARM用的比较久了,比较熟悉一些。另外也实在不想再从头做板了。

SD卡是这样子,我只打算把它当一个大Flash来用,没有打算使用上面的文件系统。按照Windows认磁盘的方式,只要前面的MBR区数据正确就可以了。
我以前写过三星ARM7的SD卡驱动,用到了第一个分区的寻址计算,了解基本的磁盘格式。我准备数据直接从目录区就开始一个扇区一个扇区的记录下去。到时候让专用程序读取就可以了。
所谓的FAT格式什么的,都是给Windows的文件系统驱动使用的,硬件上可没有管这些。

[ 本帖最后由 c_nmusic 于 2008-6-17 09:19 编辑 ]
186
 楼主| 发表于 2008-6-17 08:48 | 只看该作者
原帖由 碗豆粉 于 2008-6-17 00:26 发表
支持!!!楼主太厉害了哈。陀螺的工作输出是什么,是个模拟电压?电压高低==加速度??
能自己玩转ARM的焊接,很牛B哈。


陀螺仪输出的是模拟电压,电压和基准点之间的压差就是当前的角速度。
LQFP的ARM芯片焊接还是很容易的,244个脚的BGA封装的2410的我都可以手工焊接了,别说这个了。

其实很多时候是工具的问题,如果有一个细头烙铁(烙铁尖端0.5mm的那种),细焊锡丝,再来一小盒焊膏,我觉得是个人就能焊。

感觉焊这个比飞火狐容易多了。

[ 本帖最后由 c_nmusic 于 2008-6-17 09:17 编辑 ]
187
 楼主| 发表于 2008-6-17 15:45 | 只看该作者


上一块板里,有2块板是针对这个AVR的马达电路板的。
用了一片Tiny13A,看看能不能在1K的代码空间里完成I2C的解析和马达的驱动工作。
一共可以驱动3种类型的马达,最简单的单向马达,用三极管驱动的双相马达和用2路MOS驱动的双相马达。

第一次尝试AVR,不知道会有什么结果。

写了一个小程序,控制马达起、停的,还不错。和预想的有些差别,这个芯片IO口上电时都是低电平,不会触动马达误动作。我多加了一个下拉电阻。

[ 本帖最后由 c_nmusic 于 2008-6-17 17:19 编辑 ]
188
发表于 2008-6-17 19:58 | 只看该作者
工程浩大...LZ继续努力..
189
发表于 2008-6-17 23:34 | 只看该作者
越做越复杂了。。。。
190
发表于 2008-6-17 23:40 | 只看该作者
LZ用的陀螺仪不是锁尾的。。。。。。所以缓慢的偏航不好检测
还有给陀螺单独供电,加装屏蔽,是不是会好些?可以试试弄些铝箔包起来吧
191
发表于 2008-6-17 23:43 | 只看该作者
嘿,在想怎么能检测平衡时突然想到,LZ是否可以在直升机脚架上安装个练习架,然后将加速度计安装在脚架的最端上,这样信号干扰也少了,而且加速度也被放大了,不容易出错
呵呵,随便出出主意,有用没用的别笑话
192
 楼主| 发表于 2008-6-18 08:38 | 只看该作者
原帖由 timelight 于 2008-6-17 23:40 发表
LZ用的陀螺仪不是锁尾的。。。。。。所以缓慢的偏航不好检测
还有给陀螺单独供电,加装屏蔽,是不是会好些?可以试试弄些铝箔包起来吧


陀螺仪没有什么锁尾不锁尾之分,我拆过我的0704A看过,用的是完全一样的芯片。锁尾的功能完全要靠代码来实现的。
目前的最大问题就是基准电压的问题,以前陀螺仪和MCU使用同一个电源,所以在电压下降时,陀螺仪输出不会变,但MCU因为基准电压变了,所以数据会测不准。

现在都分开了,而且下面我也要加基准电压芯片。已经实际测试过了,马达工作与否对陀螺仪的数据完全没影响。
193
 楼主| 发表于 2008-6-18 08:39 | 只看该作者
原帖由 timelight 于 2008-6-17 23:43 发表
嘿,在想怎么能检测平衡时突然想到,LZ是否可以在直升机脚架上安装个练习架,然后将加速度计安装在脚架的最端上,这样信号干扰也少了,而且加速度也被放大了,不容易出错
呵呵,随便出出主意,有用没用的别笑话


呵呵,谢谢你的点子。
194
发表于 2008-6-18 10:51 | 只看该作者
我觉得楼主的进度非常快,制版,焊接,编程,都是比较伤神的事,特别是编程!还几种单片机,51,ARM,还用到AVR,小声问一句,楼主每天睡觉不?专业搞研发?
195
 楼主| 发表于 2008-6-18 11:02 | 只看该作者
原帖由 碗豆粉 于 2008-6-18 10:51 发表
我觉得楼主的进度非常快,制版,焊接,编程,都是比较伤神的事,特别是编程!还几种单片机,51,ARM,还用到AVR,小声问一句,楼主每天睡觉不?专业搞研发?


嘿嘿,当你觉得编程是兴趣的时候,就不觉得累了。
我可是每天从晚上10点睡到早晨8点半才起的懒人啊。
196
 楼主| 发表于 2008-6-18 15:07 | 只看该作者

回复 #196 wzyaj 的帖子

以前的帖子里有好多个视频啊。
197
 楼主| 发表于 2008-6-18 22:37 | 只看该作者
看来试图用TinyAVR13来做一个I2C Slave有些问题,这个芯片的内置晶振速度实在太慢了。
AT91SAM7S256的最低输出速度下,用IO口模拟的方法,TinyAVR13都无法不漏地接收到数据,发送8位只能收到2位。

比较郁闷,不过也没觉得意外,本来就是以测试为目地的。
198
 楼主| 发表于 2008-6-20 19:36 | 只看该作者
今天继续试验。

这回把那个车的代码移植到了ARM上,然后都用电池供电,进行实际地测试。

发现这个无线模块简直是“瘟神”。如果把无线模块和ARM接到一起,那么只要一发数据出来,无线模块接受时产生的电压波动就会让ARM死机。没有数据时,这个无线模块也会造成陀螺仪的数据飘来飘去。撤下来就一切正常。

如果放到驱动板上,接收数据到不会把ARM弄死了,不过对陀螺仪的数据影响还是蛮大的。

看来基准电压芯片是没跑了。
199
发表于 2008-6-20 21:39 | 只看该作者

太牛了

开发能力强呀。设计电路+软件方面有一手。
看来有机会被国防部看上。
200
发表于 2008-6-20 23:55 | 只看该作者
继续关注中!
希望能有较完整的成果,供学习哈!!!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

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

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