摘 要:本文論述的是一款基于STM32F103系列單片機控制的兒童互動教學(xué)平臺系統(tǒng),系統(tǒng)運用語言信號采集與處理解碼和STM32處理器以及存儲待處理語音信號技術(shù)為一體。其主要功能是一個由50-100頁彩色畫面組成的平臺,在平臺下面設(shè)置若干個按鈕,可以起到與兒童交互的作用。
關(guān)鍵詞:STM32F103RBT6;VS1003;頁碼識別
序言
目前市面上出現(xiàn)的兒童教育電子點讀類產(chǎn)品多為輻射性較強的液晶觸摸屏,作為兒童教育產(chǎn)品對孩子的視力有著嚴(yán)重的影響并且價格十分昂貴。針對這些缺點,我們設(shè)計的兒童互動學(xué)習(xí)平臺在傳統(tǒng)圖書的基礎(chǔ)上嵌入了音頻播放模塊和互動交流部分,不僅彌補了傳統(tǒng)圖書枯燥乏味不能引起兒童興趣的缺點而且我產(chǎn)品無電磁輻射。本設(shè)計采用的MCU為stm32系列單片機,設(shè)計電路簡單,性能穩(wěn)定且價格便宜。
1 系統(tǒng)總體構(gòu)架
交互式互動學(xué)習(xí)平臺系統(tǒng)由語音播放、頁碼定位、人機交互開關(guān)、數(shù)據(jù)存儲、電源管理及MCU最小系統(tǒng)等組成。當(dāng)系統(tǒng)啟動初始化完成后,頁碼識別部分將檢測到的頁碼值傳遞給MCU,此時STM32會檢測人機交互模塊的信息,根據(jù)此兩部分信息提取不同的音頻信息傳給語音播放模塊,然后語音模塊將其解碼后播放出來。
2 系統(tǒng)硬件設(shè)計
系統(tǒng)硬件分為以ARM芯片為主控芯片和以VS1003為語言解碼以及基于反射式光電傳感器的頁碼識別部分為主要部分。ARM芯片采用意大利半導(dǎo)體的STM32F103RBT6芯片,該芯片采用ARM32位Cortex-M3核心,集成了多種高性能工業(yè)標(biāo)準(zhǔn)接口。
2.1 語音解碼模塊
語音解碼部分由于涉及噪聲以及各種干擾原因較多于是我們采用的是目前較為流行和方便的VS1003模塊。VS1003采用SPI方式讀取數(shù)據(jù)其中SCK為串行時鐘輸入。串行時鐘也使用內(nèi)部的寄存器接口主時鐘。當(dāng)系統(tǒng)要播放音頻文件時,MCU會控制將SD卡內(nèi)的音頻文件通過SPI接口傳輸給VS1003,再經(jīng)過VS1003將音頻文件解碼然后通過耳機或音響播放。
2.2 頁碼識別模塊
頁碼識別部分設(shè)計采用ST188紅外光電式傳感器,利用在不同的頁碼設(shè)置不同的黑點,當(dāng)紅外放光管發(fā)出的紅外光射到黑點處時,由于黑色的吸光作用,ST188就不會接收到反射的光,當(dāng)接收管沒有接收到紅光時我們利用四個紅外光電傳感器掃描到不同的黑點編碼可以識別出圖書的頁碼以此判斷各個語言材料的選擇。本設(shè)計的四個紅外管分別接在了PC0-3上,PC低四位的編碼值即為0x0b,MCU檢測到PC口的輸入電平從而判斷具體頁碼。
2.3 人機交互模塊
為了使本產(chǎn)品更加具有趣味性和交互性,設(shè)計了部分按鍵已達到使用者與產(chǎn)品之間的互動。設(shè)置了播放,上下內(nèi)容選擇以及暫停按鍵。MCU有兩種方式檢測按鍵,本文采用查詢的方式。按鍵初始值為高電平當(dāng)有按鍵按下時相應(yīng)的I/O端口變低形成一個下降沿,通過不斷的循環(huán)按鍵掃描函數(shù),MCU通過檢查下降沿便是相應(yīng)的按鍵是否按下。當(dāng)光電傳感器采集識別出頁碼時,語言部分并不播放相應(yīng)的小故事而是當(dāng)使用者按下相應(yīng)的按鍵后有選擇性的執(zhí)行,提高了產(chǎn)品的控制性能。
3 系統(tǒng)軟件設(shè)計
3.1 編程工具
在編程工具方面我們采用的是RealView MDK,是ARM公司目前最新推出的針對各種嵌入式處理器的軟件開發(fā)工具。支持ARM7、ARM9和最新的Cortex-M3核處理器,自動配置啟動代碼,集成Flash燒寫模塊,強大的Simulation設(shè)備模擬,性能分析等功能。本設(shè)計基于?C/OS-Ⅱ操作系統(tǒng)的移植與配置。軟件設(shè)計部分主要包括數(shù)據(jù)通過SPI讀寫,語音解碼,音頻播放,和按鍵事件等。
3.2 SPI讀寫
SPI總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進行通信以交換信息。SPI總線系統(tǒng)可直接與各個廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,該接口一般使用4條線:串行時鐘線(SCLK)、主機輸入/從機輸出數(shù)據(jù)線MISO、主機輸出/從機輸入數(shù)據(jù)線MOSI和低電平有效的從機選擇線SS。系統(tǒng)之所以采用SPI總線方式主要它是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間,布線方便。SPI部分代碼具體流程首先是SPI的初始化,其中包括端口初始化,工作模式初始化即使半雙工還是全雙工,本設(shè)計采用的是全雙工模式8-bit數(shù)據(jù)一個停止位無效驗位,且SPI作為主機。其次就是傳輸速度的設(shè)置,再次考慮到系統(tǒng)的穩(wěn)定性和VS1003解碼的速率問題我們設(shè)置的速率較低。其后便是具體一個字節(jié)數(shù)據(jù)的讀寫了,此部分必須遵守SPI讀寫規(guī)范根據(jù)其數(shù)據(jù)手冊編寫。
設(shè)計中的音頻內(nèi)容通過SD卡存儲,其中SD卡的讀寫就是通過SPI方式通信,系統(tǒng)采用較為流行的FAT32文件操作系統(tǒng)而是自己根據(jù)實際功能實現(xiàn)采用自己編寫的文件系統(tǒng),大大減小了軟件的代碼量。
3.3 音頻解碼部分
系統(tǒng)首先對VS1003進行初始化,包括各個I/O端口的時鐘使能以及工作方式的配置,由于VS1003與MCU的接口方式為SPI方式,該方式的一些配置在前面已經(jīng)做過結(jié)束就不在贅述。其中VS1003對命令以及數(shù)據(jù)的讀寫程序以及我們對VS1003的很多設(shè)置都要嚴(yán)格按照VS1003的數(shù)據(jù)手冊具體說明編寫。包括音量的設(shè)置,聲調(diào)的設(shè)置,左右聲道的設(shè)置以及是否使用高低音等。VS1003對不同的音頻文件采取不同的解碼方式,所以其要判斷是哪種音頻文件然后進行各種測試以判斷其是否正常工作,包括正弦測試和內(nèi)存測試等。
3.4 音頻播放部分
音頻文件只有通過解碼后才可以播放出來,具體怎樣播放的就在此部分代碼中控制。本設(shè)計的文件系統(tǒng)完成的工作是找到內(nèi)存中某類文件的數(shù)量,我們在此文件系統(tǒng)下可以得到MP3類音樂文件的個數(shù),然后通過控制相應(yīng)的變量來控制相應(yīng)的音頻文件。此部分我們首先要得到SD卡的信息,其中主要是總共MP3類文件的個數(shù)以及后來讀取相應(yīng)的文件的信息。其中主要用到了兩個子函數(shù),其一就是void Play_Music(void),另一個主要的函數(shù)是u8 Play_Song(u16 index,u16 total),此函數(shù)就是具體怎樣播放一個音頻文件了。此部分首先要讀取具體某個簇的某個扇區(qū),其中扇區(qū)的數(shù)據(jù)是具體一個字節(jié)一個字節(jié)讀取的,在每個字節(jié)文件讀取完成后就會進行一次按鍵事件以及頁碼更改事件的掃描,所以其可以打到實時的曲目更新。
按鍵掃描事件以及頁碼識別部分此部分代碼的編寫與普通的代碼編寫差異不大,前面在硬件設(shè)計部分對這兩部分都進行了解釋在此就不再贅述。
4 總結(jié)
本設(shè)計基本上完成了總體設(shè)計要求,其中在語言解碼,頁碼識別,SD卡讀寫以及FAT文件系統(tǒng)方面做了很多工作。其中頁碼識別方面做得較為出色,想法新穎有創(chuàng)意且準(zhǔn)確性高。不過本設(shè)計還是存在一些不足和有待改進的地方,例如在人機交互方面還有很大的提升空間,可以設(shè)置出更加新穎豐富的互動內(nèi)容以提高趣味圖書的使用效果。
參考文獻
[1]竇文.兒童書籍設(shè)計互動性探討[D].湖南師范大學(xué).2011,05:3-10.
[2]楊亞寧.輪胎爆胎預(yù)警系統(tǒng)硬件設(shè)計的可靠性研究[J].電子設(shè)計工程理.2012,06(20):5-7.