Robofun 機器人論壇

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

RB-100的GPIO

[複製鏈接]
跳轉到指定樓層
1#
發表於 2010-9-9 09:57:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最後由 幽夜 於 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
請各位高手幫個忙~謝謝~感激不盡~︿ˍ︿
2#
發表於 2010-9-10 00:39:46 | 只看該作者
咦?
SERVO有6 ping ?
這是哪一顆呢?
有沒有詳細的PDF規格?

RB100的PWM若規劃為GPIO會推不動SERVO喔
因為只有3.3V
不然你就要獨立供電了
3#
 樓主| 發表於 2010-9-10 22:18:23 | 只看該作者
謝鯨大已經想到方法還在測試中~
大致上會把Vxx與GPIO作銜接吧~
感謝提供GPIO的資訊~
4#
 樓主| 發表於 2010-9-11 19:43:39 | 只看該作者
好奇的問一下~
GPIO的頻率可調嗎?
若不能那RB-100上有哪些可調頻???
5#
發表於 2010-9-17 17:53:00 | 只看該作者
回復 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

6#
 樓主| 發表於 2010-9-18 11:36:19 | 只看該作者
感謝JOSH大 AND LU大提供的資訊
馬達的控制器後來自己做了一塊跟LU大PO的控制方式不太相同
小弟做的是直接用PWM下去控制
不過一顆馬達需要4組PWM來控制 ~
接下來就剩訊號的處理了~
7#
發表於 2010-9-19 00:51:42 | 只看該作者
其實喔, 這樣的作法就不對了
既然控制板都自己做了, 應該把東西包裝進去
讓roboard能送(前進/後退/停止/加快/減慢...)等訊號給控制板
控制板再去控制馬達
這樣才能作進一步的精確控制
而不是什麼事情都叫roboard作喔
畢竟...殺隻蚊子, 動用大砲有點不太合理, 哈哈
8#
 樓主| 發表於 2010-9-22 12:12:06 | 只看該作者
咦~包進去~
我只是利用RB上PWM的GPIO腳做訊號控制
但控制板上輸入輸出都要雙訊號/每個馬達 SO要4組PWM的GPIO
這樣應該沒做錯吧~有錯麻煩大大提醒一下
還是說可以用其他RB上的位置控制會更好~~
但我有一大疑問如果要把GPIO的頻率改1KHZ左右是改程式就可以還是說不可能
因為我只知道其頻率分別為50MHZ和10MHZ另外可調頻寬(有個異想天開的想法用頻寬變頻)
.................
9#
發表於 2010-9-23 13:02:59 | 只看該作者
本帖最後由 josh 於 2010-9-23 13:22 編輯

回復 8# 幽夜

在 RoBoard 上 PWM 跟 GPIO 是共用的,兩者無法同時使用。

依照你所說的方式,

如果用 4 組 GPIO (或是 PWM) 控制馬達,

我猜想馬達應該有四組的電晶體。

所以,使用 GPIO 是會比較適合的,但是要注意 deadband 的問題。

用 GPIO 可以控制 high ,low 的時間,讓 GPIO 的頻率為 1KHz。

程式會類似(delay 的時間要自行設定)


  1. #include <stdio.h>
  2. #include <roboard.h>
  3. int main()
  4. {
  5. // RCSERVO_USENOCHANNEL mean that all PWM channels are treated as GPIO.
  6. if (rcservo_Initialize(RCSERVO_USENOCHANNEL) == false)
  7. {
  8.     printf("ERR: rcservo initialize fails (%s)!\n", roboio_GetErrMsg());
  9.     return 1;
  10. }
  11. while(1)
  12. {
  13.     rcservo_Outp(0, 1); // GPIO channel 0 high
  14.     delay(ms); // delay time
  15.     rcservo_Outp(0, 0); // GPIO channel 0 low
  16.     delay(ms);  // delay time
  17. }
  18. rcservo_Close()
  19. return 0;
  20. }
複製代碼
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-12-4 01:12 , Processed in 0.170831 second(s), 9 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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