2014年8月29日 星期五

雙聲道LM386音頻放大喇叭 in 咖啡杯


本來想做 volume tower,但手邊剛好有兩顆LM386就來玩玩看。
因為電腦耳機孔輸出的功率只足夠放在耳邊聽,
想要把聲音放大到房間內都聽得到,就必須借助額外的能量 + 放大電路來達成。


黑色插頭是USB線,負責供電,綠色插頭連接電腦耳機孔(手機也可以),
白色插頭負責輸送增強過的左聲道訊號給左喇叭。


喇叭直接用熱熔膠黏在挖了洞的杯蓋上,
飲料的開口正好可以讓共鳴聲傳出來。


電源開關做在杯底,因為圓柱形的杯體不太容易安裝大的開關。


綠色的LED電源指示燈。


電路通通塞在右聲道的杯子裡,線太雜亂好像造成了一些雜音。


左聲道就只有喇叭和接頭,還黏了幾顆石頭平衡底部重量。



測試的結果,女聲的表現比較好,低音很鳥。







2014年8月28日 星期四

四腳 RGB 七彩 LED 原理教學

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

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

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

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

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

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

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

以下是應用的範例:



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

2014年6月25日 星期三

1602 I2C LCD 溫濕度感測時鐘


本來想要買個溫濕度計,後來想想自己動手做比較好玩。
用到的材料有:
DHT11 溫濕度感測器
MAX7219 點陣模組
1602 I2C LCD 螢幕
Arduino UNO 相容板
DS3231 RTC 時鐘模組
9V1A電源(插家用插頭)、麵包板、
一些杜邦線、大創買的39元收納盒。

計算了一下,材料含運費大概是500台幣左右,
幾乎都是在淘寶上挖來的,而一個現成的溫濕度鬧鐘,
淘寶價格大約是200~300台幣,其實不會差太多!



夜間的樣子,本來沒預料到會這麼五顏六色,
但每個模組似乎都帶有電源指示燈,就變成這樣了。
意外地效果還不錯!

點陣模組上顯示的是12小時制的『小時』,
以西里爾數字顯示,都是一個點一個點自己排出來的。




動態效果,還不賴,
但實在太亮,睡覺前可能要關掉就是了。

2014年6月20日 星期五

《超音波避障》藍芽遙控二輪智能小車



第一個機器人作品,算是相當入門。
一開始只有 Arduino UNO、馬達控制板、鎳鎘充電電池和藍芽模組。


後來加入了舵機和超音波測距模組,
能夠感測前方障礙物並且自動轉向避開。
同時為了多個模組的供電,加了片迷你麵包板來配電。


最後的成品,後來把圖下方的9V電池也除去,
所有的電源都整合由藍色的7.2V鎳鎘充電電池供電。




手機遙控的影片。

2014年6月13日 星期五

四足機器人可以用紅外線遙控了!

將四足機器人加入 Arduino Pro Mini 和紅外線接收器,
讓機器人能夠接收遙控指令,
進而控制舵機和機器人的動作。

原本打算接藍芽模組直接用手機對舵機控制板下令,
但怎麼試就是不成功,最後只好改用不曾玩過的紅外線遙控。
接上 Arduino Pro Mini 之後機器人又多了更多擴充性,
所以就順便接了蜂鳴器來回應是否接收到遙控器訊號。




整個四足機器人Project至此可以說差不多完成了,
剩下的就是一些微調,或者哪天突發奇想多加進一些傳感器吧!

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

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



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