帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
音緣線
第十四屆盛群盃HOLTEK MCU創意大賽報告

【作者: 古聖如、林楷潔等】   2020年01月17日 星期五

瀏覽人次:【44353】

音樂透過愉悅的氣氛締造人與人的緣分。此作品為可以多人共享的音樂遊戲機,外觀分為以觸控按鈕點擊的樂譜板與透過伺服馬達敲擊的演奏板兩部份,可即興演奏或挑選樂譜進行挑戰;與其他幼兒遊具不同,樂譜難度能再提高,即使長大後也能因其挑戰性而繼續使用。


六到八歲的兒童已開始理解更複雜的情感,正值認知發展的活躍期,透過聲音的組成、演奏,培養他們情感表達的一部分;我們想讓遊戲時不僅是操作的人能感受到快樂,旁人在觀看演奏部分時,也能感染到愉悅的氣氛。就像當捷運進站音樂響起,孩子隨著旋律手舞足蹈,如此簡單的連結牽起人與人的緣分。


此作品外觀分為以觸控按鈕點擊的「樂譜板」與透過伺服馬達敲擊的「演奏板」兩部份,並搭配三個模式:如彈鋼琴般隨意演奏,樂譜板上即發射絢麗的動態燈光的一般模式;經由引導點擊演奏樂譜,讓使用者熟悉規則的教學模式;以及可選擇隨樂曲及時按下正確音高、挑戰獲得更高分數的挑戰模式。此音樂遊戲機與其他幼兒遊具不同,樂譜難度能再提高,即使長大後也能因其挑戰性而繼續使用。


工作原理

BMS00010兩鍵電容式觸控感測模組

BMS00010兩鍵電容式觸控感測模(簡稱?兩鍵式觸控模組」)是使用Holtek BS83A02A-4觸摸IC所開發出來的兩鍵電容式觸摸模塊,BS83A02A-4內有8-bit MCU及演算法,具備更好的抗干擾能力及偵測環境變化能力,能確保不受電源干擾及環境溫度變化影響。OUT1/OUT2個別輸出KEY1/KEY2感測區的感測訊號,當感測區被觸摸時,輸出0V,反之則輸出VDD。



圖1 : BMS00010兩鍵電容式觸控感測模組
圖1 : BMS00010兩鍵電容式觸控感測模組

HC-05藍牙模組

樂譜板和演奏板的HT32F52352透過UART介面連接各自的HC-05藍牙模組(以下簡稱「藍牙模組」),設定傳輸的鮑率皆為9600 bits/s,並透過藍牙模組傳送及接收自訂的音符資料和控制背景音樂的指令(表1)。在作品中的樂譜板上按下觸控模組後,會傳送表格中對應的的八個音符,若按下Do,樂譜板則傳送Do的資料,演奏板會接收到Do的指令0x01,並控制對應的伺服馬達並做敲擊的動作,以此類推。


表1:HC-05藍牙模組

指令

控制

曲目編號 (bit0~4) + 0xE0 (bit5~7)

播放音樂

0xC0

繼續播放

0xA0

暫停音樂

0x60

停止音樂

0x01

敲擊Do的伺服馬達

0x02

敲擊Re的伺服馬達

0x04

敲擊Mi的伺服馬達

0x08

敲擊Fa的伺服馬達

0x10

敲擊Sol的伺服馬達

0x20

敲擊La的伺服馬達

0x40

敲擊Si的伺服馬達

0x80

敲擊高音Do的伺服馬達


SG-90伺服馬達、PCA9685

PCA9685模組(圖3)使用I2C傳輸協定來控制16組PWM的訊號,訊號頻率跟duty cycle可在24Hz~1526Hz與0%~100%之間做設定,並透過模組的Pin A0~A5來設定I2C的Slave Address。


藉由PCA9685所輸出多組的PWM訊號來控制不同的伺服馬達敲擊不同的角度。



圖2 : 馬達輸入訊號圖
圖2 : 馬達輸入訊號圖

圖3 : PCA9685模組
圖3 : PCA9685模組

WS2812B LED

WS2812B LED燈條(簡稱「LED燈條」)的控制電路與RGB晶片集成在一個5050封裝的IC中,並利用其串列級聯介面(圖4),透過一根信號線完成每顆WS2812B LED燈(簡稱「LED燈」)RGB資料的接收與解碼。



圖4 : WS2812B串列線路
圖4 : WS2812B串列線路

DIN端接受從MCU輸出的資料,前24個位元資料被第一個LED燈提取,並存放在該顆LED燈內部的鎖存器,剩餘的資料經過內部整形處理電路整形放大後通過DO轉發輸出給下一個串列上的LED燈,每經過一個LED燈的傳輸,信號減少24位元(圖5)。


每一個位元的週期為1.25微秒,邏輯1的占空比約為66%,邏輯0的占空比約為33%(圖6)。每顆LED燈資料傳輸順序為G、R、B共3個位元組,位元組的傳送方式由高位元至低位元傳送(圖7)。



圖5 : WS2812B資料傳輸方式
圖5 : WS2812B資料傳輸方式

圖6 : WS2812B位元邏輯1、邏輯0訊號
圖6 : WS2812B位元邏輯1、邏輯0訊號

圖7 : WS2812B RGB傳輸格式
圖7 : WS2812B RGB傳輸格式

傳輸完每顆LED燈的控制訊號(燈數 *24個位元)後再維持大於50微秒的0電位,更新每顆LED燈接收到的RGB資料並顯示。


由於WS2812B的控制訊號需精準的控制週期數量及佔空比,故使用PDMA+PWM的方式驅動WS2812,以達到佔用MCU較低資源且精準輸出控制訊號的目的。


控制原理為:將PWM訊號的週期設定為60(60/48,000,000=1.25微秒),並建立一個大小為控制燈數*24個位元組的PDMA訊號源陣列,將每個位址存放邏輯1/0的占空比資料,若為邏輯1則將該位址的值設為40(60*66%?40),反之則設為20(60*33%?20)。將PDMA訊號源陣列的資料全部輸出至第一顆LED燈的DIN腳位,並維持50微秒以上的0電位,即能更新燈條上每顆LED燈顏色。


DFR0299音樂模組


圖8 : 紅框內為使用腳位
圖8 : 紅框內為使用腳位
表2:DFR0299的使用腳位說明

腳位名稱

功能

VCC

3.3V~5.0V

RX

UART接收腳位

TX

UART傳送腳位

SPK_1

喇叭正極(低於 3W

GND

共地


演奏板的HT32F52352透過UART傳送特定的指令要求音樂模組該如何控制背景音樂。


指令傳輸順序依照:$S、VER、Len、Feedback、CMD、para1、para2、checksum、$O(表3)。其中除了 $S,VER,Len 和 $O 的指令資料不變,傳送的資料會根據CMD、Feedback、para1、para2和checksum的指令資料改變而有不同的控制指令。


(圖8)音樂會被存放在TF卡內,若想依音樂的名稱指定播放,必須將音樂存放在資料夾內,否則模組會依存放的時間指定播放。資料夾名稱必須為數字,例如:01、02、03等等;音樂名稱也必須為數字,例如:001、002、003等等。如此一來,演奏板的HT32F52352能準確地播放使用者指定播放的音樂。


表3:DFR0299資料指令格式

位元組

編號

位元組名稱

位元組資料

0

$S(起始指令)

0x7E

1

VER(版本)

0xFF

2

Len(位元組長度)

0x06

3

CMD(控制指令)

見表4的CMD

4

Feedback

0x01:需要回饋

0x00:不需要回饋

5

para1

(參數最高位元組)

見表4Parameter

6

para2

(參數最低位元組)

7~8

checksum(校驗和)

Byte 1~6總和

9

$O(結束指令)

0xEF


表4:演奏板使用的音樂模組的控制指令

CMD

Parameter

功能

para1

para2

0x06

0x00

0~30

調整音量

0x09

0x00

0x00:U

音樂來源

0x01:TF

0x02:AUX

0x03:SLEEP

0x04:FLASH

0x0C

0x00

0x00

重置模組

0x0D

0x00

繼續播放

0x0E

0x00

暫停播放

0x16

0x00

停止播放

0x0F

1~10

資料夾編號

0x01~0xFF

曲目編號

播放歌曲


作品結構

作品由兩個HT32F52352 MCU組成,分別控制樂譜板與演奏板並控制各自的外部模組及設備(圖9)。



圖9 : 系統方塊圖
圖9 : 系統方塊圖

樂譜板


使用1組UART介面接收與傳輸與藍牙模組之間的訊號,設定此藍牙模組為主端,並與演奏板上從端的藍牙模組連線以互相傳遞、接收自訂的資料(表1)。


使用9組GPIO接收4組兩鍵式觸控模組及按鈕的輸入訊號。


使用1組PDMA通道來輸出驅動WS2812B LED燈條的PWM訊號。


演奏板


演奏板負責控制伺服馬達、MP3模組、和藍牙模組。


伺服馬達需要PWM訊號改變轉動的角度,透過I2C傳輸協定來控制PCA9685模組來輸出8個通道的PWM訊號,並將訊號分別接上不同的伺服馬達,透過伺服馬達的轉動來敲擊不同鐵琴片。


MP3模組透過UART介面接收資料定義好的資料格式,並執行對應指令(表3、4)。


演奏板控制的藍牙模組為從端,與樂譜板上主端的藍牙模組連線,透過UART介面傳送資料至演奏板,並依照定義好的資料執行對應的指令(表1)。


作品流程

在遊戲開始之前,先進行模式選擇,總共有三種模式,分別為一般模式、教學模式及挑戰模式,在模式選擇的狀態下,模式選擇燈會呈現閃爍狀態,按下最右側、最左側的琴鍵可以切換模式。短按按鈕能進入下一步,長按按鈕則返回上一步。


教學/挑戰模式,會先選擇遊玩的歌曲,樂譜板會播放這首歌的音符段落、演奏板會播出歌曲的段落作為歌曲的提示,最右側、最左側的琴鍵可以切換歌曲,短按按鈕,就可以正式進入教學/挑戰模式了。(系統流程圖請參考:圖12)


一般模式


進入遊戲後,玩家可在樂譜板按下任意琴鍵,與琴鍵相同直排的LED燈會依序閃爍,顯示動態效果,同時,演奏板相對應的琴槌會敲響鐵片,演奏玩家所觸及的音符。


教學模式


樂譜板的倒數第二橫排為判定基準。按下開始時,音符會從樂譜板最上方落下,在任何時候按下琴鍵,相對應的琴槌就會敲擊,若沒有按下琴鍵,樂譜將會暫停音符播放,直至按下正確琴鍵後,樂譜才會繼續播放音符(圖10狀況1);當音符落到基準線時按下相同琴鍵,該音符會變成黃色(圖10狀況2),按錯則顯示紅色(圖10狀況3),當音符全部播放完畢時,即返回歌曲選擇。



圖10 : 樂譜板教學模式LED燈示意圖
圖10 : 樂譜板教學模式LED燈示意圖

挑戰模式


遊戲開始後,樂譜板會從最上方播放音符(圖11狀況1)、演奏板上會同步播放背景音樂。其計分規則為:音符在判定基準線時按下對應琴鍵,該音符變成黃色(圖11狀況2),分數加2分;音符在基準線前/後一排時按下琴鍵,該音符變成綠色(圖11狀況3),分數加1分;若不在前述範圍內按下琴鍵,則在相對應基準線上顯示紅色(圖11狀況4)。當全部音符播放完畢時會依比例總分計算出等級,分為A、B、C、F四個等級,再返回歌曲選擇。



圖11 : 樂譜板挑戰模式LED燈示意圖
圖11 : 樂譜板挑戰模式LED燈示意圖
圖12 : 系統流程圖
圖12 : 系統流程圖

?


作品使用情境及示意圖

作品可展開成樂譜板、演奏板兩部分,亦可收合在一起成長30公分、寬20公分、高28公分的中型玩具(圖13)。


圖13 : 作品外觀示意圖(收合/展開)
圖13 : 作品外觀示意圖(收合/展開)

樂譜板的燈落下時有如蘋果掉落,琴鍵及按鈕為活動式的操控裝置,可以拿在手上操作(圖14)。



圖14 : 樂譜板操作示意圖
圖14 : 樂譜板操作示意圖

演奏板的透過伺服馬達控的轉動,以控制斧頭旋轉來敲擊上下端用透明線固定在空中的琴片,使琴片發出聲音(圖15~圖16)。



圖15 : 演奏板示意圖
圖15 : 演奏板示意圖

圖16 : 演奏板伺服馬達敲擊示意圖
圖16 : 演奏板伺服馬達敲擊示意圖

圖17 : 音緣線-作品完成圖?
圖17 : 音緣線-作品完成圖?

測試方法

測試項目分為開機、模式選擇、一般模式、教學模式、挑戰模式,共5部分,每部分再對應不同的感測器列出測試細項。若依照測試細項的內容操作並符合預期結果,即通過該項測試(表5)。


表5:作品測試項目及結果

測試項目

測試細項

預期結果

測試結果

開機

樂譜板、演奏板上電

樂譜板、演奏板的藍牙模組連線

通過

進入模式選擇流程

通過

模式選擇

樂譜板上點擊最左/右觸控模組

模式燈號依左/右切換

通過

樂譜板選擇至一般模式

樂譜板上短按按鈕

進入一般模式

通過

樂譜板選擇至教學模式

進入教學模式的選擇歌曲流程

通過

樂譜板選擇至挑戰模式

進入挑戰模式的選擇歌曲流程

通過

一般模式

樂譜板上點擊觸控模組

樂譜板上的LED燈顯示動畫

通過

演奏板上對應的伺服馬達敲擊鐵片

通過

樂譜板上長按按鈕

返回模式選擇

通過

教學模式

選擇遊玩音樂

樂譜板上點擊最左/右觸控模組

音樂曲目依左/右切換

通過

樂譜板上短按按鈕

進入教學模式實際遊玩流程

通過

樂譜板上長按按鈕

返回模式選擇

通過

遊玩教學模式

播放樂譜

樂譜由上往下移動

通過

樂譜板上點擊觸控模組

觸控模組對應在LED燈基準線的音符改變顏色

通過

演奏板上對應的伺服馬達敲擊鐵片

通過

播放結束

返回教學模式的選擇遊玩音樂

通過

樂譜板上長按按鈕

停止演奏板上播放中的背景音樂

通過

返回教學模式的選擇遊玩音樂

通過

挑戰模式

選擇遊玩音樂

樂譜板上點擊最左/右觸控模組

音樂曲目依左/右切換

通過

樂譜板上短按按鈕

進入挑戰模式實際遊玩流程

通過

樂譜板上長按按鈕

返回模式選擇

通過

遊玩挑戰模式

播放樂譜

樂譜由上往下移動

通過

演奏板上播放對應的背景音樂

通過

樂譜板上點擊觸控模組

觸控模組對應在LED燈基準線及

基準線前/後一排的音符改變顏色

通過

點擊觸控模組正確時分數往上累加

通過

演奏板上對應的伺服馬達敲擊鐵片

通過

播放結束

返回教學模式的選擇遊玩音樂

通過

樂譜板顯示計分等級

通過

樂譜板上長按按鈕

停止演奏板上播放中的背景音樂

通過

返回挑戰模式的選擇遊玩音樂

通過

(本文作者古聖如1、林楷潔2、陳彥霖3、吳宗翰3、吳岳澤3、李宛穎3、黃靖涵3為大同大學1電機工程學系副教授、2設計科學研究所助理教授及3學生)

參考文獻

[1]HT32F52352 Datasheet:


https://www.holtek.com/productdetail/-/vg/HT32F52342-52


[2]Touch I/O Flash MCU


BS83A02A-4/BS83A04A-3/BS83A04A-4:


https://www.holtek.com.tw/productdetail/-/vg/BS83A02A-4_A04A-3-4


[3]Serial Port Bluetooth Module (Master/Slave)HC-05:


https://www.itead.cc/wiki/Serial_Port_Bluetooth_Module_(Master/Slave)_:_HC-05


[4]SG90 Servo Motor Datasheet:


https://components101.com/servo-motor-basics-pinout-datasheet


[5]PCA9685 Datasheet:


https://cdn-shop.adafruit.com/datasheets/PCA9685.pdf


[6]Worldsemi introduce WS2812B:


http://www.world-semi.com/Certifications/WS2812B.html


[7]DFR0299 User Manual:


https://www.dfrobot.com/product-1121.html


相關文章
模型設計開發(MBD)整合驅動與馬達的優勢
動物大探奇
在高速運動控制要求下 CPU與FPGA的分工合作
多軸運動控制用的伺服馬達技術進展
神乎騎技
comments powered by Disqus
相關討論
  相關新聞
» 倚天酷碁於2024歐洲自行車展亮相電動輔助自行車與電動滑板車新品
» 麗臺進駐雙和生醫園區推動智慧醫院發展
» 瀚錸引進智能家居系列產品 推進連網增速新趨勢
» 工研院CES展後賦能科技創新 掌握AI產業鏈商機可期
» 國科會TTA偕新創團隊挑戰CES 2024


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.3.129.247.250
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw