Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 13717|回復: 43
打印 上一主題 下一主題

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2010-3-1 15:35:35 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
本帖最後由 tommylin 於 2010-7-8 23:34 編輯

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

後來發現是電源供應器輸出電流太小...
請問我可以朝哪個方向處理呢?
謝謝~
44#
發表於 2010-7-9 01:46:59 | 只看該作者
其實該感謝學校給我環境啦
在家裡我才不敢這麼勇敢的搞下去,壞掉要算我的耶
在學校胡搞, 壞掉都算教授的XDDD

目前已經能成功動作18顆5V狀態下的MG995
胸前一顆小電池供應ROBOARD
背後背一顆大的供應所有馬達, roboard 藏在胸部內
然後用風扇連結整個身體當散熱片
43#
 樓主| 發表於 2010-7-8 23:29:14 | 只看該作者
本帖最後由 tommylin 於 2010-7-8 23:38 編輯

報告..今天晚上, 先用電池剛充飽約 7.8V, 但是狀況都一樣,
後來直接用 AC 100V to DC 12V 開機, 直接同時轉動 4 個 servo,
結果~~~ 確定是電壓太低造成..
有影片有真相啦.. 請看..

接下來要16個 servo 一起動了 ~"~  OH! YEAH ~
42#
 樓主| 發表於 2010-7-8 11:15:05 | 只看該作者
感謝鯨魚大提供這麼寶貴的實驗結果,
我就先往電壓的方向去處理了... 感謝阿~
41#
發表於 2010-7-8 01:59:59 | 只看該作者
我的電池是全新的也會這樣
但會這樣的情況只有使用6V~7.4V才會發生
使用11V以上的電池都沒怎樣

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

但是如果直接接上6V供電
不要說甚麼十多顆
單接一兩顆, 狀況也是隨機出現, 隨機的意思就是不一定何時會遇到
我的測試結果是真的電壓不穩
但好像也是因為瞬間出力變大的原因, 因為用小馬達不會這樣
我一直只測鎳氫6V
11V的是鋰電, 電表實際量測是12.2V
40#
發表於 2010-7-7 16:58:00 | 只看該作者
電池壞了要換新的。
39#
 樓主| 發表於 2010-7-7 14:23:46 | 只看該作者
hi 鯨魚大大, roboio_SetRBVer() 是 1.6版才加上的, 舊版沒有.

現在狀況越來越嚴重了~ 發生機率 10次有8次 ~"~
我現在插上 16個 servo,
只動一個 servo 也是發生系統瞬間重新開機,
根據你分享的實驗結果, 那就是瞬間壓降的問題,
我也會試試分開供電,
這問題一定要解決和找出最佳解決方案,
不然很難過阿 ~"~
38#
發表於 2010-6-28 23:21:16 | 只看該作者
感謝acen2008  的回答, 看來我第一次看的解釋才是對的
後來亂想的都錯了

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

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

使用6V接MG995 還是會, 使用鎳氫2200mAH
但分開供電, 就再也不會了
看來真是電池的問題
問題是, 如果我堅持不肯換鋰電...一定要用鎳氫而且不分開供電的話
有沒有辦法解決哩? 好像有誰跟我說過什麼接顆超大電容之類的話
這有用嗎?
37#
 樓主| 發表於 2010-6-28 21:21:13 | 只看該作者
再一次謝謝 acen2008大大,
可是沒看過 roboio_SetRBVer()...
我先去官網看看是不是有新版的 LIB..
36#
發表於 2010-6-28 20:57:15 | 只看該作者
本帖最後由 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...


再試試看吧
35#
 樓主| 發表於 2010-6-28 19:49:26 | 只看該作者
本帖最後由 tommylin 於 2010-6-28 19:51 編輯

感謝         acen2008大大的解說阿~ 太感謝了^^
另外請教一個問題... 要同時轉動多個 servo,
我寫了下列程式碼
for (i=0; i<32; i++)
        rcservo_SendPWMPulses( i , 10000, 1500, 100L);
可是結果都只有第一個 servo 會動作, 其他都不會動..
是哪裡沒有考量到嗎?
先謝謝嚕~
34#
發表於 2010-6-28 19:13:46 | 只看該作者
本帖最後由 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的值就可以了
33#
 樓主| 發表於 2010-6-28 18:00:48 | 只看該作者
本帖最後由 tommylin 於 2010-6-28 18:24 編輯

count = 100L; 就正確了~~~~~ 感謝鯨魚大捏..
http://www.youtube.com/watch?v=mu-4xUPF1io
影片中 servo 轉動到中間位置,這樣就正確了..
32#
 樓主| 發表於 2010-6-28 17:54:52 | 只看該作者
本帖最後由 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 請問這個參數是什麼作用?
31#
 樓主| 發表於 2010-6-28 17:40:18 | 只看該作者
period=20000, count=10 ,SERVO 跑得很正確? 我馬上試試..
先謝嚕~ 回應得好快...呵呵 @@
30#
發表於 2010-6-28 17:37:39 | 只看該作者
對了, 剛剛仔細翻過原廠文件
這個count值在原廠文件裡面寫100
不過前後有仔細看過, 沒有提到為何是100
哈哈
29#
發表於 2010-6-28 17:28:26 | 只看該作者
那個count好像是指持續送多久的意思???? 其實我也不是很確定這件事情

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

昨天把同樣的架構移動到利基的平台上, 動的很穩定不會有任何問題
利基的機器人使用鋰電.. 這和我測試用的鎳氫還是有出入
我在想..可能真的要解決這個問題就是要roboard和SERVO獨立分開電源了
啊, 這樣會搞得很醜耶@@~~~~
28#
 樓主| 發表於 2010-6-28 17:00:25 | 只看該作者
請問 安東尼大大, 鯨魚大大...
RoboIO.lib 裡面這個函式...
RBAPI(bool) rcservo_SendPWMPulses(int channel, unsigned long period, unsigned long duty, unsigned long count);
這裡的 count 是什麼作用? 對於 servo 有什麼影響?
能幫忙解惑嗎~~~ 謝謝~
我如果數值設 1L, 不管我 duty 設定多少, servo 都只會動一點點.
27#
發表於 2010-6-26 01:05:22 | 只看該作者
他其實內建有這些
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那種一顆上千, 可以回傳位置的
26#
 樓主| 發表於 2010-6-26 00:47:43 | 只看該作者
本帖最後由 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.
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-4 20:03 , Processed in 0.377417 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表