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

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

将AR.Drone四轴DIY进行到底!

[复制链接]
241
发表于 2010-12-16 08:13 | 只看该作者
深切关注楼主的进展才注册了这个号。

尤其关心的是,GPS加装以后的实际效果。另外,超声波测量高度在地面骤然改变的情况下,飞行器的表现如何?比如,普通地面飞到桌面上,老大是否发现飞行器会猛然升高。有网友说遇到了这个问题。此外,这个公司说是将来可能会开放接口,这样可以很方便地加GPS和外置处理设备。链接如下:
https://projects.ardrone.org/boards/1/topics/show/12

另外,Amazon上看到有厂家为该机器提供了2800mA的电池,据宣传是针对这款机器设计的。而又注意到有人在外文论坛上提到,这款机器在飞行一段时间之后,发热比较严重,所以怀疑是否使用飞行太久会把相关部件烧毁?不知道官方标配1000mA的电池是否是基于这种考虑。能否老大说一下自己的看法。

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

242
发表于 2010-12-18 22:57 | 只看该作者
顶贴
243
发表于 2010-12-22 18:54 | 只看该作者
楼主不要停止啊,继续啊,等你的好消息
244
发表于 2010-12-25 20:44 | 只看该作者
神贴不能沉~我顶~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
245
发表于 2010-12-28 17:21 | 只看该作者
看了楼主的英雄帖,一直有一个很大的疑问,那就是做出这个东西有啥用吗?除了娱乐还有什么商业价值吗?
246
发表于 2010-12-31 11:16 | 只看该作者
那你说!其他的有啥商业价值??
247
 楼主| 发表于 2011-1-1 15:54 | 只看该作者
今天是2011年第1天.
新年放假了, 又有时间DIY了 ...

先运行"gpio 127 -d i", 再装入dwc_otg.ko驱动后, AR.Drone可以识别USB SD读卡器和华为的"天翼"USB 3G模块了.
并且AR.Drone USB口的VBUS针脚能输出+5V电源了!  ---- 大进步!

插入USB SD读卡器后的demsg:

  1. [  718.828751] dwc_otg: version 2.70a-parrot 22/03/2009
  2. [  718.829005] DWC_otg: info->ctrl_mode = 2, info->vbus_detection = 0
  3. [  718.829042] DWC_otg: MAPGPS: Force Host Mode: ctrl_mode = 1
  4. [  718.829442] DWC_otg: before dwc_otg_core_init(): ctrl_mode = 1
  5. [  718.829471] DWC_otg: IN dwc_otg_core_init(): ctrl_mode = 1
  6. [  718.829493] DWC_otg: DWC_OTG_HOST_ONLY
  7. [  719.046786] DWC_otg: OUT dwc_otg_core_init(): ctrl_mode = 1
  8. [  719.046816] DWC_otg: Host Mode
  9. [  719.046836] DWC_otg: after dwc_otg_core_init(): ctrl_mode = 1
  10. [  719.046858] DWC_otg: dwc_otg_hcd_init()
  11. [  719.046875] DWC_otg: Using DMA mode
  12. [  719.046892] DWC_otg: Device using Buffer DMA mode
  13. [  719.046945] dwc_otg dwc_otg.0: DWC OTG Controller
  14. [  719.068710] /home/aferran/.ardrone/linux/ARDrone_Version_20100921_1_3/Linux/k
  15. ernel/linux/drivers/usb/core/inode.c: creating file 'devices'
  16. [  719.068790] /home/aferran/.ardrone/linux/ARDrone_Version_20100921_1_3/Linux/k
  17. ernel/linux/drivers/usb/core/inode.c: creating file '001'
  18. [  719.102811] dwc_otg dwc_otg.0: new USB bus registered, assigned bus number 1
  19. [  719.102910] dwc_otg dwc_otg.0: irq 29, io mem 0x00000000
  20. [  719.102990] DWC_otg: Init: Power Port (0)
  21. [  719.103120] usb usb1: default language 0x0409
  22. [  719.103993] usb usb1: uevent
  23. [  719.138860] usb usb1: usb_probe_device
  24. [  719.138903] usb usb1: configuration #1 chosen from 1 choice
  25. [  719.138982] usb usb1: adding 1-0:1.0 (config #1, interface 0)
  26. [  719.139204] usb 1-0:1.0: uevent
  27. [  719.153812] hub 1-0:1.0: usb_probe_interface
  28. [  719.153850] hub 1-0:1.0: usb_probe_interface - got id
  29. [  719.153874] hub 1-0:1.0: USB hub found
  30. [  719.153990] hub 1-0:1.0: 1 port detected
  31. [  719.154011] hub 1-0:1.0: standalone hub
  32. [  719.154030] hub 1-0:1.0: ganged power switching
  33. [  719.154051] hub 1-0:1.0: individual port over-current protection
  34. [  719.154078] hub 1-0:1.0: power on to power good time: 2ms
  35. [  719.154128] hub 1-0:1.0: local power source is good
  36. [  719.154154] hub 1-0:1.0: enabling power on all ports
  37. [  719.259418] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0000
  38. [  719.309155] /home/aferran/.ardrone/linux/ARDrone_Version_20100921_1_3/Linux/k
  39. ernel/linux/drivers/usb/core/inode.c: creating file '001'
  40. [  719.320102] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
  41. [  719.320142] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
  42. [  719.320170] usb usb1: Product: DWC OTG Controller
  43. [  719.320192] usb usb1: Manufacturer: Linux 2.6.27.47-parrot dwc_otg_hcd
  44. [  719.320217] usb usb1: SerialNumber: dwc_otg.0
  45. [  719.320307] DWC_otg: MAPGPS: overcurrent_pin = 89
  46. [  719.320331] DWC_otg: MAPGPS: force overcurrent_pin = 0 to avoid Oops
  47. [  848.745355] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
  48. [  848.745447] hub 1-0:1.0: port 1, status 0101, change 0001, 12 Mb/s
  49. [  848.906794] hub 1-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101
  50. [  848.963968] hub 1-0:1.0: port 1 not reset yet, waiting 50ms
  51. [  849.096294] usb 1-1: new high speed USB device using dwc_otg and address 2
  52. [  849.154015] hub 1-0:1.0: port 1 not reset yet, waiting 50ms
  53. [  849.317378] usb 1-1: default language 0x0409
  54. [  849.321207] usb 1-1: uevent
  55. [  849.338086] usb 1-1: usb_probe_device
  56. [  849.338129] usb 1-1: configuration #1 chosen from 1 choice
  57. [  849.338730] usb 1-1: adding 1-1:1.0 (config #1, interface 0)
  58. [  849.338996] usb 1-1:1.0: uevent
  59. [  849.362278] usb-storage 1-1:1.0: usb_probe_interface
  60. [  849.362376] usb-storage 1-1:1.0: usb_probe_interface - got id
  61. [  849.362403] usb-storage: USB Mass Storage device detected
  62. [  849.362697] usb-storage: -- associate_dev
  63. [  849.362731] usb-storage: Vendor: 0x090c, Product: 0x6200, Revision: 0x0100
  64. [  849.362758] usb-storage: Interface Subclass: 0x06, Protocol: 0x50
  65. [  849.362832] usb-storage: Transport: Bulk
  66. [  849.362853] usb-storage: Protocol: Transparent SCSI
  67. [  849.374232] scsi0 : SCSI emulation for USB Mass Storage devices
  68. [  849.375110] usb-storage: *** thread sleeping.
  69. [  849.391717] usb-storage: device found at 2
  70. [  849.391747] usb-storage: waiting for device to settle before scanning
  71. [  849.445526] /home/aferran/.ardrone/linux/ARDrone_Version_20100921_1_3/Linux/k
  72. ernel/linux/drivers/usb/core/inode.c: creating file '002'
  73. [  849.474452] usb 1-1: New USB device found, idVendor=090c, idProduct=6200
  74. [  849.474504] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  75. [  849.474532] usb 1-1: Product: Generic USB2.0 card
  76. [  849.474554] usb 1-1: Manufacturer: Silicon Motion, Inc.
  77. [  849.474576] usb 1-1: SerialNumber: 12345678901234567890
  78. [  849.474608] hub 1-0:1.0: state 7 ports 1 chg 0000 evt 0002
  79. [  849.474691] hub 1-0:1.0: port 1 enable change, status 00000503
  80. [  854.387320] usb-storage: usb_stor_control_msg: rq=fe rqtype=a1 value=0000 index=00 len=1
  81. [  854.387730] usb-storage: GetMaxLUN command result is 1, data is 0
  82. [  854.390882] usb-storage: queuecommand called
  83. [  854.390951] usb-storage: *** thread awakened.
  84. [  854.390980] usb-storage: Command INQUIRY (6 bytes)
  85. [  854.390999] usb-storage:  12 00 00 00 24 00
  86. [  854.391058] usb-storage: Bulk Command S 0x43425355 T 0x1 L 36 F 128 Trg 0 LUN 0 CL 6
  87. [  854.391088] usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
  88. [  854.391670] usb-storage: Status code 0; transferred 31/31
  89. [  854.391695] usb-storage: -- transfer complete
  90. [  854.391716] usb-storage: Bulk command transfer result=0
  91. [  854.391742] usb-storage: usb_stor_bulk_transfer_sglist: xfer 36 bytes, 1 entries
  92. [  854.393170] usb-storage: Status code -121; transferred 36/36
  93. [  854.393195] usb-storage: -- short read transfer
  94. [  854.393217] usb-storage: Bulk data transfer result 0x1
  95. [  854.393237] usb-storage: Attempting to get CSW...
  96. [  854.393260] usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
  97. [  854.393639] usb-storage: Status code 0; transferred 13/13
  98. [  854.393662] usb-storage: -- transfer complete
  99. [  854.393682] usb-storage: Bulk status result = 0
  100. [  854.393707] usb-storage: Bulk Status S 0x53425355 T 0x1 R 0 Stat 0x0
  101. [  854.393737] usb-storage: scsi cmd done, result=0x0
  102. [  854.394000] scsi 0:0:0:0: Direct-Access     Generic  USB  SD Reader   1.00 PQ: 0 ANSI: 0 CCS
复制代码



插入华为"天翼"USB 3G模块后的dmesg:

  1. [ 2773.284070] usb 1-1: New USB device found, idVendor=12d1, idProduct=1001
  2. [ 2773.284112] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=4
  3. [ 2773.284140] usb 1-1: Product: HUAWEI Mobile
  4. [ 2773.284160] usb 1-1: Manufacturer: HUA?WEI TECHNOLOGIES
复制代码


USB设备是识别出来, 但还需进一步挂上相应的驱动程序.

AR.Drone USB口的VBUS针脚能输出+5V电源了, 所以接GPS模块时不再需要那个 12V/5V 电压转换模块了, 接线看上去也清爽了许多:
248
发表于 2011-1-1 20:48 | 只看该作者
关注
249
发表于 2011-1-1 20:56 | 只看该作者
哈哈~终于又看到更新啦~看来我今天上来是对的!哈哈哈~加油吧
250
发表于 2011-1-1 23:01 | 只看该作者
看了以后 先是无尽的佩服 然后是无尽的自愧不如~
251
 楼主| 发表于 2011-1-1 23:14 | 只看该作者
加载模块sd_mod.ko后, 可以在AR.Drone上看到小U盘(32MB)的分区了:

  1. # fdisk -l
  2. Disk /dev/sda: 32 MB, 32112640 bytes
  3. 255 heads, 63 sectors/track, 3 cylinders
  4. Units = cylinders of 16065 * 512 = 8225280 bytes

  5.    Device Boot      Start         End      Blocks  Id System
  6. /dev/sda1               1           1        8001   1 FAT12
  7. /dev/sda2               2           3       16065   1 FAT12
复制代码


还需加载支持FAT文件系统模块就能mount上看U盘内容了, 但遇到符号依赖问题:

  1. [ 3551.010029] fat: Unknown symbol utf8_wcstombs
  2. [ 3551.033744] fat: Unknown symbol load_nls
  3. [ 3551.050960] fat: Unknown symbol unload_nls
复制代码

再继续编译内核/模块 ...
252
 楼主| 发表于 2011-1-2 21:15 | 只看该作者
编译加载模块nls_base.ko后, 解决了前面碰到的符号依赖问题.
AR.Drone成功地读出了U盘里的文件!

所有加载的模块:

  1. # lsmod
  2. Module                  Size  Used by    Tainted: G
  3. vfat                   10432  1
  4. dwc_otg                71820  0
  5. sd_mod                 23508  2
  6. fat                    46364  1 vfat
  7. nls_iso8859_1           4096  1
  8. nls_cp437               5760  1
  9. nls_utf8                1888  0
  10. nls_base                7040  5 vfat,fat,nls_iso8859_1,nls_cp437,nls_utf8
  11. p6_sdhci                3588  0
复制代码



访问32MB小U盘:

  1. # fdisk -l
  2. Disk /dev/sda: 32 MB, 32112640 bytes
  3. 255 heads, 63 sectors/track, 3 cylinders
  4. Units = cylinders of 16065 * 512 = 8225280 bytes
  5.    Device Boot      Start         End      Blocks  Id System
  6. /dev/sda1               1           1        8001   1 FAT12
  7. /dev/sda2               2           3       16065   1 FAT12
  8. # mount /dev/sda1 /mnt
  9. # mount /dev/sda2 /mnt2
  10. # df -k
  11. Filesystem           1K-blocks      Used Available Use% Mounted on
  12. ubi1:system              12268      6224      5380  54% /
  13. tmp                      63036       300     62736   0% /tmp
  14. dev                      63036         0     63036   0% /dev
  15. ubi0:factory              4928        40      4600   1% /factory
  16. ubi2:update              13532        28     12780   0% /update
  17. ubi2:data                69152     53348     12236  81% /data
  18. /dev/sda1                 7968      7124       844  89% /mnt
  19. /dev/sda2                16032      2808     13224  18% /mnt2
  20. # cd /mnt2
  21. # ls -l
  22. -rwxr-xr-x    1 root     root       896291 Jan  1 00:12 dwc_otg.ko
  23. -rwxr-xr-x    1 root     root       293443 Jan  1 00:12 ehci-hcd.ko
  24. -rwxr-xr-x    1 root     root       570989 Jan  1 00:12 fat.ko
  25. -rwxr-xr-x    1 root     root        79387 Jan  1 00:12 nls_base.ko
  26. -rwxr-xr-x    1 root     root        69786 Jan  1 00:12 nls_cp437.ko
  27. -rwxr-xr-x    1 root     root        67816 Jan  1 00:12 nls_iso8859-1.ko
  28. -rwxr-xr-x    1 root     root        65176 Jan  1 00:12 nls_utf8.ko
  29. -rwxr-xr-x    1 root     root       185902 Jan  1 00:12 sd_mod.ko
  30. -rwxr-xr-x    1 root     root       145423 Jan  1 00:12 sierra.ko
  31. -rwxr-xr-x    1 root     root       346378 Jan  1 00:12 usbserial.ko
  32. -rwxr-xr-x    1 root     root       132252 Jan  1 00:12 vfat.ko
复制代码



访问2GB U盘, 拷贝了个文件还挺快的:

  1. # fdisk -l
  2. Disk /dev/sda: 2063 MB, 2063597568 bytes
  3. 16 heads, 32 sectors/track, 7872 cylinders
  4. Units = cylinders of 512 * 512 = 262144 bytes
  5.    Device Boot      Start         End      Blocks  Id System
  6. /dev/sda1               1        7872     2015216   b Win95 FAT32
  7. # mount /dev/sda1 /mnt
  8. # df -k
  9. Filesystem           1K-blocks      Used Available Use% Mounted on
  10. ubi1:system              12268      6224      5380  54% /
  11. tmp                      63036       348     62688   1% /tmp
  12. dev                      63036         0     63036   0% /dev
  13. ubi0:factory              4928        40      4600   1% /factory
  14. ubi2:update              13532        28     12780   0% /update
  15. ubi2:data                69152     53348     12236  81% /data
  16. /dev/sda1              2011268   1873252    138016  93% /mnt
  17. # cd /mnt
  18. # ls -l
  19. drwxr-xr-x    4 root     root         4096 Dec 21  2010 - BACKUP -
  20. drwxr-xr-x    2 root     root         4096 Mar  9  2009 - HOMEWORK -
  21. drwxr-xr-x    2 root     root         4096 Jun  4  2009 - MUSIC -
  22. drwxr-xr-x    2 root     root         4096 Mar 14  2008 - VIDEO -
  23. -rwxr-xr-x    1 root     root        49288 Dec 14  2010 NORBOTE_V2.jpg
  24. -rwxr-xr-x    1 root     root      2568594 May 29  2010 packets.pcap
  25. -rwxr-xr-x    1 root     root      1993186 Jun  6  2010 packets2.pcap
  26. drwxr-xr-x    3 root     root         4096 Sep 29  2010 recycler
  27. -rwxr-xr-x    1 root     root        40484 Sep 18  2010 theV.jpg
  28. # cp packets.pcap /data
  29. # ls -l /data/p*
  30. -rwxr-xr-x    1 root     root      2568594 Jan  1 00:20 /data/packets.pcap
复制代码
253
发表于 2011-1-2 21:57 | 只看该作者

回复 252楼 mapgps 的帖子

mapgps大侠,我现在也想改装,但基础太差,arm还不懂多少。我想问个问题,不用wifi,怎么样能控制ar.drone, 是直接在机载linux下编程给自己的网络发送控制数据吗?
254
发表于 2011-1-2 22:06 | 只看该作者
今天我的ARDrone飞的时候发生了奇怪的事情:
  电池加装上后,马达从四个红灯,连上信号后转为四个绿灯时一切正常,启动按钮按后四个灯全部消失,反复这样2次,怀疑是电池原因,IPOD上显示的红色警告经古狗网页翻译是:"电机紧急",具体英文记不住了.换了另一块电池正常起飞.最后我再次安装刚刚那块电池,发现四个马达灯只有2个亮着,一红一绿,其它2个灯不亮,按动启动钮,AR没反映,正在纳闷,AR突然启动,紧急制动发觉信号反映很慢,还好我手正拉着AR,不然它拼命往上飞,10几秒后才收到停止信号.......,不知道何故?
后来反省可能原因:(1)当时IPOD电量不高,最后已经报低了(20%),是否有影响?    (2)AR突然启动后在我手里拼命往上飞,是否因为我的手心挡着AR底部摄像头的缘故?

最后怀疑这块随机配送的原装电池是否有问题,100%电量,一个起飞就到跌到80%,然后迅速跌到45%(大该2~3分钟内),大约在45%~17%之间会撑很久,几乎占总飞行时间80%,17%~0%一般在2~3分钟内完成
255
发表于 2011-1-2 22:06 | 只看该作者
补充一下:AR到手5天.
256
发表于 2011-1-2 22:10 | 只看该作者
还有我想问下,IPAD TOUCH和IPAD,哪个来做控制好?信号功率和软件运行顺畅程度及电池持久力?我现在没有IPAD,但发觉TOUCH有时候会反映偏慢
257
 楼主| 发表于 2011-1-2 22:15 | 只看该作者
原帖由 vcmman 于 2011-1-2 21:57 发表
mapgps大侠,我现在也想改装,但基础太差,arm还不懂多少。我想问个问题,不用wifi,怎么样能控制ar.drone, 是直接在机载linux下编程给自己的网络发送控制数据吗?

是的, 写个ARM Linux程序在AR.Drone上运行, 向本地UDP端口5556发送AT控制命令, 可实现AR.Drone自主飞行(UAV).
你可从HelloWorld程序开练, 参考本贴老楼:
http://bbs.5imx.com/bbs/viewthread.php?tid=415063&page=5&fromuid=10273#pid5425290
258
 楼主| 发表于 2011-1-2 22:22 | 只看该作者
原帖由 英俊 于 2011-1-2 22:10 发表
还有我想问下,IPAD TOUCH和IPAD,哪个来做控制好?信号功率和软件运行顺畅程度及电池持久力?我现在没有IPAD,但发觉TOUCH有时候会反映偏慢

我没IPAD, 也没iPhone. 我是用笔记本PC在Windows XP下用自写的Java程序控制AR.Drone的.
259
发表于 2011-1-3 09:16 | 只看该作者
严重的支持一下!
260
发表于 2011-1-3 12:06 | 只看该作者

回复 257楼 mapgps 的帖子

哦 知道了 呵呵 顶贴!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

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

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