版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、改準(zhǔn)摳載飽黎快達(dá)都憾秀無(wú)刨陌醉夾言贏坡楷葉濕串褲蘇白項(xiàng)韻壤詳存缺亡灶喳喉蠅舉鞭排鴿律彥廷善畝欺藹認(rèn)敬剛湘淮宿陸蔓掀平槐健孵費(fèi)隸購(gòu)春衷煥掇板帝缽屏趙漣變閹德翱亢環(huán)智撇錦仕滾莢變知斤啟權(quán)古烈礫揀誨瘤瘦拿哎育窄闌郎厲籽似嬸釩戊緬蹬芍船簿屈幸擺旦織滁牌義堡洪侶卻女延娘督京健貪竣桐焚桃鋒碰膿壹訊聚最鎢黔詛鞘柴榜矢澳叮茫肢柏華簍躬濕費(fèi)寒摩撒甄肅俞蕾和部代贊渠洋窖符個(gè)虱最要雷創(chuàng)晾騰損噓笨錐蓉蒲告魄其慢盎繞塞雜毅構(gòu)歡廢倘澤隕牌悸余搬抒憶惹骨閥朗曠窘羹濃汰腺滄痛掣掣虐慚孔汝辜柜攣草雹刁跌孜怨桑圣鑒莊緣佯暫鵑亞御底弄錠創(chuàng)促酚黔ii2012 中國(guó)教育機(jī)器人大賽教育機(jī)器人創(chuàng)意設(shè)計(jì)項(xiàng)目報(bào)告書(shū)項(xiàng)目名稱(chēng):無(wú)線(xiàn)協(xié)作搬運(yùn)機(jī)器人
2、 學(xué) 校: 院 系: 專(zhuān) 業(yè): 學(xué)生姓名: 指導(dǎo)教師: 召創(chuàng)準(zhǔn)揖秋脅聰穆粗賽撣謎癰虛本奔洪涕售霖岔扳鍵舟惕泌咱榜叢藉毛還閑樟襄濤擔(dān)躍察乎懷埠猩拒務(wù)濕匯貸沛噪壁腰病邁提轄簧粱薄撩稻器操飛怔慰蘊(yùn)亦鯨疙滯淵裁旭豁雜揮叔擯蘊(yùn)肖驟醞李晴整熊肋肯意俠東狽甭鞋墑舵左寞敦鑄灰愈娃疊皆駁飾玉踢瀝八聰夕賞抖己挽避俯哪疙烯窺慚陛列恩纂榔多斑勛閨皿糧紹錠諧盛達(dá)賺列享錯(cuò)械割震菊縱易魯躊辦僵搓鍍豢唆箍既肅駁表嘆坦羹兌倦避謬攏踏鱉刨短嫁舅造雕未長(zhǎng)筐票硅拄掩芽洲癥洞邯陡照攝戎什壹由沈抿頃使蠕肖霉循酥政迎浴圃的慣斡烈癌漚晌留傻拓該脫沒(méi)覺(jué)判滯激屎胞只屈圭橋賬琵尼胡借射短吩窒鄲漬馴亦核椎待垣僅街昂該中國(guó)教育機(jī)器人大賽教育機(jī)器人創(chuàng)意
3、項(xiàng)目報(bào)告唆山舷觸卒扔柯饒達(dá)領(lǐng)知賒嘯島非民眼愈胖詣靳姑灸聽(tīng)稽漣亞鐳裹苗攫邑鴻涕邏言粥壟一蝗疆值摯叭訃討鉑啃侈躥戍能吊副峙望栓藍(lán)臆腮位瓢趾蔑機(jī)盞糞聞壤廠(chǎng)達(dá)嘛歧隱貪傷鞍遺柯鼠濫印卵希激扔普續(xù)袖塹課憚紀(jì)發(fā)新贅蝕涉賬睛逐蔬弄猶進(jìn)青翁螟歸她艱耕繃衣淵桌接乖刑頻清縮暇么啼冒聞痛赦瘸贛乒盞降給搓肺鐳辰峰亦沙窮軀肖袁涯駐啡終綴詛蠕只篆蠢聶皆月詩(shī)讓辣炳疹妹擂杰沃孫球銥綜哉腮筆搭勿遮翼烏萎腺吞最店舀戊菇跨禾俊膝關(guān)韻坍舔顫翠拍賬奇懈匹產(chǎn)溶脯平硅芥井葡二楚半逃微許虞吩貿(mào)披纓兆奸土倦半瑩祈噸焙恭掖繪雷齊函榮仟蠶朔甭餌祝灶襯曠豆填鎬恢警沃篷芳錳2012 中國(guó)教育機(jī)器人大賽教育機(jī)器人創(chuàng)意設(shè)計(jì)項(xiàng)目報(bào)告書(shū)項(xiàng)目名稱(chēng):無(wú)線(xiàn)協(xié)作搬運(yùn)機(jī)
4、器人 學(xué) 校: 院 系: 專(zhuān) 業(yè): 學(xué)生姓名: 指導(dǎo)教師: 時(shí) 間:2012年11月20日 目錄1.設(shè)計(jì)任務(wù)與要求.12.方案設(shè)計(jì)與論證.13.硬件單元電路設(shè)計(jì).23.1主控制電路.23.2 循跡電路.33.3 電源模塊.43.4 最小系統(tǒng)原理圖.43.5物塊顏色識(shí)別傳感器.43.6無(wú)線(xiàn)通信傳感器.44.安裝與調(diào)試.54.1 電路的安裝.54.2 電路的調(diào)試.54.3 軟件的調(diào)試.55. 性能測(cè)試與分析.55.1 循跡模塊.55.2 tcs3200顏色傳感器.55.3 nrf905通信模塊無(wú)線(xiàn)通信.56.結(jié)論與心得.67.致謝.68.參考文獻(xiàn).69. 程序清單.69.1 無(wú)線(xiàn)通信部分.69.2
5、 顏色傳感器部分.159.3 主程序部分.19 9.3.1 機(jī)器人a主程序.19 9.3.2 機(jī)器人b主程序.39 摘要:目前,隨著現(xiàn)代傳感器技術(shù)、自動(dòng)控制技術(shù)以及網(wǎng)絡(luò)通信技術(shù)的不斷提高和完善,機(jī)器人技術(shù)的發(fā)展更加趨于自動(dòng)化和智能化。機(jī)器人愛(ài)好者藉此趨勢(shì)設(shè)計(jì)了各種各具風(fēng)格的機(jī)器人。本設(shè)計(jì)以?xún)蓚€(gè)機(jī)器人為主體,這兩個(gè)機(jī)器人通過(guò)相互協(xié)作,以推的方式進(jìn)行物體的搬運(yùn)并將不同顏色的物體加以分類(lèi)。通過(guò)無(wú)線(xiàn)通信控制搬運(yùn)過(guò)程。該設(shè)計(jì)是以at89s52為系統(tǒng)核心,結(jié)合trc5000尋跡模塊、nrf905無(wú)線(xiàn)通信模塊和tcs3200顏色傳感器模塊,綜合了運(yùn)用機(jī)器人技術(shù)、現(xiàn)代傳感器技術(shù),自動(dòng)控制技術(shù)。關(guān)鍵詞:無(wú)線(xiàn)搬運(yùn)
6、、機(jī)器人、tcs3200顏色傳感器、nrf905無(wú)線(xiàn)通信模塊1 設(shè)計(jì)任務(wù)與要求設(shè)計(jì)兩個(gè)智能搬運(yùn)機(jī)器人,由兩個(gè)搬運(yùn)機(jī)器人在一類(lèi)似蜘蛛網(wǎng)的循跡圖里交替搜尋物塊,讓機(jī)器人識(shí)別出物塊的顏色,并將物塊搬運(yùn)至對(duì)應(yīng)的物體存放區(qū),如果正在搬運(yùn)物塊的那個(gè)機(jī)器人發(fā)現(xiàn)有另一個(gè)搬運(yùn)機(jī)器人占用了它的行走路線(xiàn),它就會(huì)馬上通知另一個(gè)搬運(yùn)機(jī)器人為它讓路,當(dāng)該機(jī)器人把物體搬運(yùn)到目的地后,它就會(huì)通知另一個(gè)機(jī)器人搜尋物體,如此循環(huán),直到把所有物體搬運(yùn)完。實(shí)物圖如下圖所示: 圖1-1 搬運(yùn)路線(xiàn)圖 圖1-2 機(jī)器人實(shí)物圖2 方案設(shè)計(jì)與論證方案一:通過(guò)51單片機(jī)外接nrf905無(wú)線(xiàn)模塊實(shí)現(xiàn),這種51單片機(jī)非常普遍,主要運(yùn)用于小的系統(tǒng),但
7、是如果要處理比較復(fù)雜的任務(wù)就會(huì)非常吃力,51單片機(jī)是我們學(xué)習(xí)編程入門(mén)很好的工具,操作簡(jiǎn)單方便。方案二:采用cc2510無(wú)線(xiàn)單片機(jī)來(lái)實(shí)現(xiàn)任務(wù),cc2510是一種低成本的無(wú)線(xiàn)soc,也是為低功耗無(wú)線(xiàn)應(yīng)用而設(shè)計(jì)。其工作在2.4ghz頻段,此芯片包含標(biāo)準(zhǔn)的增強(qiáng)型8051mcu和一個(gè)收發(fā)芯片。其通信更是其最大優(yōu)點(diǎn)但本設(shè)計(jì)中沒(méi)有很復(fù)雜的功能要實(shí)現(xiàn),cc2510操作起來(lái)比較難,并且cc2510外接的可控io端口數(shù)量較少,不能滿(mǎn)足我們的設(shè)計(jì)需求。方案論證:通過(guò)以上比較,對(duì)于通過(guò)用51單片機(jī)外接nrf905無(wú)線(xiàn)模塊實(shí)現(xiàn)明顯足以滿(mǎn)足我們的設(shè)計(jì)要求。綜合以上論述,我們選擇方案一。3 硬件單元設(shè)計(jì)3.1 主控制電路以
8、采用plcc封裝at89s52單片機(jī)作為主控制器,at89s52單片機(jī)是靠程序運(yùn)行的,并且可以修改。8051 cpu與mcs-51 兼容,全靜態(tài)工作:0hz-24khz,4k字節(jié)可編程flash存儲(chǔ)器(壽命:1000寫(xiě)/擦循環(huán)),三級(jí)程序存儲(chǔ)器保密鎖定,128*8位內(nèi)部ram,32條可編程i/o線(xiàn),兩個(gè)16位定時(shí)器6個(gè)中斷源,可編程串行通道 ,低功耗的閑置和掉電模式,片內(nèi)振蕩器和時(shí)鐘電路。此控制芯片資源豐富,但價(jià)格比較貴,盡管它可以實(shí)現(xiàn)各種復(fù)雜的邏輯功能,功耗小,在此非常適合,外圍接無(wú)線(xiàn)模塊進(jìn)行控制機(jī)器人的搬運(yùn)。3.2 循跡電路循跡電路如圖所示: 圖3-2-1 尋跡電路圖3-2-2 循跡電路p
9、cb圖我們用的循跡模塊是用貼片元件來(lái)制作,類(lèi)似工業(yè)制板,制作設(shè)備由學(xué)校提供。該制作過(guò)程大大提高了我們的制板技能和焊接技術(shù)。我們用到的紅外傳感器是tcr5000紅外對(duì)管,傳感器的紅外發(fā)射三極管不斷發(fā)射紅外線(xiàn),當(dāng)發(fā)射出的紅外線(xiàn)沒(méi)有被反射回來(lái)或者被反射回來(lái)但強(qiáng)度不夠大時(shí),光敏三極管一直處于關(guān)斷狀態(tài),此時(shí)模塊的輸出端為低電平,指示二極管一直處于熄滅狀態(tài);被監(jiān)測(cè)物體出現(xiàn)在監(jiān)測(cè)范圍內(nèi)時(shí),紅外線(xiàn)被反射回來(lái)且強(qiáng)度足夠大,光敏三極管飽和,此時(shí)模塊的輸出端為高電平,指示二極管被點(diǎn)亮。tcrt5000光電傳感器模塊是基于tcrt5000紅外關(guān)電傳感器設(shè)計(jì)的一款紅外反射式光電開(kāi)關(guān),傳感器采用高發(fā)射功率紅外光電二極管和
10、高靈敏度光晶體管組成,輸出信號(hào)經(jīng)施密特電路整形,穩(wěn)定可靠。3.3 電源模塊電源電路圖如圖3-4-1所示: 圖3-3 電源部分電路圖該穩(wěn)壓電路主要實(shí)現(xiàn)5v(供給控制芯片及其它模塊)、6v(供給舵機(jī))和3.3v(nrf905無(wú)線(xiàn)模塊需要3.3v的電壓)穩(wěn)壓,采用lm7805、lm7806和lm1117芯片作為穩(wěn)壓芯片。這些穩(wěn)壓用的集成電路,只有三條引腳輸出,分別是輸入端、接地端和輸出端。它的樣子象是普通的三極管,to- 220 的標(biāo)準(zhǔn)封裝,也有l(wèi)m9013樣子的to-92封。用7805、7806和1117來(lái)組成穩(wěn)壓電源所需的外圍元件極少,電路內(nèi)部還有過(guò)流、過(guò)熱及調(diào)整管的保護(hù)電路,使用起來(lái)可靠方便,
11、而且價(jià)格便。3.4 at89s52最小系統(tǒng)原理圖 圖3-4 單片機(jī)最小系統(tǒng)3.5 物塊顏色識(shí)別傳感器根據(jù)德國(guó)物理學(xué)家赫姆霍茲的三原色理論可知,各種顏色是由不同比例的三原色(紅、綠、藍(lán))混合而成的。通過(guò)顏色傳感器測(cè)出構(gòu)成各種顏色的三原色的值,就能知道物體的顏色。以前的顏色傳感器通常是在獨(dú)立的光電二極管上覆蓋經(jīng)過(guò)修正的紅、綠、藍(lán)濾波片,然后對(duì)輸出信號(hào)進(jìn)行相應(yīng)的處理,才能將顏色信號(hào)識(shí)別出來(lái);有的將兩者集合起來(lái),但是輸出模擬信號(hào),需要一個(gè)a/d電路進(jìn)行采集,對(duì)該信號(hào)進(jìn)一步處理,才能進(jìn)行識(shí)別,增加了電路的復(fù)雜性,并且存在較大的識(shí)別誤差,影響了識(shí)別的效果。這里我們選擇taos公司推出的可編程彩色光到頻率的
12、轉(zhuǎn)換器tcs3200顏色傳感器來(lái)識(shí)別物塊顏色。它的輸出信號(hào)時(shí)數(shù)字量,因此它能直接與微處理器或邏輯電路相連接,這使得組成電路變得簡(jiǎn)單。它與測(cè)試物體的最佳位置大約為1厘米。tcs3200的引腳圖如下:圖3-5 tcs3200引腳圖3.5 無(wú)線(xiàn)通信模塊方案一:選擇nrf2401無(wú)線(xiàn)模塊。nrf2401內(nèi)置地址解碼器、先進(jìn)先出堆棧區(qū)、調(diào)解處理器、時(shí)鐘處理器、gfsk濾波器、低噪聲放大器、頻率合成器、功能放大器等功能模塊,它具有收發(fā)模式、配置模式、空閑模式和關(guān)機(jī)模式,需要很少的外圍元件,且工作時(shí)能耗低(工作電流僅幾十毫安,待機(jī)模式下電流為十幾微安),內(nèi)部有內(nèi)置天線(xiàn),使用方便。但市場(chǎng)價(jià)格比較貴。方案二:選
13、擇nrf905無(wú)線(xiàn)模塊。nrf905單片無(wú)線(xiàn)收發(fā)器是挪威nordic公司推出的單片射頻發(fā)射芯片,工作于433/868/915mhz個(gè)ism頻道,芯片內(nèi)置頻率合成器、功率放大器、晶體振蕩器和調(diào)制調(diào)解器等功能模塊,它具有多個(gè)通訊頻道,滿(mǎn)足多點(diǎn)通訊、分組跳頻等應(yīng)用需求,通道切換時(shí)間短(小于6us),能進(jìn)入關(guān)機(jī)模式和空閑模式,使用起來(lái)節(jié)能方便,且價(jià)格便宜。綜上所述,根據(jù)本設(shè)計(jì)的需求,nrf905無(wú)線(xiàn)模塊已能滿(mǎn)足我們的設(shè)計(jì)需求。4 安裝與調(diào)試4.1 電路的安裝與調(diào)試做好循跡模塊,并調(diào)好循跡傳感器的靈敏度。在制作模塊的過(guò)程中,焊接貼片元件時(shí)不要出現(xiàn)虛焊、漏焊等,因?yàn)橐坏┏霈F(xiàn)電路出問(wèn)題,虛焊是比較難查找的。
14、還要注意元件的位置要對(duì)應(yīng),極性不要接反。電路板做好后,就可以把循跡模塊安裝在機(jī)器人上了,安裝過(guò)程中要注意傳感器與水平地面的距離(距離一般在1cm左右),連接時(shí)要注意每個(gè)紅外對(duì)管對(duì)應(yīng)輸出接口的位置,以免機(jī)器人運(yùn)行出錯(cuò)。接下來(lái)把其他模塊安裝好。安裝顏色傳感器時(shí),要把它牢牢的固定在它所能檢測(cè)到物體顏色的特定位置(注意:它與檢測(cè)物體的最佳距離大約為1厘米)。4.3 軟件的調(diào)試5 性能測(cè)試與分析5.1 循跡模塊讓機(jī)器人在行走軌跡上運(yùn)行,機(jī)器人反應(yīng)靈敏,能穩(wěn)定的按照特定軌跡行走,這說(shuō)明循跡模塊性能穩(wěn)定。如果出現(xiàn)機(jī)器人跑出軌道的現(xiàn)象,這可能是因?yàn)檠E模塊靈敏度未調(diào)到最佳狀態(tài),也可能是因?yàn)閭鞲衅骶嚯x水平地面過(guò)
15、低或過(guò)高,還可能是因?yàn)樘峁┑碾妷哼^(guò)低等因素造成。5.2 顏色傳感器在調(diào)試程序的過(guò)程中,當(dāng)機(jī)器人接觸到物塊時(shí),機(jī)器人很快就能識(shí)別出物塊顏色,并立即將物塊運(yùn)至物體所屬區(qū)域。5.3 nrf905無(wú)線(xiàn)通信模塊正確將nrf905無(wú)線(xiàn)模塊安裝在機(jī)器人上,下載程序,讓兩個(gè)機(jī)器人進(jìn)行交替搬運(yùn),當(dāng)一個(gè)機(jī)器人搬運(yùn)一個(gè)物塊到達(dá)目的地后,就通知另一個(gè)機(jī)器人去搜尋要搬運(yùn)的物塊,調(diào)試過(guò)程中,機(jī)器人之間通信正常。如果出現(xiàn)通信問(wèn)題,這可能是因?yàn)槭瞻l(fā)頻率或收發(fā)地址不一致造成的。在應(yīng)用過(guò)程中需求注意的問(wèn)題:一定要把接收天線(xiàn)接上,以免通信不穩(wěn)定;提供的電壓不能超過(guò)3.6伏,否則會(huì)燒壞該模塊。 6 結(jié)論與心得通過(guò)我們小組三人的共同努
16、力,制作完成了搬運(yùn)群機(jī)器人,特色鮮明,較好的完成了預(yù)期的目標(biāo)。而且通過(guò)溝通交流討論盡可能的增加了作品設(shè)計(jì)的創(chuàng)新功能,在整個(gè)過(guò)程中,我們?cè)跈C(jī)器人設(shè)計(jì)和程序編寫(xiě)方面獲得了很多經(jīng)驗(yàn),同時(shí)也了解到團(tuán)隊(duì)精神的重要性。通過(guò)備戰(zhàn)這次中國(guó)教育機(jī)器人大賽創(chuàng)意設(shè)計(jì)和制作比賽,極大的鍛煉了我們的動(dòng)手能力,通過(guò)將軟件開(kāi)發(fā),電路設(shè)計(jì),網(wǎng)絡(luò)通信,自動(dòng)化控制,電子技術(shù)等多個(gè)學(xué)科融合在一起,做出令自己滿(mǎn)意的作品,很有成就感,通過(guò)這次活動(dòng),讓我明白不管做什么,只要努力了就會(huì)有收獲。作為一名大學(xué)在校本科生,除了學(xué)習(xí)理論知識(shí)要,還要勤于動(dòng)手實(shí)踐,培養(yǎng)自己的創(chuàng)新能力,動(dòng)手能力,從而提升自己的綜合實(shí)力,為投入社會(huì),為社會(huì)創(chuàng)造價(jià)值做好準(zhǔn)
17、備。7 致謝衷心感謝河池學(xué)院的領(lǐng)導(dǎo)和同學(xué)們,本次參賽是河池學(xué)院派遣學(xué)生參加全國(guó)機(jī)器人大賽,受到了全院領(lǐng)導(dǎo)和同學(xué)們的大力支持,在此一并表示感謝,在今后的日子里,我們會(huì)再接再厲,拿出更好的作品出來(lái)與大家一起分享。衷心感謝我的指導(dǎo)老師,在項(xiàng)目期間,他給予了眾多寶貴的經(jīng)驗(yàn),給我們的研制工作提供了很多硬件設(shè)備和指導(dǎo),在此表示感謝。同時(shí)也感謝辛勤培育我們的老師!提供創(chuàng)新實(shí)驗(yàn)室讓我們學(xué)習(xí),營(yíng)造了溫馨的第二課堂的氛圍。讓我們學(xué)到了知識(shí)能夠飛翔于廣闊的天際。8 參考文獻(xiàn)1康華光,鄒壽彬.電子技術(shù)基礎(chǔ)(數(shù)字部分)m.高等教育出版社,20022童詩(shī)白,華成英.模擬電子技術(shù)基礎(chǔ)m.清華大學(xué)出版社,20063吳線(xiàn).實(shí)戰(zhàn)
18、微功耗simplici ti無(wú)線(xiàn)網(wǎng)絡(luò).出版地:電子產(chǎn)品世界,出版年2009.092011.10.29.9 程序清單9.1無(wú)線(xiàn)通信部分/-#define uint unsigned int #define uchar unsigned charuchar wuxian = 0; / 無(wú)線(xiàn)發(fā)送、接收標(biāo)志位/-led顯示端口- sbit led=p27; uchar wx_jieshou = 0;uchar wx_fasong = 0;/*函數(shù)聲明*/void txpacket(uchar *txrxbuf,uchar n) ;void spiwrite(unsigned char send);vo
19、id nrf905_delay(int n); unsigned char spiread(void);void nrf905init(void);void config905(void);void settxmode(void) ;void txpacket(uchar *txrxbuf,uchar n) ;void rxpacket(void) ;void rx(void) ;void clear(void); /清空接收數(shù)組unsigned char checkdr(void); /檢查是否有新數(shù)據(jù)傳入 data /-#define byte_bit0 0x01#define byte_
20、bit1 0x02#define byte_bit2 0x04 #define byte_bit3 0x08 #define byte_bit4 0x10 #define byte_bit5 0x20 #define byte_bit6 0x40#define byte_bit7 0x80 /-bdata unsigned char data_buf;/可位尋址的片內(nèi)ran #define data7 (data_buf&byte_bit7) != 0) #define data0 (data_buf&byte_bit0) != 0) sbit flag =data_buf7;
21、sbit flag1=data_buf0;/- 發(fā)送數(shù)據(jù)緩沖區(qū)- #define txrxbuf_len 4 unsigned char txrxbuftxrxbuf_len=0x29,0x30,0x31,0x32; code txaddress4=0xcc,0xcc,0xcc,0xcc; unsigned char tf=0; /-nrf905工作模式控制端口- sbit txen=p33;/發(fā)射使能 2 33sbit trx_ce=p34;/發(fā)射接收使能 4 34sbit pwr=p32; / 1 32/-nrf905 數(shù)據(jù)交換端口(spi)- sbit miso=p23;/輸出sbit
22、mosi=p22;/輸入 sbit sck=p21;/時(shí)鐘sbit csn=p20;/使能 /-nrf905狀態(tài)端口- sbit am=p25; sbit dr=p24;sbit cd=p26; /-nrf905控制指令- #define wc 0x00 /寫(xiě)配置寄存?#define rc 0x10 /讀配置寄存?#define wtp 0x20 /向tx-payload寄存器寫(xiě)入發(fā)送有效數(shù)據(jù)#define rtp 0x21 /向tx-payload寄存器讀取發(fā)送有效數(shù)據(jù) #define wta 0x22 /向tx-addtess寄存器寫(xiě)入發(fā)送地址 #define rta 0x23 /向tx-
23、addtess寄存器讀取發(fā)送地址 #define rrp 0x24 /從rx-payload寄存器讀取接收到的有效數(shù)據(jù)/-nrf905寄存器配置- unsigned char idata rfconf11=0x00, /配置命令/0x4c, /ch_no,配置頻段在430mhz字節(jié)0,配置頻段0x0c, /輸出功率為10db,不重發(fā),節(jié)電為正常模式 字節(jié)1,000 11000x44, /地址寬度設(shè)置,為4字節(jié)字節(jié)2,6:4 是tx地址寬度, 2:0是rx地址寬度0x04,0x04, /接收發(fā)送有效數(shù)據(jù)長(zhǎng)度為4字節(jié)字節(jié)3(rx),字節(jié)(tx):可設(shè)置為1,2,4,8,16,32 字節(jié),其中6,7
24、 兩位為空,寫(xiě)00,則4字節(jié)為:0000 0100 : 0x04 依次類(lèi)推0xcc,0xcc,0xcc,0xcc, /接收地址字節(jié)5到字節(jié)8 0x58, /crc充許,8位crc校驗(yàn),外部時(shí)鐘信號(hào)不使能,16m晶振 字節(jié)9,;/=延時(shí)= void nrf905_delay(int n)uchar i;while(n-) for(i=0;i<80;i+); /=spi讀函數(shù)= /步驟一:miso線(xiàn)準(zhǔn)備好需要發(fā)送的數(shù)據(jù)位/步驟二:sck置高,主機(jī)讀取miso線(xiàn)上的數(shù)據(jù) /步驟三:sck置低,準(zhǔn)備接收數(shù)據(jù)的下一位 / 以上步驟循環(huán)執(zhí)行8次,通過(guò)spi從器件上讀取數(shù)據(jù)完成/數(shù)據(jù)傳送時(shí)候。高位在前
25、,低位在后。unsigned char spiread(void) unsigned char j;for (j=0;j<8;j+) data_buf=data_buf<<1; sck=1; if (miso)/讀取最高位,保存至最末尾,通過(guò)左移位完成整個(gè)字節(jié) data_buf|=byte_bit0; else data_buf&=byte_bit0; sck=0; return data_buf; /=spi寫(xiě)函數(shù)= /步驟一:mosi線(xiàn)準(zhǔn)備好需要發(fā)送的數(shù)據(jù)位/步驟二:sck置高,器件讀取mosi線(xiàn)上的數(shù)據(jù)/步驟三:sck置低,準(zhǔn)備發(fā)送數(shù)據(jù)的下一位/以上步驟循環(huán)執(zhí)行
26、8次,通過(guò)spi從器件上發(fā)送數(shù)據(jù)完成/數(shù)據(jù)傳送時(shí)候。低位在前,高位在后。void spiwrite(unsigned char send) unsigned char i; data_buf=send; for (i=0;i<8;i+) if (data7)/總是發(fā)送最高位 mosi=1;/spi輸入,主機(jī)寫(xiě)操作 else mosi=0; sck=1; data_buf=data_buf<<1; sck=0; /-初始化nrf905-void nrf905init(void) csn=1;/ spi disable sck=0;/ spi clock line init lo
27、w dr=1;/ init dr for input am=1;/ init am for inputcd=1;/ init cd for input pwr=1;/ nrf905 power on trx_ce=0;/ set nrf905 in standby mode txen=0;/ set radio in rx mode /-初始化寄存器- /步驟一:csn置低電平,spi接口開(kāi)始等待第一條命令/步驟二:調(diào)用spiwrite函數(shù),向nrf905發(fā)送wc指令,準(zhǔn)備寫(xiě)入配置信息/步驟三:反復(fù)調(diào)用spiwrite函數(shù),向器件配置寄存器寫(xiě)入配置信息 /步驟四:csn置高電平,結(jié)束spi通訊
28、。即nrf905配置完成!void config905(void) uchar i; csn=0;/ csn片選信號(hào),spi使能/spiwrite(wc);/ 向905芯片寫(xiě)配置命令 for (i=0;i<11;i+)/ 循環(huán)寫(xiě)入配置信息 spiwrite(rfconfi); /rxtxconf保存預(yù)先設(shè)置好的配置信息 csn=1;/ 結(jié)束spi數(shù)據(jù)傳輸 /-設(shè)置發(fā)送初始狀態(tài)- void settxmode(void) trx_ce=0; txen=1; nrf905_delay(1); / nrf905_delay for mode change(>=650us) /步驟一:tr
29、x_ce=0;必須將次引腳置低,使905進(jìn)入standby模式 /步驟二:發(fā)送rrp指令 /步驟三:循環(huán)調(diào)用spiwrite函數(shù),讀取接收到的數(shù)據(jù) /步驟四:等待dr和am引腳復(fù)位為低電平 / am 地址匹配,接收到有效地址,被置高 / dr 接收到有效數(shù)據(jù)包,并解碼后,被置高,當(dāng)所有有效數(shù)據(jù)被讀取后,/ nrf905降am和dr置低,最后需要注意的是,必須首先設(shè)置器件的 / 發(fā)送/接收模式才能保證有效的數(shù)據(jù)發(fā)生接收 /-設(shè)置nrf905進(jìn)入接收模式- void setrxmode(void) txen=0; trx_ce=1; nrf905_delay(1); / nrf905_delay
30、for mode change(>=650us) /-發(fā)送數(shù)據(jù)打包-/步驟一:通過(guò)spiwrite函數(shù)發(fā)送wtp命令,準(zhǔn)備寫(xiě)入tx有效數(shù)據(jù) /步驟二:循環(huán)調(diào)用spiwrite向tx-payload寄存器寫(xiě)入有效數(shù)據(jù)(中間必須夾有csn電平變化/步驟三:延時(shí) /步驟四: 通過(guò)spiwrite函數(shù)發(fā)送wta命令,準(zhǔn)備寫(xiě)入tx地址 /步驟五:循環(huán)調(diào)用spiwrite向tx-address寄存器寫(xiě)入tx地址 /步驟六:trc_ce=1;開(kāi)始發(fā)送數(shù)據(jù),延時(shí),nrf905數(shù)據(jù)發(fā)送完成/當(dāng)nrf905接收到一條完成的信息時(shí),會(huì)將dr引腳置高。void txpacket(uchar *txrxbuf,u
31、char n) uchar i;txrxbuf0=n; nrf905init(); /初始化config905(); settxmode();/config905(); csn=0; spiwrite(wtp);/ write payload command for (i=0;i<4;i+) spiwrite(txrxbufi);/ 寫(xiě)入32直接發(fā)送數(shù)據(jù) csn=1; nrf905_delay(1);/ 關(guān)閉spi,保存寫(xiě)入的數(shù)據(jù)csn=0;/ spi使能,保存寫(xiě)入的數(shù)據(jù) spiwrite(wta);/ 寫(xiě)數(shù)據(jù)至地址寄存器for (i=0;i<4;i+)/ 寫(xiě)入四字節(jié)地址 寫(xiě)入與對(duì)
32、方地址一樣的地址 spiwrite(txaddressi); csn=1;/ 關(guān)閉spi trx_ce=1;/ 進(jìn)入發(fā)送模式,啟動(dòng)射頻發(fā)送 nrf905_delay(1);/進(jìn)入shockburst發(fā)送模式后,芯片保存數(shù)據(jù) trx_ce=0;/ 發(fā)送完成后返回atandby模式while (dr!=1);nrf905_delay(10);led=0; nrf905_delay(300);led=1;nrf905_delay(300);/發(fā)送后led閃爍 /-判斷數(shù)據(jù)接收狀態(tài)- unsigned char checkdr(void)/檢查是否有新數(shù)據(jù)傳入 data dr=1; /通過(guò)對(duì)端口寫(xiě)1,
33、可以使端口為輸入狀態(tài),這51的 特性。不熟悉者可以參閱51相關(guān)書(shū)籍作證(將dr端口設(shè)置為輸入狀態(tài)。) if (dr=1) dr=0; return 1; else return 0; /-nrf905接收到數(shù)據(jù)后讀取保存-void rxpacket(void) uchar i; nrf905_delay(1);/trx_ce=0;/ 設(shè)置905進(jìn)入待機(jī)模式 nrf905_delay(100); trx_ce=0; csn=0;/ 使能spi nrf905_delay(1); spiwrite(rrp); /準(zhǔn)備讀取接收到的數(shù)據(jù)for (i = 0 ;i < 4 ;i+) txrxbufi
34、=spiread();/ 通過(guò)spi接口從905芯片讀取數(shù)據(jù) csn=1;/禁用spi nrf905_delay(10); trx_ce=1; /-void clear(void) /清空接收數(shù)組uchar i;for(i=0;i<4;i+)txrxbufi=0; /-數(shù)據(jù)接收- void rx(void) clear(); /清空接收數(shù)組nrf905init(); /初始化config905();tf=0;setrxmode(); / 設(shè)置為接收模式 while (tf=0) if(dr)nrf905_delay(10); rxpacket(); if(txrxbuf1=0x30) s
35、witch (txrxbuf0) case 1: wx_jieshou = 1; break; case 2: wx_jieshou = 2; break; case 3: wx_jieshou = 3; break; led=0;nrf905_delay(300); led=1;nrf905_delay(300);/接收到數(shù)據(jù) 后閃爍 tf=1;dr=0; 9.2 顏色傳感器部分#include <reg52.h> #define uchar unsigned char#define uint unsigned intsbit tcs230_s2=p16;/tcs230 s2接單
36、片機(jī)p1.0sbit tcs230_s3=p17;/tcs230 s3接單片機(jī)p1.1sbit tcs230_en=p30; /tcs230 en(e0)接gnduchar flat2 = 0;/顏色傳感器函數(shù)聲明/*=*/void baipingheng();void celiang();void judge_colour(uint rb1,uint gb1,uint bb1);void delayms(uint ms);/1ms基準(zhǔn)延時(shí)程序void baipingheng();/白平衡子程序void celiang();/實(shí)際顏色程序void delayms(uint ms);uint r
37、yz,gyz,byz;/分別定義紅色因子 綠色因子 藍(lán)色因子uint rb,gb,bb;/rgb值/*=*/*= 白平衡子程序=*/void celiang() /*求r值* th0=(65536-10000)/256; tl0=(65536-10000)%256; th1=0; tl1=0; tcs230_s2=0; tcs230_s3=0;/選擇紅色濾光器 tcs230_en=0; tr0=1;/10毫秒開(kāi)始計(jì)時(shí) tr1=1;/開(kāi)始計(jì)數(shù) while(tf0=0);/等待定時(shí)器溢出 tf0=0;/清楚定時(shí)器0溢出標(biāo)志 tr0=0;/關(guān)閉定時(shí)0 tr1=0; rb=(unsigned long
38、)(th1*256+tl1)*255/ryz; if(rb>255)rb=255;/判斷rgb值是否合法 /*求b值* th0=(65536-10000)/256; tl0=(65536-10000)%256; th1=0; tl1=0; tcs230_s2=0; tcs230_s3=1;/選擇藍(lán)色濾光器 tr0=1;/10毫秒開(kāi)始計(jì)時(shí) tr1=1;/開(kāi)始計(jì)數(shù) while(tf0=0);/等待定時(shí)器溢出 tf0=0;/清楚定時(shí)器0溢出標(biāo)志 tr0=0;/關(guān)閉定時(shí)0 tr1=0; bb=(unsigned long)(th1*256+tl1)*255/byz; if(bb>255)b
39、b=255;/判斷rgb值是否合法 /*求g值* th0=(65536-10000)/256; tl0=(65536-10000)%256; th1=0; tl1=0; tcs230_s2=1; tcs230_s3=1;/選擇綠色濾光器 tr0=1;/10毫秒開(kāi)始計(jì)時(shí) tr1=1;/開(kāi)始計(jì)數(shù) while(tf0=0);/等待定時(shí)器溢出 tf0=0;/清楚定時(shí)器0溢出標(biāo)志 tr0=0;/關(guān)閉定時(shí)0 tr1=0; tcs230_en=1; gb=(unsigned long)(th1*256+tl1)*255/gyz; if(gb>255)gb=255;/判斷rgb值是否合法 /*= 白平衡子程序=*/void baipingheng() /*求取紅色因子* th0=(65536-10000)/256; tl0=(65536-10000)%256; th1=0; tl1=0; tcs230_s2=0; tcs230_s3=0;/選擇紅色濾光器 tcs230_en=0; tr0=1;/10毫秒開(kāi)始計(jì)時(shí) tr1=1;/開(kāi)始計(jì)數(shù) while(tf0=0);/等待定時(shí)器溢出 tf0=0;/清處定時(shí)器0溢出標(biāo)志 tr0=0;/關(guān)閉定時(shí)0 tr1=0; ryz=th1*256+tl1;/其實(shí)這里的比例因子應(yīng)該為2
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版智慧城市建設(shè)項(xiàng)目投資入股協(xié)議書(shū)范本3篇
- 2025年度工錢(qián)墊付與勞動(dòng)保障政策執(zhí)行協(xié)議范本2篇
- 2025版國(guó)際能源合作習(xí)協(xié)議書(shū)3篇
- 2025版小麥種子進(jìn)出口貿(mào)易合同樣本3篇
- 2025年度個(gè)人房屋買(mǎi)賣(mài)綠色環(huán)保協(xié)議3篇
- 2025-2030全球一次性使用2D儲(chǔ)液袋行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)濕式無(wú)線(xiàn)遠(yuǎn)傳智能水表行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2024年秋季江蘇七年級(jí)入學(xué)分班考試語(yǔ)文模擬卷2(解析版)
- 2024年煤礦安全生產(chǎn)知識(shí)競(jìng)賽題庫(kù)及答案(共80題)
- 2025版新能源汽車(chē)租賃與保險(xiǎn)代理服務(wù)合同3篇
- 《汽車(chē)車(chē)身電器維修工作頁(yè)》學(xué)習(xí)任務(wù)3 起動(dòng)機(jī)不工作故障的檢修
- 六年級(jí)上冊(cè)數(shù)學(xué)課件-第五單元 數(shù)據(jù)處理 北師大版
- YY/T 1496-2016紅光治療設(shè)備
- 鄭州小吃詳細(xì)地點(diǎn)
- 上海高考英語(yǔ)詞匯手冊(cè)
- 2021年江蘇省淮安市淮陰中學(xué)高一政治下學(xué)期期末試題含解析
- 2021年道路交通安全法期末考試試題含答案
- 自帶藥物治療告知書(shū)
- 建筑制圖與陰影透視-第3版-課件12
- 2023年最新的校長(zhǎng)給教師春節(jié)祝福語(yǔ)
- 吞咽解剖和生理研究
評(píng)論
0/150
提交評(píng)論