Robofun 機器人論壇
標題: RB-100的GPIO [打印本頁]
作者: 幽夜 時間: 2010-9-9 09:57
標題: RB-100的GPIO
本帖最後由 幽夜 於 2010-9-9 09:58 編輯
請問關於RB-100的PWM其GPIO腳 其輸出的方波 峰對峰值電壓為多少??
目前有祥X的伺服馬達其6-PIN接腳分別為
-MOTOR
+MORTOR
HALL SENSOR Vcc
HALL SENSOR GND
HALL SENSOR A Vout
HALL SENSOR B Vout
那要如何接至rb-100
請各位高手幫個忙~謝謝~感激不盡~︿ˍ︿
作者: mzw2008 時間: 2010-9-10 00:39
咦?
SERVO有6 ping ?
這是哪一顆呢?
有沒有詳細的PDF規格?
RB100的PWM若規劃為GPIO會推不動SERVO喔
因為只有3.3V
不然你就要獨立供電了
作者: 幽夜 時間: 2010-9-10 22:18
謝鯨大已經想到方法還在測試中~
大致上會把Vxx與GPIO作銜接吧~
感謝提供GPIO的資訊~
作者: 幽夜 時間: 2010-9-11 19:43
好奇的問一下~
GPIO的頻率可調嗎?
若不能那RB-100上有哪些可調頻???
作者: lucrece_lu 時間: 2010-9-17 17:53
回復 4# 幽夜
6-PIN分別為
-MOTOR
+MORTOR
HALL SENSOR Vcc
HALL SENSOR GND
HALL SENSOR A Vout
HALL SENSOR B Vout
這種馬達應該是無刷馬達。
---------------------------------------------------
這種馬達通常要先接線路到控制器,
再由控制器接到 RoBoard,
最後用 RoBoard 來控制。
HALL SENSOR 的控制器可能類似
你可以詢問賣你馬達的廠商,
哪一款的控制器適用於你馬達的控制器。
至於 GPIO 問題,
GPIO 是傳輸 hihg, low 訊號,
你可以控制 GPIO high 起來的時間跟GPIO low 下去的時間,
你可以控制 GPIO 的 high, low,來調整頻率。
可以參考 RoBoard 的手冊,
http://www.roboard.com/Files/RB-100/RoBoard_Training_SW_v16a.pdf
作者: 幽夜 時間: 2010-9-18 11:36
感謝JOSH大 AND LU大提供的資訊
馬達的控制器後來自己做了一塊跟LU大PO的控制方式不太相同
小弟做的是直接用PWM下去控制
不過一顆馬達需要4組PWM來控制 ~
接下來就剩訊號的處理了~
作者: mzw2008 時間: 2010-9-19 00:51
其實喔, 這樣的作法就不對了
既然控制板都自己做了, 應該把東西包裝進去
讓roboard能送(前進/後退/停止/加快/減慢...)等訊號給控制板
控制板再去控制馬達
這樣才能作進一步的精確控制
而不是什麼事情都叫roboard作喔
畢竟...殺隻蚊子, 動用大砲有點不太合理, 哈哈
作者: 幽夜 時間: 2010-9-22 12:12
咦~包進去~
我只是利用RB上PWM的GPIO腳做訊號控制
但控制板上輸入輸出都要雙訊號/每個馬達 SO要4組PWM的GPIO
這樣應該沒做錯吧~有錯麻煩大大提醒一下
還是說可以用其他RB上的位置控制會更好~~
但我有一大疑問如果要把GPIO的頻率改1KHZ左右是改程式就可以還是說不可能
因為我只知道其頻率分別為50MHZ和10MHZ另外可調頻寬(有個異想天開的想法用頻寬變頻)
.................
作者: josh 時間: 2010-9-23 13:02
本帖最後由 josh 於 2010-9-23 13:22 編輯
回復 8# 幽夜
在 RoBoard 上 PWM 跟 GPIO 是共用的,兩者無法同時使用。
依照你所說的方式,
如果用 4 組 GPIO (或是 PWM) 控制馬達,
我猜想馬達應該有四組的電晶體。
所以,使用 GPIO 是會比較適合的,但是要注意 deadband 的問題。
用 GPIO 可以控制 high ,low 的時間,讓 GPIO 的頻率為 1KHz。
程式會類似(delay 的時間要自行設定)
- #include <stdio.h>
- #include <roboard.h>
- int main()
- {
- // RCSERVO_USENOCHANNEL mean that all PWM channels are treated as GPIO.
- if (rcservo_Initialize(RCSERVO_USENOCHANNEL) == false)
- {
- printf("ERR: rcservo initialize fails (%s)!\n", roboio_GetErrMsg());
- return 1;
- }
- while(1)
- {
- rcservo_Outp(0, 1); // GPIO channel 0 high
- delay(ms); // delay time
- rcservo_Outp(0, 0); // GPIO channel 0 low
- delay(ms); // delay time
- }
- rcservo_Close()
- return 0;
- }
複製代碼
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) |
Powered by Discuz! X3.2 |