各位讀者,本系列專欄已經進入第4 回了,大家有一起動手做嗎? LinkItONE 這塊Arduino 相容板很適合用來進行各種穿戴式裝置與物聯網專題,歡迎和我們一起學習!本期要介紹LinkItONE 的音源輸出功能,要不要做一個小型MP3 隨身聽呢?
LinkIt ONE 的SD 卡與音效輸出
LinkIt ONE 有一個音源接頭,可以接上耳機或小型喇叭等播音裝置。您只要在SD 卡中放置音樂檔,並在程式中指定路徑與檔案名稱即可播放。在本範例中的檔案名稱為hello.mp3 ,如果使用不同檔名的音樂檔的話,請記得在程式碼中修改檔名。LinkIt ONE 支援的音效格式還有.aac、.amr 與.wav , 您可以運用音樂播放功能,在系統偵測到某些狀況時自動播放音樂,打造如歡迎光臨之類的功能。LinkIt ONE 背面有一個SIM 卡與SD 記憶卡的雙用插槽, 請插入您的micro SD 記憶卡槽(圖1),並安裝本文最後的程式即可。
所需零件:
- LinkIt ONE開發板
- 耳機或桌上型小喇叭(需另接電源)
- micro SD卡,1片(容量根據您所要播放的音效檔案大小與數量而定)
- 按鈕,1個
- 220Ω電阻,1個
音樂播放器是有許多實體按鈕的,本範例會使用一個按鈕來依序切換五個功能。您在市面上可以買到的按鈕如圖2 ,兩支腳或四支腳都可以,本範例採用兩支腳的版本。一邊請先串連一個220Ω 電阻接地, 再分接到LinkIt ONE 的數位腳位D5 , 另一邊則直接接到板子上的5V 腳位, 完成如圖3。
程式說明
本範例是一個迷你音樂播放器,可以利用接在 D5 腳位上的按鈕來切換「播放」、「設定音量」、「暫停」、「繼續播放」與「停止播放」等功能,這五個功能算是音樂播放程式的基本功能,您可以觀察一下您手邊的iPod 或是音樂播放器還有哪些按鈕。接著介紹程式中幾個比較重要的指令:
設定一個字元陣列做為暫存器,可以存放音樂播放器是處在哪一個狀況。
函式Scan_KEY() 是用來檢查按鈕是否壓下。
建立一個Change_Status 的函式,用按鈕切換目前的控制模式。在一開始有先定義KEY 為五種模式:「Play」( 播放)「SetVolume」( 設定音量)、「Pause」( 暫停)、「Resume」( 繼續播放)、「Stop」(停止播放)。然後根據status 這個值,執行指定動作。本函式可接受外部傳進來的參數,並以switch 結構來執行五個case 的其中一個,藉此對應到音樂播放器的功能。您可看到有一個名為default 的case ,如果收到沒有定義的參數的話,就會由default 來處理,以本範例來說就是直接跳出迴圈。您可以在switch 結構中加入更多case 來擴充您的音樂播放器。
主程式中會判斷音樂是不是已經播放完畢,並且將KEY 變會預設的Play繼續播放音樂。如果再按一下按鈕就可以停止播放。
操作時, 請把耳機或小型喇叭等播音裝置接上LinkIt ONE 的音源接頭,並將您想要的音效檔(別忘了:檔名與副檔名要完全一致)燒錄進一張micro SD 記憶卡中,再插入LinkItONE 背面的 SIM/SD 卡插槽即可。本期專欄要怎麼改裝呢?您可以加裝多個按鈕,讓本範例的五個功能都有獨立的對應按鈕的內容來控制更多裝置, 例如簡訊內容為「ONOFF」,就可以分別控制LED 與電風扇的開關。畢竟發簡訊需要費用啦,要好好運用它的內容才行。