DIY系列之二:MP3播放器皮帶扣
前一段時(shí)間,我們的機(jī)械工程師上網(wǎng)的時(shí)候發(fā)現(xiàn)了一些很漂亮的皮帶扣。這正是我們用來包裹住MP3開發(fā)板的好東西,所以他很自然地想到:“我敢打賭,我們可以把MP3播放器變成那個(gè)東西!”
這樣一來,任務(wù)開始變成了將MP3開發(fā)板所需硬件移植到PCB上去,從而能夠正好匹配這些皮帶扣。我們的目標(biāo)是使一個(gè)MP3播放器,不僅適合皮帶扣,而且也與運(yùn)動相呼應(yīng),并且可以玩至少一兩個(gè)小時(shí)都不充電。
我們成功了!請仔細(xì)閱讀,了解如何使你自己的MP3播放器成為皮帶扣。
硬件
這里有一個(gè)用來制作皮帶扣所需要主要組成部分的列表:
LPC2148 ARM微控制器,大腦;
VS1002 MP3解碼器,解碼MP3音頻數(shù)據(jù)并發(fā)送出去;
MMA7260三軸加速度計(jì),髖部逆沖推覆,帶霹靂舞輸入;
microSD插槽,一個(gè)用于存儲的SD卡
USB miniB連接器,用于加載歌曲和充電設(shè)備;
導(dǎo)航開關(guān),用于用戶輸入;
音頻插孔耳機(jī)插頭那些要到的東西!
三色LED,稍微漂亮一些,這些華麗的東西總是好的;
On / Off開關(guān);
MAX1555 USB充電器,對電池進(jìn)行充電;
3.3V穩(wěn)壓器。
最大的問題是如何啟動的設(shè)備。我們需要的東西將是強(qiáng)大到足以運(yùn)行100 mA的電流,保持至少幾個(gè)小時(shí),并且可充電。 鋰離子電池組通常會在項(xiàng)目中使用,但是它們過大而笨重。安裝電池將非常具有挑戰(zhàn)性的,它占用的體積過大,從而看上去穿著“時(shí)尚”。在進(jìn)行了相當(dāng)多的搜索后,我查到了這些鋰離子可充電紐扣電池的供應(yīng)商。太完美了! 一個(gè)200-mAhr的電池可以在MP3播放器上至少運(yùn)行幾個(gè)小時(shí)的,而且它的再充電能力很強(qiáng)。
哇,很多東西將放在一個(gè)板極系統(tǒng)上,卻沒有一個(gè)非常大的印記。但是我們會沒事的。您可以查看原理圖,看看我們?nèi)绾芜B接一切,或者你可以下載Eagle文件,以獲得更好的視圖(自己建立一個(gè)自己)。讓我們來看看如何做PCB板布局。
布局
開始布局之前第一件事,我總是決定PCB是什么形狀。在這種情況下,我們受制于外殼。 PCB必須融入一個(gè)小槽的皮帶扣的背面。因此,為了決定PCB的尺寸,我剛剛測量了皮帶扣背面的插圖,并且發(fā)現(xiàn)所需的PCB大小為3.03英寸寬×1.45英寸高。有了這些方面的數(shù)據(jù),我開始畫PCB的尺寸。
現(xiàn)在,我們已經(jīng)創(chuàng)建了尺寸,可以去尋找組件的位置。通常我排列組件的方式是使得連接的信號最簡單的。不過,對于這個(gè)項(xiàng)目,我們不得不做出一些特殊的考慮。首先,我不得不把元件安排在板子的兩邊。在SparkFun我們通常不這樣做,因?yàn)橹圃爝@樣一種電路板是令人頭痛的。但PCB太小,不適合在一邊擺放所有東西。
我決定,我想要把盡可能多的組件放在正面,從而在使用皮帶扣時(shí),你會盡可能看到一個(gè)很酷的電路板。我肯定希望LED也在前面,這樣的話,如果當(dāng)我們把它打開,每個(gè)人都可以看到!
當(dāng)把板子前面所有的東西都擺放好以后,我只好把電池放在板子的背面。我也把USB連接器放在背面,以便它可以訪問,而無需解開皮帶扣來使用PCB。音頻插孔和導(dǎo)航開關(guān)也被放置在背后,這樣的話當(dāng)人們穿著皮帶扣時(shí),也能訪問[!--empirenews.page--]
在上面的圖片中,你可以看到我決定如何擺放PCB背面的組件。音頻插孔在電路板頂部,這樣的話耳機(jī)可以直接從皮帶扣穿出。為了允許用戶從播放器中去除電池,電池連接器上沒有任何組件。
我們必須避免電池和組件之間的連接,因?yàn)樵摻M件可能會意外地導(dǎo)致電池短路(我知道這一點(diǎn)是因?yàn)槲易隽怂牡谝粋€(gè)版本,這款主板燒起來并在我的手指上留下了標(biāo)記!要小心)。所以我把USB連接器放在底部,并把導(dǎo)航開關(guān)放在側(cè)面,這樣的話就不會干擾到電池。
請注意,兩個(gè)電池都由分別的標(biāo)記,但只有一個(gè)有標(biāo)識。你或許會問為什么這么做呢?事實(shí)是,我不是這個(gè)意思。在送出Gerber文件前,我沒有檢查它??纯催@張截圖的布局。
提請你注意右上角的粉色大正方形。 microSD插槽被放置在頂部的板面。電池直接擺放在它之下??吹诫姵氐木G色方塊連接器了嗎?這是電池接觸的地連接。注意如果電池支持架焊接好了以后,microSD插槽就焊接在這上面,Vcc接觸正好與支持架相連接。這將會比較麻煩,因?yàn)閙icroSD的屏蔽連接到地面,我們就會通過200毫安的電池有一個(gè)從Vcc對地的短路。不好,非常糟糕!幸運(yùn)的是,我在有人受傷前發(fā)現(xiàn)了這個(gè)問題。
現(xiàn)在,我們已經(jīng)成功地把所有東西都擺放在PCB上了,我們可以繼續(xù)進(jìn)行有趣的部分:編寫代碼!
代碼編寫
使得事情按照我希望的方式進(jìn)行是一件很有樂趣的事情。我開始通過加載SparkFun LPC2148的USB引導(dǎo)程序,這點(diǎn)您可以通過閱讀本教程來了解。引導(dǎo)程序可以讓我把固件文件放置到SD卡上,隨后LPC2148將自動重新設(shè)定新的代碼。這樣每次我要測試新代碼,就可以實(shí)現(xiàn)更快的代碼開發(fā)。
當(dāng)引導(dǎo)程序被加載到板上后,我就開始寫“真實(shí)”的代碼,或這說是實(shí)際運(yùn)行的MP3播放器的代碼。在編寫任何代碼之前,我不得不決定如何對設(shè)備進(jìn)行操作。由于沒有一個(gè)屏幕,從播放列表選擇一首歌曲是比較麻煩的。所以我決定的第一件事是,能夠隨機(jī)播放歌曲。
這是比較容易實(shí)現(xiàn)的。我還需要能夠使播放器啟動/停止、改變音量、更換歌曲。我有三個(gè)按鈕和一個(gè)加速度計(jì)來完成這些任務(wù)。我定義向上和向下的導(dǎo)航開關(guān)按鈕來改變音量,中間的按鈕來暫停/播放當(dāng)前歌曲。
唯一缺少的功能,就是改變所播放的歌曲。當(dāng)然,我決定使用加速度傳感器來檢測運(yùn)動的變化。通俗地說,改變樂曲,用戶只需做一個(gè)“臀部推力。”這是正確的,讓你身體語言來進(jìn)行操作!
我還添加了一些有趣的東西,如果加速度計(jì)檢測到用戶的舞蹈,三色LED將開始閃爍。實(shí)現(xiàn)這些代碼是不是太困難。我開始使用MP3板上的示例代碼,拋開所有我不需要的東西。然后,我只是改變了一些控制,并增加了LED的功能。變變變!皮帶扣MP3播放器就誕生了。
我希望你已經(jīng)能夠從本教程中學(xué)會了一些東西。
本文原作者:SparkFun Electronics Inc