觸摸式電鋼琴
這個(gè)世界上有很多讓人上癮的事情,除了抽煙,喝酒這些壞毛病外,其實(shí)往51黑論壇發(fā)稿也是會(huì)上癮的。這不,我又急著來向大家展示我的作品~~話入正題,單片機(jī)制作無非聲、光、動(dòng)、傳感,這次就來做點(diǎn)跟聲音有關(guān)的吧。這次帶來的是一款觸摸式電鋼琴,細(xì)心的網(wǎng)友可能會(huì)注意到,我用的是電鋼琴而不是電子琴,這兩者有區(qū)別么?我的回答是肯定的,因?yàn)檫@正是本作品的亮點(diǎn)所在。單片機(jī)演奏音樂大家肯定都不會(huì)陌生,用單片機(jī)內(nèi)部的定時(shí)器,送入不同的頻率,每一個(gè)頻率對(duì)應(yīng)著一個(gè)音調(diào),然后按照事先編排好的順序驅(qū)動(dòng)蜂鳴器發(fā)聲,就可以演奏出音樂了。至于電子琴只需要把不同的頻率映射到對(duì)應(yīng)按鍵上即可。之所以說是電子琴,是因?yàn)檫@種方法只能演奏出單調(diào)的方波音頻。想不想讓聲音不再單調(diào),而是發(fā)出動(dòng)聽的鋼琴音色呢?如果想的話,請(qǐng)拿出你的熱情并且打開你的烙鐵的開關(guān),跟我一起往下制作吧!
STC12C5A60S2 單片機(jī)主控 1片
220uf電解電容 功放芯片配套使用 1個(gè)
釘書針 作為觸摸點(diǎn)使用 72個(gè)
撥動(dòng)開關(guān) 耳機(jī)/功放輸出切換 1個(gè)
制作所需的元器件如上表所示,本著精簡(jiǎn)制作的原則,用到的都是很普通的元器件,數(shù)量也很少,所以硬件制作的難度不是很大。連接部分則是過錫走線加飛線,烙鐵溫度在350度左右即可。電路圖如下所示,值得說明的一點(diǎn)是,圖中的矩陣觸摸按鍵這里只畫出了一組,其實(shí)有三組,共起來的一端分別與 P0.0、 P2.2、P2.1連接。剩下部分的電路都很明了,有創(chuàng)造力的朋友看電路圖自行發(fā)揮就好,新手可以參考下我的布局。
電路原理圖.jpg (142.65 KB, 下載次數(shù): 112)
下載附件
2017-5-16 13:14 上傳
先把打印好的琴鍵圖片裁好,用雙面膠貼在洞洞板上。(如圖1、2、3 )
鍵盤打印圖.JPG (84.76 KB, 下載次數(shù): 143)
下載附件
2017-5-16 13:14 上傳
1.jpg (370.65 KB, 下載次數(shù): 114)
下載附件
2017-5-16 17:04 上傳
2.jpg (462.3 KB, 下載次數(shù): 130)
下載附件
2017-5-16 17:04 上傳
3.jpg (547.9 KB, 下載次數(shù): 118)
下載附件
2017-5-16 17:04 上傳
怎么樣,是不是很有電鋼琴的樣子?什么?你說觸摸按鍵在哪里?別著急,讓我請(qǐng)出下面這位特別來賓——釘書針。為了整個(gè)制作的美觀跟手感,觸摸點(diǎn)的選取費(fèi)了我很大的心思,試了很多種導(dǎo)體都無法達(dá)到滿意的效果,直到有一天無意中把釘書針掉在了洞洞板上,發(fā)現(xiàn)它那細(xì)長(zhǎng)又導(dǎo)電的身體,長(zhǎng)度剛剛好可以插進(jìn)洞洞板,才有了這個(gè)有趣的設(shè)計(jì)。如圖4、5所示,按照琴鍵的位置插好釘書針并在背面壓緊。
4.jpg (302.04 KB, 下載次數(shù): 142)
下載附件
2017-5-16 17:04 上傳
5.jpg (494.67 KB, 下載次數(shù): 128)
下載附件
2017-5-16 17:04 上傳
以此類推,完成36個(gè)鍵不會(huì)想你想象的那么枯燥,美妙的琴聲在等著你。之后用雙面膠把揚(yáng)聲器粘在板子正面,并完成揚(yáng)聲器導(dǎo)線、單片機(jī)、下載口、撥動(dòng)開關(guān)、耳機(jī)插座、LED、功放芯片以及電解電容的焊接。焊接好的樣子如圖6所示。
6.jpg (563.64 KB, 下載次數(shù): 107)
下載附件
2017-5-16 17:04 上傳
接下來是觸摸按鍵矩陣后與單片機(jī)的連接了,我的方法是過錫加飛線。先把單片機(jī)正下方的一組矩陣按鍵與兩邊矩陣共起來的部分過錫連接到I/O口上(如圖7),
7.jpg (669.96 KB, 下載次數(shù): 141)
下載附件
2017-5-16 17:04 上傳
然后用免刮漆包線把兩側(cè)矩陣要與I/O連接的地方向中間過錫部分連接(如圖8)
8.jpg (512.81 KB, 下載次數(shù): 115)
下載附件
2017-5-16 17:04 上傳
按道理制作到這里硬件的部分就大功告成了,但是在后期測(cè)試的過程中,總會(huì)有上電時(shí)亂響的問題。仔細(xì)思考后發(fā)現(xiàn)問題所在:因?yàn)橛|摸按鍵是基于增強(qiáng)型51單片機(jī)的I/O口高阻狀態(tài)(下文會(huì)詳細(xì)介紹),這種狀態(tài)對(duì)電流的波動(dòng)很敏感,會(huì)受到電源雜波的干擾。所以在正極跟地之間加了一個(gè)104電容,效果有很大好轉(zhuǎn)。順便一提,使用電池供電效果最好。到此就剩下載程序了,在最下方可以下載到源程序跟編譯好的HEX文件,然后用STC-ISP軟件下載到單片機(jī)里。注意,如果單片機(jī)是新的或者上一次使用連接了晶振的話,要先連接好晶振才能下載進(jìn)程序。軟件設(shè)置如圖9。
圖9.jpg (31.22 KB, 下載次數(shù): 149)
下載附件
2017-5-16 13:14 上傳
到此,制作的部分全部完成了。
如果我現(xiàn)在結(jié)尾,肯定有人說我不地道,因?yàn)榇蠹易钕肼牭能浖砦疫沒有說明。別急,聽我娓娓道來。先說觸摸吧,前面提到I/O口的高阻狀態(tài),說到了在這種狀態(tài)下I/O口對(duì)電流很敏感,那是不是只要接觸I/O口,就能用人體的生物電完成觸摸了?哎,好事多磨,雖然它很敏感,但是生物電的強(qiáng)度還是不能穩(wěn)定的被感應(yīng)。怎么辦呢?冷靜下來想一想,只要再叫一個(gè)強(qiáng)推狀態(tài)的I/O口來幫忙就好辦了,所謂強(qiáng)推狀態(tài),就是比普通準(zhǔn)雙向I/O口上拉能力強(qiáng)很多的一種狀態(tài)。這樣,在我們同時(shí)觸碰這兩個(gè)I/O時(shí),強(qiáng)推I/O口的電流就通過皮膚流入高阻狀態(tài)的I/O口,從而讀到電平變化,從而實(shí)現(xiàn)觸摸操作。這么好用的功能怎么設(shè)置呢,請(qǐng)看我從STC數(shù)據(jù)手冊(cè)里截下來的設(shè)置方法。
設(shè)置方法.jpg (50.08 KB, 下載次數(shù): 129)
下載附件
2017-5-16 13:14 上傳
如圖所示,當(dāng)我們用C語言設(shè)置I/O狀態(tài)時(shí),只需向P*M1 P*M0賦值(0x開頭的十六進(jìn)制格式)即可,如圖10
圖10.jpg (32.25 KB, 下載次數(shù): 112)
下載附件
2017-5-16 13:14 上傳
接下來到了發(fā)音部分,說到這里要感謝杜洋老師,因?yàn)檫@里的原理跟程序參考了他的SPEAKER32語音盒子。兩者同樣都是用電腦把要播放的音頻先在電腦上用專業(yè)的音頻軟件轉(zhuǎn)換成ASCII Test數(shù)據(jù),稍加改造變成數(shù)組后放入單片機(jī)60K的ROM里,配合PWM解碼程序,一個(gè)在你進(jìn)門時(shí)甜美的說出“你好,歡迎光臨”,一個(gè)則是在你觸摸琴鍵后發(fā)出鋼琴的音色。專業(yè)的音頻軟件有很多,我用的是一款名為“Adobe Audition 3.0”的軟件,簡(jiǎn)潔的界面,強(qiáng)大的功能,都是我選擇它的原因。接下來是使用方法,準(zhǔn)備好從網(wǎng)上下載到的音頻,你可以用鼠標(biāo)拖入音軌中,也可以對(duì)著一條空音軌點(diǎn)擊“右鍵→插入→音頻”來把你的音頻放入音軌中。這時(shí)音軌可能沒有緊貼前端,這樣會(huì)制造出一段空白音頻,這部分不但影響正常工作還很占空間,用右鍵點(diǎn)住它向前拖動(dòng),直到與前端緊貼。如圖11
圖11.jpg (39.27 KB, 下載次數(shù): 124)
下載附件
2017-5-16 13:14 上傳
之后雙擊音頻,進(jìn)入編輯模式。在這個(gè)模式下我們要做的是刪除空白跟擴(kuò)大音量。向上滾動(dòng)滑輪讓時(shí)間間隔變小,前端的空白就會(huì)變得明顯,去除它的原因跟上面一樣。我們用左鍵框選出空白部分,然后點(diǎn)擊“右鍵→剪切”來刪除空白。如圖12
圖12.jpg (83.07 KB, 下載次數(shù): 116)
下載附件
2017-5-16 13:14 上傳
隨后按Ctrl+A全選波形,點(diǎn)擊左邊效果欄里的放大,調(diào)整好合適的放大倍數(shù)后點(diǎn)擊確認(rèn)以完成放大操作。如圖13
圖13.jpg (76.2 KB, 下載次數(shù): 132)
下載附件
2017-5-16 13:14 上傳
然后點(diǎn)擊左上角的“文件→另存為”,這時(shí)會(huì)彈出一個(gè)選擇格式跟保存路徑的窗口,下方的保存類型我們選擇“ACW波形(*.wav)”,然后點(diǎn)擊下方的選項(xiàng),濾波器處改為“PCM”,屬性處改為“8.000kHz,8位,單聲道”,然后“確定→保存”如果彈出窗口點(diǎn)擊確定即可。如圖14
圖14.jpg (86.94 KB, 下載次數(shù): 108)
下載附件
2017-5-16 13:14 上傳
這樣就把音頻轉(zhuǎn)成了8位單聲道,為后面的音頻表做好準(zhǔn)備。接下來軟件會(huì)自動(dòng)載入剛剛保存的音頻,再點(diǎn)擊左上角的“文件→另存為”在彈出的窗口里選擇“ASCII 文本數(shù)據(jù)(*.txt)”然后點(diǎn)擊下方的選項(xiàng),把兩個(gè)勾選框的對(duì)鉤都點(diǎn)掉,再點(diǎn)擊“確定→保存”就完成了ASCII Test數(shù)據(jù)的轉(zhuǎn)換。如圖15
圖15.jpg (52.05 KB, 下載次數(shù): 128)
下載附件
2017-5-16 13:14 上傳
這樣重復(fù)36此之后,我們就得到了36個(gè)音調(diào)的8位音頻數(shù)據(jù)了。打開電鋼琴的工程文件,在程序的C語言文件下方有36個(gè)用音調(diào)名命名的數(shù)據(jù)表文件。這時(shí)只要把剛剛生成的數(shù)據(jù)復(fù)制到對(duì)應(yīng)數(shù)據(jù)表中就大功告成了,不過要注意開始處數(shù)組的定義跟每個(gè)數(shù)據(jù)后的逗號(hào),編譯器可不會(huì)被你的急切所打動(dòng)。我這里只是拋磚引玉,感興趣的話可以在網(wǎng)上找到更多樂器的音色,讓它變得更好玩,更強(qiáng)大。在茶余飯后悄悄的拿出它,為家人彈奏一曲。簡(jiǎn)單的兒歌,或者經(jīng)典的旋律,不管你音樂水平的高低,總能在家人歡樂的笑聲中感受到電子制作帶給你的幸福!
格式工廠99545_看圖王.png (196.92 KB, 下載次數(shù): 128)
下載附件
2017-5-16 13:30 上傳
小橙出品,必屬精品。 請(qǐng)大家多多支持宅曉橙!
單片機(jī)源程序:
0.png (61.58 KB, 下載次數(shù): 119)
下載附件
2017-5-16 17:03 上傳
程序以及HEX文件:
PIANO.zip
(556.77 KB, 下載次數(shù): 201)
2017-5-16 13:25 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|