2014年5月27日 星期二

伺服馬達(舵機)原理介紹(以輝盛9g舵機為例)

Servo motor(伺服馬達、舵機)是什麼呢?
簡單來說,就是一種能夠旋轉到指定角度的馬達
要描述得更精確點,請看下圖。

舵機的組成通常包括圖中的控制板、直流馬達、
減速齒輪組、電位計,通通包在一個塑膠殼內。

直流馬達在高電壓下轉得快,低電壓則轉得慢,
若將正負極倒轉,直流馬達會往反方向旋轉。

控制板可以控制輸入直流馬達的電壓大小,
藉此控制直流馬達的旋轉。

減速齒輪負責降低轉速及提高扭力,
扭力對於舵機來說是很重要的。

電位計負責檢查舵機現在的角度,並回傳給控制板,
如果沒有到達指定角度,控制板會再進行補償。

舵機本身是聽不懂『角度』的,那要怎麼下角度的指令給舵機?
通常我們會使用脈衝來代表角度,什麼樣的脈衝代表多少角度
取決於控制板一開始的設定,以下舉個例子:


利用脈衝的寬度不同下達不同的角度指令,
其中的運算由控制板去處理。各家舵機的參數未必相同,
有些舵機有180度旋轉角度的限制,有些是360度等等。


輝盛9g舵機來說,買來會看到圖中的零件。
白色的塑膠片是舵盤,有許多形狀是為了因應不同的場合,
和兩大一小的螺絲一樣,不一定會全部用上。


舵盤和舵機之間有齒狀機構,套上去後可以緊密咬合。
舵盤就會隨著舵機上的齒輪而旋轉。

鎖上螺絲使舵盤不會輕易被拔出,
至此舵機的安裝也就差不多完成了。

舵機的線通常長這樣,最上面的兩條負責供應電源,
咖啡色是地線,紅色是正極。

下方黃色線負責傳送訊號,也就是上面曾經提到的脈衝。

要注意舵機有一定的需求電壓,太低推不動,太高會燒掉。
就圖中的輝盛9g舵機來說,工作電壓是3.5~6V。
若要用7.4V鋰電池供電,千萬記得要加個降壓模組
直接用這麼高的電壓通過舵機,可能三秒內就壞了!


附上舵機使用在四足機器人的例子。

2014年5月25日 星期日

自製四足機器人會走路了!


蜘蛛俠會走路了!
增加了一些雜耍動作和轉彎,
其中轉彎可分成一次動一隻腳的四段式轉彎,
還有一次動兩隻腳的二段式轉彎。

其中四段式轉彎由於一次只抬一隻腳,
其餘三腳站穩的情況下機體穩定度是相對高的,
所以可以一次轉比較大的角度。

二段式轉彎一次抬兩隻腳,
瞬間機體處於相當不平衡的狀態,
移動的腳要在完全失去平衡前就定位,時間愈短愈好。
一次能夠轉彎的角度也就比較小。

另外蜘蛛型前進和野獸型前進用到的關節不同,
可以仔細觀察影片內的差別。

2014年5月22日 星期四

自製四足機器人測試


最近用舵機控制板和12個輝盛9g舵機打造了四足機器人,
目前還在測試階段,只會幾個動作,大家可以參考一下影片。

目前還不會移動,只能原地擺姿勢。

下個目標是讓他能夠前進後退,還有原地轉彎。

2014年5月13日 星期二

航模及遙控用鋰電池、平衡充電器、各種接頭基本觀念

網路上販賣的鋰電池常常寫著一排數據,例如:
1000mAh 2S1P 7.4V 20C 等等,這些數字代表什麼意思呢?

首先,從大家比較熟悉的 mAh 來說,
m = 毫,也就是10的負三次方 → 0.001
A = 安培,電流單位
上面的例子來說,1000mA 就等於 1000 x m = 1000 x 0.001 = 1A

h = hour,也就是 3600 秒。
1000mAh 代表電池的電量是 1A x 3600 sec = 3600 C(庫倫)。

簡單來說,電池若穩定地供給 1A 的電流,則可以用一小時。
當然啦,這只是理論值,本篇就不再進一步討論。

接下來是 2S1P 這個數字。

鋰電池的最小單位通常是 3.7V 的 Cell,S 代表 Serial(串聯),
2S 就是兩顆 3.7V 的 Cell 串聯,那麼整顆鋰電池的電壓就是 3.7 x 2 = 7.4V 

因此,在市面上看到的鋰電池電壓往往都是 3.7 的整數倍,
如 3.7V、7.4V、11.1V 等等,
你可以檢查一下標示的 S 數值和電壓,應該是相符的。

P 代表 Parallel(並聯),並聯並不會增加電壓,1P 代表無並聯。


拿上圖的 7.4V,2S1P 電池當例子:

上面這條紅色的接頭,有兩條線,紅色是正極,黑色是接地,
這條線負責輸出電能,電壓是 7.4V。

這種紅色的插頭叫做JST插頭,當然還有其他不同的規格,
但這不是很重要,只要插得上想插的地方就好。


接下來是 20C 這個數字,C 代表放電係數,
若你的電池是 1000mAh 和 20C,
那麼你電池能輸出的電流就是 1000 x 0.001 x 20 = 20A

更詳細一點的資料可能是:
最大連續放電20C → 最多可連續供應 20A 的電流(10A、15A 當然也沒問題)
最大瞬間放電40C → 最大可提供 40A 的瞬間電流(但無法持續)

你的系統要選用鋰電池前,可以參考這些數值來挑選。

大家應該也有注意到鋰電池有另一組線,而且是三條,
這是用來給鋰電池充電或是接低壓警報器用的,
為什麼要這麼多條線呢?

圖中的黃色區塊代表每顆電池的電量,由於鋰電池會隨著電量減少而電壓降低,
不同電量的鋰電池混用會造成整組電池的損害。

該怎麼充電才能讓每顆電池電量平均呢?顯然不能從上圖這組線來進行。

我們從鋰電池 A 的正極拉出紅線,鋰電池 B 的正極拉出藍線,
從鋰電池 A 和 B 的負極拉出共地線。

充電時對著『紅黑』這組線充電,就是幫 A 充電,
充電時對著『藍黑』這組線充電,就是幫 B 充電!

若能做到同時對 A、B 各自充電並不斷觀察兩者的電壓,
我們就可以適當地調整,讓 A、B 充到一樣滿的電量!
上述兩行的充電方式要怎麼達成呢?那就是平衡充電器

附註:本篇的鋰電池是 2S 所以有三條線,
          依照這個邏輯推理, 3S 電池有四條線,4S 有五條~

【平衡充電器】


簡單的平衡充電器通常支援 2~4 Cells 的鋰電池,
更高價的就支援更多。你可以注意接頭上針腳的數目,
和剛剛說明的線數是相同的!

【低壓警報器】

鋰電池非常忌諱過度放電(把電用光),
所以我們可以在鋰電池充電的線上插上低壓警報器,
一旦鋰電池的電壓降得太低(電量過低),就會響起提示音。


有些低壓警報器還會附加電壓顯示,並且支援多 Cells 的電池。
(2S 電池只會用到其中 3 個針腳,依此類推)




2014年5月3日 星期六

超音波模組HC-SR04與Arduino NewPing Library介紹


大家應該在很多機器人的Project中都看過這塊類似眼睛的板子,
超音波模組(超聲波模塊)常常被用來量測距離。

原理是什麼呢?
很簡單,一顆『眼睛』發射超音波,超音波撞到障礙物後反射,
另一顆『眼睛』接收超音波後取得音波往返的時間差。

大家都知道聲音在空氣中的傳遞速率約是340m/s,
只要將兩組數字相乘後即可得到模組與障礙物間『往返』的距離。


當然這數字會隨著溫度而有所不同,但這塊廉價模組通常是拿來練習用的,
對於精準度也不會太要求。(淘寶上大約5人民幣就可以買到,甚至更低。)
有些超音波模組會內建溫度感測並自行補償,精度也比較高,
但最終也反映在售價上。

超音波模組通常有四個針腳,
VCC和GND負責供給超音波模組的電源,
VCC接正極,GND接地。

對Trig(Trigger)輸入訊號觸發,Echo回傳測得的訊號。
對模組原理細節有興趣的可以Google搜尋HC-SR04,
本篇的重點將放在應用上。


大家可以先到上面的連結下載NewPing Library(Zip檔),
並且依照下列方式輸入Arduino。

這個Library省去了麻煩的pulsein指令,時間差換算距離也變得很簡單。
其中一個好用的特色是可以設定最大感測距離,
若超音波模組測到的距離大於最大感測距離,就送回0。

以下介紹幾個指令:

sonar.ping(); 進行量測並回傳超音波往返的時間(微秒),若超過最大感測距離則回傳0。

sonar.ping_in(); 進行量測並回傳來回距離(英吋),若超過最大感測距離則回傳0。

sonar.ping_median(iterations);  進行多次量測(預設值5次),捨棄0,並回傳時間中位數。

sonar.convert_in(echoTime); 將時間換算為英吋

以下為官網的範例程式目地為測量距離並且顯示



指令不只這幾項,
需要更詳細的內容可參考官方網站的說明