账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
声源线
第十四届盛群杯HOLTEK MCU创意大赛报告

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

浏览人次:【42125】

音乐透过愉悦的气氛缔造人与人的缘分。此作品为可以多人共享的音乐游戏机,外观分为以触控按钮点击的乐谱板与透过伺服马达敲击的演奏板两部份,可即兴演奏或挑选乐谱进行挑战;与其他幼儿游具不同,乐谱难度能再提高,即使长大后也能因其挑战性而继续使用。


六到八岁的儿童已开始理解更复杂的情感,正值认知发展的活跃期,透过声音的组成、演奏,培养他们情感表达的一部分;我们想让游戏时不仅是操作的人能感受到快乐,旁人在观看演奏部分时,也能感染到愉悦的气氛。就像当捷运进站音乐响起,孩子随着旋律手舞足蹈,如此简单的连结牵起人与人的缘分。


此作品外观分为以触控按钮点击的「乐谱板」与透过伺服马达敲击的「演奏板」两部份,并搭配三个模式:如弹钢琴般随意演奏,乐谱板上即发射绚丽的动态灯光的一般模式;经由引导点击演奏乐谱,让使用者熟悉规则的教学模式;以及可选择随乐曲及时按下正确音高、挑战获得更高分数的挑战模式。此音乐游戏机与其他幼儿游具不同,乐谱难度能再提高,即使长大后也能因其挑战性而继续使用。


工作原理

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:睡觉

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数据表:


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


[2]Touch I/O Flash MCU


Gentica 02 A.4 / Puta 04 A3 / GS44:


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


[3]串口蓝牙模块(Master / Slave)HC-05:


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


[4] SG90伺服电机数据表:


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


[5] PCA9685数据表:


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


[6] WorldSemi介绍WS2812B:


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


[7] DFR0299用户手册:


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


相关文章
模型设计开发(MBD)整合驱动与马达的优势
动物大探奇
在高速运动控制要求下 CPU与FPGA的分工合作
多轴运动控制用的伺服马达技术进展
神乎骑技
comments powered by Disqus
相关讨论
  相关新闻
» 瀚??引进智能家居系列产品上市 推进连网增速新趋势
» 工研院CES展後赋能科技创新 掌握AI产业链商机可期
» 国科会TTA偕新创团队挑战CES 2024 共创全球科技产业新纪元
» 圆展4K双镜头声音追踪摄影机获台湾精品银质奖
» 摩尔斯微电子与Xailient合作改变智慧型摄影机前景


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

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK84J1CMNMUSTACUK2
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw