謝作如 陳益漳
DF的創(chuàng)客社區(qū)是學(xué)生們常常去的地方,在那里總能看到一些稀奇古怪的項(xiàng)目。這次學(xué)生看到的是一個用步進(jìn)電機(jī)播放MIDI音樂的帖子,幾個步進(jìn)電機(jī)居然能播放出各種音符,實(shí)在很酷。根據(jù)帖子的介紹和提供的代碼,我們很快發(fā)現(xiàn)其使用方式較老,并且需要Linux環(huán)境,操作不方便,兼容性也不好。于是,溫州中學(xué)創(chuàng)客空間也買了相關(guān)的設(shè)備,研究了一種新的MIDI播放器方案。
● 原理分析
首先需要了解一些原理。步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制電動機(jī)。它通過控制脈沖個數(shù)可以控制步進(jìn)電機(jī)的角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時通過控制脈沖頻率可以控制電機(jī)轉(zhuǎn)動的速度和加速度。因?yàn)樗俣群徒嵌瓤煽兀竭M(jìn)電機(jī)常用在3D打印機(jī)、激光雕刻機(jī)上。
步進(jìn)電機(jī)運(yùn)轉(zhuǎn)時會發(fā)出噪音,而這噪音具有一定的規(guī)律,其音高與當(dāng)前電機(jī)轉(zhuǎn)速有直接關(guān)聯(lián)。如果給步進(jìn)電機(jī)合適頻率的脈沖,步進(jìn)電機(jī)就能夠按照一定的音高發(fā)出我們需要的聲音。經(jīng)過反復(fù)實(shí)驗(yàn)和參考資料,直接以標(biāo)準(zhǔn)A(440Hz)的頻率發(fā)送脈沖,并按照半音頻率之間相差的規(guī)律(也就是升一個八度頻率翻一倍),就可以發(fā)出對應(yīng)的音。這一方式也適用于蜂鳴器等可以發(fā)出聲音的元件。
接下來需要了解點(diǎn)MIDI知識。MIDI即樂器數(shù)字接口,是編曲界使用最廣泛的數(shù)字音樂標(biāo)準(zhǔn)格式。MIDI的記譜方式和五線譜、簡譜有所不同,標(biāo)準(zhǔn)A在MIDI中是A4,每升八度(12個半音)就會加一(如A1升八度變成A2),具體如表1所示。……