電子設(shè)計大賽_全自動可遙控旗幟升降系統(tǒng)的設(shè)計與制作.doc_第1頁
電子設(shè)計大賽_全自動可遙控旗幟升降系統(tǒng)的設(shè)計與制作.doc_第2頁
電子設(shè)計大賽_全自動可遙控旗幟升降系統(tǒng)的設(shè)計與制作.doc_第3頁
電子設(shè)計大賽_全自動可遙控旗幟升降系統(tǒng)的設(shè)計與制作.doc_第4頁
電子設(shè)計大賽_全自動可遙控旗幟升降系統(tǒng)的設(shè)計與制作.doc_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

全自動可遙控旗幟升降系統(tǒng)的設(shè)計與制作編號:F甲1060參賽者: 古欣 王智涌 張興成山東大學(xué)物理與微電子學(xué)院指導(dǎo)老師:李茂奎摘要: 全自動可遙控旗幟升降系統(tǒng)以AVR單片機為核心,由PWM對電機進行變頻調(diào)速,高精度光電編碼器測速,閉環(huán)式電路控制。能夠利用按鍵輸入相應(yīng)的指令控制旗幟的升降,還可以實現(xiàn)在特定位置停留的功能。利用LCD可以顯示旗幟的實時高度和相應(yīng)的控制命令,用LED指示旗幟是否處于半旗狀態(tài),具有語音提示報警功能,并可利用無線模塊實現(xiàn)遙控功能,準(zhǔn)確均勻地實現(xiàn)旗幟的升降。關(guān)鍵詞:PWM調(diào)速 無線數(shù)據(jù)傳輸 MP3解碼 碼盤 閉環(huán)控制 STA013(一) 系統(tǒng)特性 PWM變頻調(diào)速 利用L298和PWM配合可以對電機實現(xiàn)高精度的速度調(diào)節(jié)。 高精度光電編碼器測速 具有最小7.5度的角度精度。系統(tǒng)精度高達0.05MM. 閉環(huán)式控制 PID算法 利用PID算法構(gòu)成的閉環(huán)式控制電路具有精度高,實時反饋等優(yōu)點。 高速無線數(shù)據(jù)傳輸 以MEGA8為核心,使用cc1000芯片,速度高達38400bps。 MP3解碼芯片的應(yīng)用 利用STA013芯片對MP3進行解碼,實現(xiàn)音樂的播放與控制。 語音提示與報警功能 采用高達1G容量的SD存儲卡 系統(tǒng)采用高達1G的SD卡存儲MP3及各種音頻數(shù)據(jù),容量大。 利用非接觸式霍爾傳感器進行上下限位 128*32LCD顯示系統(tǒng)信息(二) 系統(tǒng)框圖PWMML298脈沖PWM74LS04整形放大反饋整形放大74LS04L298電動機碼盤主機MCUMEGA32INT電源:LCD:128*32LED:顯示半旗狀態(tài)KEY BOARDTWIMCUSD卡STA013揚聲器上限位下限位上下限位開關(guān)M鼓風(fēng)機無線模塊CC1000芯片MCULM386(三) 方案比較與論證(1) 電機的選擇方案一:采用步進電機 步進電機是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu),具有精度高易調(diào)控的特點。但是步進電機的力矩會隨轉(zhuǎn)速的升高而下降,調(diào)速潛力不大。并且低速時可以正常運轉(zhuǎn),但若高于一定速度就無法啟動,并伴有嘯叫聲。所以放棄使用步進電機。 方案二:采用減速電機+閉環(huán)控制減速電機是減速器與電機聯(lián)體,相對于步進電機具有高效率、傳遞力矩大、可靠性高等顯著優(yōu)點。但是如果采用開環(huán)的控制方式精度不高。為了提高它的精度,我們采用減速電機+閉環(huán)控制的方案。閉環(huán)控制利用PID算法通過檢測電機速度對電機進行實時的調(diào)節(jié),從而提高系統(tǒng)的調(diào)節(jié)精度。(2) 電機升旗方案方案一:采用恒速上升的方案 使用步進電機如果采用恒速上升的方法則只需要測定啟動初期的速度即可,上升過程中不進行測速。但是系統(tǒng)處在外界,難免會受到各種因素的影響,如果旗幟在上升的過程中受到影響速度改變的話就會使升旗出現(xiàn)誤差。所以這種方式雖然簡單但是非常不穩(wěn)定。 方案二:閉環(huán)控制 PID算法 閉環(huán)控制是從輸出量變化取出控制信號作為比較量反饋給輸入端控制輸入量,一般這個取出量和輸入量相位相反,所以也叫負反饋控制。 PID是比例,積分,微分的縮寫。它是本系統(tǒng)實現(xiàn)閉環(huán)控制的核心。 比例調(diào)節(jié)作用:是按比例反應(yīng)系統(tǒng)的偏差,系統(tǒng)一旦出現(xiàn)了偏差,比例調(diào)節(jié)立即產(chǎn)生調(diào)節(jié)作用用以減少偏差。比例作用大,可以加快調(diào)節(jié),減少誤差,但是過大的比例,使系統(tǒng)的穩(wěn)定性下降,甚至造成系統(tǒng)的不穩(wěn)定。積分調(diào)節(jié)作用:是使系統(tǒng)消除穩(wěn)態(tài)誤差,提高無差度。因為有誤差,積分調(diào)節(jié)就進行,直至無差,積分調(diào)節(jié)停止,積分調(diào)節(jié)輸出一常值。積分作用的強弱取決于積分時間常數(shù)Ti,Ti越小,積分作用就越強。反之Ti大則積分作用弱,加入積分調(diào)節(jié)可使系統(tǒng)穩(wěn)定性下降,動態(tài)響應(yīng)變慢。積分作用常與另兩種調(diào)節(jié)規(guī)律結(jié)合,組成PI調(diào)節(jié)器或PID調(diào)節(jié)器。微分調(diào)節(jié)作用:微分作用反映系統(tǒng)偏差信號的變化率,具有預(yù)見性,能預(yù)見偏差變化的趨勢,因此能產(chǎn)生超前的控制作用,在偏差還沒有形成之前,已被微分調(diào)節(jié)作用消除。因此,可以改善系統(tǒng)的動態(tài)性能。在微分時間選擇合適情況下,可以減少超調(diào),減少調(diào)節(jié)時間。微分作用對噪聲干擾有放大作用,因此過強的加微分調(diào)節(jié),對系統(tǒng)抗干擾不利。此外,微分反應(yīng)的是變化率,而當(dāng)輸入沒有變化時,微分作用輸出為零。微分作用不能單獨使用,需要與另外兩種調(diào)節(jié)規(guī)律相結(jié)合,組成PD或PID控制器。 本系統(tǒng)采用PID算法,適當(dāng)?shù)恼{(diào)節(jié)比例,積分,微分的份額,實現(xiàn)閉環(huán)控制電動機的速度以保證旗幟準(zhǔn)時升到頂。相關(guān)原理圖如下:ML298脈沖PWM74LS04反饋整形放大(3) 速度測量方式方案一:單脈沖計數(shù) 單脈沖計數(shù)的方式是電動機每轉(zhuǎn)一周,系統(tǒng)就獲得一個脈沖。這種計數(shù)方式雖然比較簡單,但是它的精度不夠高。 方案二:透過式高精度光電編碼器(碼盤) 原理圖如圖所式: 碼盤從光電對管中間穿過,馬盤上有很多細線,細線將馬盤均勻的分割開。本系統(tǒng)采用的碼盤共有48條阻隔線,所以電機每轉(zhuǎn)過7.5度系統(tǒng)就獲得一個脈沖。電動機與碼盤相連的軸直徑為0.800MM,所以系統(tǒng)的位置測量精度高達0.005MM。根據(jù)速度等于位移變化量除以時間間隔的計算公式可以高精度地測量電機速度從而判斷是否需要調(diào)速。 方案三:反射式碼盤開關(guān) 反射式碼盤開關(guān)的原理與透過式碼盤開關(guān)的原理類似,但是它必須采取靜態(tài)固定的方式,對固定的位置、牢固性等的要求較高。而透過式碼盤開關(guān)則不同,對固定的要求沒有那么高。所以從這方面考慮不采用反射式碼盤開關(guān)。(4) 調(diào)速方式方案一:調(diào)壓通過調(diào)壓的方式進行電機調(diào)速的原理是將一部分電壓轉(zhuǎn)化成熱,這樣就浪費了能源,與建設(shè)節(jié)約型社會的宗旨相背離,況且對于移動式的設(shè)備來說節(jié)能也至關(guān)重要。調(diào)壓方式下轉(zhuǎn)速與外界的負載有關(guān),另外,當(dāng)電壓較低時,電機力矩小,輸出不穩(wěn)定。方案二:PWM調(diào)速 PWM(脈寬調(diào)制)是一種對模擬信號電平進行數(shù)字編碼的方法,是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術(shù)。通過高分辨率計數(shù)器的使用,方波的占空比被調(diào)制用來對一個具體模擬信號的電平進行編碼。相比電壓調(diào)速的方法,PWM調(diào)速具有精度高,易于控制等優(yōu)點。另外,它的調(diào)速方式為脈寬調(diào)制所以不會有太多的能源浪費,可以保證系統(tǒng)較長時間的工作,這對于移動設(shè)備而言是巨大的優(yōu)勢。因此采用PWM調(diào)速的方式。PWM調(diào)速電路圖: L298: L298是內(nèi)含兩個H橋的高電壓大電流雙全橋式驅(qū)動器,是性能優(yōu)越的小型直流電機驅(qū)動芯片之一 。接受標(biāo)準(zhǔn)TTL邏輯電平信號,可驅(qū)動電壓46 V、每相2.5 A及以下的減速電機或者是步進電機,在4-46V的電壓下,可以提供2A的驅(qū)動電流。它具有兩個使能輸入端, 在不受輸入信號 影響的情況下允許或禁止器件工作, 每個橋?qū)Φ南虏咳龢O管的發(fā)射極接在一起并引出, 用 以外接檢測電阻, 它設(shè)置了一附加電源輸入端使邏輯部分在低電壓下工作。L298還有過熱自動關(guān)斷功能,并有反饋電流檢測功能,符合電機驅(qū)動的需要。L298的圖解:L298引腳圖示:(5) 音樂同步播放方案一:利用系統(tǒng)控制錄音機 這種方案雖然簡單,但是無法對音樂曲目、播放時間、播放速度進行精確的選擇和控制。系統(tǒng)要求既能播放音樂又能進行適當(dāng)?shù)恼Z音報錯,所以這樣無法滿足系統(tǒng)需求。方案二:語音存儲芯片 語音存儲芯片同樣存在無法精確巧妙跳躍式地控制音樂播放的缺點。方案三:模擬MP3按鍵控制MP3 這種方式只是將MP3的按鍵控制移植到系統(tǒng)中。利用系統(tǒng)模擬按鍵的功能實現(xiàn)對MP3的控制。但是系統(tǒng)要求可以跳躍式地任意播放曲目,MP3尚不能滿足這種要求。方案四:MP3音頻解碼芯片 STA013+1G的SD卡采用STA013芯片+1G的SD卡的音頻處理模式,利用LM386進行音頻的放大,利用TWI或者是I2C進行通信,能夠?qū)σ魳凡シ胚M行較好的控制??梢詫崿F(xiàn)只要輸入音樂的名稱就可以播放的功能,剛好滿足了系統(tǒng)語音報錯和音樂播放的功能要求,另外超大容量的存儲芯片可以使系統(tǒng)功能具有較大的擴展空間。另外通過對99年國慶閱兵典禮的反復(fù)觀看,發(fā)現(xiàn)標(biāo)準(zhǔn)的國歌播放時間有46秒,而前3秒不升旗,所以真正的升旗時間有43秒,這就要求系統(tǒng)有延時的功能。這可以利用MP3音頻解碼器輕松準(zhǔn)確地實現(xiàn)。3秒占46秒的6.5%,當(dāng)MP3播放到6.5%的時候會向系統(tǒng)發(fā)出升旗的請求,系統(tǒng)做出反應(yīng)進行升旗,輕松準(zhǔn)確地實現(xiàn)延時。 STA013芯片: STA013芯片是一顆標(biāo)準(zhǔn)的MP3音訊譯碼器(audio decoder)。若不考慮體積大小、耗電量、額外的復(fù)雜功能、生產(chǎn)成本,它是能以單一的技術(shù)整合方案,來實現(xiàn)一臺可用的(workable)MP3播放機。STA013具有高可設(shè)定性(configurable)的功能,不同的設(shè)定組合可以滿足不同的應(yīng)用需求。另外STA013會忽略掉不屬于MP3格式的數(shù)據(jù)它們不會產(chǎn)生聲音。所以,不需要另外設(shè)計程序,以求事先將MP3檔案的ID3標(biāo)簽(tag)去除掉??梢灾苯訉⒁粋€完整的MP3檔案,傳送給STA013處理。萬一將毀損的MP3數(shù)據(jù)串流(例如:由于下載中斷,造成檔案被截斷)輸入給STA013,它會忽略掉大部分已經(jīng)毀損的數(shù)據(jù);只有一部分毀損的數(shù)據(jù),會產(chǎn)生一個短暫的吱喳聲(通常這視緊接在毀損部位后面的數(shù)據(jù)而定),但是STA013會自動立即與毀損部位后面的正常數(shù)據(jù)同步。 STA013芯片MP3解碼原理圖如下: STA013引腳連接圖:MP3音頻解碼器的原理圖:TWI通信MCUSD卡STA013解碼判斷是否讀取數(shù)據(jù)讀取數(shù)據(jù)送數(shù)據(jù)是否無動作播放音樂(6) 限位開關(guān)方案一:行程開關(guān) 該開關(guān)的關(guān)鍵之處就是在旗子到達最頂端或者最底端時對行程開關(guān)造成碰撞從而使開關(guān)接觸,這一動作會即時反饋到單片機,單片機對此做出相應(yīng)的反應(yīng)。但是,小型行程開關(guān)彈簧觸片太短太小以至于使開關(guān)起作用需要的力較大,有可能在使用過程中出現(xiàn)意外,大型行程開關(guān)裝在該設(shè)備上極不美觀。所以放棄該方案。方案二:霍爾傳感器 霍爾元件是基于霍爾效應(yīng)來測量電位差的一種器件,霍爾元件與磁鐵配合是一種很好的可實現(xiàn)非接觸式信號傳遞的組合,也稱霍爾傳感器?;魻杺鞲衅骼没魻栐械拇磐渴闺娮釉诨魻栐囊粋?cè)聚集,在霍爾元件兩側(cè)產(chǎn)生電壓差,并由霍爾器件檢測出霍爾電壓信號,經(jīng)過放大器放大,該電壓信號精確地反映原邊電流,或者是磁通量的變化。從而根據(jù)事先預(yù)定好的情況做出相應(yīng)的反應(yīng)。但是這又存在另外一個問題,如果旗桿使用鐵制的則將會被磁鐵磁化從而對霍爾傳感器產(chǎn)生不良影響。這套儀器采用合金材料制作旗桿,不會或極少被磁化,所以綜合考慮以后選擇方案二。 霍爾元件連接電路如圖所示:(7) 顯示方式 系統(tǒng)具有的顯示功能是體現(xiàn)人機交互的重要方式。通過系統(tǒng)的顯示信息,人們可以知道它在干什么,從而決定自己應(yīng)該干什么。 方案一:采用LED(數(shù)碼管)顯示 LED(數(shù)碼管)是light-emitting diode的縮寫,它經(jīng)過合理的設(shè)置可以完成顯示旗幟位置信息的任務(wù),并且經(jīng)濟耐用。同時LED具有高亮度,高刷新率的優(yōu)點,能提供寬達160的視角,可以在較遠的距離上看清楚。但是它的顯示存在信息量少,顯示不直觀,不易理解的缺點。方案二:采用LCD(液晶屏)顯示LCD(液晶屏)是Liquid Crystal Display的縮寫,它具有漢字顯示的功能,不但可以指示旗幟的位置,還可以顯示相應(yīng)的控制命令,如升旗、降旗等,信息量豐富且直觀易懂。另外,液晶顯示有功耗低,體積小,質(zhì)量輕,壽命長,不產(chǎn)生電磁輻射污染等優(yōu)點。綜合二者的優(yōu)缺點,半旗的指示用LED顯示,旗幟位置和控制命令的顯示用LCD顯示。相關(guān)電路連接圖如下: (8) 掉電檢測系統(tǒng)要求在任意時刻掉電后系統(tǒng)的數(shù)據(jù)信息不丟失,但是又不可能每一時刻的數(shù)據(jù)都寫入EEPROM,因為EEPROM擦寫次數(shù)有限而單片機數(shù)據(jù)變化迅速。因此必須進行掉電檢測,只有判斷掉電以后才可以將數(shù)據(jù)寫入EEPROM。電路連接狀況如下: VCC輸入一個12V的電壓使穩(wěn)壓電容保持4.7V的電壓。當(dāng)系統(tǒng)掉電時會破壞穩(wěn)壓電容的電壓,反饋到系統(tǒng)使系統(tǒng)將數(shù)據(jù)寫入EEPROM。此時系統(tǒng)CPU靠4700uF的大電容供電,為了防止其它耗電元件耗電,在電容之前接一個二極管,保證單向連通。(9) 掉電數(shù)據(jù)不丟失的實現(xiàn)EEPROM是電子可擦寫可編程只讀存儲器 (electrically erasable programmable read-only memory) 的縮寫。它是一種非揮發(fā)性記憶體 (Memory ) ,與抹除式唯讀記憶體 (EPROM ) 相似,電源消失后,儲存的資料 (Data) 依然存在,要消除儲存在其中的內(nèi)容,不是用紫外線照射方式,而是以電子訊號直接消除即可。一般消費者常用的電視遙控器,內(nèi)部所用的一、二千位元 (bit ) 的非揮發(fā)性記憶體 (NVRAM ) ,通常就是EEPROM。DRAM斷電后存在其中的數(shù)據(jù)會丟失,而EEPROM斷電后存在其中的數(shù)據(jù)不會丟失。另外,EEPROM可以清除存儲數(shù)據(jù)和再編程。正是由于EEPROM具有以上特點,該器件可廣泛應(yīng)用于對數(shù)據(jù)存儲安全性及可靠性要求高的應(yīng)用場合,如門禁考勤系統(tǒng),測量和醫(yī)療儀表,非接觸式智能卡,稅控收款機,預(yù)付費電度表或復(fù)費率電度表、水表、煤氣表以及家電遙控器等應(yīng)用場合。該類型存儲器在可靠數(shù)據(jù)存儲領(lǐng)域會獲得越來越廣泛的應(yīng)用。在平常情況下,EEPROM是只讀的,需要寫入時,在指定的引腳加上一個高電壓即可寫入或擦除,而且其擦除的速度極快!它可以電改寫,也可以逐字節(jié)改寫。 但是,EEPROM有固定的使用壽命,這是指某一位由1寫為O或由O寫為1的次數(shù)。不同廠家的產(chǎn)品,相同廠家不同型號、系列的產(chǎn)品,它們的壽命也不盡相同,100萬次為常見主流產(chǎn)品。這種壽命已經(jīng)足以滿足本系統(tǒng)的要求。 為了實現(xiàn)在任意時刻任意位置掉電后旗幟位置數(shù)據(jù)不丟失的功能,本系統(tǒng)采用EEPROM作為數(shù)據(jù)存儲芯片。(10)遙控方式 方案一:FM模擬遙控 這種遙控器由形成遙控信號的微處理器芯片、晶體振蕩器、放大晶體管、紅外發(fā)光二極管以及鍵盤矩陣組成。其工作原理是微處理器芯片IC1內(nèi)部的振蕩器通過2、3腳與外部的振蕩晶體X組成一個高頻振蕩器,產(chǎn)生高頻振蕩信號(480kHz)。此信號送入定時信號發(fā)生器后產(chǎn)生40KHz的正弦信號和定時脈沖信號。正弦信號送入編碼調(diào)制器作為載波信號;定時脈沖信號送制掃信號發(fā)生器、鍵控輸入編碼器和指令編碼器作為這些電路的時間標(biāo)準(zhǔn)信號。IC1內(nèi)部的掃描信號發(fā)生器產(chǎn)生五中不同時間的掃描脈沖信號,由59腳輸出送至鍵盤矩陣電路。當(dāng)按下某一鍵時,相應(yīng)于該功能按鍵的控制信號分別由1014腳輸入到鍵控編碼器,輸出相應(yīng)功能的數(shù)碼信號。然后由指編碼器輸出指令碼信號,經(jīng)過調(diào)制器調(diào)制在載波信號上,形成包含有功能信息的高頻脈沖串,由17腳輸出經(jīng)過晶體管BG放大,推動紅外線發(fā)光二極管D發(fā)射出脈沖調(diào)制信號。這種遙控方式遙控距離短,傳輸速率低,而且易受干擾。 方案二:數(shù)字遙控 這種方案采用速度高達38400bps的無線傳輸模塊進行數(shù)據(jù)傳輸。采用CC1000芯片,以MEGA8為核心,充分顯示了現(xiàn)代單片機技術(shù)在無線傳輸中應(yīng)用的優(yōu)勢。具有傳輸距離遠,速率高,不易受干擾等優(yōu)點。而且可傳輸?shù)男畔⒍喾N多樣,只要能夠轉(zhuǎn)化成數(shù)字信號就能傳輸。所以采用這種傳輸方式作為無線模塊。 (11)出錯提示音 為了防止誤操作,系統(tǒng)需要對一些情況進行錯誤提示。 方案一:在特定情況下屏蔽掉相關(guān)按鍵 這種方式雖然簡單但是不能體現(xiàn)人性化,如果操作者不知道自己的錯誤往往造成操作者摸不清頭腦,甚至以為設(shè)備出了毛病。 方案二:嘀嘀聲作為錯誤提示 這種方式雖然可以讓操作者知道自己操作錯誤但不能知道為什么,功能仍然不夠完善。 方案三:語音提示 這種方式更能夠體現(xiàn)人機交互。當(dāng)操作者無操作時,系統(tǒng)會利用音頻播放設(shè)備播放相應(yīng)的提示音,使人們知道式自己操作不當(dāng),并且知道哪里出了錯。這樣更能夠體現(xiàn)人性化。(12)分機設(shè)計 分機的設(shè)計相對簡單,包括鍵盤模塊,無線模塊,LCD顯示模塊和MCU模塊,在此不過多敘述。 LCD的電路連接如圖所示:分機整體電路圖如圖所示:(四) 系統(tǒng)工作原理主機電路圖: 工作原理:系統(tǒng)由按鍵控制,利用PWM驅(qū)動電機按照程序設(shè)計的轉(zhuǎn)速和方向利用滑輪實現(xiàn)旗幟的升降。按上升鍵以后,旗幟按照預(yù)定速度勻速上升,并由音頻設(shè)備流暢地演奏國歌。上升到最高端時,旗幟停止上升,國歌停奏。按下降鍵后,旗幟按照預(yù)定速度勻速下降,此時音頻設(shè)備不演奏國歌。按特定的停止鍵可以實現(xiàn)在特定的位置上停留。旗幟上安裝有磁鐵,旗桿的頂端和底端安裝有霍爾元件,當(dāng)旗幟上升到頂端或下降到底端時,霍爾元件做出感應(yīng),以免誤操作。當(dāng)旗幟在頂端時如果按上升鍵或者旗幟在底端時按下降鍵則會聽到語音報警提示音。由測量模塊實時測量旗幟的高度并由LCD顯示出來。 由一個半旗開關(guān)控制旗幟是否處于半旗狀態(tài),由LED指示是否處于半旗狀態(tài)。半旗狀態(tài)下(根據(jù)國旗法)升旗時,按上升鍵,奏國歌,國旗從最低端上升到最高端之后,國歌停奏,然后自動下降到總高度的2/3高度處停止;降旗時,按下降鍵,國旗先從2/3高度處上升到最高端,再自動從最高端下降到底之后自動停止,國歌停奏。 由EEPROM實時記錄旗幟的位置,不論旗幟是在頂端還是在底端,關(guān)斷電源之后重新合上電源,旗幟所在的高度數(shù)據(jù)不會丟失,顯示不變。旗幟的升降速度可調(diào),在旗桿高度不變的情況下,升旗的時間范圍在30秒到120秒之間,步進1秒。用停止鍵可以實現(xiàn)任意位置的急停。 另外,利用無線模塊可以實現(xiàn)遙控旗幟的升降及停止。 程序流程圖:(五)成員分工與時間安排 在系統(tǒng)的框圖完成以后,小組成員對自己的工作已經(jīng)有了比較明確的認識,根據(jù)個人的具體情況大家進行了分工。擅長程序編寫的就負責(zé)系統(tǒng)所需程序的編寫工作,精通硬件的則負責(zé)元器件的選購和硬件的架設(shè),而我則負責(zé)文檔的整理,畢竟團結(jié)協(xié)作才算是一個團體嘛。由于時間緊迫,我們把時間進行了細分,從9月8號到9月11號大家吃住在一起,每天至少工作18個小時,每一個小時都有具體的任務(wù),如果有任務(wù)完不成則自己擠出休息的時間來完成。為了大家互相監(jiān)督以及自我提醒,我們還特意打印了這幾天每一個小時的時間表。每過一個小時大家就在表上填上自己這一個小時的工作成果并相互提醒時間又少了一個小時。這樣雖然有些忙,但是大家感到很充實,工作效率也很高,經(jīng)常是提前完成計劃的任務(wù)。大家就這樣忙并快樂著。(六)系統(tǒng)功能調(diào)式與結(jié)果測量 雖然我們在制作的過程中進行過無數(shù)次的測試,但是最后還是要進行總體性能的測試。9月11號上午,我們對經(jīng)過多次調(diào)式的系統(tǒng)進行了總體性能的測試。 測試的內(nèi)容主要有升旗、降旗、半旗、語音報錯、掉電數(shù)據(jù)保存、LCD、LED顯示等。 經(jīng)過測試系統(tǒng)能夠按照鍵盤設(shè)定的時間將旗幟升到旗桿頂部,鍵盤可設(shè)定的時間范圍是30到120秒,當(dāng)然也能在43秒鐘完成升旗任務(wù)。在錯誤的操作下,系統(tǒng)準(zhǔn)確的進行了語音報錯。半旗狀態(tài)下,LED指示燈亮,此時按升旗鍵奏國歌,國旗從最低端上升到最高端之后,國歌停奏,然后自動下降到總高度的2/3高度處停止;降旗時,按下降鍵,國旗先從2/3高度處上升到最高端,再自動從最高端下降到底之后自動停止,國歌停奏。LCD能正確顯示旗幟高度和所用時間,掉電后旗幟高度的數(shù)據(jù)不丟失??蓪崿F(xiàn)任意位置停止的功能,無線遙控能夠正常工作。(七)參考文獻:(1) AVR單片機C語言開發(fā)入門指導(dǎo) 沈文 Eagle lee 詹衛(wèi)前編著 清華大學(xué)出版社(2) 音訊放大器LM386簡介(作者:陳明周(2003-04-07))(3) /bbs/viewtheme.asp?area=105&lstsort=0&lstday=-1&page=1&id=217 (室外LED顯示屏技術(shù)規(guī)范)(4) ./udchina/mb_forum/detail2.asp?f2_id=2&f3_id=767&f3_name=%CD%F5%D2%AB (霍爾元件概念一覽)(5) /question/10320980.html (步進電機驅(qū)動器恒流脈寬調(diào)制(pwm)的原理)(6) .tw/article/articles/technical/file/(2003-04-07)%20%AD%B5%B0T%A9%F1%A4j%BE%B9LM386%C2%B2%A4%B6.pdf (音頻放大器LM386簡介)(7) /asp300/showtopic.asp?TOPIC_ID=17&Forum_id=3 (數(shù)碼存儲卡技術(shù)介紹)(8) /qikan/periodical.articles/bjhgdxxb/bjhg99/bjhg9901/990114.htm (在線自動寬度測量儀的研制*北京化工大學(xué)學(xué)報990114)(八)本系統(tǒng)部分程序源代碼* (c) Copyright 2006-2008, * All Rights Reserved* V1.2.0/* 文件名: main.c 工程主文件*/*/ eeprom 0x0a: 旗幟位置 0x0b: 是否半旗 / 0:底; 244,頂: 其他:中間 1:y 0:n*/#include config.hextern uint16 haveused_time; /已經(jīng)耗時extern uint16 s,get_s,T;extern uint8 S;uint8 position_flag=0; /旗幟位置,0:底 254:頂 1180: 高度cmuint8 if_half_flag=0; /是否半旗,默認0:否 1:是uint8 move_flag; /是否在移動volatile uint8 up_or_down=1; /在上升(1)還是下降(0)volatile uint8 half_up_or_down; /半旗升旗到頂(1),還是半旗降旗到頂(0)。volatile uint8 lcd_fresh_flag; /是否允許刷新LCDvolatile uint8 speed_change_flag=0;/ 是否允許調(diào)速度uint8 SIO_buff10; /遙控數(shù)據(jù)緩沖uint8 lcd_show32; /LCD顯示緩沖uint8 timer_i=0; /內(nèi)部計時循環(huán)void main(void) uint8 read; /readkey /float pass_speed,forward_speed; init_devices(); position_flag = EepromRead(0x0a); /讀旗幟位置和是否半旗 if(position_flag=255) position_flag = 0; if_half_flag = EepromRead(0x0b); if(if_half_flag1)if_half_flag = 0; /防止讀到錯誤數(shù)據(jù) strcpy(lcd_show,高 度: 000 CM 時 間: 000 MS ); Lcd_init(); Lcd_stringdisp(程序啟動,8); music_state_ask(S ); /*/ /半旗狀態(tài)顯示 if(if_half_flag=1) half_flag_show; lcd_show15 = 0x08; else half_flag_unshow; lcd_show15 = 0x0A; /*/ while(1) read=kbscan(); /鍵盤操作 switch(read) /*-*/ case u: /up if(move_flag=1) break; /運動中按鍵屏蔽 if(position_flag254) /只有在頂端以下才有動作if(position_flag=0)music_state_ask(PGUOGE.MP3 ); /音樂elsemusic_state_ask(C );Delay1s(30); if(if_half_flag=1) Lcd_stringdisp(半旗模式升旗,12); MOTOR(1,170,46); half_up_or_down=1; /半旗升旗到頂,霍爾中斷的時候判斷。 else Lcd_stringdisp(升旗,4); MOTOR(1,170,46); break; music_state_ask(PA05.MP3 ); /音樂 break;/*-*/ case d: /down if(move_flag=1) break; /運動中按鍵屏蔽 if(position_flag!=0) /只有在底部以上才有動作 if(if_half_flag=1) MOTOR(1,60,15); /半旗模式,上升1/3 降旗 half_up_or_down=0; /半旗降旗到頂,霍爾中斷的時候判斷。 Lcd_stringdisp(半旗模式降旗,4); else MOTOR(0,position_flag,46-haveused_time); Lcd_stringdisp(降旗,4); break;/*-*/ case h: /half if(move_flag=1) break; /運動中按鍵屏蔽 if(position_flag!=0) break; /如果不在底端,不允許改變半旗模式 if(if_half_flag=1) half_flag_unshow; /如果是,則改為不是 if_half_flag=0; lcd_show15 = 0x0A; /非半旗標(biāo)志 Lcd_stringdisp(取消半旗模式,12); else half_flag_show; if_half_flag=1; lcd_show15 = 0x08; /半旗標(biāo)志 Lcd_stringdisp(設(shè)定半旗模式,12); break;/*-*/ case s: /stop if(move_flag=0) break; /停止中按鍵屏蔽 if(position_flag!=254)&(position_flag!=0) /只有在運動時才有動作all_stop();/停止操作 Lcd_stringdisp(停止,4); break;default: break; /switch end/*/ 遙控模塊 if(Com_R_count(&RTbuf_UART0)!=0) Com_getstring (SIO_buff,4,&RTbuf_UART0); switch(SIO_buff0) /*-*/ case u: /up if(move_flag=1) break; /運動中按鍵屏蔽 if(position_flag254) /只有在頂端以下才有動作if(position_flag=0)music_state_ask(PGUOGE.MP3 ); /音樂elsemusic_state_ask(C );Delay1s(30); if(if_half_flag=1) Lcd_stringdisp(半旗模式升旗,12); MOTOR(1,170,46); half_up_or_down=1; /半旗升旗到頂,霍爾中斷的時候判斷。 else Lcd_stringdisp(升旗,4); MOTOR(1,170,46); break; music_state_ask(PA05.MP3 ); /音樂 break;/*-*/ case d: /down if(move_flag=1) break; /運動中按鍵屏蔽 if(position_flag!=0) /只有在底部以上才有動作 if(if_half_flag=1) MOTOR(1,60,15); /半旗模式,上升1/3 降旗 half_up_or_down=0; /半旗降旗到頂,霍爾中斷的時候判斷。 Lcd_stringdisp(半旗模式降旗,4); else MOTOR(0,position_flag,46-haveused_time); Lcd_stringdisp(降旗,4); break;/*-*/ case h: /half if(move_flag=1) break; /運動中按鍵屏蔽 if(position_flag!=0) break; /如果不在底端,不允許改變半旗模式 if(if_half_flag=1) half_flag_unshow; /如果是,則改為不是 if_half_flag=0; lcd_show15 = 0x0A; /非半旗標(biāo)志 Lcd_stringdisp(取消半旗模式,12); else half_flag_show; if_half_flag=1; lcd_show15 = 0x08; /半旗標(biāo)志 Lcd_stringdisp(設(shè)定半旗模式,12); break;/*-*/ case s: /stop if(move_flag=0) break; /停止中按鍵屏蔽 if(position_flag!=254)&(position_flag!=0) /只有在運動時才有動作all_stop();/停止操作 Lcd_stringdisp(停止,4); break; default: break; /switch end /*/ 動態(tài)顯示/*/ if(lcd_fresh_flag=1) lcd_fresh_flag=0; lcd_show24 = haveused_time/100+0x30; /時間 lcd_show25 = (haveused_time%100)/10+0x30; lcd_show26 = haveused_time%10 +0x30; lcd_show27 = timer_i/20+0x30; /0.1s if(up_or_down=1) lcd_show31=0x1E; /向上標(biāo)記 lcd_show8 = s/100+0x30; /位置顯示 lcd_show9 = (s%100)/10+0x30; lcd_show10 = s%10+0x30; position_flag = s;else if(up_or_down=0) /降旗 lcd_show31=0x1F; /向下標(biāo)記 lcd_show8 = (180-s)/100+0x30; /位置顯示 lcd_show9 = (180-s)%100)/10+0x30; lcd_show10 = (180-s)%10+0x30; position_flag = 180-s; Lcd_stringdisp(lcd_show,32);/*/ 電機調(diào)速/*/ if(speed_chan

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論