歡迎來到我們的電子小工具入門。在前4課中,我們要建構一個與您心跳同步的心跳扇。

我們將邊做邊學,那麼現在就開始吧!

第1步:必須有什麼功用?

建構第一個小工具會是您希望記住的體驗!

我們的第一個專案要做一個在炎熱的夏日午後讓我們感到涼爽的電扇。此外,為了增加挑戰性,我們要做一個能與我們心跳同步擺動的扇子。當我們的心跳變快時,扇子也會加快擺動,讓我們恢復涼爽。我們將此小工具稱為心跳扇。

現在來想一想這個裝置要做些什麼。首先,要能感測心跳。其次,要能與感測到的心跳同步驅動扇子。事實上這需要三個部分:心跳感測、扇子驅動以及兩者間的控制部分。(參見圖1)

圖1:心跳扇的功能性要求

圖1:心跳扇的功能性要求

1. 感測心跳

在感測部分,我們將使用光感測器感測血管反射率的變化。原理是利用脈搏跳動時的血流變化引起反射率變化(reflexivity)。

※本次製作的“心跳扇”採用了市場上銷售的心跳拍數感測器,詳情請連結下方網址。

https://www.sparkfun.com/products/11574

2. 控制扇子

大多數的電子裝置現在都配備微控制器,此微控制器就像是裝置的「大腦」,負責控制硬體。因此我們的控制部分亦將使用一個微控制器。為簡化工作,我們將使用GR-SAKURA電路板。

GR-SAKURA電路板配備一個內建的高性能多功能RX63N微控制器,因此適合包含本專案在內的各種小工具專案。瑞薩原本設計GR-SAKURA作為「Gadget Renesas」專案的一部分,該專案旨在以簡單且有趣的方式建構小工具。

其亦支援雲端程式設計-編寫微控制器程式變得更容易,而且還有強健的支援。因此是適合我們第一個專案的最佳電路板。在下一節中,我們將詳細說明如何利用此電路板建構我們的小工具。

 

the GR-SAKURA board

欲了解GR-SAKURA開發板,請參考下方内容。

3. 擺動扇子

我們將使用伺服馬達驅動扇子。與大部分的馬達類型不同的是,伺服馬達能精準控制馬達停止的位置。使用伺服馬達時,可以輸入轉子旋轉量的控制訊號:此訊號的數值「告訴」馬達要轉多少。當馬達到達目標位置時,即停止動作。伺服馬達廣泛用於無線電控制裝置中。

本次製作的“心跳扇”採用了市場上銷售的伺服馬達系列,詳情請連結下方網址:

http://www.gwsus.com/english/product/servo/micro.htm

hakase

接著,我們來看看小工具需要的功能以及如何將這些裝配在一起。

之後再來思考每一部分所需的具體處理程序。

偵測與控制之間:類比/數位轉換器

首先是從傳送心跳偵測部分資訊至控制部分所需之處理程序。心跳感測器輸出類比訊號,但微控制器(控制部分)需要數位訊號。因此,我們需要一個類比/數位轉換器(ADC)將類比訊號轉換為所需的數位訊號。

ADC的轉換分為三個步驟:(1)取樣:ADC週期性地獲取訊號讀值(樣本)。(2)量化:將每個讀值對映至代表訊號位準準確近似的離散數字。(3)編碼:將離散數字轉換為數位訊號。(參見圖2)舉例來說,取樣頻率10 Hz且解析度為10位元的ADC每秒可讀取10次訊號位準,將每個讀值對映至1024個數字之一,並將這些數值轉換為數位訊號的二進位數值。

 

圖2:ADC運作方式

圖2:ADC運作方式

大部分的微控制器含有內建ADC,以及各種其他周邊功能。GR-SAKURA微控制器包含兩個ADC:一個10位元ADC以及一個12位元ADC。

控制部分與扇子部分之間:PWM控制

接著,我們來看控制及驅動扇子所需之處理程序。伺服馬達的輸入訊號為一連串的脈波,每個脈波的寬度決定馬達轉多少(旋轉角度)。舉例來說,窄脈波不會引起轉動(0°),而中等寬度的脈波將使馬達轉動90°。

因此為驅動伺服馬達,我們每個週期(每訊框)發送一個脈波,而脈波的寬度告訴馬達應該停止的位置。若連續脈波的脈波寬度保持不變,馬達就會保持在原位。例如:就我們的扇子而言,可引導扇子從0°轉到60°後再回到0°,且在脈波寬度改變前,扇子會在每個位置停留。

圖3:PWM

圖3:PWM

此類控制稱為脈波寬度調變(PWM)。脈波對應至微控制器的週期性高位準(HIGH)輸出。微控制器藉由改變每個週期(每訊框)高位準的持續時間,驅動馬達。(參見圖3)

在大多數實際應用中,脈波發生在訊框的起點(即從低(L)位準變成高(H)位準之處)。「脈波寬度」係指高位準的持續時間,而「訊框」(或週期)為高位準及低位準持續時間的組合。

關於PWM控制的詳細資訊,請參閱本專案使用之伺服馬達的手冊。(圖4及5節錄自手冊。) 來源:RPV伺服馬達應用說明。

參考資料:APPLICATION NOTE FOR RPV SERVO MOTOR

http://www.gws.com.tw/english/product/servo/servo%20form.htm

图4:脉宽和周期(帧)

圖4:脈波寬度

圖5:目標角度

圖5:目標角度

此伺服馬達的訊框持續時間為16至23 ms。脈波寬度介於最小0.9 ms至最大2.1 ms之間(圖4)。為使馬達移至中心位置,我們將H位準(在訊框內)保持為1.5 ms(圖5)。為使馬達順時針旋轉至60°位置,保持H位準0.9 ms。為使馬達逆時針旋轉至-60°位置,保持H位準2.1 ms。

由此可知,訊框及脈波的持續時間是控制伺服馬達的關鍵,亦可發現必須精確地將時間點控制在幾毫秒以內。GR-SAKURA微控制器含有一精密的內建計時器,以實現此一要求。

隨著第一節進入尾聲,應注意我們還沒講到心跳感測器的訊號或如何監測心跳。但我們確實知道需要採用精準且明確的輸入(心跳訊號)及輸出(脈波寬度)時間點控制。

hakase

在後續課程中,將說明如何使用GR-SAKURA,接著依序說明硬體及軟體。讓我們期待後續的課程。

請參考下方的“嵌入式系統”的相關文章: