Robofun 機器人論壇

標題: [失敗作品] 8 port 的 Servo 控制器 (PWM) [打印本頁]

作者: jason0821    時間: 2007-10-3 16:32
標題: [失敗作品] 8 port 的 Servo 控制器 (PWM)
我用 8051 做了一個 8 Port 的 Servo 控制
8051 / OSC 24MHz /  P0 當 PWM 輸出

規格:
1.  週期時間 20ms , 可調整 從 5ms  ~  20ms
2.  可以調整 從 0.1ms ~ 19.5ms,  解析度 0.05ms
3.  從 RS232 Terminal 輸入
    S  --> PWM 輸出開始
    T  --> PWM (直接)輸出停止, P0 high/low 可以預設
    R  --> PWM 調為預設值,預設值須先定義
 0xxx,0x0D,0x0A -->  改變 PWM0 high 的時間
 1xxx,0x0D,0x0A -->  改變 PWM1 high 的時間
      ....
    7xxx,0x0D,0x0A --> 改變 PWM7 high 的時間

用示波器可以看到 8 channel PWM 工作沒問題

不知道這樣的規格可以用來當 機器人控制嗎?
如果夠用的話, 那我可以接著實作 16 port  的控制器

[ 本帖最後由 jason0821 於 2007-10-5 13:13 編輯 ]
作者: irobot    時間: 2007-10-4 00:27
pwm 輸出 0.5ms 至 2.5ms 一般對應伺服機從0度轉至180度。
若解析度是 0.05ms ,則可以控制步數為 (2.5ms - 0.5ms) / 0.05 ms = 40 步。
則可以控制的最少轉動角為 (180度)/40 = 4.5 度。
如果要控制一個 2足步行機械人可能有點難度了。
作者: jason0821    時間: 2007-10-4 09:48
意思是那最小轉動角是要 1度 嗎?
也就是能分 180 步嗎?

另外軟體控制部份 需要照 SSC 規範嗎?
SSC 中那個 255, Ch, Position
Position 代表的是 PWM High 的時間嗎?

Servo 控制信號關閉時 是要拉 HIGH還是 LOW?

[ 本帖最後由 jason0821 於 2007-10-4 10:10 編輯 ]
作者: irobot    時間: 2007-10-4 16:25
最小轉動角要多少沒有一定標準,但機械人愈大則這角度要愈細。一般來說我想最少也要達到2度吧,當然1度或更小會更好。
如果控制的是 SSC 控制版的伺服機當然便要用它的規範。但你的 伺服機控制程式是自己寫的,便沒有必要跟這個規範了。
不過話說回來,就算是自己定的規範最終其實也差不了多小。
Position 代表的應該是 類似步數的數字,介乎0至254吧。
Servo 控制信號關閉時 是要拉 HIGH還是 LOW,這個我也不知道。
但作用中的伺服機是每秒要重複訊號50次的,不明白何為關閉Servo 控制信號。




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