Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 7374|回復: 15

SERVO(伺服馬達) & C語法問題

[複製鏈接]
發表於 2012-7-24 17:03:01 | 顯示全部樓層 |閱讀模式
首先先PO上我原始自行設計的原始碼: 原始程式碼.txt (1.55 KB, 下載次數: 551)
nichal 該用戶已被刪除
發表於 2012-7-25 17:15:37 | 顯示全部樓層
servo一定要給重覆波形
除非是記憶型的servo
一般來說都要每20mS內至少重覆給一次
不然會放棄鎖角度
而送了定位的對應脈波長度
也不代表當下就是停在那個角度
也是需要反應時間
但如果反應時間小於20mS的間隔
動作就會變得比較卡卡的

因此
如果需要控制的servo數量不是很多的話
可以縮短重覆波形的時間間隔
以一個servo有效的最大角度來說
假設是2.5mS
而同時需控制4個servo的話
那只要大於2.5*4=10mS的時間間隔就夠用了
因此您可以將時間縮短到12mS就重覆送一次波形
如此一來您的動作就會變得比較流暢些 (每12mS就可以更新角度一次)

但這並不是要您在20mS對一個servo重覆兩次以上的相同波形
那是沒有意義的
因為20mS以內只要發生過一次角度設定就可以了
 樓主| 發表於 2012-7-26 16:05:40 | 顯示全部樓層
非常謝謝您的回答
聽了nichal解釋之後我有對我的程式碼做修正
方便再請您過目一次嗎?
(目前目標以操縱一個servo) 原始程式碼.txt (1.11 KB, 下載次數: 526)
nichal 該用戶已被刪除
發表於 2012-7-27 10:48:31 | 顯示全部樓層
本帖最後由 nichal 於 2012-7-27 10:55 編輯

把200改成120
就差不多是我說的方式了

http://www.wretch.cc/blog/chipware/17881146
很久以前寫的
可以參考看看

我的寫法是用Timer0去調整20mS的間隔
所以只要修正SAMPLE_RATE參數
就可以加快系統的反應時間
發表於 2012-7-27 18:23:17 | 顯示全部樓層
通常用 PWM 做非常簡單只有1個 SERVO , 控制 51 的PWM 工作週期(Duty Cycle)
為20ms 再隨時給 Duty 比  控制在 0.8 ms 到 2.2 ms 隨時改變Duty 比 ,servo 就
跟著轉
給另外的一種做法不用PWM 用1個主工作週期20ms的分時系統,從0-2ms時做servo輸出
從2-20ms去做要寫入轉動角度值資料的工作,再從0開使重覆這個動作,去瞭解我的說法
 樓主| 發表於 2012-7-29 15:29:37 | 顯示全部樓層
我會試著去理解看看,
目前正找其相關零件以做第一步的測試中!
謝謝你們!
 樓主| 發表於 2012-8-1 17:25:05 | 顯示全部樓層
不好意思我將上次寫好的程式碼給教授看過之後
(於此先再次貼上 原始程式碼.txt (1.15 KB, 下載次數: 452)
發表於 2012-8-2 07:29:45 | 顯示全部樓層
同學好:
先確定一下您跟教授所認知的伺服馬達是否是一樣的東西?
標的不同,運思的結果是沒有交集的~~
nichal 該用戶已被刪除
發表於 2012-8-2 08:35:08 | 顯示全部樓層
回復 8# marbol

marbol大~~

剛開始我也跟你的想法一樣
不過後來想想
我覺得應該servo是一樣的
只是控制法則存在很大的問題
教授想做的跟實際servo所能呈現的
效果其實沒辦法很吻合
但如果單純只是訓練"概念"的話
其實還是有解的

讓你猜猜我是怎麼想的?


提示一下:
轉速控制需要"角度參數"與"時間參數"兩者同時存在才能達成
發表於 2012-8-2 13:25:40 | 顯示全部樓層
可是教授的回答裡面有一句:要注意的是,PWM控制是轉速控制,而不是角度控制.
這看起來真的很像在講DC或步進<---尤其重看教授第一次回應以後
哈哈
同學, 要不要先把你的馬達照片放上來!!
感覺不是搞錯了就是該教授根本沒用過標準PWM規格的馬達
直接以控制DC的想法在跟你講話

話說回來, 教授要是看你把問題放來這裡大概要氣炸了XDDD
nichal 該用戶已被刪除
發表於 2012-8-2 16:36:47 | 顯示全部樓層
本帖最後由 nichal 於 2012-8-2 21:26 編輯

回復 10# mzw2008


第一次看我也覺得搞不好是在做servo裡面那塊板子
不過既然教授已經看過程式也跟同學討論過了

應該不會繼續把RC servo認定為DC馬達的伺服控制吧?
反正就是有"雞同鴨講"的感覺
只是不曉得到底是哪一邊搞錯了.....
發表於 2012-8-3 12:41:51 | 顯示全部樓層
我覺得看到電路和馬達就能真相大白
有些時候學校用的硬體並不是我們常討論的那些哩....
 樓主| 發表於 2012-8-3 15:20:24 | 顯示全部樓層
謝謝各位前輩的回覆,
在此先為因小弟自身的知識不足而有問初一些太過於淺層的問題道歉  OTZ

首先先PO上當初欲購買的servo
http://goods.ruten.com.tw/item/show?21201070220175
但在"當時"我並不知道servo有分角度型以及旋轉型,
而在次看過物品資訊之後我還是沒看到哪邊有寫 @"@

再來關於教授的部分我想就是因為上面所說的,
教授跟我說的是兩種不同形式的servo因此造成誤解!
(教授給予我的建議是若毫無經驗可先從無回授的寫法下手)

至於拿來網路上發問我覺得教授是不會覺得怎麼樣XD
因為這不太算是作業
但還是謝謝各位前輩的指教
我會持續補充相關知識
發表於 2012-8-4 00:30:16 | 顯示全部樓層
若你講的SERVO是網頁中那種
那常見有以下兩種:
1. 限制角度旋轉,給PWM就是對應到某角度 <--不特別標示就幾乎一定是這種
2. 無限旋轉,給PWM距離1.5越遠轉越快
以上都是玩具應用領域的

工業應用領域就真的千奇百怪了
我覺得, 乾脆要你教授給張參考圖吧, 至少先搞清楚他講的是什麼
總覺得教授講的和你在網路看的似乎不一樣耶
 樓主| 發表於 2012-8-6 13:35:49 | 顯示全部樓層
to:mzw2008大
我想我要用的就是您說的第一種的servo,也就是一般稱角度型的servo
經過詢問之後也的確是教授跟我所想問的是不一樣的,
非常不好意思造成你們的誤會。

但我想在學期過程中也有一知半解的情況,也會再找找有無適當的教學網站或者書籍,再次複習。
(在此也請問是否有比較推薦給新手的相關書籍或者網站呢?)

nichal大 有貼了一份他以前寫的,
但我很慚愧的說我發現我很多都不太懂  OTZ
發表於 2012-8-9 17:56:16 | 顯示全部樓層
那首先得先確認你到底是想學哪一種哩XD
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2021-10-26 10:46 , Processed in 0.150874 second(s), 10 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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