版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 電控學(xué)院</b></p><p><b> 課程設(shè)計(jì)(論文)</b></p><p> 課程名稱:ARM嵌入式系統(tǒng)基礎(chǔ) </p><p> 題 目:基于ARM的智能垃圾桶設(shè)計(jì) </p><p><b> 摘 要</
2、b></p><p> 垃圾桶作為人類生活中的必需品,伴隨著人類走過(guò)了每一個(gè)時(shí)代。隨著生活水平的提高,人們對(duì)生活品質(zhì)更為關(guān)注,智能垃圾桶應(yīng)運(yùn)而生。本作品主要由ARM最小系統(tǒng)和ULN2003芯片控制中心模塊和步進(jìn)電機(jī)驅(qū)動(dòng)控制為主。信號(hào)檢測(cè)電路模塊、驅(qū)動(dòng)電路模塊、控制電路模塊和顯示電路模塊四部分組成,是集機(jī)光、濕度、電于一體的科技新產(chǎn)品。作品通過(guò)紅外感應(yīng)器信號(hào)檢測(cè)電路模塊檢測(cè)到探測(cè)范圍內(nèi)有人進(jìn)入或者其他檢測(cè)信
3、號(hào)時(shí),經(jīng)過(guò)芯片控制中心模塊的分析處理后啟動(dòng)控制電路模塊做出相開蓋、關(guān)蓋等應(yīng)動(dòng)作;垃圾進(jìn)去垃圾桶時(shí),通過(guò)溫濕度傳感器檢測(cè)垃圾類別,顯示電路模塊也隨之啟動(dòng)并顯示投入垃圾的種類,同時(shí)也提醒人們要保護(hù)環(huán)境。本作品圖文并茂,易識(shí)別,可自動(dòng)打開桶蓋和進(jìn)行垃圾的固液體分類,減少衛(wèi)生感染的隱患,能有效杜絕各種傳染性疾病通過(guò)垃圾進(jìn)行傳播,為人們的健康提供了有力的保障。</p><p><b> 關(guān)鍵詞:</b&g
4、t;</p><p> ARM最小系統(tǒng) 、熱紅外傳感器、 溫濕度傳感器、步進(jìn)電機(jī)</p><p><b> 目 錄</b></p><p> 緒論-----------------------------------------------------------------------------------</p>
5、<p> 一.課題設(shè)計(jì)要求-----------------------------------------------------------------</p><p> 二.課題設(shè)計(jì)目的-----------------------------------------------------------------</p><p> 三.課題設(shè)計(jì)原理及方案----
6、----------------------------------------------------</p><p> 3.1課設(shè)總原理-----------------------------------------------------------------------------</p><p> 3.1.1 EasyARM2131最小系統(tǒng)----------------
7、-----------------------------------------</p><p> 3.1.2步進(jìn)電機(jī)原理-----------------------------------------------------------------------</p><p> 3.1.3熱紅外傳感器原理--------------------------------------
8、---------------------------</p><p> 3.2系統(tǒng)總體方案-------------------------------------------------------------------------</p><p> 四.課題設(shè)計(jì)硬件設(shè)計(jì)-------------------------------------------------------
9、---</p><p> 4.1智能垃圾桶機(jī)的組成-----------------------------------------------------</p><p> 4.2智能垃圾桶工作流程-----------------------------------------------------</p><p> 4.3硬件設(shè)計(jì)電路圖--------
10、---------------------------------------------------</p><p> 五.課題設(shè)計(jì)軟件設(shè)計(jì)----------------------------------------------------------</p><p> 5.1軟件設(shè)計(jì)流程圖---------------------------------------------
11、------------</p><p> 5.2軟件設(shè)計(jì)程序------------------------------------------------------------</p><p> 結(jié)果及總結(jié)------------------------------------------------------------------------</p><
12、p> 致謝---------------------------------------------------------------------------------</p><p> 附錄--------------------------------------------------------------------------------</p><p> 附錄
13、一(心得體會(huì))---------------------------------------------------------------------</p><p> 附錄二(硬件電路圖)------------------------------------------------------------------</p><p> 附錄三(軟件程序)-------------
14、--------------------------------------------------------</p><p> 附錄四(作品實(shí)物圖)------------------------------------------------------------------</p><p> 參考文獻(xiàn) -------------------------------------
15、------------------------------------</p><p><b> 緒 論</b></p><p> 現(xiàn)在,許多發(fā)達(dá)國(guó)家如美國(guó)、英國(guó)都致力于研究新型智能型垃圾桶,使垃圾桶具有多項(xiàng)智能型功能。本文提出了一種實(shí)用型智能垃圾桶的方案,這種垃圾桶能夠調(diào)節(jié)開蓋的角度,控制垃圾桶走近消費(fèi)者、從功能方面更側(cè)重于在生活細(xì)節(jié)上為消費(fèi)者帶來(lái)便利,
16、衛(wèi)生、環(huán)保、健康。</p><p> 傳統(tǒng)的垃圾桶都是采用不封口,手打開或腳踩的方式打開桶蓋投遞垃圾,不但操作麻煩,而且很對(duì)人身體健康影響,對(duì)空氣環(huán)境也不利。例如:</p><p> 1、垃圾桶對(duì)垃圾的密封效果不好,導(dǎo)致垃圾桶附近異味較大,并且極易滋生細(xì)菌、寄生蟲等,對(duì)人們的健康造成較大的危害。 </p><p> 2、現(xiàn)有的垃圾桶不能自動(dòng)處理桶內(nèi)垃圾,經(jīng)常出
17、現(xiàn)大量垃圾溢出垃圾桶的現(xiàn)象,影響環(huán)境衛(wèi)生,造成污染,危害人們的健康。 </p><p> 3、現(xiàn)有的垃圾桶不能及時(shí)封裝桶內(nèi)垃圾,垃圾長(zhǎng)時(shí)間裸露在外,環(huán)衛(wèi)工人處理垃圾時(shí)與垃圾直接接觸,增大環(huán)衛(wèi)工人患病幾率。</p><p> 4、許多人對(duì)于產(chǎn)生的垃圾沒有合理分類,給環(huán)衛(wèi)工人造成一定的工作負(fù)擔(dān)。</p><p> 對(duì)于“智能垃圾桶”這個(gè)名詞,相信大家已不陌生,現(xiàn)在
18、市場(chǎng)上已出現(xiàn)一種技術(shù)成熟的智能垃圾桶產(chǎn)品。它能夠在人的手或物體接近投物口一定距離時(shí),垃圾桶自動(dòng)開蓋,等垃圾投入完畢,垃圾桶桶蓋又自動(dòng)關(guān)閉。雖然該產(chǎn)品已不需用手直接接觸垃圾桶桶蓋,但要真正使垃圾桶實(shí)現(xiàn)智能化,這還只能算是第一步。由于這種垃圾桶的功能還比較單一,并且直接開關(guān)蓋這一功能機(jī)械耗損程度較高,所以還有許多需要改進(jìn)的地方。 </p><p> 為解決上述問(wèn)題,經(jīng)過(guò)多方調(diào)查研究,我們?cè)O(shè)計(jì)了一款具有對(duì)垃圾自動(dòng)分類
19、感應(yīng)識(shí)別以及自動(dòng)開合蓋等功能的垃圾桶。垃圾桶可通過(guò)及時(shí)關(guān)閉桶蓋,可以有效地抑制異味的散發(fā)以及病菌的傳播。該垃圾桶自動(dòng)打開后,可進(jìn)行自動(dòng)分類,從而可使該垃圾桶分成兩類垃圾,有效地避免了垃圾種類混亂,不好處理的現(xiàn)象。該垃圾桶將垃圾自動(dòng)分類后,可分別進(jìn)入A或B箱,環(huán)衛(wèi)工人直接從此兩中收取垃圾。從而使環(huán)衛(wèi)工人在處理垃圾時(shí),減少了工作量,體現(xiàn)了人性化設(shè)計(jì)垃圾桶作為人類生活中的必需品,伴隨著人類走過(guò)了每一個(gè)時(shí)代。</p><p&
20、gt;<b> 課題設(shè)計(jì)要求</b></p><p> 1.用protel畫出ARM最小系統(tǒng)及外圍擴(kuò)展電路。</p><p> 2.設(shè)計(jì)硬件部分,實(shí)現(xiàn)桶蓋的自動(dòng)打開,垃圾的自動(dòng)分類。</p><p> 3.顯示部分可用12864或者數(shù)碼管,最好用上位機(jī)(VB或者Labvll仿真)。</p><p><b&g
21、t; 課題設(shè)計(jì)目的</b></p><p> 通過(guò)紅外感應(yīng)器信號(hào)檢測(cè)電路模塊檢測(cè)到探測(cè)范圍內(nèi)有人進(jìn)入或者其他檢測(cè)信號(hào)時(shí),經(jīng)過(guò)芯片控制中心模塊的分析處理后啟動(dòng)控制電路模塊,通過(guò)步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)做出開蓋、關(guān)蓋等應(yīng)動(dòng)作;垃圾進(jìn)去垃圾桶時(shí),通過(guò)溫濕度傳感器檢測(cè)垃圾類別,步進(jìn)電機(jī)正轉(zhuǎn)是垃圾放入A箱,電機(jī)反轉(zhuǎn)使得垃圾放入B箱,顯示電路模塊也隨之啟動(dòng)并顯示投入垃圾的種類,為人們帶來(lái)便利 、衛(wèi)生 、環(huán)保 、健康。&
22、lt;/p><p><b> 課題設(shè)計(jì)原理及方案</b></p><p> 3.1系統(tǒng)設(shè)計(jì)總原理</p><p> 本作品主要由ARM最小系統(tǒng)和ULN2003A芯片做驅(qū)動(dòng)來(lái)實(shí)現(xiàn)。通過(guò)紅外感應(yīng)器信號(hào)檢測(cè)電路模塊檢測(cè)到探測(cè)范圍內(nèi)有人靠進(jìn)或者其他檢測(cè)信號(hào)時(shí),經(jīng)過(guò)芯片控制中心模塊的分析處理后啟動(dòng)控制電路模塊,步進(jìn)電機(jī)做出相應(yīng)開蓋、關(guān)蓋等應(yīng)動(dòng)作;垃圾進(jìn)
23、去垃圾桶時(shí),通過(guò)溫濕度傳感器檢測(cè)垃圾類別,顯示電路模塊也隨之啟動(dòng)并顯示投入垃圾的種類。</p><p> 3.1.1 EasyARM2131最小系統(tǒng)</p><p> EasyARM2131開發(fā)板是廣州周立功公司設(shè)計(jì)的EasyARM系列開發(fā)套件之一,采用了PHILIPS公司基于ARM7TDMI-S 核、單電源供電、LQFP64封裝的LPC2131,具有JTAG仿真調(diào)試、ISP編程等功能
24、??蛇M(jìn)行GPIO的控制實(shí)驗(yàn),如LED閃爍控制、鍵盤輸入、蜂鳴器控制、模擬SPI等; 可進(jìn)行外部中斷實(shí)驗(yàn),學(xué)習(xí)向量中斷控制器(VIC); 定時(shí)器控制實(shí)驗(yàn),如定時(shí)控制LED、按鍵捕獲輸入、匹配比較輸出等;使用RS232轉(zhuǎn)換電路,完成UART通訊實(shí)驗(yàn)等。</p><p> 圖1 EasyARM2131開發(fā)板功能框圖</p><p> 3.1.2步進(jìn)電機(jī)原理</p><p&
25、gt; 步進(jìn)電機(jī)是機(jī)電控制中一種常用的執(zhí)行機(jī)構(gòu),其原理是通過(guò)對(duì)它每相線圈中的電流和順序切換來(lái)使電機(jī)作步進(jìn)式旋轉(zhuǎn)。驅(qū)動(dòng)電路由脈沖信號(hào)來(lái)控制,所以調(diào)節(jié)脈沖信號(hào)的頻率便可改變步進(jìn)電機(jī)的轉(zhuǎn)速。通俗地說(shuō):當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(及步進(jìn)角)。通過(guò)控制脈沖個(gè)數(shù)即可以控制角位移量,從而達(dá)到準(zhǔn)確定位的目的。同時(shí)通過(guò)控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的?,F(xiàn)在比較常用的步進(jìn)電機(jī)
26、包括反應(yīng)式步進(jìn)電機(jī)(VR)、永磁式步進(jìn)電機(jī)(PM),混合式步進(jìn)電機(jī)(HB)和單相式步進(jìn)電機(jī)等。</p><p> 3.1.3 熱紅外傳感器原理</p><p> 這種傳感器有三個(gè)引腳,其中標(biāo)有“+”端是正電源,標(biāo)有“—”端是地,標(biāo)有“OUT”端是輸出引腳。當(dāng)人靠近時(shí),輸出電壓為3V,當(dāng)無(wú)人靠近時(shí)輸出電壓為0V,電源工作電壓為4.5-20V;感應(yīng)角度為110°;靜態(tài)電流小于40
27、uA;感應(yīng)距離為1-5米。</p><p> 這種檢測(cè)模塊的優(yōu)點(diǎn)是本身不發(fā)生任何類型的輻射,一般手機(jī)的電磁信號(hào)、照明等不會(huì)引起誤動(dòng)作。器件功耗小,價(jià)格低廉。缺點(diǎn)是只能測(cè)試運(yùn)動(dòng)的生物體,且容易受到較強(qiáng)熱源、射頻輻射干擾,當(dāng)環(huán)境溫度接近時(shí),靈敏度會(huì)下降。</p><p><b> 實(shí)物如下圖所示:</b></p><p><b>
28、圖2-熱紅外傳感器</b></p><p><b> 3.2系統(tǒng)總體方案</b></p><p> 本課題主要由ARM及其外圍電路、紅外檢測(cè)電路、步進(jìn)電機(jī)控制電路等組成。正常工作時(shí),ARM循環(huán)檢測(cè)紅外檢測(cè)電路輸出信號(hào),據(jù)此產(chǎn)生電動(dòng)機(jī)控制信號(hào),電動(dòng)機(jī)帶動(dòng)桶蓋運(yùn)行,當(dāng)系統(tǒng)檢測(cè)到控制方式發(fā)生改變時(shí),系統(tǒng)進(jìn)入相應(yīng)式。如垃圾桶在的控制方關(guān)閉蓋子過(guò)程中遇到人或其他
29、障礙物時(shí)蓋子無(wú)條件朝相反方向打開。其原理方框圖如所示。</p><p><b> 圖3 原理方框圖</b></p><p><b> 課題設(shè)計(jì)硬件設(shè)計(jì)</b></p><p> 4.1智能垃圾桶機(jī)的組成:</p><p> (1) 主控制器(ARM):它是智能垃圾桶的指揮中心,通過(guò)內(nèi)部編有指
30、令程序的大規(guī)模集成塊,發(fā)出相應(yīng)指令,指揮步進(jìn)電機(jī)系統(tǒng)工作;同時(shí)人們通過(guò)主控器調(diào)節(jié)桶蓋的開啟速度、開啟幅度等參數(shù)。</p><p> ?。?) 熱紅外傳感器:負(fù)責(zé)采集外部信號(hào),如同人們的眼睛,當(dāng)有移動(dòng)的物體進(jìn)入它的工作范圍時(shí),它就給主控制器一個(gè)脈沖信號(hào)。</p><p> (3) 步進(jìn)電機(jī):提供開蓋與關(guān)蓋的主動(dòng)力,控制蓋子加速與減速運(yùn)行。</p><p> 4.2
31、智能垃圾桶工作流程:</p><p> 感應(yīng)探測(cè)器探測(cè)到有人靠近時(shí),將脈沖信號(hào)傳給主控器,主控器判斷后通知運(yùn)行。步進(jìn)電機(jī)得到一定運(yùn)行電流后做正向運(yùn)行,將動(dòng)力傳給同步帶,步帶轉(zhuǎn)動(dòng)一段時(shí)間后,電機(jī)反轉(zhuǎn),垃圾桶自動(dòng)關(guān)閉。</p><p> 4.3硬件電路圖如附錄二所示</p><p><b> 課題設(shè)計(jì)軟件設(shè)計(jì)</b></p>&
32、lt;p> 5.1軟件設(shè)計(jì)流程圖如下所示:</p><p> 5.2軟件編寫的程序如附錄三所示</p><p><b> 結(jié)果及問(wèn)題總結(jié)</b></p><p> 1.程序?qū)崿F(xiàn)了以下功能 :</p><p> 1)當(dāng)紅外傳感器檢測(cè)到垃圾桶周圍人出現(xiàn)時(shí),連接的小燈點(diǎn)亮,垃圾桶蓋子自動(dòng)打開;人離開,延時(shí)時(shí)間過(guò)
33、后,蓋子自動(dòng)合上。 </p><p> 2)當(dāng)溫濕度感應(yīng)模塊檢測(cè)到液體時(shí),連接的小燈點(diǎn)亮,亮一段時(shí)間后,小燈滅并延時(shí),在此期間,步進(jìn)電機(jī)反轉(zhuǎn),垃圾掉入B箱。</p><p> 3)通過(guò)顯示屏的模塊,正確判斷了垃圾是固態(tài)還是液態(tài)。</p><p> 2.遇到的問(wèn)題總結(jié)如下:</p><p> 1)以前沒有接觸過(guò)ARM最小系統(tǒng),所以開始做
34、有點(diǎn)費(fèi)力,時(shí)間、材料有限的情況下,就做出兩個(gè)模塊的功能。 </p><p> 2)紅外感應(yīng)模塊所用的芯片 HC-SR501,上面有兩個(gè)旋轉(zhuǎn)按鈕,一個(gè)控制延時(shí)時(shí)間,一個(gè)控制感應(yīng)距離,開始的時(shí)候沒發(fā)現(xiàn)它們的作用,就單靠程序的延時(shí)控制小燈的亮滅時(shí)間,發(fā)現(xiàn)實(shí)驗(yàn)現(xiàn)象和預(yù)想不符,仔細(xì)閱讀了芯片引腳功能分析后,發(fā)現(xiàn)并解決了這個(gè)問(wèn)題。</p><p> 3)網(wǎng)上對(duì)ARM的具體應(yīng)用資料特別少,查找十分不
35、便,對(duì)初期工作造成困擾。</p><p><b> 致 謝</b></p><p> 時(shí)間真的過(guò)的好快,轉(zhuǎn)眼為期兩周的ARM課程設(shè)計(jì)的完成也隨之進(jìn)入了尾聲。在此我們真的要感謝我們的指導(dǎo)老師李紅巖和楊學(xué)存老師。在本次課程設(shè)計(jì)過(guò)程中,兩位老師對(duì)我們從題目的審核、構(gòu)思、修改到最后定稿的過(guò)程中,自始至終都傾注時(shí)間、經(jīng)歷和心血。由于我們自身經(jīng)驗(yàn)缺乏,所以一開始真的無(wú)法下手
36、,設(shè)計(jì)進(jìn)程也很緩慢,而此時(shí)老師不僅僅在設(shè)計(jì)方面給予引導(dǎo),在選材方面也給予參考,特別是他們多次詢問(wèn)寫作進(jìn)程,并為我們指導(dǎo),幫助我們開拓思路,這些付出和關(guān)心讓我們堅(jiān)定了能夠完成這次設(shè)計(jì)的信心。而我們?cè)诶蠋煹闹笇?dǎo)下,也不敢松懈,盡可能早的完成課程設(shè)計(jì)。</p><p> 兩位老師以嚴(yán)謹(jǐn)?shù)闹螌W(xué)之道、寬厚仁慈的胸懷、積極樂(lè)觀的生活態(tài)度,兢兢業(yè)業(yè)、孜孜以求的工作作風(fēng)和大膽創(chuàng)新的進(jìn)取精神為我們樹立了一輩子學(xué)習(xí)的典范,他們的教
37、誨與鞭策將激勵(lì)我們?cè)趯W(xué)習(xí)和生活的道路上開拓創(chuàng)新。他們淵博的知識(shí)、開闊的視野和敏銳的思維給了我們深深的啟迪。真的發(fā)自內(nèi)心的說(shuō)一句:老師,謝謝您們。</p><p> 最后,我們要向百忙之中抽時(shí)間對(duì)本文進(jìn)行審閱,評(píng)議和參與我們課題的老師真心地表示感謝,謝謝您們!</p><p><b> 附錄</b></p><p><b> 附錄
38、一(心得體會(huì))</b></p><p><b> 宋富鵬:</b></p><p> 突然發(fā)覺當(dāng)你認(rèn)真的做一件事情時(shí),時(shí)間過(guò)得是異常飛快,往往最終的結(jié)果可能不是你所預(yù)期的,但在這個(gè)過(guò)程中你沒有留下遺憾,留下的是彌足珍貴的記憶,當(dāng)你回首時(shí),便會(huì)發(fā)現(xiàn)自己收獲了頗多,遠(yuǎn)遠(yuǎn)超過(guò)你所要的結(jié)果。</p><p> 當(dāng)孫同學(xué)說(shuō)加入我的組時(shí),
39、我們的ARM課設(shè)就已經(jīng)開始了。雖常說(shuō)理論再好都不如實(shí)踐來(lái)的快,但是沒有理論的支撐是萬(wàn)萬(wàn)不能的,在這次課設(shè)中,我對(duì)這點(diǎn)深有體悟。從開始的方案確定到最后的程序調(diào)試,每一步都不是隨便瞎來(lái)的,都有嚴(yán)格的理論知識(shí)。確定方案那天,第一時(shí)間想到的是百度上有沒有原版,可是當(dāng)我費(fèi)盡心機(jī)去求度娘時(shí),我傻眼了,沒有一個(gè)關(guān)于ARM控制的智能垃圾桶的模板,一時(shí)茫然,只好硬著頭皮去圖書館找了幾本ARM設(shè)計(jì)的實(shí)例教程,總算有點(diǎn)眉目。當(dāng)方案定下來(lái)后,我們確定所需材料器
40、件,這點(diǎn)多虧了李紅巖老師的幫助,他給我們提供了可能用到的所有元器件,使得我們避免了不少麻煩??赡苁窍热霝橹鞯木売砂?,其實(shí)更多的是ARM課沒學(xué)好,心里還是喜歡單片機(jī),對(duì)ARM有一種排斥心理。一上手,碰到各種麻煩,ARM中程序怎么寫是最令人頭疼的,最終通過(guò)學(xué)習(xí),學(xué)會(huì)了修改程序,通過(guò)將別人的電機(jī)驅(qū)動(dòng)程序進(jìn)行修改后得到了我們的智能垃圾桶程序,這點(diǎn)讓我們非常興奮。程序解決之后,硬件電路連接就相對(duì)簡(jiǎn)單多了,我們焊好了電路板,第一次通過(guò)在線調(diào)試,發(fā)現(xiàn)
41、了許多問(wèn)題,第一,只有一個(gè)電機(jī)可以轉(zhuǎn)動(dòng),另一個(gè)電機(jī)毫無(wú)反應(yīng);第二,12864上沒有任何顯示;第三</p><p> 這次課設(shè)是我做過(guò)的所有電子設(shè)計(jì)中最艱難的一次,但這次我卻學(xué)會(huì)了獨(dú)自解決問(wèn)題,在沒有任何模板的情況下完成了自己以前不可能完成的任務(wù)。這次我是真正的去自主學(xué)習(xí),自己動(dòng)手,從中收獲了硬件及軟件上的許多知識(shí),也是學(xué)會(huì)了使用2003驅(qū)動(dòng)芯片及紅外傳感器。在此,我要特別感謝李紅巖老師的耐心指導(dǎo)以及李紅巖老師及
42、楊學(xué)存老師提供的實(shí)驗(yàn)室平臺(tái)。相信這次課設(shè)定會(huì)給我以后工作打下堅(jiān)實(shí)的基礎(chǔ),因?yàn)檎麄€(gè)過(guò)程都是我和組員們動(dòng)手完成,包括畫原理圖、硬件連接、程序調(diào)試等等,自己動(dòng)手了定會(huì)掌握牢固。再次衷心的感謝兩位老師及課設(shè)過(guò)程中幫助我們的小伙伴!</p><p><b> 孫媚媚:</b></p><p> 為期兩周的ARM課設(shè)實(shí)習(xí)很快過(guò)去了,雖然過(guò)程很痛苦,但果實(shí)是豐碩的。以前我們學(xué)習(xí)
43、知識(shí)總是停留在知識(shí)層面,覺得書本上的只弄懂了就不錯(cuò)了。但通過(guò)這次實(shí)習(xí)我發(fā)現(xiàn)我以前的想法真是大錯(cuò)特錯(cuò)。要適應(yīng)現(xiàn)在高速發(fā)展的社會(huì)的人才需求,我們不光要具備良好的學(xué)習(xí)習(xí)慣,還有有優(yōu)秀的仔細(xì)能力、融會(huì)貫通能力。通過(guò)這次實(shí)習(xí)我發(fā)現(xiàn),我在這方面真的十分欠缺。我們做的基于ARM的最小系統(tǒng)的智能垃圾桶的設(shè)計(jì),聽似簡(jiǎn)單,但設(shè)計(jì)之初,我們焦頭爛額,首先,以前的課設(shè)都是以51或52單片機(jī)為主控制板來(lái)實(shí)現(xiàn)控制功能,沒有應(yīng)用過(guò)ARM最小系統(tǒng)控制板,那時(shí)才發(fā)現(xiàn),作
44、為自動(dòng)化專業(yè)的學(xué)生,我們的知識(shí)面有多么狹隘。其次,對(duì)于智能垃圾桶要具備哪些功能,我們只有初步的了解,但對(duì)于具體的做法和程序的編寫,我無(wú)從下手,我焦躁過(guò),放棄過(guò),但最終,都想著要最后提交實(shí)習(xí)報(bào)告,而重新振作。我們?cè)诰W(wǎng)上利用并不豐富關(guān)于ARM的資料,查閱圖書館僅有的一種關(guān)于ARM的圖書,團(tuán)結(jié)一致,發(fā)揮我們的想象力。在真正設(shè)計(jì)期間,我們遇到很多困難,但是我們沒有在氣餒,堅(jiān)持了兩個(gè)星期。在這門課程設(shè)計(jì)中,我鍛煉了自己動(dòng)手能力,提高了解決問(wèn)題的能
45、力。我學(xué)習(xí)了ARM編程,了解紅外傳感器H</p><p><b> 胡建:</b></p><p> 兩周的嵌入式系統(tǒng)設(shè)計(jì)結(jié)束了,我們組所做的基于arm的智能垃圾桶也取得了較好的成果,同時(shí)也使我對(duì)ARM有了更深刻的理解與認(rèn)識(shí)。ARM微處理器的在較新的體系結(jié)構(gòu)中支持兩種指令集:ARM指令集和Thumb指令集。其中,ARM指令為32位的長(zhǎng)度,Thumb指令為16位長(zhǎng)
46、度。Thumb指令集為ARM指令集的功能子集,但與等價(jià)的ARM代碼相比較,可節(jié)省30%~40%以上的存儲(chǔ)空間,同時(shí)具備32位代碼的所有優(yōu)點(diǎn)。ARM處理器的三大特點(diǎn)是:耗電少功能強(qiáng)、16位/32位雙指令集和合作伙伴眾多。1、體積小、低功耗、低成本、高性能;2、支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;3、大量使用寄存器,指令執(zhí)行速度更快;4、大多數(shù)數(shù)據(jù)操作都在寄存器中完成;5、尋址方式靈
47、活簡(jiǎn)單,執(zhí)行效率高;6、指令長(zhǎng)度固定。 在處理硬件部分時(shí)最大的感受是arm板比較脆弱精細(xì),沒有51好處理,實(shí)現(xiàn)各部分功能時(shí)也不容易,時(shí)好時(shí)壞。由于只能上機(jī)調(diào)試,給功能實(shí)現(xiàn)帶來(lái)了很大麻煩。軟件部分則由于學(xué)習(xí)不深,程序的編寫與修改也是一大難題。最終我們通過(guò)一系列的調(diào)試與修改,實(shí)現(xiàn)了垃圾桶的紅外</p><p><b> 楊冬:</b></p><p
48、> 在大四第一學(xué)期的末尾學(xué)校給我們專業(yè)安排了為期兩周的ARM實(shí)習(xí)課程。因?yàn)樵谶@學(xué)期自己作為一個(gè)大四學(xué)生也參加了各種各樣的招聘會(huì),深知實(shí)踐對(duì)于自我的重要性,所以一開始就對(duì)這項(xiàng)課程有了濃厚的興趣,因?yàn)樽职±蠋熼_始的介紹中我了解到,這項(xiàng)課程設(shè)計(jì)不同于我們以往的任何一實(shí)習(xí)課程,在這次課設(shè)當(dāng)中我們先是自由分成了幾個(gè)小組,然后根據(jù)老師所給的課題任意的去選擇自己感興趣的一項(xiàng)并去完成它。而更為重要的是我們要做出一個(gè)模型,實(shí)現(xiàn)所要求的各個(gè)功能基于
49、ARM這門課程。而且老師還要求我們要有自己的創(chuàng)新,這在給我們壓力的同時(shí)也讓我們能夠充分的發(fā)揮我們自己的創(chuàng)作能力。而且我們所做的智能垃圾桶也是非常的切合實(shí)際生活,讓我們有更多的空間去發(fā)揮。并且將我們所學(xué)的ARM這門課程進(jìn)一步鞏固。開始做只能垃圾桶時(shí)候我們都有些不知所措,雖然在小組的討論中有很多不同的想法,但苦于無(wú)法實(shí)現(xiàn),不能很好地運(yùn)用所學(xué)的知識(shí)。因此我們分別查閱了一些相關(guān)書籍,并且在網(wǎng)上借閱了一些和我們課題相似的設(shè)計(jì)題目,在多次的借閱參
50、考之后就開始了我們自己的硬件接線。但只有在真正的做過(guò)之后才發(fā)現(xiàn)自己所想的東西有些和實(shí)際出入太大,比如我們焊接的第一個(gè)電機(jī)驅(qū)動(dòng)電路,理</p><p> 附錄二(硬件電路圖)</p><p><b> 附錄三(軟件程序)</b></p><p><b> 源程序代碼:</b></p><p>
51、 #include "config.h"</p><p> #define MOTOA 1<<10 // P0.10 </p><p> #define MOTOB 1<<11 // P0.11 </p><p> #define MOTOC
52、 1<<12 // P0.12 </p><p> #define MOTOD 1<<13 // P0.13</p><p> #define MOTOA1 1<<28 // P0.28 </p><p> #define MOTOB2 1<&l
53、t;29 // P0.29</p><p> #define MOTOC3 1<<30 // P0.30 </p><p> #define MOTOD4 1<<31 // P0.31 </p><p> #define IR_LED 1<<27
54、 // P0.27 </p><p> #define key1 1<<16 // 電機(jī)2正轉(zhuǎn)A-B-C-D(投放固體)</p><p> #define key2 1<<17 //電機(jī)1正轉(zhuǎn)打開垃圾蓋</p><p> #define
55、 key3 1<<18 //電機(jī)1反轉(zhuǎn)關(guān)上垃圾蓋</p><p> #define key4 1<<19 //電機(jī)2反轉(zhuǎn)(投放液體)</p><p> #define key5 1<<20 //電機(jī)1,2停止</p
56、><p> #define KEYCON0x081f0000 // LED控制字</p><p> #define MOTOCON0xf0003c00 // MOTO控制字</p><p> #define GPIOSET(PIN) IO0SET = PIN // 方便修改置位端口</p
57、><p> #define GPIOCLR(PIN)IO0CLR = PIN // 方便修改清位端口</p><p> #define RS 1<<9 //P0.9</p><p> #define SID 1<<6 //P0.6
58、</p><p> #define E 1<<4 //P0.4</p><p> #define PSB 1<<2 //P0.2并行或串行,選擇低電平串行模式</p><p> #define RST 1<&
59、lt;25 //P1.25,復(fù)位腳</p><p> unsigned char IC_DAT1[64]="友情提示: 垃圾投放完畢! ";</p><p> unsigned char IC_DAT2[64]="請(qǐng)投放:
60、 固體 ";</p><p> unsigned char IC_DAT3[64]="請(qǐng)投放 液體 "; </p><p> unsigned char IC_DA
61、T4[64]="請(qǐng)使用智能垃圾桶 請(qǐng)分類投放 ";</p><p> unsigned char IC_DAT5[64]=" 電機(jī): 停 止 ";</p><p> unsigne
62、d char IC_DAT6[64]="自動(dòng)化1102 宋富鵬 楊冬 胡建 孫媚媚 ";</p><p> void TransferCom(unsigned char data0);</p><p> void TransferData(unsigned char data1);</p><p
63、> void delay(unsigned int m);</p><p> void delay_10ms(uint32 n);</p><p> void lcd_mesg(unsigned char *adder1);</p><p> void DelayNS(uint32 dly);</p><p> void
64、MOTO1(uint8 i); </p><p> void MOTO10(uint8 i); </p><p> void MOTO_Mode1(uint8 i); // A-B-C-D</p><p> void MOTO_Mode10(uint8 i);</p><p> /***********
65、*****************************************************************</p><p> * 名 稱:main()</p><p> * 功 能:根據(jù)表DISP_TAB來(lái)控制LED顯示。</p><p> ******************************************
66、**********************************/</p><p> int main(void)</p><p><b> { </b></p><p> /* PINSEL2使用啟動(dòng)代碼的默認(rèn)配置,切勿任意配置PINSEL2,否則總線會(huì)受到干擾 */ </p><p> PINSE
67、L0=0x00000000;</p><p> PINSEL1=0X00000000;</p><p> PINSEL2&=~(0x00000006); //設(shè)置所有I/O口為普通GPIO口</p><p> IO0DIR =MOTOCON; // 配置LED控制I/O方向 </p>&
68、lt;p> LCD12864_init();</p><p> initinal(); //液晶端口初始化</p><p> while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&
69、key4)&&(IO0PIN&key5)!=0)</p><p><b> {</b></p><p> lcd_mesg(IC_DAT6); //顯示界面6</p><p><b> }</b></p><p><b>
70、; while(1)</b></p><p><b> {</b></p><p> if ((IO0PIN&key1)==0)</p><p> MOTO_Mode1(10); </p><p> if ((IO0PIN&key2)!=0)
71、 </p><p> MOTO1(10);</p><p> if ((IO0PIN&key2)==0)</p><p> MOTO10(10); // 電機(jī)2反轉(zhuǎn)</p><p> if((IO0PIN&key4==0)|(IO0PIN&IR_LED)!=0)<
72、;/p><p> MOTO_Mode10(10);</p><p> // A-B-C-D</p><p> if((IO0PIN&key5)==0) // 停止</p><p><b> {</b></p><p> initinal();</p>
73、;<p> lcd_mesg(IC_DAT5); //顯示界面5</p><p> IO0CLR=MOTOCON;</p><p><b> };</b></p><p><b> }</b></p><p> return(0);</p&g
74、t;<p><b> }</b></p><p> /****************************************************************************</p><p> * 名 稱:DelayNS()</p><p> * 功 能:長(zhǎng)軟件延時(shí)</p&
75、gt;<p> * 入口參數(shù):dly延時(shí)參數(shù),值越大,延時(shí)越久</p><p><b> * 出口參數(shù):無(wú)</b></p><p> ****************************************************************************/</p><p> void D
76、elayNS(uint32 dly)</p><p> { uint32 i;</p><p> for(; dly>0; dly--) </p><p><b> {</b></p><p> for(i=0; i<5000; i++);</p><p><b&
77、gt; }</b></p><p><b> }</b></p><p> /****************************************************************************</p><p> * 名 稱:MOTO_Mode1()</p><p
78、> * 功 能:?jiǎn)嗡呐某绦?lt;/p><p> * 入口參數(shù):uint8 i延時(shí)參數(shù),值越大,延時(shí)越久</p><p><b> * 出口參數(shù):無(wú)</b></p><p> ***************************************************************************
79、*/</p><p> void MOTO1(uint8 i) // A-B-C-D</p><p><b> {</b></p><p> initinal();</p><p> while((IO0PIN&key1)&&(IO0PIN&key3)&am
80、p;&(IO0PIN&key4)&&(IO0PIN&key5)!=0)</p><p><b> {</b></p><p> lcd_mesg(IC_DAT2); //顯示漢字界面2</p><p><b> /* A */</b>&l
81、t;/p><p> GPIOSET(MOTOA1);</p><p> DelayNS(i);</p><p> GPIOCLR(MOTOA1);</p><p><b> /* B */</b></p><p> GPIOSET(MOTOB2);</p><p>
82、 DelayNS(i);</p><p> GPIOCLR(MOTOB2);</p><p><b> /* C */</b></p><p> GPIOSET(MOTOC3); </p><p> DelayNS(i);</p><p> GPIOCLR(MOTOC3);</p&
83、gt;<p><b> /* D */</b></p><p> GPIOSET(MOTOD4); </p><p> DelayNS(i);</p><p> GPIOCLR(MOTOD4);</p><p><b> }</b></p>
84、<p><b> }</b></p><p> void MOTO10(uint8 i) </p><p><b> {</b></p><p> initinal();</p><p> while((IO0PIN&key1)&&(
85、IO0PIN&key2)&&(IO0PIN&key4)&&(IO0PIN&key5)!=0)</p><p><b> {</b></p><p> lcd_mesg(IC_DAT3); //顯示漢字界面3</p><p> /* D
86、 */ </p><p> GPIOSET(MOTOD4);</p><p> DelayNS(i);</p><p> GPIOCLR(MOTOD4);</p><p><b> /* C */</b></p><p> GPIOSET(MO
87、TOC3);</p><p> DelayNS(i);</p><p> GPIOCLR(MOTOC3);</p><p><b> /* B */</b></p><p> GPIOSET(MOTOB2); </p><p> DelayNS(i);</p><p&
88、gt; GPIOCLR(MOTOB2);</p><p><b> /* A */</b></p><p> GPIOSET(MOTOA1); </p><p> DelayNS(i);</p><p> GPIOCLR(MOTOA1);</p><p><b
89、> }</b></p><p><b> }</b></p><p> void MOTO_Mode1(uint8 i) </p><p><b> {</b></p><p> initinal();</p><p>
90、while((IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)&&(IO0PIN&key5)!=0)</p><p><b> {</b></p><p> lcd_mesg(IC_DAT1); //顯示漢字界
91、面1</p><p><b> /* A */</b></p><p> GPIOSET(MOTOA);</p><p> DelayNS(i);</p><p> GPIOCLR(MOTOA);</p><p><b> /* B */</b></p>
92、<p> GPIOSET(MOTOB);</p><p> DelayNS(i);</p><p> GPIOCLR(MOTOB);</p><p><b> /* C */</b></p><p> GPIOSET(MOTOC); </p><p> DelayNS(i
93、);</p><p> GPIOCLR(MOTOC);</p><p><b> /* D */</b></p><p> GPIOSET(MOTOD); </p><p> DelayNS(i);</p><p> GPIOCLR(MOTOD);</p>
94、;<p><b> }</b></p><p><b> }</b></p><p> void MOTO_Mode10(uint8 i) </p><p><b> {</b></p><p> initinal();</p
95、><p> while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key5)!=0)</p><p><b> {</b></p><p> lcd_mesg(IC_DAT4);
96、 //顯示漢字界面4</p><p><b> /* D */ </b></p><p> GPIOSET(MOTOD);</p><p> DelayNS(i);</p><p> GPIOCLR(MOTOD);</p><p><b> /* C */</b&
97、gt;</p><p> GPIOSET(MOTOC);</p><p> DelayNS(i);</p><p> GPIOCLR(MOTOC);</p><p><b> /* B */</b></p><p> GPIOSET(MOTOB); </p><p&g
98、t; DelayNS(i);</p><p> GPIOCLR(MOTOB);</p><p><b> /* A */</b></p><p> GPIOSET(MOTOA); </p><p> DelayNS(i);</p><p> GPIOCLR(MOT
99、OA);</p><p><b> }</b></p><p><b> }</b></p><p> /*************************************************************</p><p> * 名稱:delay()</p>
100、;<p> * 功能:延時(shí)程序</p><p> **************************************************************/</p><p> void delay(unsigned int m)</p><p><b> {</b></p><p&
101、gt; unsigned int i,j;</p><p> for(i=0;i<m;i++)</p><p> for(j=0;j<50;j++);</p><p><b> }</b></p><p> /*********************************************
102、****************</p><p> * 名稱:delay_10ms()</p><p> * 功能:延時(shí)程序</p><p> **************************************************************/</p><p> void delay_10ms(uint3
103、2 n)</p><p><b> {</b></p><p> uint32 i,j;</p><p> for(i=0;i<n;i++)</p><p> for(j=0;j<2000;j++);</p><p><b> }</b></p&g
104、t;<p> /*************************************************************</p><p> * 名稱:initinal()</p><p> * 功能:LCD12864字庫(kù)初始化</p><p> ***************************************
105、***********************/</p><p> initinal(void)</p><p><b> {</b></p><p> delay_10ms(4); //大于40ms的延時(shí)程序</p><p> IO0SET=PSB;
106、 //設(shè)置為串行工作方式</p><p><b> delay(1);</b></p><p> IO1CLR=RST; //復(fù)位</p><p><b> delay(1);</b></p><p>
107、; IO1SET=RST; //復(fù)位置高</p><p> delay(10);</p><p> TransferCom(0x30); //8bit設(shè)置。RE=0.G=0,圖片顯示關(guān)</p><p> delay(100);</p><p>
108、 TransferCom(0x0C); //D=1,顯示開</p><p> delay(100);</p><p> TransferCom(0x01); //清屏</p><p> delay_10ms(1);</p><p> TransferCom(0
109、x06); //模式設(shè)置,光標(biāo)從右向左加1位移動(dòng)</p><p> delay(100);</p><p><b> }</b></p><p> /****************************************************************</p>
110、<p> * 名稱:lcd_mesg()</p><p> * 功能:在LCD12864上顯示漢字</p><p> *****************************************************************/</p><p> void lcd_mesg(unsigned char *adder1)<
111、;/p><p><b> {</b></p><p> unsigned char i;</p><p> TransferCom(0x80); </p><p> delay(100);</p><p> for(i=0;i<32;i++)</p><p>&
112、lt;b> {</b></p><p> TransferData(*adder1);</p><p><b> adder1++;</b></p><p><b> }</b></p><p> TransferCom(0x90);</p><p&g
113、t; delay(100);</p><p> for(i=16;i<64;i++)</p><p><b> {</b></p><p> TransferData(*adder1);</p><p><b> adder1++;</b></p><p>&
114、lt;b> }</b></p><p><b> }</b></p><p> /******************************************************************</p><p> * 名稱:SeddByte()</p><p> * 功
115、能:發(fā)送1字節(jié)數(shù)據(jù)</p><p> *******************************************************************/</p><p> void SendByte(unsigned char Dbyte)</p><p><b> {</b></p><p>
116、; unsigned char i;</p><p> for(i=0;i<8;i++)</p><p><b> {</b></p><p><b> IO0CLR=E;</b></p><p> if((Dbyte&0x80)==0x80)</p><
117、p> IO0SET=SID;</p><p><b> else</b></p><p> IO0CLR=SID;</p><p> Dbyte=Dbyte<<1; //左移一位</p><p><b> IO0SET=E;<
118、/b></p><p><b> IO0CLR=E;</b></p><p><b> }</b></p><p><b> }</b></p><p> /*****************************************************
119、**********</p><p> * 名稱:TransferCom()</p><p> * 功能:向LCD12864發(fā)送命令</p><p> ****************************************************************/</p><p> void TransferCo
120、m(unsigned char data0)</p><p><b> {</b></p><p> IO0SET=RS;</p><p> SendByte(0xf8); // 11111,RW(0),RS(1),0</p><p> SendB
121、yte(0xf0&data0); //高4位</p><p> SendByte(0xf0&data0<<4); //低4位</p><p> IO0CLR=RS; </p&
122、gt;<p><b> }</b></p><p> /*************************************************************</p><p> * 名稱:TransferData()</p><p> * 功能:向LCD12864發(fā)送數(shù)據(jù)</p><
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人因工程課程設(shè)計(jì)-垃圾桶設(shè)計(jì)
- 智能垃圾桶
- 智能垃圾桶
- 基于單片機(jī)的智能垃圾桶的設(shè)計(jì)
- 環(huán)保智能型垃圾桶設(shè)計(jì)
- 基于單片機(jī)的智能垃圾桶系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)任務(wù)書-智能垃圾桶的設(shè)計(jì)
- 垃圾桶設(shè)計(jì)40848
- 垃圾桶設(shè)計(jì)畢業(yè)論文3稿
- 垃圾桶設(shè)計(jì)畢業(yè)論文1稿
- 垃圾桶的優(yōu)化與設(shè)計(jì)
- 可做廣告的智能垃圾桶
- 創(chuàng)意垃圾桶研究論文
- 垃圾桶設(shè)計(jì)方麗打印
- 垃圾桶旁的垃圾
- 垃圾桶41740
- 畢業(yè)設(shè)計(jì)(論文)淺談生活小區(qū)內(nèi)垃圾桶設(shè)計(jì)
- 垃圾桶標(biāo)語(yǔ)
- 垃圾桶廣告
- 綠色的垃圾桶
評(píng)論
0/150
提交評(píng)論