• 正文
    • 1.主要構(gòu)成
    • 2.字庫(kù)制作
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

【LPC54114】-基于LPC54114的智能語(yǔ)音藥盒

02/11 13:39
1231
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

開發(fā)背景:

伴隨老齡化的逐步到來(lái),老人獨(dú)自在家十分需要有人照顧,而兒女們卻需要為生活而奔忙。像老人服藥這類的小事,也是需要有人去關(guān)注和提示的。為此制作一個(gè)多功能的智能型語(yǔ)音藥盒是一件有意義的事情。

就開發(fā)平臺(tái)的選擇來(lái)講,LPC54114開發(fā)板是一款與設(shè)計(jì)目標(biāo)十分貼和的開發(fā)工具,它所配置的SPH0641LM4H數(shù)字麥克風(fēng)、Wolfson的WM8904codec芯片等即語(yǔ)音類處理。通過配置OLED屏,耳機(jī)或小音箱等就可達(dá)到基本的設(shè)計(jì)要求。

此外,板載的溫度傳感器及內(nèi)置的RTC和A/D轉(zhuǎn)換器,還能語(yǔ)音藥盒的功能上附加一些智能家居控制的功能,因此極具實(shí)用價(jià)值。
那該語(yǔ)音藥盒又有何功能呢?

首先該語(yǔ)音藥盒的核心是RTC計(jì)時(shí)器,它無(wú)需MCU的干預(yù)接口自行運(yùn)轉(zhuǎn),從而使MCU能騰出寶貴的時(shí)間去處理其它工作。通過設(shè)置多個(gè)提示時(shí)段,即可在相應(yīng)的時(shí)刻發(fā)出的提示信息,這些會(huì)以3種形式來(lái)輸出,他們分別是:

1)語(yǔ)音方式,該提示最有穿透力,因?yàn)樗还苣阍谧鍪裁?,也不管你是否在關(guān)注它,只有在它作用的范圍內(nèi)都會(huì)通知到你。

2)中文信息方式,該提示最具審核性,它可供你仔細(xì)的查看與核對(duì)。通過OLED屏可查看的信息有:服藥時(shí)間、藥品名稱、用量等。起初是將它也歸入到語(yǔ)音中,但在沒有語(yǔ)音文件系統(tǒng)的支持下,語(yǔ)音的播放內(nèi)容是會(huì)受到極大限制的。

3)LED指示方式,該方式可在藥盒中指示出是否藥物的正確位置,以便于取出。受時(shí)間的限制原本打算以步進(jìn)電機(jī)使藥盒轉(zhuǎn)動(dòng)到出口位置以供獲取,只能以后在添加了。

除語(yǔ)音藥盒功能外,為充分發(fā)揮開發(fā)板的資源,還以O(shè)LED屏實(shí)時(shí)地顯示出環(huán)境的溫度和A/D轉(zhuǎn)換口的電壓值。在添加控制限值的情況下,即可實(shí)現(xiàn)溫度控制及安放報(bào)警等,因?yàn)榇蠖鄶?shù)的傳感器都是通過模擬信號(hào)輸出的,接入A/D轉(zhuǎn)換口,即可對(duì)其進(jìn)行判別處理和控制,從而易于實(shí)現(xiàn)家居控制等。

1.主要構(gòu)成

該語(yǔ)音藥盒主要由LPC54114開發(fā)板、OLED屏、耳機(jī)或音箱所構(gòu)成,如圖1所示。在設(shè)計(jì)與調(diào)試階段可以耳機(jī)來(lái)進(jìn)行,在實(shí)際使用時(shí),則需要揚(yáng)聲器來(lái)播放,采用的方法有2種。一是直接接上一個(gè)小音箱,這種方法最簡(jiǎn)單,但相對(duì)比較耗電也不像個(gè)獨(dú)立的作品;另一個(gè)是為它配功放,只需一個(gè)運(yùn)放和一些阻容元件即可,相對(duì)比較經(jīng)濟(jì),也便于作品的一體化。

在供電方面,建議采用USB電源轉(zhuǎn)換器,它體積小,也比用電池環(huán)保。


圖1 基本構(gòu)成

該語(yǔ)音藥盒可實(shí)現(xiàn)多個(gè)時(shí)段的提示處理,如圖2至圖5所示。在測(cè)試時(shí)為節(jié)省時(shí)間,僅以分鐘為單位設(shè)置了4個(gè)時(shí)段加以驗(yàn)證,情況完全正常。設(shè)置時(shí)間一到,3種輸出信息準(zhǔn)時(shí)到達(dá)。

該語(yǔ)音藥盒可實(shí)現(xiàn)多個(gè)時(shí)段的提示處理,如圖2至圖5所示。在測(cè)試時(shí)為節(jié)省時(shí)間,僅以分鐘為單位設(shè)置了4個(gè)時(shí)段加以驗(yàn)證,情況完全正常。設(shè)置時(shí)間一到,3種輸出信息準(zhǔn)時(shí)到達(dá)。

圖2 時(shí)段1提示界面

圖3 時(shí)段2提示界面

圖4 時(shí)段3提示界面

圖5 時(shí)段4提示界面

2.字庫(kù)制作

為便于使用,特利用PCtoLCD2002字模提取軟件構(gòu)建了小字庫(kù),其界面如圖6所示。通過小字庫(kù)的構(gòu)建,可將常用的藥名字模提取出來(lái),構(gòu)建一個(gè)專用的字庫(kù)。
相對(duì)來(lái)講如果構(gòu)建一個(gè)完整的字庫(kù),并存放在SD卡中以供調(diào)用會(huì)更理想。它有利于采用文本方式來(lái)設(shè)置提示條件,這也是后續(xù)完善的提升方向之一。

圖6 構(gòu)建字庫(kù)

3.功能

該作品的功能包括:RTC計(jì)時(shí)、溫度檢測(cè)、模擬傳感器檢測(cè)及顯示等,并通過多時(shí)段語(yǔ)音提示功能。

4.各級(jí)界面

各級(jí)界面是信息顯示的窗口,主界面如圖7所示。

圖7 主界面

該設(shè)計(jì)共有兩種顯示模式,即語(yǔ)音藥盒模式(多時(shí)段語(yǔ)音提示)、家居測(cè)控模式(溫度檢測(cè)、模擬傳感器測(cè)控),其界面分別如圖1、圖2所示。通過K2鍵可切換顯示模式,在解決測(cè)控模式下,日期顯示信息會(huì)覆蓋語(yǔ)音藥盒的提示信息。

5.處理流程

該作品的處理流程如圖8所示。

圖8程序流程

6.程序設(shè)計(jì)

多時(shí)段提示處理程序:

if((f!=0)&&(cp<3))
{
if(ch==p) // 時(shí)段判別
{
m1(); // 中文信息提示(時(shí)間、藥名、數(shù)量)
led_on(4); // 藥盒位置指示
o=1; // 語(yǔ)音提示啟動(dòng)標(biāo)識(shí)
}
if(ch==(p+1))
{
m2();
led_on(5);
o=1;
}
if(ch==(p+2))
{
m3();
led_on(6);
o=1;
}
if(ch==(p+3))
{
m4();
led_on(7);
o=1;
}
if(ch==(p+4))
{
OLED_ShowString(20,2," ",16);
led_off(4);led_off(5);led_off(6);led_off(7);
}
}

溫度檢測(cè)程序:

if(fPCTValue>=0)
{
//PRINTF("Temperature Value is +%d.%d oC.r", (int)(fPCTValue*100)/100, (int)(fPCTValue*100)%100);
OLED_ShowString(0,4,"Temp: ",16);
OLED_ShowNum(40,4,(int)(fPCTValue*100)/100,3,16);
OLED_ShowString(64,4,".",16);
OLED_ShowNum(72,4,(int)(fPCTValue*100)%100,2,16);
}
else
{
//PRINTF("Temperature Value is -%d.%d oC.r", (int)((0-fPCTValue)*100)/100, (int)((0-fPCTValue)*100)%100);
OLED_ShowString(0,4,"Temp:-",16);
OLED_ShowNum(40,4,(int)((0-fPCTValue)*100)/100,3,16);
OLED_ShowString(64,4,".",16);
OLED_ShowNum(72,4,(int)((0-fPCTValue)*100)%100,2,16);
}
OLED_ShowString(80,4,"oC",16);

模擬信號(hào)電壓采集程序:

wADCValue = adc_read(ADC_CHANNEL_NUM);
if(wADCValue != 0xFFFF)
{
dwLedTime = (wADCValue*2000)/0xFFFF; // ajust the led blinky freqency
//wADCValue = 0xFFFF; 3.3v
}

OLED_ShowString(0,6,"ADC:",16);
OLED_ShowNum(40,6,(int)((wADCValue*3.3)/0xFFF*100)/100,1,16);
OLED_ShowString(48,6,".",16);
OLED_ShowNum(56,6,(int)((wADCValue*3.3)/0xFFF*100)%100,2,16);
OLED_ShowString(72,6,"V",16);

7.語(yǔ)音的錄制與播放

在該作品的設(shè)計(jì)中,語(yǔ)音的處理是一個(gè)關(guān)鍵。為了有效地縮減程序的規(guī)模和復(fù)雜度,語(yǔ)音的錄制處理放到外部的其它程序來(lái)處理,由于錄制的結(jié)果是存放在板載的Flash中,因此不怕斷電丟失。在該作品中只需按地址適時(shí)地對(duì)其讀取播放即可。

盡管板載的Flash相對(duì)于需要來(lái)講不是很大,但在語(yǔ)音較短的情況下,還是可以考慮對(duì)Flash進(jìn)行分段錄制,并依地址分段存儲(chǔ)與播放。

其實(shí)按原來(lái)的設(shè)想是探索以數(shù)字錄音芯片錄制,然后轉(zhuǎn)存到SD卡的文件中進(jìn)行存儲(chǔ)和管理。當(dāng)使用時(shí)再按文件名來(lái)讀取需要的語(yǔ)音文件以實(shí)現(xiàn)語(yǔ)音的再現(xiàn)。然而花費(fèi)的時(shí)間和精力太多,難以短期解決,只能退而求其次,單用Flash來(lái)進(jìn)行語(yǔ)音錄放達(dá)到功能上的效果演示。

8.改進(jìn)方向

未來(lái)的改進(jìn)方向是使用文件來(lái)管理語(yǔ)音的錄放,從而構(gòu)建一個(gè)語(yǔ)音庫(kù)來(lái)擴(kuò)展語(yǔ)音的播放內(nèi)容。此外,將錄音數(shù)據(jù)存入文件可增強(qiáng)語(yǔ)音的實(shí)時(shí)記錄與編輯管理等。
此外,以文件來(lái)管理各時(shí)段的條件設(shè)置,能增強(qiáng)管理及編輯的靈活性。在添加功放模塊的條件下,取代用音箱來(lái)輸出語(yǔ)音提示信息。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜