基于51單片機(jī)WiFi智能小車制作.doc
《基于51單片機(jī)WiFi智能小車制作.doc》由會員分享,可在線閱讀,更多相關(guān)《基于51單片機(jī)WiFi智能小車制作.doc(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。
基于51單片機(jī)WiFi智能小車制作一、基本原理51單片機(jī)WiFi智能小車是利用PC或手機(jī)作為控制端,通過手機(jī)連接wifi模塊(路由器)以獲得wifi信號,同時車載也連接wifi模塊以獲得和手機(jī)相同的IP地址,實(shí)現(xiàn)手機(jī)和小車的連接,然后利用PC或手機(jī)上的控制軟件以wifi網(wǎng)絡(luò)信號為載體發(fā)送相關(guān)信號,wifi模塊接收PC或手機(jī)端發(fā)送來的相關(guān)信號并分析轉(zhuǎn)換成TTL電平信號,然后發(fā)送給單片機(jī),單片機(jī)接收到的電平信號處理、分析、計算,轉(zhuǎn)化成控制指令并發(fā)送給電機(jī)驅(qū)動模塊以實(shí)現(xiàn)小車的前進(jìn)、后退、左拐、右拐等功能。二、購買所需材料了解51單片機(jī)WiFi智能小車基本原理后,需要購買所需材料進(jìn)行制作。下面列出所需制作材料:序號材料備注圖例151單片機(jī)最小系統(tǒng)一般采用11.0592M晶振251單片機(jī)3703n路由器DB120或WiFi模塊4L298n電機(jī)驅(qū)動模塊有動手能力的可以自己做5減速電機(jī)及輪子一套6小車底盤7攝像頭根據(jù)固件支持?jǐn)z像頭購買8電源根據(jù)自己需要購買種類9杜邦線及小配件制作所需工具:序號工具名稱備注圖例1電烙鐵一套包括松香焊錫2螺絲刀平口、十字等3微型電鉆可以自制4手工刀5剪刀6萬用表7熱熔膠槍或快干膠8USB下載器三、開始制作1、制作流程開始制作前,我們首先需要看購買路由器的型號,筆者采用的是703n路由器,所以需要引出ttl線??傮w步驟為:路由器引TTL線路由器刷OpenWrt固件制作51單片機(jī)最小系統(tǒng)下載下位機(jī)程序到51單片機(jī)安裝上位機(jī)程序至PC或手機(jī)測試上、下位機(jī)通信組裝調(diào)試完成。2、路由器引ttl線首先打開703n路由器,按照下圖標(biāo)示位置焊接ttl線。注意:1、焊接的時候要小心焊接,焊好后微拉下查看松緊2、焊接最好采用軟線焊接,防止意外整塊拉掉焊點(diǎn)3、焊好后一定用膠固定,最好采用熱熔膠下圖為引好ttl線樣子3 刷OpenWrt固件何為OpenWrt固件,OpenWrt可以被描述為一個嵌入式的 Linux 發(fā)行版,(主流路由器固件有 dd-wrt,tomato,openwrt三類)而不是試圖建立一個單一的,靜態(tài)的系統(tǒng)。OpenWrt的包管理提供了一個完全可寫的文件系統(tǒng),從應(yīng)用程序供應(yīng)商提供的選擇和配置,并允許您自定義的設(shè)備,以適應(yīng)任何應(yīng)用程序。對于開發(fā)人員,OpenWrt 是使用框架來構(gòu)建應(yīng)用程序,而無需建立一個完整的固件來支持;對于用戶來說,這意味著其擁有完全定制的能力,可以用前所未有的方式使用該設(shè)備。百度百科:http:/baike.baidu.com/link?url=18s7ZQFh6grF8LDGfd4LtrUdBXv5GWlDKLrNh8CeK1W0ixQpA9f2FGZuf9ZOtKTlDZOhM1m7YsqlHXe_RNzzp_-第一步:把電腦IP改為192.168.1.xxx第二步:把路由網(wǎng)絡(luò)接口和電腦網(wǎng)卡直接用網(wǎng)線相連第三步:打開路由的控制界面,地址默認(rèn)一般是192.168.1.1(FAST和TP的一樣),用戶名密碼均為admin,自己修改過的用自己修改后的地址第四步:進(jìn)入路由的控制界面,點(diǎn)“系統(tǒng)工具”“軟件升級”“瀏覽”,選擇下載的固件文件第五步:點(diǎn)擊升級,耐心等待。升級成功后只能用無線和路由器連接。到此,路由器刷固件完成。4 51單片機(jī)最小系統(tǒng)制作該步驟就不多說了,一般在網(wǎng)上買單片機(jī)最小系統(tǒng),買回來直接安裝單片機(jī)上去就可以了。不過有興趣的朋友可以買些散件自己焊接。5 下載下位機(jī)到單片機(jī)把編寫好的下位機(jī)程序下載到單片機(jī),下圖為usb-ttl與單片機(jī)鏈接示意圖。6安裝上位機(jī)程序至PC或手機(jī)下載上位機(jī)程序到電腦端或者手機(jī)上,進(jìn)行安裝。7 測試上、下位機(jī)通信測試上、下位機(jī)通信首先需要把路由器、單片機(jī)最小系統(tǒng)、電機(jī)驅(qū)動模塊、減速電機(jī)連接起來,上電測試。具體接法見下圖:注意:該圖從網(wǎng)上下載,最終接法按照各位買的模塊說明書進(jìn)行接線,不過接線方法都是大同小異??刂茊卧B接需要根據(jù)下位機(jī)程序連接in14.路由器與單片機(jī)連接按照下圖標(biāo)示的接口,GND連GND、TX連RX、RX連TX。連接好各自的線路后(有攝像頭的可以插上攝像頭),最后給單片機(jī)、電機(jī)驅(qū)動板、路由器上電,等待路由器啟動完成。在電腦無線網(wǎng)絡(luò)里尋找WifRobot的昵稱連接上。打開上位機(jī)軟件,按如下設(shè)置:確定后重啟上位機(jī)程序,查看攝像頭圖像是否正常,分別按下wasd看是否能驅(qū)動電機(jī)轉(zhuǎn)動。7 組裝WiFi小車到這一步基本沒什么問題了,接下來就按照自己的嗜好組裝自己心愛的小車了。8 調(diào)試車子安裝好了以后就可以試車了,前后左右功能是否正常?攝像頭功能是否正常?前進(jìn)與后退有沒有偏向?上位機(jī)程序private void ReadFromArm() byte buffertocheck = new byte1; int bytesize = 0; do byte bufferofread = new byte1024; try bytesize = stream.Read(bufferofread, 0, bufferofread.Length); catch (Exception ex) connection = Indicator.Unconnected; MessageBox.Show(連接中斷,程序?qū)⑼顺觥?; Application.Exit(); read.Abort(); /MessageBox.Show(BitConverter.ToString(bufferofread); byte buffertochecktemp = buffertocheck; buffertocheck = new bytebuffertochecktemp.Length + bytesize; Array.Copy(buffertochecktemp, 0, buffertocheck, 0, buffertochecktemp.Length); Array.Copy(bufferofread, 0, buffertocheck, buffertochecktemp.Length, bytesize); int index_1, index_2; while (Check7E(buffertocheck, out index_1, out index_2) byte buffertodecode = new byteindex_2 + 1 - index_1; Array.Copy(buffertocheck, index_1, buffertodecode, 0, index_2 + 1 - index_1); byte bufferofdecode = PPP.Decode(buffertodecode); /MessageBox.Show(BitConverter.ToString(bufferofdecode); if (bufferofdecode0 = bufferofdecode.Length & CheckSum(bufferofdecode)/保證從ARM來的幀是正確的 byte Zuohao = new byte2; int subindex = 1, index = bufferofdecode1*256+bufferofdecode2-1; string status=null; switch (bufferofdecode3)/分別處理從ARM來的幀 case POWER_ON:/從ARM來的上電狀態(tài) status = 上電; subindex = 1; break; case POWER_OFF:/從ARM來的斷電狀態(tài) status = 斷電; subindex = 1; break; case ABNORMAL:/從ARM來的異常狀態(tài) status = 異常; subindex = 1; break; case WARNING:/從ARM來的警告信號 status = 有; subindex = 2; break; case NEED_HELP:/從ARM來的求救信號 status = 有; subindex = 3; break; if (0 = index & index = 49) listView1.Itemsindex.SubItemssubindex.Text = status; if (status = 異常 | status = 有) listView1.Itemsindex.SubItemssubindex.ForeColor = Color.Red; else listView1.Itemsindex.SubItemssubindex.ForeColor = Color.Black; int newlength = buffertocheck.Length - 1 - index_2; if (newlength = 0) buffertocheck = new byte1; else buffertochecktemp = buffertocheck; buffertocheck = new bytenewlength; Array.Copy(buffertochecktemp, index_2 + 1, buffertocheck, 0, newlength); while (connection = Indicator.Connected); / / 向ARM發(fā)送 / / 座號 2字節(jié) / 命令字 1字節(jié) public void WriteToArm(byte Zuohao, byte mingling) if (connection = Indicator.Connected)/在與ARM保持連接的情況下可寫 byte frame = new byte5; frame0 = 0x05; Array.Copy(Zuohao, 0, frame, 1, 2); frame3 = mingling; byte temp = 0; foreach (byte item in frame) temp += item; frame4 = (byte)(0 - temp); byte frametosend = PPP.Encode(frame); Console.WriteLine(BitConverter.ToString(frametosend); try stream.Write(frametosend, 0, frametosend.Length); catch (Exception ex) / / 向ARM發(fā)送 / / 座號 2字節(jié) / 命令字加ASC碼 n字節(jié) public void WriteToArm(byte Zuohao, byte minglingandASC) if (connection = Indicator.Connected)/在與ARM保持連接的情況下可寫 byte frame = new byte4+minglingandASC.Length; frame0 = (byte)frame.Length; Array.Copy(Zuohao, 0, frame, 1, 2); Array.Copy(minglingandASC,0,frame,3,minglingandASC.Length); byte temp = 0; foreach (byte item in frame) temp += item; frameframe.Length-1 = (byte)(0 - temp); byte frametosend = PPP.Encode(frame); Console.WriteLine(BitConverter.ToString(frametosend); try stream.Write(frametosend, 0, frametosend.Length); catch (Exception ex) 另外數(shù)據(jù)收發(fā)還需要協(xié)議,和嵌入式網(wǎng)關(guān)通信的指令和協(xié)議定制如下:因此數(shù)據(jù)量較少,協(xié)議也就比較簡單,此協(xié)議在發(fā)送接收時用PPP封裝。顯示部分使用C#編寫的運(yùn)行于Windows .Net Framework 上的窗體應(yīng)用程序,根據(jù)實(shí)際需求,對每個實(shí)驗(yàn)臺狀態(tài)的顯示使用ListView控件實(shí)現(xiàn),當(dāng)出現(xiàn)異常情況,或?qū)嶒?yàn)臺出現(xiàn)警告、求助信號時,ListView的相應(yīng)字段文字會通過改變顏色來提醒監(jiān)視人員,監(jiān)視人員還可以通過一個文字發(fā)送窗體來向LED屏發(fā)送要顯示的文字??傊缑媲逦庇^,簡便易用。- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 51 單片機(jī) WiFi 智能 小車 制作
鏈接地址:http://m.appdesigncorp.com/p-6704369.html