2018年7月17日 星期二

模組介紹 : faya 觸碰滑鍵模組


學習目標 : 認識faya 觸碰滑鍵模組的功能及使用方式
學習時間 : 40mins
示範模組 : (1) faya brickNano
                   (2) faya 蜂鳴器模組
                   (2) faya 觸碰滑鍵模組
工具 : 樂高積木底板 (相容)

====================功能介紹====================

faya觸碰滑鍵模組透過電路板上兩兩一組的角形波浪銅箔,利用人體手指的阻抗,透過分壓產生HIGH(開) / LOW(關) 的功能,因此可將每對銅箔當成一個開關,模組上設計了八組的開關供使用。

  • 當手指接觸兩片銅箔時,輸出埠Px產生HIGH
  • 當手指離開兩片銅箔時,輸出埠Px產生LOW


8組開關由左至右分別命名為P7~P0,訊號的輸出位於右方標示P0~P7的排母,當模組通電,並按P0~P7壓銅箔時,上方的LED燈會亮起,用以提醒手指確實按壓了開關,開關與LED的關係如下:

P7 = 綠 ; P6 = 橘 ; P5 = 藍 ; P4 = 紅 ; P3 = 綠 ; P2 = 橘 ; P1 = 藍 ; P0 = 紅 ;

====================原理知識====================
以下解釋提供給有需要知道背後原理的人,首先看一下電路圖:


圖中擁有八組相同的電路,這邊僅針對第8組(P7)介紹,R15/R16兩電阻位於該組銅箔的正上方,代號U8的pad代表模組上的兩片銅箔,由於銅箔是分開的,電路平時呈開路狀態,沒有電流流到輸出點,此時輸出為LOW。

接下來做個小實驗,將三用電錶的檔位調到20M歐姆檔,把+/-探針輕輕碰觸食指表面,量測手指的阻抗,如下圖所示:


筆者的量測值約2.5M Ohm,人的身體阻抗會根據體內含水量/流汗/體脂肪/血流狀態/量測面積/距離等等因素影響,有的人皮膚比較乾燥,量到的阻值就會比較高,有的人皮膚容易冒汗,量到的阻值就比較低,一般範圍大約在1M Ohm 到5M Ohm之間,我們先假設手指的阻值是2.5M Ohm,當手指碰觸模組上的銅箔時,根據分壓定理:

輸出電壓 V_OUT = 5V x (100K+10M) / (100K+2.5M+10M)  = 4V

Arduino 的數位腳位只要偵測到3V以上就判定是LOGIC HIGH,因此當手指頭碰觸銅箔時,輸出OUT為HIGH。

最後我們利用反向器,將輸出轉為LOW電位,讓該組LED導通發光。

綜合以上,當手指碰觸銅箔時,輸出會呈現HIGH電位,且該銅箔上方的LED會點亮。

 ====================範例實作====================
了解模組功能(原理)後,我們用以下範例來展示模組的功能:

目標:
(1) 當手指壓著觸碰滑鍵模組上的任一組銅箔時,蜂鳴器發出相對音頻,由右至左分別為DO-RE-MI-FA-SO-LA-SI-DO。

接線:
(1) 電源線連接
     如下圖所示,連接的說明請看這篇文章 簡易版


(2) 訊號線連接
      Arduino_5  ===>  觸碰滑鍵_P0
      Arduino_6  ===>  觸碰滑鍵_P1
      Arduino_7  ===>  觸碰滑鍵_P2
      Arduino_8  ===>  觸碰滑鍵_P3
      Arduino_9  ===>  觸碰滑鍵_P4
      Arduino_10  ===>  觸碰滑鍵_P5
      Arduino_11  ===>  觸碰滑鍵_P6
      Arduino_12  ===>  觸碰滑鍵_P7


      Arduino_13  ===>  蜂鳴器_BZ


範例程式:

備注:
- L35~36 : 利用迴圈依序讀取並判斷Arduino D5~D12的腳位狀態
- L38 : 利用tone函式撥放相對的音頻,此音頻存放在notes[]陣列中,其數值定義在includes.h中

範例結果:


討論:

(1) 影片中可發現我們利用觸碰滑鍵模組配合蜂鳴器模組,組出一台迷你的電子琴了,注意到 有些人的皮膚比較乾燥,使用這個模組時,因為指頭阻抗很高,造成碰觸開關無法正常運作,此時只要將手指頭呵呵氣,用水氣讓手指的阻抗下降,就能達到觸控的效果了!

(2) 觸碰滑鍵的特色功能在利用手滑的動作,透過程式適當的判斷,無論向左滑或向右滑時,都可以有相對應的控制功能,日常生活中也常用到此控制功能,例如音量的調整、燈光的明暗,大家可以自行試試看。

====================================
fayalab 粉絲團
FB本篇留言版

沒有留言:

張貼留言