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