2017年6月16日 星期五

創意組合 : 光影電子琴


學習目標 :利用faya電子積塊製作一透過光線強弱控制音鍵的電子琴
學習時間 : 180min
使用模組 : (1) faya brickNano x 1
                 (2) 光感應模組 x 7
                 (3) BCD開關模組 x 1
                 (4) 蜂鳴器模組 x 1
工具 : 樂高積木 / 底板 (相容)
          小螺絲起子 (十字,一字亦可)

====================相關知識====================
這篇文章中所用到的模組使用方式及相關知識整理如下,需進一步了解時可點進去參考:
模組介紹 : faya brickNano
模組介紹 : faya光感應模組
模組介紹 : fayaBCD開關模組
模組介紹 : faya蜂鳴器模組

======================開箱======================
光影電子琴(型號NTG-502)是fayalab的第二款創意組合系列產品,這一款的的牛皮紙盒只有夢幻泡泡機(型號NGT-501)一半的大小,特別設計給16x16的積木底板,這次創意組合利用3個16x16的底板,組合成48x16的大底板,面積能夠橫放七個faya光感應模組,並且結合蜂鳴器和BCD開關,產生7x4=49個音階。

盒內包含了製作夢幻泡泡機所需的全部模組及附件:

1.faya brickNano主板       2.BCD開關模組       3.蜂鳴器模組      4.光感應模組x7
5.電源線(A)/(B)      6.積木柱子       7. 長跳線x4      8.跳線盒
9.積木包       10.micro USB傳輸線       11.積木底板x3


===================範例實作=====================
目標:
(1) 利用faya電子積塊,製作出光感應電子琴
(2) 電子琴上共七鍵 [Do][Re][Mi][Fa][So][La][Si]
(3) 當照射光感應器的光線被遮住時,蜂鳴器模組發出相對應的聲音,從Do~Si共七音
(4) 利用BCD開關改變音階,共七階

組裝:
首先把[1.faya brickNano主板]、[2.BCD開關模組]、[3.蜂鳴器模組]、[4.光感應模組x7]的四個角落裝上[6.積木柱],詳細組裝過程可參考[功能介紹 : faya電子積塊與LEGO積木的結合],完成後如下圖所示:


接下來可以開始組裝積木了,大家可以先參考以下所提供的組裝方式,但沒有強制一定要和以下的範例組的一模一樣。由於組裝出來的外觀結構和程式沒有直接的關係,只要確認電源 / 訊號線夠長,即可依自己的喜好組出心中夢想的光影電子琴。

(註) : 上一款創意組合[夢幻泡泡機],由於程式需配合組出來的結構,因此強力建議初學者先按照文章裡的範例組一次,再更改成自己喜歡的樣式,但在本篇範例並無此問題。

首先利用兩片[9.積木包]裡的2x10的薄片板,把三片的 [11.積木底板x3]固定起來。


接著我們要組14個(2x5)的座台放置7個光感應模組,底下的排列方式,能夠讓7個光感應模組對稱的在積木底板上排列,白色圓圈部分是光感應模組四個腳座的擺放位置。


將[4.光感應模組x7] 擺放在白色圈圈的標記位置,完成後如下圖所示:


接下來我們在中間空位架一個能夠放faya_brickNano的小平台,白色圓圈部分是brickNano四個腳座的擺放位置。


將[1.faya brickNano主板] 擺放在白色圈圈的標記位置(USB朝左),完成後如下圖所示:


接下來我們要在左邊空位架一個能夠放BCD開關模組的小平台,底下的範例是利用2組(2x5x2)的長方體配合2片白色(2x6)的平板製作而成,平板上的圓圈部分是fBCD模組四個腳座的擺放位置。


將[2.BCD開關模組] 擺放在白色圈圈的標記位置,完成後如下圖所示:


再來我們要在右邊空位架一個能夠放BCD開關模組的小平台,這邊的範例是利用6顆(2x8)的基本款積木組合而成,積木上的圓圈部分是蜂鳴器模組四個腳座的擺放位置。


將[ 3.蜂鳴器模組] 擺放在白色圈圈的標記位置,完成後如下圖所示:


積木和模組的安裝告一段落,接下來開始接線的部分

接線:
(1) 電源線連接

電源線的連接如下圖所示,連接的詳細說明可參考這篇文章 簡易版。這個範例我們透過9條[5.電源線(B)]將10個模組的電源全部串起來,電源供應的順序如圖箭頭所示:


注意: 如果連結電源線的過程中,遇到電源線不夠長時,可參考這篇[小技巧 : 電源線不夠長怎麼辦呢?]

完成電源線的連接後,可以稍微整理一下走線(走線也是一門藝術喔!),把一些線段藏在模組下方,讓畫面清爽一些,到時候訊號線再加進來時才不會感覺一團亂!

我們順便定義一下光感應模組的代號,由左至右分別為 Do-Re-Mi-Fa-So-La-Si :


(2) 訊號線連接

      Arduino_D12 ===> BCD開關模組_1
      Arduino_D11 ===> BCD開關模組_2
      Arduino_D10 ===> BCD開關模組_4


      Arduino_D2 ===> 蜂鳴器模組_BZ


      Arduino_A1 ===> 光感應模組(DO)_OUT
      Arduino_A2 ===> 光感應模組(RE)_OUT
      Arduino_A3 ===> 光感應模組(MI)_OUT
      Arduino_A4 ===> 光感應模組(FA)_OUT
      Arduino_A5 ===> 光感應模組(SO)_OUT
      Arduino_A6 ===> 光感應模組(LA)_OUT
      Arduino_A7 ===> 光感應模組(SI)_OUT


範例程式:

備註:
- 程式裡面的語法和各模組的用法都在之前的文章介紹過了,請參考本文前面相關文章的連結
- pitches.h 可在此下載記得把這個檔案和範例檔案放在同一個資料夾,可參考  (模組介紹 : faya蜂鳴器模組)
- 程式裡面有關Serial指令(預設階被註解),可用來監測資料的輸入或輸出狀態,使者可以取消註解,利用序列埠監測視窗(Serial Monitir)除錯
- L77:Serial.println(n);  可查看BCD轉出的數字是否和Serial Monitor相同
- L82, L83, L88: 可查看每個光感應器接收到光的值



- L85: tone(Buzzer_pin, notes[7-n][thisKey], 20);
我們希望BCD開關逆時針方向撥的時候,音階愈來愈高,這樣才和鋼琴鍵盤的音階方向一致,但是逆時針方向撥的時候,數字愈來愈小,因此我們用[7-n],讓程式讀取高音階的部分,最後再取[thisKey],撥放相對位置的音符!

校正光感應靈敏度:
下載成功後,很有可能遇到光影電子琴會一直發出聲音的情形,此時不用緊張,這是由於光感應器的靈敏度尚未調整(光感應器模組的詳細介紹可參考[模組介紹 : faya光感應模組]),
這邊直接介紹如何快速的校正符合現場光線的光感應靈敏度。

(1) 首先確認環境有穩定的光源。
(2) 用螺絲起子輕輕的將可變電阻順時針撥到底,注意要很輕,可變電阻的結構無法承受大力的旋轉。
(3) 用幾根手指將光感應器遮住以擋住光線,擋光的程度隨個人喜好,但注意這個擋光的程度就是觸發此感測器發出聲音的程度!

 
(4) 另一隻手用螺絲起子慢慢的逆時針轉可變電阻,當蜂鳴器一發出聲音馬上停止。
(5) 接著移開螺絲起子和遮住感測器的那隻手,聲音會停止。
(6) 完成後,用手去遮此顆感測器時,會再發出聲音,移開時,聲音停止,此時代表此顆感測器的校正完成了。
(7)以上動作重複七次,校正Do Re Mi Fa So La Si七個音

用影像示範一次Do音的校正:


測試結果:
我們從最低音的Do(Note_C1,BCD開關位置=7)開始測試到最開音的Si(Note_B7,BCD開關位置=1),總共7x7=49個音。


最後,我們利用這台光影電子琴演奏[綠野仙蹤主題曲-Over the Rainbow]的前面一小段!


希望大家能夠順利地組出光影電子琴,並且更改心目中電子琴外型,彈出自己喜愛的音樂,也歡迎大家在底下留言或到我們的粉絲團留言喔!

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


沒有留言:

張貼留言