Robofun 機器人論壇

標題: [求救]電流超過 10A ?(確定是電壓太低發生OS不穩,已經解決~) [打印本頁]

作者: tommylin    時間: 2010-3-1 15:35
標題: [求救]電流超過 10A ?(確定是電壓太低發生OS不穩,已經解決~)
本帖最後由 tommylin 於 2010-7-8 23:34 編輯

Hi 大大們~
我再 Roboard 上接了 16 顆 Hitec 8498 Servo
全部一起動作時... 瞬間關機..

後來發現是電源供應器輸出電流太小...
請問我可以朝哪個方向處理呢?
謝謝~
作者: lucrece_lu    時間: 2010-3-1 15:58
你是供多少電呀!18 顆一起動 不會有問題呀
作者: mzw2008    時間: 2010-3-1 15:59
出力太小喔
買顆大一點的電源啊
我有5V / 20A的電源喔 (都是你..害我又廣告了)
或是你可以"很多組" 6V 的電池"並聯"  
但得注意別用鋰電, 多組並聯很容易爆炸...我上個月才炸掉一組
鋰電因為活性強... 電壓只要稍有差異, 電流又強的情形下很容易出事
建議這可以用鎳氫電池組會比較安全 , 且模型店很容易買到喔
作者: mzw2008    時間: 2010-3-1 16:03
或是另外使用SERVO控制板
像我有自己做32軸的版本
分兩組各16個SERVO供電, 這樣也比較不會掛掉
大型的電源消耗並不適合直接使用roboard實做喔, 燒掉你就事情大條了
之前我才有個客戶弄到溫度過高爆掉Roboard上面接的VGA卡
當時的電流估計約是搞到17A左右 , 天曉得他到底是怎麼接的@@
作者: tommylin    時間: 2010-3-1 16:46
本帖最後由 tommylin 於 2010-3-1 16:47 編輯

我是輸入 6V,
本來電源供應器限制輸出在 5A,
之前都只有接上一個 Servo 都正常...
昨天把 18顆全部裝上...
但是只要一執行 REPLAYS 的命令... ( 全部 Servo 動作, 播放 Frames ..)
系統就自動重新開機...
我把輸出電流調到最大 10A ... 可以看到電源供應器顯示瞬間輸出 10A,
Servo 動了一點點角度以後..
系統就重新開機了...
作者: tommylin    時間: 2010-3-1 16:52
本帖最後由 tommylin 於 2010-3-1 16:54 編輯

我的電源是 AC 110V to DC 0~12V
還沒有測試過用電池...
我想問一下...
1. Kondo 走路的時候, 消耗總電流多少?
2. RB-100 建議輸出電流 Max 多少?
3. 真的需要像 鯨魚大說的~ 要外接電源嗎...
這樣機器人變重也變肥了 = = 哈哈~
謝謝~
作者: mzw2008    時間: 2010-3-1 18:37
我哪有說外接電源, 這是你自己講的哩, 機器人真的在用也不可能外接電源啊
牽一條線在那邊走很好笑哩
我是說可能多幾組電池並聯
不然就是單一組鋰電, 反正鋰電本來就可以高電流放電

說實話我沒試過這麼多顆一起接roboard , 也不曉得他有這種極限
通常我都是透過另外的servo控制板去控制SERVO, 控制板沒這個問題
roboard主要被我拿來做影像處理的部分
這部分可能得要請安東尼老大來解惑了
看來應是瞬間大電流導致roboard電源不穩而重開
作者: lucrece_lu    時間: 2010-3-1 18:50
我的電源是 AC 110V to DC 0~12V
還沒有測試過用電池...
我想問一下...
1. Kondo 走路的時候, 消耗總電 ...
tommylin 發表於 2010-3-1 16:52


1. Kondo 走路時到底用多少 我沒有實際量過! 但我是用 12v 4a 的變壓器來接
2. 輸出電流 建議是 10A 超過的沒有試過

你是用變壓器 還是用電源供應器 呀!
作者: tommylin    時間: 2010-3-1 19:17
本帖最後由 tommylin 於 2010-3-1 19:24 編輯

我用的是..."電源供應器"
等一下貼照片, 影片上來..麻煩大家幫我查原因..

我說的"外接電源" 是指~
RB-100 和 Servo 的電源分開..
像 Arduino 一樣,
主控制板 和 Servo 的電源分離..
抱歉~ 我沒說明清楚...
作者: miaoichi    時間: 2010-3-1 20:09
其實~~用電池就沒問題了~~
因為你開電時,會有瞬間電流~~供應器是用RC充放電,
所以瞬間電流都被吸光了~~就會來不及充滿,我以前就有
遇過~~~供應器不能這樣用~~尤其是大電流~~
作者: mzw2008    時間: 2010-3-1 20:24
啊....所以是電容的問題喔, 又增廣見聞了
所以即使我用可以供應20A的電源供應器也是會掛掉喔??

這個問題不曉得使用DC converter可不可以解決
不過這樣應該就沒問題了吧
因為應該是沒人會拿電源供應器來控制機器人才對
作者: sean1223    時間: 2010-3-1 21:07
一般變壓器( < 6A )玩 KONDO 可能不太穩, 如果你要同使驅動17 顆馬達的話.
我是用一顆 11.1V 25C 1300mAh 的鋰聚玩 KONDO.
有想過並聯兩顆鋰聚, 可以玩久一點, 但剛看到鯨大說很危險, 就不想試了 XD
作者: miaoichi    時間: 2010-3-1 21:27
其實不會,你要去買5CELL的6V專用電池,就不會有問題,
我的六足玩到現在,沒有問題過~~~

DC converter一定可以,只是你要把它搞"大"一點,我也
沒意見~~
作者: mzw2008    時間: 2010-3-1 21:56
鋰聚會危險主要是因為兩顆電壓不同(我用到爆炸就是這樣)
會因為鋰電本身活性比較高, 會有從一顆充電到另外一顆導致電流過大過熱的問題而爆炸
如果你買兩顆一樣的, 並且兩顆從頭到尾都並聯就應該不會有問題
且得要確實遵守充放電規矩, 不要過充過放
這可是我玩到爆炸以後到處找資料的心得啊

不然你可以考慮買大顆的鋰聚, 有賣那種4000mAH的, 保證玩到爽了
但用大顆又會變重...
其實要玩久一點建議插電線, 用變壓器

DC converter 可以有任何對應規格
只是... 很貴就是, 動不動就是幾千的, 直接用充電電池比較省錢哩
作者: rayrider    時間: 2010-3-1 22:04
本帖最後由 rayrider 於 2010-3-1 22:06 編輯

用五顆鎳氫電池保證ok,最好並連個電容6600uf以上。
作者: tommylin    時間: 2010-3-1 22:40
Hi ALL,
先感謝大家幫忙分析和建議..
先報告測試進度...

我現在使用 鎳氫電池 AA, 2450mAh,  6 CELL ( 1.2 V x 6 = 7.2 V )
還是一樣自動重新開機..
目前還沒有結論, 確定問題的癥結~
我會繼續測試..
作者: miaoichi    時間: 2010-3-1 22:59
那你慢慢增加一個servo,測試
或是你有電流計,算一下,是不是真的過電流導致重開機的。
作者: mzw2008    時間: 2010-3-1 23:45
所謂的分開供電得要
1. 電池出來的地 , 分別接到"所有SERVO的地"和板子的地
2. 電池的VCC, 分別接到"所有SERVO的VCC"和板子的VCC (最好是使用兩組電池)
3. Servo的S接到板子...

不過看來似乎還是有大電流衝突到roboard
是否把接線的方式或是照片分享來看看是怎麼回事呢?
作者: tommylin    時間: 2010-3-2 00:29
本帖最後由 tommylin 於 2010-3-2 00:31 編輯

等等喔~ 最大電流約 6.2A
影片如下:
[youtube]hH-xjQMjnKQ[/youtube]
看來自動重新開機有可能是 "程式 Bug",
因為影片中沒有發生..
我需要在查一下, 確認一下...
會盡快回報結果給大家..
作者: mzw2008    時間: 2010-3-2 20:46
哈哈^^
這什麼東西啊
看起來是一台跌倒的傢伙在那邊掙扎
要讓他站起來!!! 承重不同的情況下, 耗電是不一樣的哩
作者: mzw2008    時間: 2010-6-25 01:43
本帖最後由 mzw2008 於 2010-6-25 01:50 編輯
Hi 大大們~
我再 Roboard 上接了 18 顆 Hitec 8498 Servo
全部一起動作時... 瞬間關機..

後來發現是電 ...
tommylin 發表於 2010-3-1 15:35

請教一下喔, 這個測試後來的結果如何呢!?
最近我也需要直接這樣接------使用R-100
之前都是使用控制板, 現在改用R100才真正瞭解, 原來Roboard的高精細度控制的好處

結果使用電池的時候(1.2V*5顆, 2000mAH鎳氫)
接兩顆以上的MG995, 程式一起動, SERVO才動到一半就直接重開機了 (程式一啟動SERVO會置中)
接一顆的時候, 程式一直亂拉胡搞, 約10秒也是重開
接一顆, 程式使用迴圈讓他動, 跑到沒電...沒事
接24顆.....哈哈, 這是想說要試驗就要勇敢一點, 程式一起動, SERVO動了約1/3就重開

感覺是電源瞬間大電流造成電壓下降, 導致R-100重開
可是沒有器材可以量這個
去實驗室改用高級的電源供應器, 據說是一顆好幾萬那種
20顆...可以胡搞沒有問題

這怎辦呢?!
我需要6V啊
或是改用鋰電可以解決呢? 家裡的鋰電都玩壞了@@
作者: mzw2008    時間: 2010-6-25 01:53
話說剛剛耍寶, 接12V的變壓器測試
SERVO的轉速快到無與倫比
正想說怎麼可能這麼快???還不會重開機
眼角餘光瞄到變壓器是12V!!!!!
嚇到趕緊扯電線...不過該馬達似乎也沒怎樣, 好像還能用
哈哈
作者: tommylin    時間: 2010-6-25 18:44
本帖最後由 tommylin 於 2010-6-25 18:51 編輯

先向大家道歉@@... 最近比較忙,
忘了這一篇的問題還沒寫完..
由於已經事隔太久了...
依稀記得當時是因為送出 plus 那段程式有 bug,
導致 app crash / OS restart..
已經確定和電流 / 電壓無關,
現在 servo 已經正常動作無誤. ( 但還沒有作嚴謹的測試)
我用的電源測試過2種..
A. 電源供應器.
B. 電池 AA 1.2V, 2000 mah 串接 6顆( 7.2 V )
提供參考了~ 希望有幫助..
如果有時間的話, 可以加入 app output dump file 比較能確定.

我會盡快找時間再做一次完整的驗證...
作者: tommylin    時間: 2010-6-25 18:47
本帖最後由 tommylin 於 2010-6-25 18:55 編輯
話說剛剛耍寶, 接12V的變壓器測試
SERVO的轉速快到無與倫比
正想說怎麼可能這麼快???還不會重開機
眼角餘 ...
mzw2008 發表於 2010-6-25 01:53


MG995       weight- 55.0g
Dimension40.7*19.7*42.9mm
Stall torque10kg/cm
Operating speed0.20sec/60degree(4.8v)
Operating voltage4.8-7.2V
Temperature range0℃_ 55℃
Dead band width10us

MG995 這麼強喔.. 12V 還不會燒掉?
太猛了~ 呵呵..
作者: mzw2008    時間: 2010-6-25 23:27
本帖最後由 mzw2008 於 2010-6-25 23:30 編輯

MG995標準是說6V
但是昨天我約是接12V使用了1分鐘左右
轉超快的耶
哈哈, 目前看來是沒壞掉, 但要我再試一次也是不敢 XDD

對了, 我控制是用官網的DLL
送出10ms週期的PWM脈波, 會送這種長度是因為他的範例就這個長度, 我沒改直接就送了
會不會跟這個有關呢?!
你的週期是送多長的??
目前是打算改25ms的長度再試試

另外說這種重開機是APP CRASH似乎有問題
因為我有接電表同步使用
發現重開的時候... 那瞬間電壓從6V--->3.9V左右
感覺這才是重開的原因
我電池只能接6V, 因為也有用上廣營的SERVO, 官方規定電壓到6V而已
如果這條路走不通, 只好改裝分開供電了, 這樣會接的很醜@@
作者: tommylin    時間: 2010-6-26 00:47
本帖最後由 tommylin 於 2010-6-26 00:50 編輯

嗨~ 鯨魚大大..
一個線索提供參考..
我記得當時有追到一個Demo程式的 bug,
使用官網提供編譯好的 RoboRC.exe
Hitec servo 一直無法正常取得 servo 位置.( read position function can't working )
追到後來我發現 servo_idx 傳入值是錯的... ( 我記得有發表過...)
完全呼叫不到 RCSERVO_HITEC_HSR8498 這個 type
後來我就改了 RoboIO.LIB 程式. 把 servo_idx 的 default 直接設成 2. rebuild...

servo_idx 傳值設定下列 3種 servo 類型:
0. RCSERVO_SERVO_DEFAULT,
1. RCSERVO_KONDO_KRS78X,
2. RCSERVO_HITEC_HSR8498

建議你可以先確認這個 MG-995 servo 是要用哪一種 type.
作者: mzw2008    時間: 2010-6-26 01:05
他其實內建有這些
public const int RCSERVO_SERVO_DEFAULT = (0x00);
public const int RCSERVO_SERVO_DEFAULT_NOFB = (0x01);
public const int RCSERVO_KONDO_KRS786 = (0x11);
public const int RCSERVO_KONDO_KRS788 = (0x12);
public const int RCSERVO_KONDO_KRS78X = (0x13);
public const int RCSERVO_KONDO_KRS4014 = (0x14);
public const int RCSERVO_HITEC_HSR8498 = (0x22);

我用的是第2個0x01那組
應該問題不在這裏
MG995只是普通馬達
不是KONDO那種一顆上千, 可以回傳位置的
作者: tommylin    時間: 2010-6-28 17:00
請問 安東尼大大, 鯨魚大大...
RoboIO.lib 裡面這個函式...
RBAPI(bool) rcservo_SendPWMPulses(int channel, unsigned long period, unsigned long duty, unsigned long count);
這裡的 count 是什麼作用? 對於 servo 有什麼影響?
能幫忙解惑嗎~~~ 謝謝~
我如果數值設 1L, 不管我 duty 設定多少, servo 都只會動一點點.
作者: mzw2008    時間: 2010-6-28 17:28
那個count好像是指持續送多久的意思???? 其實我也不是很確定這件事情

原廠文件說這是"次數", 要連續送這個指令幾次
但根據我的測試似乎有點出入, 應該是送這個指令要維持多久時間?? 是嗎??哈哈
不過我是丟在迴圈跑的, period目前調整為20000
count 10 , SERVO 跑得很正確, 該到哪裡就到哪裡, 而且穩定度超越普通的SERVO控制板很多
roboard的精細度超高果然不是蓋的(正港的1us)
不過... 我依舊會有不定時重開機的問題
目前幾乎確認問題出在電源不穩

昨天把同樣的架構移動到利基的平台上, 動的很穩定不會有任何問題
利基的機器人使用鋰電.. 這和我測試用的鎳氫還是有出入
我在想..可能真的要解決這個問題就是要roboard和SERVO獨立分開電源了
啊, 這樣會搞得很醜耶@@~~~~
作者: mzw2008    時間: 2010-6-28 17:37
對了, 剛剛仔細翻過原廠文件
這個count值在原廠文件裡面寫100
不過前後有仔細看過, 沒有提到為何是100
哈哈
作者: tommylin    時間: 2010-6-28 17:40
period=20000, count=10 ,SERVO 跑得很正確? 我馬上試試..
先謝嚕~ 回應得好快...呵呵 @@
作者: tommylin    時間: 2010-6-28 17:54
本帖最後由 tommylin 於 2010-6-28 17:57 編輯

No~~~~ 還是不正確..
我的參數如下:
Channel = 13;
PWM_period = 10000;
PWM_duty  1500; (大約 servo 的中間角度, 範圍 550~2500 )
count = 10L;
rcservo_SendPWMPulses(Channel, PWM_period, PWM_duty, count  );我馬上放影片上來, 給不同的數值不同的結果@@

PWM_period 請問這個參數是什麼作用?
作者: tommylin    時間: 2010-6-28 18:00
本帖最後由 tommylin 於 2010-6-28 18:24 編輯

count = 100L; 就正確了~~~~~ 感謝鯨魚大捏..
http://www.youtube.com/watch?v=mu-4xUPF1io
影片中 servo 轉動到中間位置,這樣就正確了..
作者: acen2008    時間: 2010-6-28 19:13
本帖最後由 acen2008 於 2010-6-28 19:23 編輯

HI~各位大大安
  rcservo_SendPWMPulses函數的count是指傳送的PWM個數, 假設PWM_period(週期)
  設定為10000L(週期決定於馬達, 我記得kondo的是8ms ~ 20ms), PWM_duty為1500L
  (以上單位都是1 us), 而count 的數值為10L,  用示波器看到的就是完整的10個PWM波型
  (總時間為10ms*10個 = 100ms), 如果count只給1L, 代表只送1個PWM波型, 雖然馬達
  可以接收但是才過10msPWM訊號就沒了, 角度  當然就只有轉一點點囉(轉的角度與馬達的
  operating speed有關), 給的數值越大, 代表送給servo的PWM個數越多, 送500L的話,
  可以發現馬達轉到所要的角度之後還會ㄍㄧㄥ著, 過一段時間才會軟掉, 至於送的值確切要
  多少, 沒有硬性規定, 因為在送出PWM的過程中, count值會一直減1直到0才停止, 也就是
  說, 在送PWM訊號途中隨時都可以去修改它, 我通常是固定給一個比較大的count值
  (例如: 100L), 然後只要在一個for loop 中去修改duty的值就可以了
作者: tommylin    時間: 2010-6-28 19:49
本帖最後由 tommylin 於 2010-6-28 19:51 編輯

感謝         acen2008大大的解說阿~ 太感謝了^^
另外請教一個問題... 要同時轉動多個 servo,
我寫了下列程式碼
for (i=0; i<32; i++)
        rcservo_SendPWMPulses( i , 10000, 1500, 100L);
可是結果都只有第一個 servo 會動作, 其他都不會動..
是哪裡沒有考量到嗎?
先謝謝嚕~
作者: acen2008    時間: 2010-6-28 20:57
本帖最後由 acen2008 於 2010-6-28 21:05 編輯

HI

要輸出多channel的PWM訊號不外乎幾項(以下是有按照先後順序的喔)

1.roboio_SetRBVer(RB_100)    // 如果你用的是RB-110, 那就填入RB_110
                                             // , 順便一提RB-100 PWM channel為24組
                                             // , RB-110 為 16組

2.rcservo_SetServo(i, type)  // i為channel編號, 從0 ~ 23, type為馬達型態
                                         // (就是上面鯨大所列的), 這是單channel函數
                                         // 若要設定多channel, 請用for...

3.rcsevo_Initialize(chs)         // chs是複數channel的編號, 可用rcservo已定義的
                 // 常數RCSERVO_USECHANNEL0 ~RCSERVO_USECHANNEL23
                                         // 去做累加動作, 把指定的channel轉成PWM
                 // 例如 : RCSERVO_USECHANNEL0+RCSERVO_USECHANNEL2
                                         //所用的就是channel0和channel2, 其他是GPIO

4.rcservo_EnterPWMMMode()    // 進入PWM 模式

好了, 可以開始使用rcservo_SendPWMPulses()了, 這也是單channel函數, 要輸出多
channel PWM, 請用for...


再試試看吧
作者: tommylin    時間: 2010-6-28 21:21
再一次謝謝 acen2008大大,
可是沒看過 roboio_SetRBVer()...
我先去官網看看是不是有新版的 LIB..
作者: mzw2008    時間: 2010-6-28 23:21
感謝acen2008  的回答, 看來我第一次看的解釋才是對的
後來亂想的都錯了

roboio_SetRBVer 一直有喔
這個是初始化指令, 有他就能正確動作
這些東西在官網的原始lib定義裡面都找的到, 本來就有

話說我現在全部改count=100
已經是要他怎樣就怎樣
一次接22顆祥儀的馬達, 12V電壓
不管怎樣胡搞都不會重開

使用6V接MG995 還是會, 使用鎳氫2200mAH
但分開供電, 就再也不會了
看來真是電池的問題
問題是, 如果我堅持不肯換鋰電...一定要用鎳氫而且不分開供電的話
有沒有辦法解決哩? 好像有誰跟我說過什麼接顆超大電容之類的話
這有用嗎?
作者: tommylin    時間: 2010-7-7 14:23
hi 鯨魚大大, roboio_SetRBVer() 是 1.6版才加上的, 舊版沒有.

現在狀況越來越嚴重了~ 發生機率 10次有8次 ~"~
我現在插上 16個 servo,
只動一個 servo 也是發生系統瞬間重新開機,
根據你分享的實驗結果, 那就是瞬間壓降的問題,
我也會試試分開供電,
這問題一定要解決和找出最佳解決方案,
不然很難過阿 ~"~
作者: rayrider    時間: 2010-7-7 16:58
電池壞了要換新的。
作者: mzw2008    時間: 2010-7-8 01:59
我的電池是全新的也會這樣
但會這樣的情況只有使用6V~7.4V才會發生
使用11V以上的電池都沒怎樣

我有測試過分開供電就可以任意胡搞不會有事
但線就接得很難看
所以我已經請工程師幫我改裝為roboard周邊多一圈
勉強會好看一點點
因為我真的很想要接MG995去玩

但是如果直接接上6V供電
不要說甚麼十多顆
單接一兩顆, 狀況也是隨機出現, 隨機的意思就是不一定何時會遇到
我的測試結果是真的電壓不穩
但好像也是因為瞬間出力變大的原因, 因為用小馬達不會這樣
我一直只測鎳氫6V
11V的是鋰電, 電表實際量測是12.2V
作者: tommylin    時間: 2010-7-8 11:15
感謝鯨魚大提供這麼寶貴的實驗結果,
我就先往電壓的方向去處理了... 感謝阿~
作者: tommylin    時間: 2010-7-8 23:29
本帖最後由 tommylin 於 2010-7-8 23:38 編輯

報告..今天晚上, 先用電池剛充飽約 7.8V, 但是狀況都一樣,
後來直接用 AC 100V to DC 12V 開機, 直接同時轉動 4 個 servo,
結果~~~ 確定是電壓太低造成..
有影片有真相啦.. 請看..
[youtube]wYNSDb4SK9Q[/youtube]
接下來要16個 servo 一起動了 ~"~  OH! YEAH ~
作者: mzw2008    時間: 2010-7-9 01:46
其實該感謝學校給我環境啦
在家裡我才不敢這麼勇敢的搞下去,壞掉要算我的耶
在學校胡搞, 壞掉都算教授的XDDD

目前已經能成功動作18顆5V狀態下的MG995
胸前一顆小電池供應ROBOARD
背後背一顆大的供應所有馬達, roboard 藏在胸部內
然後用風扇連結整個身體當散熱片




歡迎光臨 Robofun 機器人論壇 (https://www.robofun.net/forum/) Powered by Discuz! X3.2