




已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐ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ī)接收到的電平信號處理、分析、計(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è)備。百度百科:/link?url=18s7ZQFh6grF8LDGfd4LtrUdBXv5GWlDKLrNh8CeK1W0ixQpA9f2FGZuf9ZOtKTlDZOhM1m7YsqlHXe_RNzzp_-第一步:把電腦IP改為192.168.1.xxx第二步:把路由網(wǎng)絡(luò)接口和電腦網(wǎng)卡直接用網(wǎng)線相連第三步:打開路由的控制界面,地址默認(rèn)一般是(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); cat
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 邵陽市新邵縣2025屆四下數(shù)學(xué)期末檢測模擬試題含解析
- 房產(chǎn)最高額擔(dān)保合同
- 寬城滿族自治縣2025年數(shù)學(xué)五年級第二學(xué)期期末綜合測試模擬試題含答案
- 2025年度企業(yè)單位借款合同范例
- 山東省棗莊市滕州市2024-2025學(xué)年高二下學(xué)期第一次檢測歷史試卷(含答案)
- 餐飲服務(wù)外包合同范本多條款
- 科研儀器設(shè)備采購合同
- 物資供應(yīng)合同
- 傣族民間舞的風(fēng)格特點(diǎn)
- 三年級上冊4、水生植物教案
- 銷售立項(xiàng)申請表
- YC/T 322-2018片煙氣調(diào)貯存養(yǎng)護(hù)技術(shù)規(guī)范
- 邁瑞麻醉機(jī)介紹精品課件
- GB/T 20441.4-2006測量傳聲器第4部分:工作標(biāo)準(zhǔn)傳聲器規(guī)范
- GB 25535-2010食品安全國家標(biāo)準(zhǔn)食品添加劑結(jié)冷膠
- GA/T 966-2011物證的封裝要求
- 全套課件公共部門人力資源管理
- 雙心治療課件
- 廣東省肇慶市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 緩和醫(yī)療精品課件
- 兒童功能性獨(dú)立評定量表(WeeFIM)
評論
0/150
提交評論