【基于單片機的智能垃圾桶的設(shè)計9000字(論文)】_第1頁
【基于單片機的智能垃圾桶的設(shè)計9000字(論文)】_第2頁
【基于單片機的智能垃圾桶的設(shè)計9000字(論文)】_第3頁
【基于單片機的智能垃圾桶的設(shè)計9000字(論文)】_第4頁
【基于單片機的智能垃圾桶的設(shè)計9000字(論文)】_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

引言現(xiàn)在,許多發(fā)達國家都在致力于研究新型智能型垃圾桶,使墳圾桶具有自動工作能力。e傳統(tǒng)的垃圾桶都是采用不封口、手動或者腳踩的方式打開桶蓋投遞垃圾,不但操作麻煩,而且對人體的衛(wèi)生健康有不利影響,對空氣環(huán)境也不利。針對以上問題提,本文提出了-種簡單實用的智能型垃圾桶的設(shè)計方案,能夠在人們需要的時候自動開合桶蓋的垃圾桶。垃圾桶通過及時的關(guān)閉桶蓋,可以有效地抑制異味的散發(fā)以及能遮雨,當人們需要扔垃圾時能自動開蓋,避免接觸,從而抑制病菌傳播。它能夠在人的手或物體接近投物口約-米時,垃圾桶自動開蓋,等垃圾投入完畢,人離開后,垃圾桶桶蓋又自動關(guān)閉。1選題背景及意義1.1選題的依據(jù)及意義目前,隨著我國人口的不斷增長和人民生活水平的提高,城市生活垃圾每年以5%~10%的速度增長,這對城市的發(fā)展和人們的生活環(huán)境造成了很大的影響"。據(jù)報道,我國歷年垃圾的堆積量l達60多億噸,占用的土地面積超過5億平方米21,僅城市垃圾的年產(chǎn)量約1.5億噸,近200座城市無適合場所堆放垃圾。雖然垃圾衛(wèi)生填埋、垃圾發(fā)電、垃圾制沼氣等技術(shù)為垃圾處理開辟了新途徑,但在垃圾無害化處理之前,首要解決的問題是垃圾的分類收集和回收再利用,以及初步的殺菌消毒!31。目前作為存放垃圾的垃圾桶往往留出專門的投物口,這樣很容易污染周邊環(huán)境。此外,工作人員往往需要逐個檢查并清理垃圾桶,以防止垃圾溢出。此管理模式效率很低。目前,垃圾桶樣式和結(jié)構(gòu)單一化,不能較好地發(fā)揮分類回收,蚊蠅滋生、污水四溢、異味難耐等弊端暴露無異,因此設(shè)計集多種功能于--身的環(huán)保垃桶具有重要意義。垃圾桶是城市不可分割的一部分,是城市形象的-個重要組成部分,設(shè)想如果一個城市中的垃圾桶設(shè)計不好,直接影響到-一個城市的形象,垃圾桶的作用是回收垃圾,清潔環(huán)境。與周圍環(huán)境不協(xié)調(diào)、外觀設(shè)計粗俗、簡陋的垃圾桶,本身就是一個視覺垃圾。垃圾桶雖小,卻能折射出-一個城市對細節(jié)的重視程度。比較而言,很多發(fā)達國家垃圾桶的設(shè)計,多采用流線型的外觀,設(shè)計新穎,功能合理,并注重與周圍環(huán)境的融合,對一個城市形象的提升頗有益處。而在國內(nèi),垃圾桶內(nèi)的垃圾多數(shù)成為拾荒者的目標,拾荒者撿走可以賣錢的垃圾后,隨之也使垃圾桶周圍-片狼藉。有些垃圾桶設(shè)計與城市形象、周圍環(huán)境割裂,垃圾桶成為城市建設(shè)中不和的音符,垃圾桶外觀設(shè)計效果差完全是丑陋的工業(yè)產(chǎn)品,缺乏藝術(shù)氣息,缺乏視覺美感,垃圾桶旁邊成為了城市中最需要清理的衛(wèi)生死角,城市環(huán)境的整體提高受到阻礙,影響了城市的整體形象。垃圾桶應(yīng)該與周圍環(huán)境融為-~體,不應(yīng)當是簡單、機械地擺放到每個角落,至少在視覺上應(yīng)該讓人感覺是舒服的,在心理上是愉悅的。垃圾桶外觀設(shè)計應(yīng)有一-定的藝術(shù)欣賞性,同時要與周圍環(huán)境相協(xié)調(diào),在垃圾桶的表面設(shè)計宣傳保護環(huán)境衛(wèi)生的標語和口號,倡導人們愛護環(huán)境、保護環(huán)境,同時可以充分利用垃圾桶外殼的廣告功能,設(shè)計-些廣告宣傳畫等31。通過查資料,我們獲悉,全國約60%以上的城市陷入垃圾圍城的困境。僅“城市垃圾”的年產(chǎn)量就近1.5億噸,這些垃圾絕大部分都處于露天堆放的狀況。它不僅是響城市景觀,同時也污染大氣、水和土壤,對人民健康構(gòu)成嚴重威脅。實際上,如果你手上拿著香蕉皮想扔,但--想到臟兮兮的垃圾桶,還要用手打開桶蓋,實在是不想靠近的。那么怎么解決這--問題,讓垃圾桶變得更具親和力,就是首先要考慮的問題之一。對于解決垃圾桶這個問題的設(shè)計,可以從分類上加以研究。其實,垃圾桶的設(shè)計很大程度上是向著垃圾分類化發(fā)展的。當今世界,控制人口,節(jié)約資源,保護環(huán)境,實現(xiàn)經(jīng)濟、社會與人口、資源、環(huán)境協(xié)調(diào)發(fā)展,已成共識。像我們這樣-一個人口眾多、能源資源匱乏的國家來說,垃圾真是太寶貴了。垃圾回收再利用可以消滅污染,保護市民健康,創(chuàng)造財富,節(jié)約一大批人的就業(yè)問題等等。所以說,垃圾是放錯了地方的財富。1.2我國垃圾處理現(xiàn)狀目前,我國城市生活垃圾最主要的處理方式仍然是采用集中堆放填埋,約占全國垃圾處理量的70%以上;其次是高溫堆肥,這是我國早期采用的方法,如今約占20%以上;我國垃圾焚燒處理方式史于80年代中期,采用焚燒法處理城市生活垃圾的數(shù)量t還很少。近年來,我國進行了大量的城市生活垃圾處理研究,并陸續(xù)興建了一批大、中型的城市垃圾處理設(shè)施,城市垃圾處理率得到迅速的提高,在--些垃圾熱值較高的地區(qū),已經(jīng)開始采用垃圾余熱發(fā)電141。但是,由于資金原因,國內(nèi)仍然有許多城市采用集中堆放或簡易填埋方式處H城市垃圾。并且在填埋時,由于沒有很好的壓實機械,這些填埋場未達使用年限就填滿封場。沿海的許多城市垃圾填埋很難找到合適的場地。另有許多城市因為缺乏資金,無法按標準要求建造填埋場或焚燒設(shè)施。有些城市或地區(qū),雖然-次性的建設(shè)投資解決了,但長期運行的費用也難以維持,因而也很難達到無害化處理的目標??啥迅挠袡C垃圾是我國城市垃圾中的主要成分之一。將垃圾中的可堆腐有機物進行堆肥處理是提高垃圾再生利用水平的主要途徑。通過垃圾的堆肥處理,可顯提高垃圾資源化水平。促使垃圾堆肥處理發(fā)展的重要因素是實行垃圾分類收集。例如,廚余垃圾、園林修剪物、果品蔬菜加工殘渣、養(yǎng)殖場、屠宰場廢棄物等,單獨分類收集后用于堆肥,既簡化堆肥工藝,降低堆肥成本,又可提高堆肥質(zhì)t,為打開堆肥市場開創(chuàng)有利條件。在焚燒方面,我國發(fā)展較慢,目前只有少數(shù)經(jīng)濟水平較高的城市引進國外設(shè)備或部分引進國外設(shè)備建設(shè)了一些垃圾焚燒廠,并開發(fā)了--些小型焚燒爐,但同國外引進的大型爐排爐相比,技術(shù)上仍有差距。我國城市垃圾回收仍然以混合回收為主,采用定點垃圾箱回收,然后集中運至中轉(zhuǎn)站,最后轉(zhuǎn)運至處理廠??苫厥盏奈镔Y和有毒物質(zhì)混合-起,加大了回收的難度。造成垃圾具有有機物含高、水分高、熱值低和成分復雜。我國垃圾連年產(chǎn)增加其實是未能從源頭上處理好垃圾的減t化,近年來,商品的包裝越來越趨于種類多樣化和數(shù)量t劇增。包裝物約占城市垃圾的30%,垃圾中的廢紙、廢塑料很大一部分來源于包裝。一次性的筷子,一次性水,一次性拖鞋更多的消耗了資源,增加了垃圾的產(chǎn)量。1.3垃圾處理建議實行分類收集,加強廢品回收。動員居民在垃圾的源頭進行垃圾分類,提高居民環(huán)保意識的同時,還保護了環(huán)境,降低了回收的成本。建立-一個健全的分類回收系統(tǒng)和運輸系統(tǒng),做好回收和利用相結(jié)合。針對我國國情,研究適合我國發(fā)展的垃圾處理方式。我國垃圾中含水高,熱值低,生活垃圾多的特點,設(shè)計更加清潔的生產(chǎn),減少有毒物質(zhì)的產(chǎn)生。提高我國焚燒技術(shù)水平。借鑒國外技術(shù)的同時實現(xiàn)中小焚燒設(shè)備的國產(chǎn)化。針對不同的地區(qū),因地制宜對垃圾進行處理。具備衛(wèi)生填埋條件的地區(qū),以填埋為主。缺乏衛(wèi)生填埋,但垃圾熱值高,主要以焚燒為主,余熱用于發(fā)電供暖等。在條件適宜的地區(qū),可以采用堆肥處理,產(chǎn)生沼氣和高溫堆肥[5]。加強居民的環(huán)保意識。目前我國居民的環(huán)保意識大大提高,但是不可避免的,還有一些環(huán)保意識比較差。環(huán)衛(wèi)部門的信息證實:分類回收上來的垃圾仍然需要重新分揀。居民的垃圾分類意識薄弱,是推進我國衛(wèi)生事業(yè)的主要障礙。據(jù)調(diào)查,垃圾箱雖貼有“可回收”、“不可回收”和“有毒物質(zhì)”字樣,但是人們?nèi)匀灰暥灰?,胡亂扔進去再說。一位青年女子坦言:“垃圾都是一扔了之,沒想到還要分類。”--位錯扔垃圾的先生說:“分類標志看是看到了,但扔的時候沒去多想。因為平時在家垃圾都是混在一塊兒扔,早就習慣了!”一位中年婦女說,她所理解的垃圾分類,就是把能夠賣錢的廢品挑出來,比如廢舊報紙、雜志、易拉制等。不知道為何要分類,哪些垃圾可回收,哪些不可回收。因此,提高居民的環(huán)保意識顯得尤為重要。

2功能設(shè)計本系統(tǒng)是一個物聯(lián)網(wǎng)下智能化控制系統(tǒng),它運用了傳感器、通信技術(shù)、無線傳輸技術(shù)、及自動控制技術(shù)等,交叉了多種學科技術(shù)。主要研究內(nèi)容如下:2.1桶身外部主體及桶蓋以HDPE(高密度聚乙烯)為基底附加金屬烤漆工藝,內(nèi)部為不銹鋼雙色桶膽,綠色為可回收,紅色為不可回收。桶身后側(cè)置有扶手,將扶手旋開,內(nèi)部桶膽向后傾斜約60度用于回收垃圾袋,將新的回收袋固定在卡槽上將桶膽推回并關(guān)閉扶手。2.2桶蓋開啟采用紅外傳感器和舵機實現(xiàn),紅外傳感器感應(yīng)到人手接近時,把信息傳給開發(fā)板,開發(fā)板同時將開啟命令傳給舵機,舵機工作,開啟桶蓋,延遲4至5秒后關(guān)閉。2.3垃圾裝滿報警當垃圾快要裝滿時,超聲波測量到距離小于某一個值就發(fā)出警報如何亮起指示燈提醒工作人員盡快處理垃圾,因此在垃圾統(tǒng)一清收銷毀時只需查看哪些地方的指示燈是否亮起,提高了工作效率。2.4垃圾狀態(tài)信息檢測在垃圾桶底部到頂部5/6處安裝傳感器,兩側(cè)桶壁各有一個傳感裝置。當垃圾集到此處時,傳感器將信息傳給開發(fā)板,開發(fā)板將信息通過WiFi上傳云端,環(huán)衛(wèi)工人手機從云端接收信息。3系統(tǒng)整體實現(xiàn)3.1硬件選材3.1.1硬件(1)stm32f1(2)超聲波HC-SRO4(3)OLED12864(4)BEEP3.1.2硬件參數(shù)(1)單片機stm32f1(2)超聲波模塊HC-SRO41:使用電壓:DC5V2:靜態(tài)電流:小于2mA3:電平輸出:高5V4:電平輸出:底0V5:感應(yīng)角度:不大于15度6:探測距離:2cm-450cm7:高精度:可達0.3cm板上接線方式,VCC+5V、trig(控制端)--PA8、echo(接收端)--PA7、out(空腳)、GND--地(3)BEEP(無源)無源蜂鳴器意思是需要加音頻驅(qū)動信號才能使其發(fā)出聲音,與有源蜂鳴器相對應(yīng)。有源蜂鳴器只需要通上直流電即會發(fā)出蜂鳴聲,有源蜂鳴器內(nèi)部自帶振蕩器!3.2STM32最小系統(tǒng)硬件組成詳解0組成:電源復位時鐘調(diào)試接口啟動1、電源:一般3.3VLDO供電加多個0.01uf去耦電容2、復位:有三種復位方式:上電復位、手動復位、程序自動復位通常低電平復位:(51單片機高電平復位,電容電阻位置調(diào)換)上電復位,在上電瞬間,電容充電,RESET出現(xiàn)短暫的低電平,該低電平持續(xù)時間由電阻和電容共同決定,計算方式如下:t=1.1RC(固定計算公式)1.1*10K*0.1uF=1.1ms需求的復位信號持續(xù)時間約在1ms左右。手動復位:按鍵按下時,RESET和地導通,從而產(chǎn)生一個低電平,實現(xiàn)復位。3、時鐘:晶振+起振電容+(反饋電阻MΩ級)如使用內(nèi)部時鐘:對于100腳或144腳的產(chǎn)品,OSC_IN應(yīng)接地,OSC_OUT應(yīng)懸空。2)對于少于100腳的產(chǎn)品,有2種接法:i)OSC_IN和OSC_OUT分別通過10K電阻接地。此方法可提高EMC性。32.768KHZ:可選擇只接高速外部時鐘8MHZ或既多接一個32.768MHZ的外部低速時鐘。32.768KHZ時鐘作用:用于精準計時電路萬年歷通常會選擇32.768KHz的晶振,原因在于32768=2^15,而嵌入式芯片分頻設(shè)置寄存器通常是2的次冪的形式,這樣經(jīng)過15次分頻后,就很容易的1HZ的頻率。實現(xiàn)精準定時。用于精準計時電路萬年歷晶振:一般選擇8MHZ方便倍頻有源:更穩(wěn)定成本更高需要接電源供電不需要外圍電路3腳單線輸出無源:精度基本夠方便靈活便宜最大區(qū)別:是否需要單獨供電無源晶振需要外接起振電容:晶振的兩側(cè)有兩個電容OSC——OUT不接,懸空有源晶振作用:1、使晶振兩端的等效電容等于或接近于負載電容;2、起到一定的濾波的作用,濾除晶振波形中的高頻雜波;該起振電容的大小一般選擇10~40pF,當然根據(jù)不同的單片機使用手冊可以具體查閱,如果手冊上沒有說明,一般選擇20pF、30pF即可,這是個經(jīng)驗值。調(diào)整電容可微調(diào)振蕩頻率:一般情況下,增大電容會使振蕩頻率下降,而減小電容會使振蕩頻率升高,反饋電阻:1M負反饋同時也是限流1、連接晶振的芯片端內(nèi)部是一個線性運算放大器,將輸入進行反向180度輸出,晶振處的負載電容電阻組成的網(wǎng)絡(luò)提供另外180度的相移;整個環(huán)路的相移360度,滿足振蕩的相位條件。2、晶振輸入輸出連接的電阻作用是產(chǎn)生負反饋,保證放大器工作在高增益的線性區(qū),一般在M歐級;3、限流的作用,防止反向器輸出對晶振過驅(qū)動,損壞晶振,有的晶振不需要是因為把這個電阻已經(jīng)集成到了晶振里面。4、啟動:用戶使用通常都設(shè)置成Boot0Boot1均為0即均為低電平M3核的器件有3種啟動方式,M4的有4種。通過BOOT0,BOOT1的電平進行選擇。STM32三種啟動模式對應(yīng)的存儲介質(zhì)均是芯片內(nèi)置的,它們是:1)用戶閃存=芯片內(nèi)置的Flash。2)SRAM=芯片內(nèi)置的RAM區(qū),就是內(nèi)存啦。3)系統(tǒng)存儲器=芯片內(nèi)部一塊特定的區(qū)域,芯片出廠時在這個區(qū)域預(yù)置了一段Bootloader,就是通常說的ISP程序。這個區(qū)域的內(nèi)容在芯片出廠后沒有人能夠修改或擦除,即它是一個ROM區(qū),它是使用USART1作為通信口。M4在上述基礎(chǔ)上又增加了可在FSMC的BANK1區(qū)域啟動。5、調(diào)試接口:STM32有兩種調(diào)試接口,JTAG為5針,SWD為2線串行(一共四線)此外還有采用USB進行程序燒寫和數(shù)據(jù)輸出:和電腦USB口連接也可以進行小負載驅(qū)動供電。通常采用CH340G的芯片:實現(xiàn)USB轉(zhuǎn)串口。需要單獨的振蕩電路12MHZ使用該芯片將電腦的USB映射為串口使用,注意電腦上應(yīng)安裝串口驅(qū)動程序,否則不能正常識別。當燒寫程序時,我們希望BOOT0=1,BOOT1=0。當燒寫完成后我們希望BOOT0=0,BOOT1=0(這個模式BOOT1可以是0可以是1,這里我們讓BOOT1拉低,即整個過程BOOT1都為L接地,簡化電路設(shè)計)。3.3系統(tǒng)整體實現(xiàn)此多功能垃圾箱控制系統(tǒng)所要實現(xiàn)的功能包括:垃圾箱的自動翻蓋、箱滿自動報警、定時噴灑等。實現(xiàn)以上這些功能可以使用戶方便投放垃圾,將兩者初步隔離,且防止垃圾箱內(nèi)細菌滋生。設(shè)計使用STC89C52RC單片機為核心元件。3.4復位電路為了不影響系統(tǒng)運行后的正常工作,在單片機開始啟動時,都需要重新復位,使得CPU以及系統(tǒng)各部分處于初始狀態(tài),并且從初態(tài)開始工作。常見的復位方式有2種:手動復位和上電復位。由于本次設(shè)計的系統(tǒng)是位于垃圾箱內(nèi)部,考慮到實際使用過程中,在垃圾箱外安裝手動復位按鈕容易被來往人流按到造成不便,所以使用了上電復位的方式。復位電路圖如圖3所示。.如.上圖所示,.上電復位的電路便是在單片機的復位輸入引腳RST.上接-一個電容到電源Vcc端,而后下接-一個電阻到地,這樣組成的。上電復位電路的工作原理:復位電路,通過電容加給RST端-一個短暫信號,由于上電的瞬間電容充電電流最大,所以電容就相當于短路,即RST斷獲得--高電平信號。這個高電平信號是跟著Vcc對電容的充電過程逐漸回落,所以RST端的高電平持續(xù)時間的長短取決于電容的充電時間。電容兩端的電壓--且達到與電源Vcc相同的電壓值時,給電容充電的電流就會減少至零,即停止給電容充電,電容就相當于開路,RST端就為低電平,程序就能夠正常運行。2.2.3晶振電路晶振電路是用來給系統(tǒng)提供基本的時鐘信號。為了使得系統(tǒng)各部分能夠保持同步,一般來說-一個系統(tǒng)共用一一個晶振。本次設(shè)計的系統(tǒng)采用的是僅用-一個晶振來實現(xiàn)同步的。晶振電路如圖4所示。3.5蜂鳴器模塊蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。多諧振蕩器由晶體管或集成電路構(gòu)成,當接通電源后(1.5~15V直流工作電壓),多諧振蕩器起振,輸出1.5~5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發(fā)聲。電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場,振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。開發(fā)板上的無源蜂鳴器模塊電路原理圖如下所示。主函數(shù)實現(xiàn)的功能比較簡單,首先將使用到的外設(shè)硬件進行初始化,然后進入while循環(huán),間隔100us對蜂鳴器管腳電平翻轉(zhuǎn),這樣就產(chǎn)生了一個頻率為5KHz的脈沖,因此無源蜂鳴器就會發(fā)聲,當然有源蜂鳴器的控制可以更簡單,只需要給它一個低電平即可,為了實現(xiàn)2塊板子程序的兼容,這里就統(tǒng)一采用此種方式控制蜂鳴器。間隔200ms對led1管腳電平翻轉(zhuǎn),因為使用到了delay_us延時函數(shù),所以在main函數(shù)開始處就需要調(diào)用SysTick_Init(72)初始化,這個在我們后面所有程序都會使用,后面就不重復。3.6舵機模塊什么是舵機?舵機也叫也叫RC伺服器,通常用于機器人項目,也可以在遙控汽車,飛機等航模中找到它們。類似舵機這樣的伺服系統(tǒng)通常由小型電動機,電位計,嵌入式控制系統(tǒng)和變速箱組成。電機輸出軸的位置由內(nèi)部電位計不斷采樣測量,并與微控制器(例如STM32,Arduino)設(shè)置的目標位置進行比較;根據(jù)相應(yīng)的偏差,控制設(shè)備會調(diào)整電機輸出軸的實際位置,使其與目標位置匹配。這樣就形成了閉環(huán)控制系統(tǒng)??刂圃硗ㄟ^向舵機的信號信號線發(fā)送PWM信號來控制舵機的輸出量;一般來說,PWM的周期以及占空比,我們是可控的,所以PWM脈沖的占空比直接決定了輸出軸的位置。下面舉個例子;當我們向舵機發(fā)送脈沖寬度為1.5毫秒(ms)的信號時,舵機的輸出軸將移至中間位置(90度);脈沖寬度為1ms時,舵機的輸出軸將移至最小的位置(0度);脈沖寬度為2ms時,舵機的輸出軸將移至最小的位置(180度);注意:不同類型和品牌的伺服電機之間最大位置和最小位置的角度可能會不同。許多伺服器僅旋轉(zhuǎn)約170度(或者只有90度),但寬度為1.5ms的伺服脈沖通常會將伺服設(shè)置為中間位置(通常是指定全范圍的一半);具體可以參考下圖:占空比=t/T相關(guān)參數(shù)如下:t=0.5ms——————舵機會轉(zhuǎn)到0°t=1.0ms——————舵機會轉(zhuǎn)到45°t=1.5ms——————舵機會轉(zhuǎn)到90°t=2.0ms——————舵機會轉(zhuǎn)到135°t=2.5ms——————舵機會轉(zhuǎn)到180°部分編寫步驟:<1>開啟TIM4,GPIOB時鐘,配置PB9為復用輸出。RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);//使能定時器4時鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB,ENABLE);//復用時鐘使能<2>初始化TIM4,設(shè)置TIM4的ARR和PSC。TIM_TimeBaseStructure.TIM_Period=arr;//設(shè)置自動重裝載值TIM_TimeBaseStructure.TIM_Prescaler=psc;//設(shè)置預(yù)分頻值TIM_TimeBaseStructure.TIM_ClockDivision=0;//設(shè)置時鐘分割:TDTS=Tck_timTIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//向上計數(shù)模式TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);//根據(jù)指定的參數(shù)初始化TIMx的<3>設(shè)置TIM4_CH4的PWM模式,使能TIM4的CH4輸出。voidTIM_OC4Init(TIM_TypeDef*TIMx,TIM_OCInitTypeDef*TIM_OCInitStruct);1看看結(jié)構(gòu)體TIM_OCInitTypeDef的定義:typedefstruct{ uint16_tTIM_OCMode; uint16_tTIM_OutputState; uint16_tTIM_OutputNState; uint16_tTIM_Pulse; uint16_tTIM_OCPolarity; uint16_tTIM_OCNPolarity; uint16_tTIM_OCIdleState; uint16_tTIM_OCNIdleState;}TIM_OCInitTypeDef;3.7超聲波測距模塊超聲波測距[14,16]環(huán)境要求不高,由于穿透力強能夠在雨霧天正常工作。所以本次設(shè)計的超聲波電路中就使用了HC-SR04超聲波測距模塊。這個模塊有4個引腳,1和4引腳分別接5V電源和接地,2腳是觸發(fā)信號的輸入端,3腳是回響信號的輸出端2腳和3腳分別接在單片機的P3.4口和P3.5口。超聲波測距模塊的工作原理是:采用單片機的I/0口觸發(fā)測距,即當單片機發(fā)送一~個10us的高電平脈沖給超聲波模塊的輸入端TRIG后,單片機內(nèi)部定時器清零。當超聲波傳感器的輸出端ECHO為高電平時,單片機內(nèi)部定時器開始工作;當輸出端ECHO變?yōu)榈碗娖綍r,定時器停止工作,讀取定時器T0的時間,通過公式算出距離。超聲波測距模塊電路圖如圖7所示。5v和GND為模塊提供電能,Trig用于觸發(fā)模塊測距,Echo用于接受返回電平信號。其操作時序圖如下:如上圖所示,STM32給Trig引腳一個超過10us的高電平,就可以使能模塊內(nèi)部的測距電路,模塊會循環(huán)發(fā)出8個40kHz脈沖,發(fā)射出超聲波,然后通過檢測Echo引腳的高電平時間就可以測量出模塊與障礙物之間的距離。其計算公式可表示如下:distance=340?Echo高電平時間23.8實現(xiàn)材料STM323f103開發(fā)板,最小系統(tǒng)均可。超聲波模塊(HC-SR04模塊)舵機一個,串口蜂鳴器,電池垃圾桶模型4軟件編程4.1超聲波測距代碼如下超聲波模塊固定在托盤旁邊,使用超聲波傳感器可測量放置于托盤表面的垃圾距超聲波傳感器的距離D1D_1D1?#-*-coding:utf-8-*-"""CreatedonSatDec1221:33:422020@author:qiqi此文件用于實現(xiàn)四分類垃圾桶的5個超聲波測距的控制"""importtimeimportRPi.GPIOasGPIOGPIO.setmode(GPIO.BCM)GPIO.setwarnings(False)defgetDistance(TRIG=None,ECHO=None):'''函數(shù)功能:獲取ECHO與TRIG指定的超聲波傳感器測定的距離''''''TRIG為超聲波發(fā)射腳位,ECHO為超聲波接收腳位'''ifTRIGisNoneorECHOisNone:print('引腳未接好')return0GPIO.output(TRIG,GPIO.HIGH)time.sleep(0.1)GPIO.output(TRIG,GPIO.LOW)whilenotGPIO.input(ECHO):passt1=time.time()whileGPIO.input(ECHO):passt2=time.time()Distence=(t2-t1)*340/2*100returnDistencedefultrasonic(pin):dis=pin.copy()key=list(pin.keys())forkinkey:dis[k]=getDistance(TRIG=pin[k][0],ECHO=pin[k][1])returndis4.2舵機部分代碼舵機是通過高電平的占空比來調(diào)節(jié)輸出軸的角度,舵機的驅(qū)動信號是50Hz的方波信號,每個周期為20ms,其中高電平的占比在0.5ms-2.5ms之間。#include"servo.h"/*我這里采用通用計時器3*/staticvoidServo_GPIO_Config(){ GPIO_InitTypeDefGPIO_InitStructure; /*開啟GPIO時鐘*/ RCC_APB2PeriphClockCmd(BASIC_GPIOA_CLK,ENABLE); /*配置GPIO*/ GPIO_InitStructure.GPIO_Pin =GPIOA_CH1_PIN;//TIM_CH1 GPIO_InitStructure.GPIO_Mode =GPIO_Mode_AF_PP;//復用推挽輸出 GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz; /*初始化*/ GPIO_Init(GPIOA_CH1_PORT,&GPIO_InitStructure); }staticvoidServo_TIM2_Config(){ TIM_TimeBaseInitTypeDefTIM_TimeBaseInitStructure; TIM_OCInitTypeDefTIM_OCInitStructure; /*開啟定時器時鐘*/ RCC_APB1PeriphClockCmd(BASIC_TIM_CLK,ENABLE); /* TIM2時基單元配置重要配置:TIM_Prescaler(預(yù)分頻值)TIM_Period(定時周期)將TIM_Period設(shè)置成999,則計數(shù)器會數(shù)1000個(TIM_Period+1)節(jié)拍為一個定時器的周期。這個和后面需要配置的TIM_Pulse共同控制著定時器輸出波形的占空比。TIM_Prescaler用來指定TIM時鐘的分頻值。也就是說它是進一步來分頻TIMclock的。簡單來說也就是定時器每一次數(shù)數(shù)的時間間隔是多少。 */ /*配置TIM3,一般的驅(qū)動PWM信號都是周期20毫秒,頻率為50HZ。所以我們設(shè)定周期為20ms*/ /*時基結(jié)構(gòu)體成員配置*/ //自動重裝載值寄存器的值 TIM_TimeBaseInitStructure.TIM_Period =BASIC_TIM_Period; //時鐘預(yù)分頻數(shù) TIM_TimeBaseInitStructure.TIM_Prescaler = BASIC_TIM_Prescaler; //時鐘分頻因子 TIM_TimeBaseInitStructure.TIM_ClockDivision =TIM_CKD_DIV1; //計數(shù)器計數(shù)模式,設(shè)置向上計數(shù), TIM_TimeBaseInitStructure.TIM_CounterMode =TIM_CounterMode_Up; /*初始化結(jié)構(gòu)體*/ TIM_TimeBaseInit(BASIC_TIM,&TIM_TimeBaseInitStructure); /*定時器輸出比較結(jié)構(gòu)體成員初始化*/ TIM_OCInitStructure.TIM_OCMode =TIM_OCMode_PWM2; //輸出使能 TIM_OCInitStructure.TIM_OutputState =TIM_OutputState_Enable; //TIM_OCInitStructure.TIM_OutputNState =TIM_OutputNState_Enable; //設(shè)置占空比大小,主要取主函數(shù)里設(shè)置占空比這邊先設(shè)置成0 TIM_OCInitStructure.TIM_Pulse =0; //輸出通道電平極

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論