你 下載 leg-part v3.stl 度下位fit唔fit 先
其實最好 import 去你用開既軟件自已度就最準

TOP

ching , 有冇試過兩隻 servo 轉既角度唔一致? 例如一隻既 90 度係轉得少過另一隻. 有冇辦法解決呢?

TOP

本帖最後由 dtom 於 2015-7-21 11:48 編輯

山寨 servo 無 cal 過先出廠
唔保證90度係同一位置(其實外國名牌野又會唔會 cal 呢   只用過山寨貨 )
我都改緊個 app 可以自定 min, thumb, max 既位置

TOP

本帖最後由 dtom 於 2015-7-21 12:04 編輯

回覆 12# 雀雀


Arduino code 都係咁
啱啱先現原作者寫既 code, 靚過我好多
https://github.com/cevinius/MobBob

佢都係咁寫
  1. /----------------------------------------------------------------------------------
  2. // Servo Max/Min/Centre Constants - Set these for your particular robot.
  3. //----------------------------------------------------------------------------------

  4. const int LEFT_HIP_CENTRE = 1430;
  5. const int LEFT_HIP_MIN    = LEFT_HIP_CENTRE - 500;
  6. const int LEFT_HIP_MAX    = LEFT_HIP_CENTRE + 500;

  7. const int LEFT_FOOT_CENTRE = 1420;
  8. const int LEFT_FOOT_MIN    = LEFT_FOOT_CENTRE - 550;
  9. const int LEFT_FOOT_MAX    = LEFT_FOOT_CENTRE + 500;

  10. const int RIGHT_HIP_CENTRE = 1550;
  11. const int RIGHT_HIP_MIN    = RIGHT_HIP_CENTRE - 500;
  12. const int RIGHT_HIP_MAX    = RIGHT_HIP_CENTRE + 500;

  13. const int RIGHT_FOOT_CENTRE = 1400;
  14. const int RIGHT_FOOT_MIN    = RIGHT_FOOT_CENTRE - 550;
  15. const int RIGHT_FOOT_MAX    = RIGHT_FOOT_CENTRE + 500;
複製代碼
你睇佢每個 CENTRE 都唔一樣, 證明外國月亮係一樣圓

TOP

山寨 servo 無 cal 過先出廠
唔保證90度係同一位置(其實外國名牌野又會唔會 cal 呢   只用過山寨貨 :hah ...
dtom 發表於 2015-7-21 11:45



如果我無攪錯, 雀雀 ching 好似唔係講緊位置, 而係轉動角度既大細喎.

每隻 servo (特別係 D cheap cheap 山寨) 都好參差, 可以控制既範圍都有 D 唔同.
通常用 servo  controller, 都要頭尾要 cut 走  一大段至準.  但係可用範圍轉動內既角度都算 OK, 例如由 45 去 135, 應該都係轉左 90 度.

如果 雀雀 ching  講緊既唔係 頭尾去唔到既位, 而係 中間可用部份都有分別, 就有 D 問題.  好難自己 tune 到, 除非佢既誤差好穩定, 40-135 係 90 度時, 80-175 又係 90度.  就可以按比例 95 度當 90 度用.  否則, 如果唔係固定比例既誤差, 真係唔知點攪了.

TOP

回覆  雀雀


Arduino code 都係咁
啱啱先現原作者寫既 code, 靚過我好多


佢都係咁寫你睇佢每 ...
dtom 發表於 2015-7-21 12:02



未必係個 servo 既 center 唔一樣, 而係安裝完既中點位置唔一樣.

就算隻隻 servo 可用範圍既中點都一樣, 唔代表你裝果下都可以用到相同既位, 有時齒輪位置都好大影響.
裝完之後要自己對好位再去 program set 番中點位置的.

TOP

本帖最後由 dtom 於 2015-7-21 13:34 編輯

回覆 15# Super169


又學到野
你唔講我都唔知, 你講左我又好覺
唔怪得左右腳板提起既數值都唔同啦

但我係用實際數字 servoLeftLeg.write 黎記住位置, 而唔係 左腳板升起 15 度, 所以對我無乜影響

TOP

係呀係呀, 我意思係轉動角度既大細, 我表達得唔好.

我最近整緊部車仔, 上面用  servo 加個槌仔, 一個燈仔同埋一個 button. 同個仔玩對戰. 不過唔關 3d 事, 事關我未買 3dprinter, 用住個紙皮盒仔做車身.

TOP

如果 雀雀 ching  講緊既唔係 頭尾去唔到既位, 而係 中間可用部份都有分別, 就有 D 問題.  好難自己 tune 到, 除非佢既誤差好穩定, 40-135 係 90 度時, 80-175 又係 90度.  就可以按比例 95 度當 90 度用.  否則, 如果唔係固定比例既誤差, 真係唔知點攪了.
Super169 發表於 2015-7-21 12:10


依段真係要慢慢理解一下.  應該好有用.

TOP

本帖最後由 Super169 於 2015-7-21 14:59 編輯
回覆  Super169


又學到野  
你唔講我都唔知, 你講左我又好覺  
唔怪得左右腳板提起既數值都唔 ...
dtom 發表於 2015-7-21 13:29


好多時機械人既程式, 最簡單都係 tune 件野去到某個位, 然後記低當時既數值, 下次再要做同樣動作, 就 send 番 D 數值出去.  基本上係每個動作獨立去諗.

如果要用相對位置, 比如話其中一個 servo 轉 30 度, 當中要考慮既野就好複雜了, 夠唔夠位轉, 會唔會同另一個 part 撞.  成個系統都複雜好多.
我估呢隻機械人仔, 都係記低左每個動作既數值, 例如 4 個電機 (90, 90, 90, 90) 就係企直, (45, 135, 90, 90) 就提右腳, (90, 90, 45, 135) 就提左腳, (唔好認真諗 D 數值, 我只係舉例, D數字亂作既)

當由企直之後, 想 提完右腳, 企番好, 再提左腳, 就會 send 絕對位置
(45, 135, 90, 90) , (90, 90, 90, 90), (90, 90, 45, 135), (90, 90, 90, 90)

而唔相對位置  
(-45, 45, 0, 0) , (45, -45, 0, 0), (0, 0, -45, +45), (0, 0, 45, -45)

有 D 人幫人做機械人, 一套動作做好哂, 但每個機械人既中位都可能有貿別.  用番呢個例子, 如果今次果隻個 中位由 (90, 90, 90, 90) shift 左去 (87, 93, 92, 88), 就 記低一個 delta, 即 (-3, 3, 2, -2), send 之前就補番.  咁樣做可以一套動作, 隨時配合唔同既機械人了.

不過, 有時 D 動作要配合埋時間,  就複雜好多了.  Arduino 既 servo library default 係全速, 有個 varSpeedServo 既 library 可以幫你減速 (當然, 只可以減), 配合黎用可以多D變化.

TOP