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

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

让你的DEVO7E升值1000元! 1997楼发布KDS协议支持

  [复制链接]
1961
 楼主| 发表于 2013-5-20 22:26 | 只看该作者
Smartype 发表于 2013-5-20 20:02
谢谢!
我已经弄好了。
只需要一个二极管,接在PC6就够了。

麻烦你发帖说明一下只需要2个二极管的方案。

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

1962
发表于 2013-5-20 22:35 | 只看该作者
gale 发表于 2013-5-20 22:24
这是我的错,最早我是给出PDF的,结果有些朋友打不开,后来我干脆做成XPS了,XPS是微软的格式,只要你用的 ...

有啊!  office2010,现在也解决了 。晚上看到有网友发的网页版教程。 刷上了!
感谢G大!!!!

1963
发表于 2013-5-21 01:27 | 只看该作者
gale 发表于 2013-5-20 22:25
在本帖头两页找找就有答案。

一時眼殘看漏了,已經搞定,謝謝

1964
发表于 2013-5-21 02:06 | 只看该作者
急不及待了... 根據G大2013-5-4所源釋放的源碼,為MINICP加了雙向功能,暫時止止渴

mini_cp.jpg (50.79 KB, 下载次数: 22)

雙向功能

雙向功能
1965
发表于 2013-5-21 03:07 | 只看该作者
顶,期待
1966
发表于 2013-5-21 03:24 | 只看该作者
chengyabcd 发表于 2013-5-20 20:35
我试了一下,和DSM2接收机对比了一下,差别不大,DSM2的形成稍微大一些,在最大行程位置和最小行程位置比 ...

這就是了, 我量了 dsm2 接收, 最最低是 1.05mS 而 Devo RX601 的是 1.11mS, 相差 6%..

問題是最低 1.11mS, 市上很多電調都起動 (arm) 不到 ..

1967
发表于 2013-5-21 08:51 | 只看该作者
gale 发表于 2013-5-20 22:26
麻烦你发帖说明一下只需要2个二极管的方案。

那我拿你的图改一下吧。需要开新帖么?

1968
发表于 2013-5-21 09:05 | 只看该作者
Smartype 发表于 2013-5-21 08:51
那我拿你的图改一下吧。需要开新帖么?

其实就是这样的,把开关上的所有二极管去掉。接一个二极管到PC6上面来,也就是图中灰色的线。



deviation 的patch:
  1. diff -rupN original/src/target/devo7e/capabilities.h new/src/target/devo7e/capabilities.h
  2. --- original/src/target/devo7e/capabilities.h        2013-05-20 17:51:52.000000000 +0800
  3. +++ new/src/target/devo7e/capabilities.h        2013-05-20 17:30:05.000000000 +0800
  4. @@ -7,15 +7,21 @@
  5.    CHANDEF(HOLD1)
  6.    CHANDEF(FMOD0)
  7.    CHANDEF(FMOD1)
  8. +  CHANDEF(AIL_DR0)
  9. +  CHANDEF(AIL_DR1)
  10. +  CHANDEF(AIL_DR2)
  11. +  CHANDEF(ELE_DR0)
  12. +  CHANDEF(ELE_DR1)
  13. +  CHANDEF(ELE_DR2)
  14. #endif

  15. #ifdef UNDEF_INP
  16. #define INP_RUD_DR0 INP_HOLD0
  17. #define INP_RUD_DR1 INP_HOLD1
  18. -#define INP_ELE_DR0 INP_HOLD0
  19. -#define INP_ELE_DR1 INP_HOLD1
  20. -#define INP_AIL_DR0 INP_HOLD0
  21. -#define INP_AIL_DR1 INP_HOLD1
  22. +//#define INP_ELE_DR0 INP_HOLD0
  23. +//#define INP_ELE_DR1 INP_HOLD1
  24. +//#define INP_AIL_DR0 INP_HOLD0
  25. +//#define INP_AIL_DR1 INP_HOLD1
  26. #define INP_FMOD2  INP_FMOD1
  27. #define INP_MIX0   INP_FMOD0
  28. #define INP_MIX1   INP_FMOD1
  29. diff -rupN original/src/target/devo7e/channels.c new/src/target/devo7e/channels.c
  30. --- original/src/target/devo7e/channels.c        2013-05-20 17:51:52.000000000 +0800
  31. +++ new/src/target/devo7e/channels.c        2013-05-20 17:30:05.000000000 +0800
  32. @@ -40,6 +40,7 @@ void CHAN_Init()
  33.      gpio_set(GPIOC, GPIO10 | GPIO11);
  34. }

  35. +extern u32 glbl_buttons;
  36. s32 CHAN_ReadRawInput(int channel)
  37. {
  38.      s32 value = 0;
  39. @@ -52,6 +53,16 @@ s32 CHAN_ReadRawInput(int channel)
  40.      case INP_HOLD1:    value = ! gpio_get(GPIOC, GPIO11); break;
  41.      case INP_FMOD0:    value = gpio_get(GPIOC, GPIO10); break;
  42.      case INP_FMOD1:    value = ! gpio_get(GPIOC, GPIO10); break;
  43. +
  44. +    case INP_AIL_DR0:  value = !!(glbl_buttons & (1 << 0)); break;
  45. +    case INP_AIL_DR1:  value = (!(glbl_buttons & (1 << 0)))
  46. +                       && (!(glbl_buttons & (1 << 1))); break;
  47. +    case INP_AIL_DR2:  value = !!(glbl_buttons & (1 << 1)); break;
  48. +
  49. +    case INP_ELE_DR0:  value = !!(glbl_buttons & (1 << 2)); break;
  50. +    case INP_ELE_DR1:  value = (!(glbl_buttons & (1 << 2)))
  51. +                       && (!(glbl_buttons & (1 << 3))); break;
  52. +    case INP_ELE_DR2:  value = !!(glbl_buttons & (1 << 3)); break;
  53.      }
  54.      return value;
  55. }
  56. diff -rupN original/src/target/devo7e/tx_buttons.c new/src/target/devo7e/tx_buttons.c
  57. --- original/src/target/devo7e/tx_buttons.c        2013-05-20 17:51:52.000000000 +0800
  58. +++ new/src/target/devo7e/tx_buttons.c        2013-05-20 17:30:05.000000000 +0800
  59. @@ -30,6 +30,8 @@ static const u8 buttonmap[] = {
  60. #define ROW_PORT GPIOC


  61. +#define GALEE_STYLE_KEYS 1
  62. +
  63. void Initialize_ButtonMatrix()
  64. {
  65.    /* Enable AFIO */
  66. @@ -38,22 +40,24 @@ void Initialize_ButtonMatrix()
  67.    /* Remap GPIO_Remap_SWJ_JTAGDisable */
  68.    AFIO_MAPR |= AFIO_MAPR_SWJ_CFG_JTAG_OFF_SW_ON;

  69. -  /* Enable GPIOB & GPIOE */
  70. +  /* Enable GPIOB & GPIOC */
  71.    rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPBEN);
  72.    rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPCEN);

  73.    /* PortB 5, 6, 7, 8 are open-drain output */
  74. -  gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ,
  75. -                GPIO_CNF_OUTPUT_PUSHPULL, GPIO5 | GPIO6 | GPIO7 | GPIO8);
  76. -
  77. -  gpio_set(GPIOB, GPIO5 | GPIO6| GPIO7 | GPIO8);
  78. +#ifdef GALEE_STYLE_KEYS
  79. +  gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO5 | GPIO6 | GPIO7 | GPIO8);
  80. +#else
  81. +  gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO5 | GPIO6 | GPIO7 | GPIO8);
  82. +#endif
  83. +  gpio_set(GPIOB, GPIO5 | GPIO6 | GPIO7 | GPIO8);

  84.    /* PortC 6-9 are pull-up inputs */
  85. -  gpio_set_mode(GPIOC, GPIO_MODE_INPUT,
  86. -                GPIO_CNF_INPUT_PULL_UPDOWN, GPIO6 | GPIO7 | GPIO8 | GPIO9);
  87. +  gpio_set_mode(GPIOC, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO6 | GPIO7 | GPIO8 | GPIO9);
  88.    gpio_set(GPIOC, GPIO6 | GPIO7 | GPIO8 | GPIO9);
  89. }

  90. +u32 glbl_buttons = 0;
  91. u32 ScanButtons()
  92. {
  93.      u8 idx = 0;
  94. @@ -71,5 +75,24 @@ u32 ScanButtons()
  95.              idx++;
  96.          }
  97.      }
  98. -    return result;
  99. +    if (! (result & 0x0FFFFFFF)) {
  100. +#ifdef GALEE_STYLE_KEYS
  101. +        gpio_set_mode(ROW_PORT, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_OPENDRAIN, GPIO6);
  102. +#else
  103. +        gpio_set_mode(GPIOB, GPIO_MODE_INPUT,GPIO_CNF_INPUT_PULL_UPDOWN, GPIO5 | GPIO6 | GPIO7 | GPIO8);
  104. +        gpio_set_mode(ROW_PORT, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO6);
  105. +#endif
  106. +        gpio_clear(ROW_PORT, GPIO6);
  107. +        glbl_buttons = (~(gpio_port_read(COL_PORT) >> 5)) & 0xf;
  108. +
  109. +#ifdef GALEE_STYLE_KEYS
  110. +        gpio_set_mode(ROW_PORT, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO6);
  111. +#else
  112. +        gpio_set_mode(ROW_PORT, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO6);
  113. +        gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO5 | GPIO6 | GPIO7 | GPIO8);
  114. +#endif
  115. +        gpio_set(ROW_PORT, GPIO6);
  116. +    }
  117. +
  118. +    return result & 0x0FFFFFFF;
  119. }
复制代码



1969
发表于 2013-5-21 09:06 | 只看该作者
chengyabcd 发表于 2013-5-20 20:49
能不能画出接线原理图?谢谢了。
你的头像是飞控板?

自己焊的MWC

1970
 楼主| 发表于 2013-5-21 09:25 | 只看该作者
photon88 发表于 2013-5-21 02:06
急不及待了... 根據G大2013-5-4所源釋放的源碼,為MINICP加了雙向功能,暫時止止渴

非常感谢!
1971
 楼主| 发表于 2013-5-21 09:36 | 只看该作者
Smartype 发表于 2013-5-21 08:51
那我拿你的图改一下吧。需要开新帖么?

这个随意,但最好是拍你自己的实物照片,然后我给补到改装文档里面,你看怎么样?

1972
发表于 2013-5-21 09:49 | 只看该作者
gale 发表于 2013-5-21 09:36
这个随意,但最好是拍你自己的实物照片,然后我给补到改装文档里面,你看怎么样?

已经回复了,论坛说在审核。实物改成了四个
因为开始有干扰,后来发现是代码的问题。就没有改回去了。

1973
发表于 2013-5-21 09:52 | 只看该作者
gale 发表于 2013-5-21 09:36
这个随意,但最好是拍你自己的实物照片,然后我给补到改装文档里面,你看怎么样?

回复出来了。

1974
发表于 2013-5-21 10:32 | 只看该作者
又见一个代码高手,顶上!
1975
发表于 2013-5-21 12:36 | 只看该作者
cmpang 发表于 2013-5-21 03:24
這就是了, 我量了 dsm2 接收, 最最低是 1.05mS 而 Devo RX601 的是 1.11mS, 相差 6%..

問題是最低 1.1 ...

能把您的RX701裸一下看看吗?
我的RX601还没上机试过。

1976
发表于 2013-5-21 13:44 | 只看该作者
gale 发表于 2013-3-14 10:06
这是老外论坛的截图,先焊下金属屏蔽罩,然后把图中圈圈那个器件(一说是二极管,其实是电阻)两端短 ...

gale好,短接后1.1KM的距离用的是什么接收机呢?在线等回复

1977
发表于 2013-5-21 13:46 | 只看该作者
gale 发表于 2013-3-14 10:06
这是老外论坛的截图,先焊下金属屏蔽罩,然后把图中圈圈那个器件(一说是二极管,其实是电阻)两端短 ...

用山寨的AR6100e有多少距离呢?
1978
发表于 2013-5-21 13:47 | 只看该作者
chengyabcd 发表于 2013-5-21 12:36
能把您的RX701裸一下看看吗?
我的RX601还没上机试过。

如果你有示波器或舵脈沖顯示器,就可量一下實際的輸出範圍..

更直接的方法是接上好盈電調,看看能否解鎖 (arm).

1979
发表于 2013-5-21 14:14 | 只看该作者
gale 发表于 2013-5-21 09:25
非常感谢!

不用客氣,多謝你的給力貢獻才對.^^ 經過分析,其實搞雙向給某一台直昇機是較簡單的,但要做到通用性,支援不同品牌和型號的接收,就很費時...
1980
发表于 2013-5-21 15:37 | 只看该作者
我遇到新问题了,用dms2原装接收机可以对码,山寨的dms2都对不了,不管是以前我用过的山寨dms2接收或者是刚开封的新的,都不能对码。真是怪事。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

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

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