Robofun 機器人論壇

標題: Serial 伺服馬達控制器 [打印本頁]

作者: TroyLee    時間: 2007-2-14 11:57
標題: Serial 伺服馬達控制器
最近有點時間,想做一個 Serial 的 Servo Controller (SSC)
預計用 Atmega8 來作,不知大家有沒有什麼建議?

像是要作多少個 Channel 及每個 Channel 的解析度?
大家討論一下吧 :D
作者: chamber    時間: 2007-2-14 12:51
原帖由 TroyLee 於 2007-2-14 11:57 發表
最近有點時間,想做一個 Serial 的 Servo Controller (SSC)
預計用 Atmega8 來作,不知大家有沒有什麼建議?

像是要作多少個 Channel 及每個 Channel 的解析度?
大家討論一下吧 :D

    對不起,小弟比較駑鈍一點,不知SSC 這種東西在規格上有何特別之處?!
小弟想用多核心的FPPA 也來作一個?!這樣子好了,您用Atmega8 小弟用FPPA 我們一起作看看!?
小弟也是剛開始在研究這個東西。這次去日本拜訪了當地大學教授。

想去瞭解一下人家機械人研究方式與現狀。結果:人家一看到我們用一顆14 pins 多核心FPPA DEMO同時
控制七支伺服馬達與紅外線接收機還外帶唱『兩隻老虎』!
就開了一大堆條件『要脅』我們要不要跟他們歷年ROBO CUP的設計團隊合作?!....
[email=....@#$&%]....@#$&%[/email].... 結果呢?!...... 我在想:我是不是弄錯歌曲了?!我應該放一首比較當地歌曲?!
不應該啊~我也特別準備了一首:Keroro軍曹_-_地球侵略音頭 啊!!
唉~真是搞不懂日本人耶!       :L
作者: doubletime    時間: 2007-2-14 20:36
雖然小弟我沒實地做過
但我想這個ssc 的精華也就是結合GUI 與 RS232 順便搞個傳輸封包
只要伺服端可以收電腦端下的指令
並成功的完成電腦端所下的指令
我想就算是完成了SSC 吧
或許AYU大大又可以出來講解了
好像有一個更厲害的marbol 大大消失很久了
呵呵
小弟認為  
chamber  大大或許可以搞個USB Servo Controller
小弟認為這個對chamber大大應該不是難事才是
或許這就是chamber大大所說的「藍海」了
作者: ayu    時間: 2007-2-14 21:36
原帖由 TroyLee 於 2007-2-14 11:57 發表

1、最近有點時間,想做一個 Serial 的 Servo Controller (SSC) 預計用 Atmega8 來作,不知大家有沒有什麼建議?像是要作多少個
    Channel 及每個 Channel 的解析度?大家討論一下吧 :D

2、小弟想用多核心的FPPA 也來作一個?!這樣子好了,您用Atmega8 小弟用FPPA 我們一起作看看!?

3、chamber  大大或許可以搞個USB Servo Controller

綜合各位大大們的意見,小弟插一下話,請見諒喔

1、uucww大大在這一篇文章中提到這個控制器 http://www.robofun.net/forum/viewthread.php?tid=519&extra=page%3D1
    可作到16個控制用,理論亦可增加至24個控制用,當然51亦可使用來作(解析度都是255)。但前提是用組合語言來開發的。
   TroyLee 大大,冒昧請教一下喔 ,請問要用什麼語言來開發呢? chamber 大大部落格中連結的robot_a15大大用的是basic語言來
   開發的喔。

2、好期待chamber大大 大顯身手囉 ,希望也可學到這個領域的應用喔 。大家玩玩喔

3、doubletime大大您好,國外已有人用pic作出 24 usb servo controller,用的是basic語言來開發的。很奇怪,國內都沒人在這領域
  玩玩,國外好多人在玩這個領域。
作者: Robot_A15    時間: 2007-2-14 22:04
原帖由 ayu 於 2007-2-14 21:36 發表

綜合各位大大們的意見,小弟插一下話,請見諒喔

1、uucww大大在這一篇文章中提到這個控制器 http://www.robofun.net/forum/vie ... &extra=page%3D1
    可作到16個控制用,理論亦可 ...


我是Robot_a15小小
.................
感謝ayu介紹
作者: marbol    時間: 2007-2-14 22:17
原帖由 doubletime 於 2007-2-14 20:36 發表
雖然小弟我沒實地做過
但我想這個ssc 的精華也就是結合GUI 與 RS232 順便搞個傳輸封包
只要伺服端可以收電腦端下的指令
並成功的完成電腦端所下的指令
我想就算是完成了SSC 吧
或許AYU大大又可以出來講解了 ...


好像很熱鬧的樣子,doubletime大大好久不見....
哎哎哎~~看您把我說成那樣~~~~小弟只不過有興趣罷囉!!!
最近埋頭在串列雙馬達控制器以及遙控解譯控制雙馬達的工作樂雙馬達平台,
也完成的差不多了,畢竟雙輪平衡車才是王道~~~~,我那只算基礎研究咧!!
doubletime大大.....是不是完成了.....拿出來聞香一下~~~

tonylee大大要用atmega8做SSC是有點浪費了它的ADC的功能~~~
不過還是可以讓這28隻腳的AVR擠出20幾支腳來做輸出pwm的工作,
解析度也一定沒問題可以到達255,這樣用在機器人身上一定夠用.....
作者: TroyLee    時間: 2007-2-14 22:25
如果採用 16Bit 的 Output Compare 去作的話, 16Mhz OSC 可以產生最少 8~16 Channel 的 Servo Pulse
如果在加上像是 4017 的 Counter, 應該可以在拓展一些
至於解析度的話, 用16Bit的話可以到1000個位置(不過實際測好像不是每個 Step 都會改變)
用 AVR-GCC 或是組合語言都可以(程式碼其實蠻簡單的 XD )

GUI 部份的話我會一些 BCB 可以寫,不過僅止於簡單的程式
會寫到抓電腦有哪些 COM Port,加幾個 Track Bar 讓他可以送不同的 Command
以前都在寫 uC/OS或Linux Driver 所以對這方面GUI不熟。

--
PS1. 順帶問一下, 大部分看到的 Servo 都是+90°~-90°,小弟的自走車(專題)
裝有一個超音波測距,目前只能轉前轉後,希望能夠轉360°,但是要能夠控制位置(At least 8方向)
不知道有沒有這種Servo(裝兩個?)
PS2. 網路上看的文件都說 1ms ~ 1.5ms ~ 2ms,有的地方又說中心點在 1520uS,左右各 560uS
這樣都是對的嗎?還是說這是"Dead Zone"?

謝謝
作者: uucww    時間: 2007-2-14 22:26
超強陣容都出現了!!
作者: doubletime    時間: 2007-2-14 22:47
別別別害我了-  -
小弟的二輪平衡車還是一堆廢鐵
話說那台機構長什麼樣子 還有何時機構會出來還搖搖無期啊  (南無)
空有一堆想法和概念,沒機構還是小弟的死穴啊
小弟還是先來搞點小弟長官的夢想
和春盃、電腦鼠 、 馬達控制   

話說這和春盃太有趣了
先別說控制法則
機構就先把小弟打槍n次了
還好最後有個比較ok的版本
不然另一個同學會把小弟殺了

二輪平衡車小弟還是等marbol大大做好與小弟分享吧
不然要等我做好可能還要到年底吧
呵呵  小弟我是不是太懶了
還是大大您有好的機構要教我怎麼做的
小弟手頭極缺機構
也缺機構顧問
或許小弟有機構就可以先測試一下小弟的想法會如何了
目前的想法是用encoder配合加速規
但如果是工作樂的話,純用加速規也不是不無可能
但是到底能不能辦法就有待商榷了
但我想是可以行得通的 小弟有實驗過2次積分後的加速規
感覺上穩定性比沒有2次積分的效果高很多
好了,小弟別浪費這個主題
不然版主會先把小弟殺了
作者: marbol    時間: 2007-2-14 23:03
原帖由 TroyLee 於 2007-2-14 22:25 發表
如果採用 16Bit 的 Output Compare 去作的話, 16Mhz OSC 可以產生最少 8~16 Channel 的 Servo Pulse
如果在加上像是 4017 的 Counter, 應該可以在拓展一些
至於解析度的話, 用16Bit的話可以到1000個位置(不過 ...


嗯~~~AVR的SSC期待中~~~

至於伺服機因廠牌不同中立點或者舵桿的擺幅相對於pwm的duty cycle
當然會有些許不同,不過這微小的差異,在遙控上是可接受的,
因為伺服機搭配機搆調整後,接下來就是使用上反覆的修正來習慣
這個系統的特性!!!

不太瞭解您的動力底盤的結構,如果用雙馬達配合履帶來做差速驅動,
是可以左右轉前進後退~~~~

若是要讓伺服機做360度轉動,需要改裝!!把舵桿連動的電位計移開,並把齒輪上的限制塊刮除!!
若是要讓伺服機做360度轉動但又要可控位置,可以考慮買AI馬達!!!
作者: marbol    時間: 2007-2-14 23:14
原帖由 doubletime 於 2007-2-14 22:47 發表
別別別害我了-  -
小弟的二輪平衡車還是一堆廢鐵
話說那台機構長什麼樣子 還有何時機構會出來還搖搖無期啊  (南無)
空有一堆想法和概念,沒機構還是小弟的死穴啊
小弟還是先來搞點小弟長官的夢想
和春盃、 ...

拜託~~~機構製作不是一天兩天,要有工具!!
這邊不是鐵工廠,所以只能使用商用現貨件囉!!!

那個n-BOT考慮到平衡配重後讓整個裝置處在相對穩定的狀態,
所以用了PID就成功了....這點倒是可以考慮看看~~
作者: ayu    時間: 2007-2-14 23:36
TroyLee 大大您好,

    修正伺服機轉動法  世界各國大大們的作法,

     http://tw.search.yahoo.com/search?fr=fp-tab-web-t&ei=UTF-8&p=Modifying+Servo   。marbol大大的方法也是另類的途徑喔。

希望又可學到另外的gui介面學習喔,
可否請大大用c來開發 ? CodeVisionAVR C Compiler 亦可用嗎?這方面不懂,請教導一下喔
作者: TroyLee    時間: 2007-2-14 23:45
AI 馬達我會去研究研究 XD
不過我剛剛發現我搞笑了, SSC-32好像就用 Atmega8
而且也是 OpenSource ... 不過自己研究也蠻好玩的

另外 ayu 大提供的可能跟我需求不太相同
我是只要轉 360° 但是不需要連續的轉,因為要控制偵測方向...
不過也謝謝 :D

CVAVR 應該也是可以...而且比AVR-GCC好用
--
至於為什麼會想這樣作
SSC-32 一塊要1800上下
自己研究可能效果沒有他好,但是可以將成本降到 200 上下
又有 DIY 樂趣
作者: ayu    時間: 2007-2-14 23:52
是不是這個飆產品啊? http://www.robofun.net/forum/viewthread.php?tid=438&extra=page%3D4
研究看看喔!不太懂喔。
作者: LEO    時間: 2007-2-19 17:09
小弟目前製作的控制板是用一顆8051同時控制16個 channel 的 pwm.
小弟想問上面說解析度是255是指什麼?
小弟目前製作的控制板是一度為控制單位,是不是可以說解析度是一度呢?請指教.

控制板1.JPG (44.22 KB, 下載次數: 312)

控制板1.JPG

作者: TroyLee    時間: 2007-2-19 22:23
伺服馬達要控制轉 n° 應該不是件容易的事(跟步進馬達比起)
我所說得解析度 1024bit 指的是說從 1ms~2ms(伺服馬達脈波的寬度) 可以切為1024個位置,

事實上我測試的結果
雖然可以達到那麼多的位置
伺服馬達並不是真的產生1024個位置
作者: LEO    時間: 2007-2-22 01:09
小弟目前製作的控制板可以控制轉 n°,從0 到180度. 如在程式中輸入90,馬達便會轉到90度(中間)停止.輸入40,馬達便會轉到40度停止. 目前用來控制我的機器人.
作者: TroyLee    時間: 2007-2-22 16:02
這樣也蠻不錯的,可以分享一下實做方式嗎?
對於不同的伺服馬達也適用嗎
作者: marbol    時間: 2007-2-23 16:28
原帖由 TroyLee 於 2007-2-22 16:02 發表
這樣也蠻不錯的,可以分享一下實做方式嗎?
對於不同的伺服馬達也適用嗎

嗯~~~~
LEO大大的做法,應該是把0.5ms~2.5ms用180來做分割,
這樣是可以輸入90就回到中立點,這樣就有1度的效果,
如果要0.5度的效果就用360來分割0.5ms~2.5ms,依此類推......
只是解析角度那麼小,應該應用在精確的動作調整上才是~~~
目前手上有的廣X或者雙X的伺服機都適用這種方式

[ 本帖最後由 marbol 於 2007-2-23 16:33 編輯 ]
作者: LEO    時間: 2007-2-23 19:58
謝謝MARBOL大大幫我回答
小弟用的正是這個方法
作者: LEO    時間: 2007-2-23 19:59
謝謝MARBOL大大幫我回答
小弟用的正是這個方法
作者: TroyLee    時間: 2007-2-23 20:19
這樣直接切割180等分是否轉出來的角度就是正確的?
不過這樣跟我的方式其實差不多
只是把原本輸入1500uS+/- X uS變成0~180°
也就是 (X/500)*90° 這樣對嗎?

我還有另一種想法
也就是把控制端改變成裝在伺服馬達上
透過I2C介面去溝通
用一個6Pin(PIC)或8Pin(PIC/AVR)的控制器
Master這邊在加一個RS-232 -> UART -> I2C 的切換器
這樣一來擴充能力可以提昇
只是成本會比較高一點....
作者: marbol    時間: 2007-2-23 21:35
原帖由 TroyLee 於 2007-2-23 20:19 發表
這樣直接切割180等分是否轉出來的角度就是正確的?
不過這樣跟我的方式其實差不多
只是把原本輸入1500uS+/- X uS變成0~180°
也就是 (X/500)*90° 這樣對嗎?

我還有另一種想法
也就是把控制端改變成裝在 ...

讚喔~~
就是這個數學式子,可以代替我們講老半天~~~
其實還是有限制啦~~~~伺服機的輸出舵桿有個擋塊,
所以用到180°左右就好,真要操到極限位置,因沒試過所以沒法回答~~~

當初伺服機設計是用來做遙控使用,內部用的是比例控制,
伺服機轉的角度能否那麼精準,的確很讓人存疑,不過由於
對應到搖桿呈線性變化,換句話說,可藉由人的手感來操控,
用來修正風向的變動或機體的振動的影響,因此使用上精準度
並無多大影響,在成本上也能壓低至大眾能接受的程度,
所以伺服機一直是遙控的主要零件.....

[ 本帖最後由 marbol 於 2007-2-28 10:42 編輯 ]
作者: chamber    時間: 2007-3-1 15:58
原帖由 ayu 於 2007-2-14 23:52 發表
是不是這個飆產品啊? http://www.robofun.net/forum/vie ... &extra=page%3D4
研究看看喔!不太懂喔。


對不起各位大大~小弟到今天才去真正的研究這個東西。
上回也只是隨便的用FPPA 多核心的觀念去表達如何產生多組的PWM訊號。

   結果,今天才花時間研究了一下這塊 SSC-32 的板子。

他的相關資料不在 Lynxmotion 公司內,而是在 :

http://www.circuitcellar.com/magazine/188toc.htm

不過要花錢買的~還好了~只有美金 US$ 3.00 元而已!

   他主要是靠74HC595 來完成 多組PWM的產生。

他的觀點剛好跟小弟利用FPPA所產生的 PWM 是一樣的:





       所以那那一塊SSC-32 共用了 4 顆595 ~ 看來,還不如就用一顆FPPA不就好了嗎?!還可以直接建立RS-232 介面。
再買一個 RS232->USB 不就可以了嗎?!......越想就越興奮....
日前跟國內作Speech IC 的老同事拗了幾顆 Speech IC 的開發平台。
準備要讓機械人不只只會動,最好還會說說話,那不就更好玩了嗎?!

       若有進一步的結果在跟各位報告! 報告完畢,謝謝!
作者: TroyLee    時間: 2007-3-1 17:18
其實原理都一樣 XD
大多都是用這類的方法去作,不過SSC-32用四個595應該是因為他要能控制的Servo拓展到32個

想請教 Chamber 大
像是 FPPA 市面上買不到,如果想買幾個回來玩玩不知道該向哪邊購買?
之前要買搖桿型的可變電阻(像是PS2那兩個類比搖桿)
聯絡了福華電子(只有看到他們在生產)
寫了信給相關的Sales,跟他說要買約10pcs
他連信都沒回,讓我這種DIYer常想小量買些零件都不知道該怎麼買(光華買不到的那種)
作者: chamber    時間: 2007-3-1 23:11
原帖由 TroyLee 於 2007-3-1 17:18 發表
其實原理都一樣 XD
大多都是用這類的方法去作,不過SSC-32用四個595應該是因為他要能控制的Servo拓展到32個

想請教 Chamber 大
像是 FPPA 市面上買不到,如果想買幾個回來玩玩不知道該向哪邊購買?
之前要 ...

   是喔?!原理都一樣喔?!   不好意思!

   我還在整理用這種方法與多核心微控器的差異點呢!
---

   至於購買FPPA的問題,可以參考我的部落格留言:

http://tw.myblog.yahoo.com/chamberplus-taiwan/guestbook_mng

     畢竟這種FPPA 多核心新東西就像任天堂的wii 剛出來的一樣,是不可能滿街都是的~
還是得透過一定的管道才拿得到的!不過,您只要撥個電話就會知道的。

    或許,屆時我們就可以交流一些蠻好玩的應用領域喔!

   當然,也很歡迎您的加入!
作者: TroyLee    時間: 2007-3-16 04:31
To chamber 大,
我後來仔細研究 SSC-32 的作法
正好找到一個 Class Note 就是用一樣的作法
之前誤會,以為您的方法跟他們的差不多
其實方法好像不太一樣

有興趣的可以看看 :D

http://www.ece.stevens-tech.edu/~bmcnair/ESRT-S06/Class%2012%20-%20S06.pdf
P.13 15 16 稍微喵一下就可以瞭解 SSC-32 的作法了




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