《NFC聲活良伴》創客自造專案
[案例分享-1] by Roger Luo
NFC Acoustic Companion CC Project
“「Maker」中文稱作「創客」、「自造者」,是當代潮流趨勢中最被熱烈討論的一環,同時也被視為是啟動未來創新的重要角色。從過去單向「想」的學習模式,欠缺「實作」的學校課程,到今日創意創新成為競爭主體的時代來到,翻轉了傳統觀念。從「想」到「做」的展現,則成為影響未來競爭力的關鍵。”~ 引自台灣自造者網站『創客精神』
發想
網路發達時代,只要敢想、對生活品味有期待,就可以從眾多的開放資源平台學習,並取得相關的零組件,實現出自己可以掌握的創作。⋯⋯「沒有音樂,生活將是一種錯誤」,這句哲學家尼采的名言,隨著歲月的增長體會更為深刻。而一生中,總有那麼一天,會發現自己開始『耳不聰、目不明』,卻絕對不願意放棄有音樂陪伴的生活;更簡單、更直覺的方式,可以隨時讓空氣中流動著,那些熟悉且令自己動容的音符,繼續撫慰與陪伴可以精彩的人生歲月。
《NFC聲活良伴》(ACCP) 是自己邁入半百人生後,新的熱情創作。將長久以來專注的 RFID / NFC技術,與古早家中電唱機的記憶,以創客 (Maker) 常用的自造工具,開發出這一款適合中年生活的MP3音樂隨身聽(當然,也可以用作兒童的故事機;說書盒子;留聲禮盒;語音導覽等等……)。現在,將完整公開所有的設計與原始程式碼,讓有志一同的人,也可以自己DIY分享與製造,屬於自己或為父母家人專屬的『NFC聲活良伴』。
架構概述與使用情境
[圖.1]
採用最多創客使用的Arduino IDE環境開發,以 Microchip ATSAMD21-G18 微控制器為核心的 Seeeduino XIAO 開發主板 圖.F,與其專用含OLED顯示器的擴充板 圖.E (XIAO Expansion Board)為主體;結合SICRE31 NFC Re-Writer 圖.B 與DFPlayer MP3 Mini 圖.G,架構出具備可充電便攜式的MP3隨身聽;並內置2吋的全音域喇叭圖.A,可以久聽不膩。
DFPlayer具有Micro SD卡槽 圖.H,可以播放存放在SD卡內的MP3音樂。以FAT/FAT32檔案目錄架構的16G卡,可以存放超過上千首,最高音質的6分鐘MP3音樂;而其檔案目錄形式係以:/01/ - /99/的格式來存每張專輯或播放列表;每個目錄下可自編號001至999的順序來寫入個別的MP3檔案。在取得有版權的數位音樂或自行從CD唱片轉錄的MP3音樂,依其檔案格式寫入SD卡內即可播放。例如:目錄/09/001往事只能回味.mp3,表示在第09專輯裡,第1首的曲子,檔名必須是三位數字帶頭,後面可以加上中英文曲名。
為求播放音樂操作上的便利與直覺性,只要將『NFC小唱片』(XiaoDisc, 簡稱XD)圖.L - 圖.M 插入感應槽內,XIAO主機便會透過NFC讀寫器,來感應唱片內置的NFC標籤,以讀取其內第0x27頁的特定編碼內容(每頁含4個位元組的資料,來決定要播放的曲目與播放的方式。例如:09 01 0A 00,表示依序播放目錄/09/內的所有10首曲目;又如:20 05 01 01,表示播放目錄/32/內重複播放第5首曲目……等。
XIAO主機上具有USB Type C的接口,可以用來連接電腦使用Arduino IDE來編修程式,或者對內建的鋰電池圖.I充電。
音樂播放以感應NFC標籤晶片製成的小唱碟(X-DISC)為主,亦可採用同型各式標籤嵌入於物件之中來觸發,共有:6種播放模式ALBUM PLAY 專輯播放模式,可接續並循環播放專輯目錄內所有曲目。
- A-B REPEAT 區間循環播放,指定播放目錄內從A首到B首間所有曲目。
- SINGLE PLAY 單首曲目播放,指定播放目錄內單一首曲目。
- AUDIO GUIDE 語音導覽模式,可切換多國語言來播放相對應語音說明。
- BGM SHUFFLE 背景音樂隨選播放,在指定專輯目錄內以隨機方式播放。
- PLAYLIST GO 播放列表演出模式,依照預先編排的曲目順序播放。
- QUIZ GAMER 快問快答遊戲模式,以互動與語音方式,考驗聲音的記憶。
[圖.2] 使用NFC Re-Writer App 將欲播放的曲目寫入X-Disc的索引位置
要如何製作X-Disc呢?
還是得依循電唱機所訂的曲目索引格式,才可以運行無阻。為了能達到『物盡其用』的理念,電唱機將曲目索引的位址訂在X-Disc裡晶片,可用記憶體的最後,其用意是前面的NDEF紀錄可以照用,通常閒置的尾端空間,拿來物盡其用 (Maker就是喜歡一魚雙吃)。
舉上面的例子,要聽『往事只能回味』專輯,就在0x27的位址寫上 [ 63 01 12 10 ] 再拿去感應,電唱機就會以專輯、Normal方式來播放在目錄/99/下所有的曲子。現在,就用 NFC ReWriter APP來進行(如果你正在手機閱讀這篇文章,可以點 [$ 這裡$ ] 來下載已寫好的命令程序)。 這裡要使用 “最-in(硬)” 的 CUSTOM TRANSCEIVE 命令編輯器,來編寫對小唱片存取的命令序列:在主畫面下選擇 -> TOOL KIT -> 在 NfcA 裡選 -> Custom Transceive ->
[圖.3]
然後 ADD ,第一個命令 [30 27] 是讀取位址0x27的內容;接下來,將此位址寫入資料[63 01 01 11],此命令是:[A2 27 63 01 01 11]。記得完成後,要先按畫面左上角的 磁碟圖案 來儲存,最後按 EXECUTE 即可感應寫入X-Disc 中。(注意,此處 [] 內的數值是16進位制,所以0x63 = 99)
如果,你是點上面分享連結進來的,會看到如 [圖.3] 預先編排好的命令序列;現在只要在第二個命令按 編修,就可以修改去播放不同的曲目,前方記得要加上 [A2 27] 這個寫入位址0x27的命令就可以了。
詳細的曲目索引格式與範例,請參考NFC ACCP的$ Wiki $ 網頁。
[ACCP自造課程,$ 由此進$ ...]
$
$