基于51單片機(jī)WiFi智能小車制作.doc
《基于51單片機(jī)WiFi智能小車制作.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于51單片機(jī)WiFi智能小車制作.doc(20頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
基于51單片機(jī)WiFi智能小車制作 一、基本原理 51單片機(jī)WiFi智能小車是利用PC或手機(jī)作為控制端,通過(guò)手機(jī)連接wifi模塊(路由器)以獲得wifi信號(hào),同時(shí)車載也連接wifi模塊以獲得和手機(jī)相同的IP地址,實(shí)現(xiàn)手機(jī)和小車的連接,然后利用PC或手機(jī)上的控制軟件以wifi網(wǎng)絡(luò)信號(hào)為載體發(fā)送相關(guān)信號(hào),wifi模塊接收PC或手機(jī)端發(fā)送來(lái)的相關(guān)信號(hào)并分析轉(zhuǎn)換成TTL電平信號(hào),然后發(fā)送給單片機(jī),單片機(jī)接收到的電平信號(hào)處理、分析、計(jì)算,轉(zhuǎn)化成控制指令并發(fā)送給電機(jī)驅(qū)動(dòng)模塊以實(shí)現(xiàn)小車的前進(jìn)、后退、左拐、右拐等功能。 二、購(gòu)買所需材料 了解51單片機(jī)WiFi智能小車基本原理后,需要購(gòu)買所需材料進(jìn)行制作。下面列出所需制作材料: 序號(hào) 材料 備注 圖例 1 51單片機(jī)最小系統(tǒng) 一般采用11.0592M晶振 2 51單片機(jī) 3 703n路由器 DB120或WiFi模塊 4 L298n電機(jī)驅(qū)動(dòng)模塊 有動(dòng)手能力的可以自己做 5 減速電機(jī)及輪子一套 6 小車底盤 7 攝像頭 根據(jù)固件支持?jǐn)z像頭購(gòu)買 8 電源 根據(jù)自己需要購(gòu)買種類 9 杜邦線及小配件 制作所需工具: 序號(hào) 工具名稱 備注 圖例 1 電烙鐵一套 包括松香焊錫 2 螺絲刀 平口、十字等 3 微型電鉆 可以自制 4 手工刀 5 剪刀 6 萬(wàn)用表 7 熱熔膠槍或快干膠 8 USB下載器 三、開始制作 1、制作流程 開始制作前,我們首先需要看購(gòu)買路由器的型號(hào),筆者采用的是703n路由器,所以需要引出ttl線。 總體步驟為:路由器引TTL線→路由器刷OpenWrt固件→制作51單片機(jī)最小系統(tǒng)→下載下位機(jī)程序到51單片機(jī)→安裝上位機(jī)程序至PC或手機(jī)→測(cè)試上、下位機(jī)通信→組裝→調(diào)試完成。 2、路由器引ttl線 首先打開703n路由器,按照下圖標(biāo)示位置焊接ttl線。 注意:1、焊接的時(shí)候要小心焊接,焊好后微拉下查看松緊 2、焊接最好采用軟線焊接,防止意外整塊拉掉焊點(diǎn) 3、焊好后一定用膠固定,最好采用熱熔膠 下圖為引好ttl線樣子 3 刷OpenWrt固件 何為OpenWrt固件,OpenWrt可以被描述為一個(gè)嵌入式的 Linux 發(fā)行版,(主流路由器固件有 dd-wrt,tomato,openwrt三類)而不是試圖建立一個(gè)單一的,靜態(tài)的系統(tǒng)。OpenWrt的包管理提供了一個(gè)完全可寫的文件系統(tǒng),從應(yīng)用程序供應(yīng)商提供的選擇和配置,并允許您自定義的設(shè)備,以適應(yīng)任何應(yīng)用程序。 對(duì)于開發(fā)人員,OpenWrt 是使用框架來(lái)構(gòu)建應(yīng)用程序,而無(wú)需建立一個(gè)完整的固件來(lái)支持;對(duì)于用戶來(lái)說(shuō),這意味著其擁有完全定制的能力,可以用前所未有的方式使用該設(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,自己修改過(guò)的用自己修改后的地址 第四步:進(jìn)入路由的控制界面,點(diǎn)“系統(tǒng)工具”>>“軟件升級(jí)”>>“瀏覽”,選擇下載的固件文件 第五步:點(diǎn)擊升級(jí),耐心等待。升級(jí)成功后只能用無(wú)線和路由器連接。 到此,路由器刷固件完成。 4 51單片機(jī)最小系統(tǒng)制作 該步驟就不多說(shuō)了,一般在網(wǎng)上買單片機(jī)最小系統(tǒng),買回來(lái)直接安裝單片機(jī)上去就可以了。不過(guò)有興趣的朋友可以買些散件自己焊接。 5 下載下位機(jī)到單片機(jī) 把編寫好的下位機(jī)程序下載到單片機(jī),下圖為usb-ttl與單片機(jī)鏈接示意圖。 6安裝上位機(jī)程序至PC或手機(jī) 下載上位機(jī)程序到電腦端或者手機(jī)上,進(jìn)行安裝。 7 測(cè)試上、下位機(jī)通信 測(cè)試上、下位機(jī)通信首先需要把路由器、單片機(jī)最小系統(tǒng)、電機(jī)驅(qū)動(dòng)模塊、減速電機(jī)連接起來(lái),上電測(cè)試。 具體接法見(jiàn)下圖: 注意:該圖從網(wǎng)上下載,最終接法按照各位買的模塊說(shuō)明書進(jìn)行接線,不過(guò)接線方法都是大同小異??刂茊卧B接需要根據(jù)下位機(jī)程序連接in1~4. 路由器與單片機(jī)連接按照下圖標(biāo)示的接口,GND連GND、TX連RX、RX連TX。 連接好各自的線路后(有攝像頭的可以插上攝像頭),最后給單片機(jī)、電機(jī)驅(qū)動(dòng)板、路由器上電,等待路由器啟動(dòng)完成。在電腦無(wú)線網(wǎng)絡(luò)里尋找WifRobot的昵稱連接上。 打開上位機(jī)軟件,按如下設(shè)置: 確定后重啟上位機(jī)程序,查看攝像頭圖像是否正常,分別按下wasd看是否能驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)。 7 組裝WiFi小車 到這一步基本沒(méi)什么問(wèn)題了,接下來(lái)就按照自己的嗜好組裝自己心愛(ài)的小車了。 8 調(diào)試 車子安裝好了以后就可以試車了,前后左右功能是否正常?攝像頭功能是否正常?前進(jìn)與后退有沒(méi)有偏向? 上位機(jī)程序 private void ReadFromArm() { byte[] buffertocheck = new byte[1]; int bytesize = 0; do { byte[] bufferofread = new byte[1024]; 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 byte[buffertochecktemp.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 byte[index_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 (bufferofdecode[0] == bufferofdecode.Length && CheckSum(bufferofdecode))//保證從ARM來(lái)的幀是正確的 { byte[] Zuohao = new byte[2]; int subindex = 1, index = bufferofdecode[1]*256+bufferofdecode[2]-1; string status=null; switch (bufferofdecode[3])//分別處理從ARM來(lái)的幀 { case POWER_ON://從ARM來(lái)的上電狀態(tài) status = "上電"; subindex = 1; break; case POWER_OFF://從ARM來(lái)的斷電狀態(tài) status = "斷電"; subindex = 1; break; case ABNORMAL://從ARM來(lái)的異常狀態(tài) status = "異常"; subindex = 1; break; case WARNING://從ARM來(lái)的警告信號(hào) status = "有"; subindex = 2; break; case NEED_HELP://從ARM來(lái)的求救信號(hào) status = "有"; subindex = 3; break; } if (0 <= index && index <= 49) { listView1.Items[index].SubItems[subindex].Text = status; if (status == "異常" || status == "有") listView1.Items[index].SubItems[subindex].ForeColor = Color.Red; else listView1.Items[index].SubItems[subindex].ForeColor = Color.Black; } } int newlength = buffertocheck.Length - 1 - index_2; if (newlength == 0) { buffertocheck = new byte[1]; } else { buffertochecktemp = buffertocheck; buffertocheck = new byte[newlength]; Array.Copy(buffertochecktemp, index_2 + 1, buffertocheck, 0, newlength); } } } while (connection == Indicator.Connected); } ///- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 51 單片機(jī) WiFi 智能 小車 制作
鏈接地址:http://www.3dchina-expo.com/p-6704369.html