顯示具有 教學 標籤的文章。 顯示所有文章
顯示具有 教學 標籤的文章。 顯示所有文章

2014年8月28日 星期四

四腳 RGB 七彩 LED 原理教學

大家應該早就玩過LED了,但RGB七彩LED是怎麼回事呢?
首先大家都知道LED的長腳要接正極,短腳接地,通電就會亮起來。
RGB LED很簡單,就是把三原色的LED封裝在同一個塑膠頭裡面。

如果要黃光,就是藍加綠,
想要紫光,就是紅加藍,依此類推去調整各個光的比例就可以得到各種顏色。

RGB LED 通常長這樣,最長的腳是公共端,
其他分別代表紅藍綠三種顏色,至於哪隻腳是哪個顏色就要參考製造商的資訊了。

公共端是陰極還是陽極呢?有分兩種。

這是共陰極的內部原理,也就是紅藍綠都共用同一個陰極。
在共陰極接地的狀態下要讓某種顏色亮起來,只要給對應的腳位高電位就可以了!
若是給共陰極高電位,三個燈都會滅掉。

這是共陽極的內部原理,紅藍綠共用一個陽極。
若是共陽極接地,所有顏色都亮不起來;
若要讓某個顏色亮起來,就必須共陽極處在高電位,
同時相對應顏色的腳位處在低電位或接地。

RGB LED 配合控制器,可以變化出很多漂亮的顏色。
當然市面上也有免控制器的自變色七彩LED(只有兩腳),
只要通電就會自動漸變或閃爍,很方便,但無法控制就是了。

以下是應用的範例:



有興趣購買的話可使用關鍵字上淘寶搜尋:
『RGB LED 共陰(共陽)』、『自閃 慢閃 快閃 七彩 LED』

2014年5月27日 星期二

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

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

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

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

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

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

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

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


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


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


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

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

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

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

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


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

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); 將時間換算為英吋

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



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