張羅強
摘要:單片機在自動化控制領(lǐng)域應(yīng)用十分廣泛,本文介紹了以單片機為核心,結(jié)合ISD4004語音芯片、光敏和手握觸發(fā)電路,實現(xiàn)精準報時、激光檢測與指示等功能,設(shè)計制作東莞科技館“點燃圣火”展品,按設(shè)計方案完成制作后,該展品的控制流程清晰、嚴謹,具有很強的互動展示效果。
關(guān)鍵詞:展品;控制系統(tǒng);單片機
中圖分類號:TP273 文獻標識碼:A 文章編號:1007-9416(2017)05-0002-02
1 項目描述
每屆奧運會圣火點燃的環(huán)節(jié)都非常激動人心,圣火的點燃方式每次都讓人耳目一新,為了激發(fā)青少年對科學的興趣,展示光敏傳感器等知識,東莞科技館在光學展區(qū)設(shè)計制作了“點燃圣火”項目,主要控制部分依靠單片機和傳感電路實現(xiàn)。
本項目的設(shè)計目標為一互動性展品,由3名觀眾同時操作進行比賽,也可由一名觀眾獨自參與。展品由火炬臺、激光光源和三架反射鏡操作臺構(gòu)成?;鹁媾_為高3米的六角錐柱,在六角錐柱對稱的三面上,由下到上錯落分布有10個光接收孔,三架反射鏡操作臺對應(yīng)火炬臺上三面光接收孔分布。每架反射鏡操作臺上有一面反射鏡,它的上方懸掛有激光光源,觀眾操作反射鏡上下左右旋轉(zhuǎn)可使光源發(fā)出的光經(jīng)反射鏡反射到火炬臺的光接收孔上,每對準一個光接收孔,孔里的燈就會發(fā)光。當參與觀眾的手握住反射鏡操作手柄后,系統(tǒng)會以語音提醒觀眾:“比賽就要開始,請做好準備”,并倒計時10秒,10秒后系統(tǒng)啟動。當觀眾連續(xù)點亮10個孔后,火炬頂端的火炬便會熊熊燃燒起來(以紅色燈光和風機吹起絲帶效果演示),點燃火炬的觀眾可聽到自己的完成操作的時間成績。
2 控制系統(tǒng)構(gòu)成
點燃圣火展項由控制系統(tǒng)、手握觸發(fā)裝置、激光檢測與指示裝置、語音控制裝置等組成(如圖1),利用單片機和傳感器技術(shù)來實現(xiàn)整個展項的操作和互動。
控制系統(tǒng)是展項的數(shù)據(jù)處理部件,由單片機及外圍I/O端口構(gòu)成,通過編寫軟件程序駐留單片機的存儲器中,供CPU調(diào)用。實時處理輸入數(shù)據(jù)。輸出控制信號完成燈的指示和語音播放,完成展項的描述。
手握觸發(fā)裝置相當于系統(tǒng)的啟動開關(guān),利用人體的導電性,當雙手分別握住操作手柄兩邊的金屬環(huán)時,主控制器收到信號,系統(tǒng)啟動。
激光檢測用于判斷操作者操作正確多少的檢測裝置,此檢測信號送入單片機處理,操作正確后指示燈點亮,當完成操作正確后位于火炬臺上的火炬將自動點燃,同時有語音為游客的正確操作喝彩。
激光發(fā)射裝置用于發(fā)射激光光源,它掛在火炬的頂上端,光源分別對著三個操作臺上的反射鏡,游客轉(zhuǎn)動操作臺控制反射鏡的角度,將激光光線反射到對應(yīng)的光接收孔。
語音控制裝置采用ISD4004語音存儲芯片對控制語音的同步播放,不同語音的播放將接受單片機的端口控制。
3 控制系統(tǒng)的實現(xiàn)
3.1 控制流程
系統(tǒng)包含兩個狀態(tài),等待狀態(tài)和工作狀態(tài)。
在等待狀態(tài)時,三個方向的光接收孔內(nèi)的LED燈輪流閃爍,顯示流水燈效果,吸引游客的參與。
當系統(tǒng)在等待狀態(tài)檢測到有游客握住手柄兩端時,系統(tǒng)進入工作狀態(tài),驅(qū)動語音模塊播放提示音,光接收孔內(nèi)的LED燈全部熄滅,變?yōu)榭蓳舭l(fā)狀態(tài),當光接收孔的光敏電阻被光線擊中后,相應(yīng)的LED燈會亮起,系統(tǒng)同時驅(qū)動語音模塊播放“嘭”的聲音,當10盞燈全部點亮時,語音芯片播放勝利的聲音,通過繼電器控制頂部的風扇打開吹動紅旗,以示勝利完成任務(wù)。本輪參與結(jié)束后,系統(tǒng)重新復(fù)位,回到等待狀態(tài)。
3.2 狀態(tài)檢測
在把手處安裝有兩個金屬環(huán),當游客觸摸手柄時,通過放大電路輸出一個低電平信號到主控制器host(如圖2),此時2號繼電器進入鎖定狀態(tài),主控制器host驅(qū)動語音模塊播音,主控制器host鎖定客戶端,使客戶端進入中斷狀態(tài),LED燈全部熄滅,同時定時器開始啟動,TR0=1,開始計時。
3.3 擊發(fā)過程
游客通過手柄轉(zhuǎn)動控制激光反射方向,光接收孔內(nèi)裝有并聯(lián)的光敏電阻,當光敏電阻接收到激光照射后,電阻變小,通過放大電路輸出低電頻信號,單片機驅(qū)動相應(yīng)的LED燈點亮,同時驅(qū)動語音芯片播放“嘭”的聲音。
擊發(fā)部分控制代碼:
void gun()
{
if(flag==0)
{
delay(3);
L1=1;
L2=1;
…
L10=1;
flag=1;
}
if(flag==1)
{
if(K1==0&&L1==1)
{
L1=0;
out1=0;
delay(10);
out1=1;
}
…
3.4 擊發(fā)完成
當游客將10個光接收孔依次擊發(fā)完成后,客戶端向主控制器host發(fā)送一個低電平信號,以示停止,客戶端又回到流水燈狀態(tài),主控制器host驅(qū)動頂部風扇打開,吹動紅旗,同時驅(qū)動語音模塊播報完成時間,完成后,通過定時器重新復(fù)位。
擊發(fā)完成部分代碼:
…
if(key3==0) //暫停a
{
delay(10);
if(key3==0)
{
flag=1;
L3=1; //流水燈
L2=0; //上面風扇開客戶端\單片機斷電
Send(0x01,0x00,0xAF); //勝利聲音
delay(40);endprint
Send(0x01,0x00,0xCD); //''獲勝的是1號選手''
delay(78);
Send(0x01,0x04,0x06); //''你用的時間是''
delay(60);
Send2(a4,a3); //報時函數(shù)
Send(0x01,0x04,0x38); //''今天最快的時間是''
delay(75);
Send3(num); //今天最快的時間是
num=0; //計數(shù)器清0
L1=0; //鎖住開始
L2=1; //上面風扇關(guān)
delay(3);
L1=1; //解除鎖住開始
L2=1; //上面風扇關(guān)
}
while(!key3);
delay(2);
while(!key3);
}
…
系統(tǒng)初始化部分代碼:
void init()
{
TMOD=0x21;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1; //打開總中斷
ET0=1; //打開定時器允許位
TR0=0; //打開定時器
EX1=1; //外部中斷1開P3.3
IT1=1; //外部中斷方式邊沿觸發(fā)
PCON = 0x00; //波特率不倍增
SCON = 0x50; //串行工作方式設(shè)定,允許接收
TH1 = 0xFd; //定時器1初值高位波特率產(chǎn)生
TL1 = 0xFd; //定時器1初值低位
TR1 = 1; //啟動定時器
ES=1; //串口中斷開啟
}
4 項目運行效果
本項目通過單片機、光敏元件、語音模塊、繼電器等控制部件的聯(lián)動,最終實現(xiàn)展品的互動趣味性展示效果,運行穩(wěn)定、互動性強,配合說明牌和講解引導,向廣大青少年科普光敏電阻和傳感電路的相關(guān)知識,展品展示以來,一直具有很高的參與度,深受青少年游客的喜愛,起到了很好的科普作用。endprint