照顧小寶寶是非常勞累的事情,因?yàn)樗麄冃褋砗退X都比較頻繁,加之喂食換衣服等活動(dòng),會(huì)占用大人大量的時(shí)間和精力。搖籃的誕生在很大程度上減輕了大人的負(fù)擔(dān),但仍有很多不盡如人意的地方。 利用動(dòng)作(加速度)傳感器和功能豐富的單片機(jī),則可以設(shè)計(jì)出一種相對(duì)智能化的搖籃。 背景 現(xiàn)在市面上的電動(dòng)搖籃僅有簡(jiǎn)單的定時(shí)功能,因此不能針對(duì)嬰兒的活動(dòng)發(fā)生動(dòng)作,若搖籃一直搖動(dòng),對(duì)嬰兒的安撫作用就會(huì)降低。采用聲音觸發(fā)的自動(dòng)搖籃,缺點(diǎn)是嬰兒先是活動(dòng),得不到安撫則會(huì)哭鬧,搖籃才會(huì)啟動(dòng)進(jìn)行安撫;另外如果因?yàn)閯e的原因哭鬧,搖籃則不能起到安撫作用。所以根據(jù)嬰兒的活動(dòng)來啟動(dòng)搖籃是比較妥當(dāng)?shù)目刂品绞健?a href="http://m.qingdxww.cn/keyword/飛思卡爾" target="_blank" class="relatedlink">飛思卡爾的加速度傳感器性能優(yōu)秀,成本較低,適合這樣的應(yīng)用。 自動(dòng)搖籃的原理 本系統(tǒng)采用飛思卡爾MC9S08QG8單片機(jī)作為控制器,使用飛思卡爾加速度傳感器MMA7260QT判斷嬰兒的活動(dòng)情況,同時(shí)用麥克風(fēng)檢測(cè)嬰兒哭鬧的聲音作為輔助判斷,然后根據(jù)設(shè)置啟動(dòng)搖籃搖動(dòng)。人機(jī)界面由鍵盤和點(diǎn)陣液晶顯示器組成。 測(cè)量運(yùn)動(dòng)的方法 加速度傳感器測(cè)量運(yùn)動(dòng)和動(dòng)作有很多算法,本系統(tǒng)中由于搖籃的活動(dòng)方向是二維的,而且主要是其中的一維(所以采用一維加速度傳感器也可以),運(yùn)動(dòng)情況單一,場(chǎng)合也不復(fù)雜,所以采用簡(jiǎn)單的閾值判斷的方法即可實(shí)現(xiàn)。閾值代表著靈敏度,可由用戶根據(jù)實(shí)際情況選擇。 觸摸按鍵的實(shí)現(xiàn) 觸摸按鍵是近年比較流行的技術(shù),由于MC9S08QG8單片機(jī)有很低的端口漏電流和強(qiáng)大的鍵盤中斷功能,所以不需增加其它有源器件即可實(shí)現(xiàn)。而且本系統(tǒng)使用兩個(gè)端口即可提供三個(gè)按鍵的功能。 使用PCB焊盤作為觸摸按鍵,和地之間構(gòu)成一個(gè)小電容C1(沒有手指觸摸時(shí)),按鍵通過大阻值電阻R1接地。單片機(jī)端口平時(shí)輸出高電平,檢測(cè)按鍵時(shí)則為鍵盤中斷,隨著C1上的電荷通過R1流失,電平逐漸降低直至引起鍵盤中斷,從開始檢測(cè)到引起鍵盤中斷的時(shí)間為T1,當(dāng)有手指觸摸時(shí)相當(dāng)于在C1上并了一個(gè)電容,因此電容值變成C2,則從開始檢測(cè)到引起鍵盤中斷的時(shí)間為T2,通過檢測(cè)T1、T2的差別即可判斷按鍵按下,如圖1。 假設(shè)按鍵1的電容為C1,按鍵2的電容為C2,則如果C1增加C2不變,則按鍵1按下,如果C2增加C1不變,則按鍵2按下,如果C1、C2都增加相似的數(shù)值,則可判斷為按鍵3按下。PCB上按鍵3位于按鍵1和按鍵2之間。這樣就實(shí)現(xiàn)了兩個(gè)端口判斷三個(gè)按鍵的功能。 PWM脈寬調(diào)制驅(qū)動(dòng)電機(jī) 使用脈寬調(diào)制(PWM)的方式驅(qū)動(dòng)電機(jī)來實(shí)現(xiàn)調(diào)速,可以給用戶選擇3檔搖動(dòng)速度,也可以實(shí)現(xiàn)軟啟動(dòng)和軟停止。 液晶顯示 使用3V串口液晶顯示模塊,用單片機(jī)SPI口驅(qū)動(dòng),實(shí)現(xiàn)簡(jiǎn)潔高效的顯示界面。 系統(tǒng)概述 系統(tǒng)特性 A.使用飛思卡爾MC9S08QG8單片機(jī)作為控制器,集成度高,性價(jià)比好。 B.使用飛思卡爾MMA7260QT加速度傳感器感知?jiǎng)幼鳎阅芟冗M(jìn),穩(wěn)定。 C.良好的人機(jī)界面包括了點(diǎn)陣液晶顯示器和簡(jiǎn)潔的菜單系統(tǒng)。 D.使用單片機(jī)端口低漏電流的特性和鍵盤中斷功能實(shí)現(xiàn)流行的觸摸按鍵技術(shù)。 E.使用單片機(jī)PWM功能實(shí)現(xiàn)搖籃速度可調(diào),軟啟動(dòng)和軟停止。 F.可控音量的音樂播放功能。 系統(tǒng)概述 基于MMA7260QT加速度傳感器的自動(dòng)搖籃控制系統(tǒng)結(jié)構(gòu)如圖2。 嬰兒睡著時(shí),搖籃不動(dòng),加速度傳感器的輸出穩(wěn)定,單片機(jī)采樣得到的數(shù)值作為零值。當(dāng)嬰兒有動(dòng)作引起搖籃晃動(dòng),單片機(jī)采樣得到的數(shù)值發(fā)生變化,變化大于設(shè)定的閾值時(shí),PWM引腳輸出驅(qū)動(dòng)電機(jī)動(dòng)作。 麥克風(fēng)作為可選的輔助判斷依據(jù)也輸入單片機(jī)。 音樂播放作為可選的輔助安撫手段。 系統(tǒng)硬件 電路框圖如圖3所示。 飛思卡爾MC9S08QG8單片機(jī) 本系統(tǒng)使用MC9S08QG8作為核心控制器,其高度集成的功能和靈活的端口控制大大簡(jiǎn)化了系統(tǒng)設(shè)計(jì)和成本,本系統(tǒng)主要用到了以下功能: 高速CPU和大容量的Flash和RAM存儲(chǔ)器 內(nèi)置的精確時(shí)鐘 2通道10位AD轉(zhuǎn)換器 2個(gè)鍵盤中斷輸入端口 PWM輸出功能 高速SPI接口 飛思卡爾MMA7260QT三軸加速度傳感器 系統(tǒng)使用新的MMA7260QT三軸加速度傳感器作為主要傳感器,內(nèi)部信號(hào)調(diào)理,內(nèi)置濾波,量程可選,性能穩(wěn)定可靠,設(shè)計(jì)起來相當(dāng)簡(jiǎn)潔方便。 加速度測(cè)量部分 傳感器設(shè)置為最小的量程,輸出經(jīng)過電阻電容濾波然后進(jìn)入單片機(jī)AD輸入,如圖4。 鍵盤電路 鍵盤電路十分簡(jiǎn)單,端口到地接2M電阻即可,觸摸鍵盤的PCB設(shè)計(jì)要兼顧三鍵判斷,故采用如圖5設(shè)計(jì)。 電機(jī)驅(qū)動(dòng) 單片機(jī)輸出PWM脈寬調(diào)制信號(hào),然后通過驅(qū)動(dòng)電路驅(qū)動(dòng)電機(jī)。 麥克風(fēng)輸入 麥克風(fēng)輸入經(jīng)放大后通過二極管整流到電容上,此電壓進(jìn)入單片機(jī)AD轉(zhuǎn)換器。 音樂播放 音樂源使用專用音樂IC,功率放大器使用國(guó)家半導(dǎo)體的LM4874芯片,具有4級(jí)電子音量調(diào)節(jié)功能,本系統(tǒng)只需單聲道即可。 液晶顯示 采用3.3V串行液晶顯示模塊,128X64點(diǎn)陣,單片機(jī)通過SPI端口直接相連。 外圍其他電路 電源經(jīng)220V轉(zhuǎn)為5V然后經(jīng)LM1117-3.3穩(wěn)壓成3.3V輸出給系統(tǒng)電路使用,5V電壓還用來驅(qū)動(dòng)電機(jī)。 系統(tǒng)軟件 系統(tǒng)軟件完成以下功能: 根據(jù)設(shè)置參數(shù)定期檢測(cè)搖籃狀態(tài)。 定期對(duì)鍵盤中斷引腳檢測(cè)充放電時(shí)間。 驅(qū)動(dòng)液晶顯示器顯示相關(guān)參數(shù)、菜單。 根據(jù)參數(shù)驅(qū)動(dòng)搖籃播放音樂。 檢測(cè)搖籃狀態(tài) 以10Hz的頻率檢測(cè)加速度傳感器,定時(shí)器中斷程序啟動(dòng)AD轉(zhuǎn)換器,主程序中檢測(cè)到AD轉(zhuǎn)換完成則把結(jié)果保存起來,通過和零值比較,如果大于閾值,則認(rèn)為嬰兒活動(dòng),根據(jù)設(shè)置參數(shù)啟動(dòng)電機(jī)、音樂。 鍵盤檢測(cè) 以20Hz的頻率掃描鍵盤,定時(shí)器中斷程序把相應(yīng)引腳置為輸入,允許鍵盤中斷。引腳放電引起鍵盤中斷,保存中斷時(shí)的定時(shí)器數(shù)值,然后退出。主程序等兩個(gè)按鍵引腳都掃描完畢保存了放電時(shí)間后,調(diào)用鍵盤處理程序分析,得到按鍵結(jié)果。 液晶顯示器驅(qū)動(dòng) 液晶顯示器使用SPI口送數(shù)據(jù),根據(jù)按鍵結(jié)果相應(yīng)調(diào)整液晶顯示的內(nèi)容。 搖籃驅(qū)動(dòng)和音樂播放 驅(qū)動(dòng)搖籃時(shí),根據(jù)設(shè)置參數(shù)啟動(dòng)PWM輸出,同時(shí)記錄時(shí)間,到參數(shù)規(guī)定的時(shí)間后緩慢停止搖籃(減少PWM占空比)。 功放音量根據(jù)參數(shù)設(shè)置,觸發(fā)音樂IC播放音樂。 其他輔助程序 根據(jù)軟件需要,設(shè)置定時(shí)器中斷和變量time_to_1s,當(dāng)變量中數(shù)值達(dá)到1S后重置變量。 程序結(jié)構(gòu) 主程序流程如圖6 主要子程序: void MCU_init(void) 單片機(jī)初始化 void lcd_init(void)點(diǎn)陣液晶顯示初始化,顯示待機(jī)畫面。 void lcd_menu(unsigned char)菜單顯示子程序 void acc_t(void)加速度檢測(cè)子程序 unsigned char key_calc(void)鍵盤處理子程序,返回鍵盤值。 全局變量key_start_time保存放電開始時(shí)間key_a、key_b保存兩個(gè)按鍵放電時(shí)間。 Prog_state保存程序運(yùn)行狀態(tài)。Sys_set保存系統(tǒng)設(shè)置。 菜單可調(diào)節(jié)參數(shù): 搖籃狀態(tài):自動(dòng),手動(dòng)開,手動(dòng)關(guān)。 搖動(dòng)時(shí)間:1,3,5,10,30,60,120分鐘。 搖動(dòng)速度:快速,中速,慢速,關(guān)閉。 寶寶動(dòng)作靈敏度:高,中,低。 聲音靈敏度:高,低。 音樂音量:高,中,低,關(guān)閉。 |