




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于Arduino開(kāi)源平臺(tái)的wifi視頻監(jiān)控小車(chē)這個(gè)創(chuàng)意是個(gè)舶來(lái)品。記得有個(gè)國(guó)外作者做了一個(gè)基于Arduino和wifi路由器的智能機(jī)器人。要求有攝像頭,能夠拍攝小車(chē)經(jīng)過(guò)地方的影像。要求使用Arduino模塊實(shí)現(xiàn)控制。要求使用PC通過(guò)路由器控制小車(chē)。實(shí)現(xiàn)這樣的機(jī)器人很難嗎?能不能做一個(gè)簡(jiǎn)化版的?組件列表A4WD小車(chē);ROMEO控制板;5節(jié)2300MAH電池;12V電池包;充電器;上海貝爾 RG-100A路由器;中星微301攝像頭 ;兩自由度DF15MG云臺(tái)。圖1 基于Arduino開(kāi)源平臺(tái)的WiFi視頻監(jiān)控小車(chē)圖2 Arduino_romeo主控板圖3 小車(chē)圖4 云臺(tái)和攝像頭圖5 攝像頭源代碼
2、- 基于Arduino開(kāi)源平臺(tái)的wifi視頻監(jiān)控小車(chē)2012年06月25日 12:04來(lái)源:互聯(lián)網(wǎng)作者:秩名我要評(píng)論(0)源代碼下面放出ROMEO板的源程序?qū)⑦@個(gè)程序使用Arduino 0022 下載進(jìn)去:#include/舵機(jī)控制庫(kù)/電機(jī)控制端口設(shè)置#define EN1 5/控制左側(cè)電機(jī)速度#define EN2 6/控制右側(cè)電機(jī)速度#define IN1 4/控制左側(cè)電機(jī)方向#define IN2 7/控制右側(cè)電機(jī)方向#define FORW 0/前進(jìn)#define BACK 1/后退#define dataLenMax 16 /設(shè)置最大數(shù)據(jù)幀長(zhǎng)度 不大于16Servo servoX;
3、/云臺(tái)X軸舵機(jī) 左右Servo servoY; /云臺(tái)Y軸舵機(jī) 上下/控制電機(jī)轉(zhuǎn)動(dòng)子函數(shù)void Motor_Control(int M1_DIR,int M1_EN,int M2_DIR,int M2_EN)/M1/if(M1_DIR=FORW)/M1電機(jī)的方向digitalWrite(IN1,LOW); /置高,設(shè)置方向向前elsedigitalWrite(IN1,HIGH);/置低,設(shè)置方向向后if(M1_EN=0)/M1電機(jī)的速度analogWrite(EN1,LOW);/置低,停止elseanalogWrite(EN1,M1_EN);/否則,就設(shè)置相應(yīng)的數(shù)值/M2/if(M2_DIR
4、=FORW)/M2電機(jī)的方向digitalWrite(IN2,LOW);/置高,方向向前elsedigitalWrite(IN2,HIGH);/置低,方向向后if(M2_EN=0)/M2電機(jī)的速度analogWrite(EN2,LOW);/置低,停止elseanalogWrite(EN2,M2_EN);/否則,就設(shè)置相應(yīng)的數(shù)值void setup()int i;for(i=4;i=7;i+)/設(shè)置控制電機(jī)的各端口為輸出模式pinMode(i, OUTPUT);Serial.begin(19200);/設(shè)置波特率為19200bpsservoX.attach(10);servoY.attach(1
5、1);/UART通訊命令字宏定義/#define UART_START0 0X55 /通訊數(shù)據(jù)幀頭#define UART_START1 0XAA /通訊數(shù)據(jù)幀頭#define UART_END 0X0A /返回?cái)?shù)據(jù)包結(jié)束標(biāo)志/ 命令字定義/ 波特率 57600BPS,無(wú)奇偶效驗(yàn),一位停止位。文中的數(shù)字都是8位的十六進(jìn)制數(shù) /2路舵機(jī)控制/本指令可同時(shí)控制6路舵機(jī),每路可單獨(dú)控制位置和速度。/字頭 楨長(zhǎng)度 命令字 S1位置 S1速度 S2位置 S2速度 校驗(yàn)和/55 aa 4 01/S1位置,s2位置為2個(gè)舵機(jī)的角度值,范圍為0180,90為中位。/S1速度,s2速度為運(yùn)動(dòng)的速度值,spd越高
6、,運(yùn)動(dòng)速度越快,范圍為00xff。/返回值:/字頭 楨長(zhǎng)度 命令字 應(yīng)答標(biāo)志 校驗(yàn)和/55 aa 01 01 S SUM/返回操作標(biāo)志。設(shè)置成功S返回0X01,失敗無(wú)返回。/#define RC_MOTO_SET 0X01 / 2路舵機(jī)控制/2路電機(jī)調(diào)速控制/本指令可同時(shí)控制2路直流電機(jī)速度。(機(jī)器人頭超前方,人面對(duì)機(jī)器人后方)/字頭 楨長(zhǎng)度 命令字 左電機(jī) 右電機(jī) 校驗(yàn)和/55 aa 2 02 S1 S2 SUM/S1,S2分別代表2個(gè)電機(jī)的PWM輸出占空比。0x80代表電機(jī)停止,0x00代表正轉(zhuǎn)最大速度(100%占空比,機(jī)器人向前),0xff代表反轉(zhuǎn)最大速度(100%占空比機(jī)器人向后)。/
7、返回值:/字頭 楨長(zhǎng)度 命令字 應(yīng)答標(biāo)志 校驗(yàn)和/55 aa 01 02 S SUM/返回操作標(biāo)志。設(shè)置成功S返回0X01,失敗無(wú)返回。/#define MOTO_SET 0X02 /2路電機(jī)調(diào)速控制void loop()/定義變量int dataLen = 0; /數(shù)據(jù)長(zhǎng)度int start_flag = 0; /數(shù)據(jù)幀起始標(biāo)志int data_index = 0; /數(shù)據(jù)幀索引int com_index = 0; /命令索引int temp_char1 = 0; /接收暫存器1int temp_char0 = 0; /接收暫存器1int i,x,y; /變量int state = 0; /
8、接收數(shù)據(jù)幀狀態(tài) 1代表有數(shù)據(jù)幀,0代表沒(méi)有接收到數(shù)據(jù)幀int SUM; /校驗(yàn)和int RxData32; /數(shù)據(jù)存儲(chǔ)寄存器int Serial_flag;int Moto1S,Moto2S; /電機(jī)1.2 速度控制暫存int Moto1D,Moto2D; /電機(jī)1.2 方向控制暫存while(1)temp_char1 = Serial.read(); /讀取串口數(shù)據(jù)if(temp_char1!=-1) /有數(shù)據(jù)接收到Serial_flag=1;if(start_flag = 0) / 判斷 是否有 0X55 0XAA 數(shù)據(jù)幀頭if( temp_char1 = UART_START1)if(t
9、emp_char0 = UART_START0)start_flag = 1;RxData0=UART_START0;RxData1=UART_START1;data_index = 0;com_index = 0;else temp_char0 = temp_char1;else if( com_index 2)switch(com_index)case 0 : RxData2 = temp_char1; /數(shù)據(jù)長(zhǎng)度dataLen = temp_char1;break;case 1 : RxData3 = temp_char1; /命令字break;com_index+;else if(da
10、ta_index dataLen) & (dataLen =150) x=150;else if(RxData 4=150) y=150;else if(RxData6=30) y=30;else y = RxData6;servoX.write(x);servoY.write(y);state = 0;else if(RxData3 = MOTO_SET) /電機(jī)控制命令/電機(jī)1控制量變換/if(RxData4 = 0X80) Moto1S = 0;else if(RxData4 0X80) /小于0X80的控制數(shù)據(jù) 代表正轉(zhuǎn)Moto1D = FORW; /正轉(zhuǎn)Moto1S = 0xff -
11、 RxData4*2; /將0X00最大速度 到0X7F 最小速度,轉(zhuǎn)換為0最小到255最大速度的值else /大于0X80的控制數(shù)據(jù) 代表反轉(zhuǎn)Moto1D = BACK; /反轉(zhuǎn)Moto1S = (RxData4 - 0X80)*2; /將0XFF最大速度 到0X81 最小速度,轉(zhuǎn)換為0最小到254最大速度的值/電機(jī)2控制量變換/if(RxData5 = 0X80) Moto2S = 0;else if(RxData5 0X80) /小于0X80的控制數(shù)據(jù) 代表正轉(zhuǎn)Moto2D = FORW; /正轉(zhuǎn)Moto2S = 0xff - RxData5*2; /將0X00最大速度 到0X7F 最小
12、速度,轉(zhuǎn)換為0最小到255最大速度的值else /大于0X80的控制數(shù)據(jù) 代表反轉(zhuǎn)Moto2D = BACK; /反轉(zhuǎn)Moto2S = (RxData5 - 0X80)*2; /將0XFF最大速度 到0X81 最小速度,轉(zhuǎn)換為0最小到254最大速度的值Motor_Control(Moto1D,Moto1S,Moto2D,Moto2S);/電機(jī)速度及其方向控制state = 0;程序使用了一種幀結(jié)構(gòu) 每個(gè)數(shù)據(jù)命令都是 55 AA開(kāi)頭,最后一個(gè)字節(jié)有一個(gè)簡(jiǎn)單的校驗(yàn)和。這樣是為了防止路由器發(fā)出錯(cuò)誤數(shù)據(jù)干擾小車(chē)。因?yàn)閾?jù)我觀察,路由器在啟動(dòng)的時(shí)候會(huì)發(fā)出一大堆字符。如果協(xié)議太簡(jiǎn)單小車(chē)可能會(huì)讀取到錯(cuò)誤數(shù)據(jù)亂
13、動(dòng)作。程序做了小車(chē)速度控制,及其兩個(gè)云臺(tái)舵機(jī)控制在里面。云臺(tái)X軸舵機(jī)接數(shù)字10口,Y軸舵機(jī)接11口。其他功能可以在上面增加。此時(shí)下載好程序后可以通過(guò) JoystickInterface 這個(gè)軟件用USB線連接測(cè)試一下小車(chē)是否能夠可靠運(yùn)行。如果USB線能控制,將路由器的串口線接在ROMEO的串口,對(duì)應(yīng)關(guān)系為 路由器G接ROMEO板GND,T接RX,R接TX。注意接線最好都斷電操作。修改控制按鍵鍵值,下面是一些控制代碼,將鍵抬起設(shè)置為停止這樣就可以在無(wú)按鍵的時(shí)候小車(chē)自動(dòng)停止。停止 55AA0202808003100% 速度前進(jìn) 55AA0202000003100% 速度后退 55AA0202FFF
14、F01100% 速度左轉(zhuǎn) 55AA0202FF0002100% 速度右轉(zhuǎn) 55AA020200FF02直至Wifi監(jiān)控小車(chē)就算基本功能實(shí)現(xiàn)完畢。后面還有很多功能可以試試,比如通過(guò)以太網(wǎng)遠(yuǎn)程遙控。加一些傳感器,車(chē)燈什么的。可以發(fā)揮的空間很大。相關(guān)問(wèn)題Q:什么是Wifi Robot無(wú)線遠(yuǎn)程智能遙控小車(chē)?A:Wifi Robot無(wú)線遠(yuǎn)程智能遙控小車(chē)就是利用非常成熟的WIFI無(wú)線網(wǎng)絡(luò)為數(shù)據(jù)載體,實(shí)現(xiàn)控制數(shù)據(jù),音視頻雙向數(shù)據(jù)交換而達(dá)到控制小車(chē)和視頻監(jiān)控等等功能。Q:Wifi Robot無(wú)線遠(yuǎn)程智能遙控小車(chē)有什么功能?A:Wifi Robot無(wú)線遠(yuǎn)程智能遙控小車(chē)是集無(wú)線通訊、實(shí)時(shí)四驅(qū)、多向機(jī)械云臺(tái)、視頻監(jiān)控、電器紅外遙控、環(huán)境溫度檢測(cè)、為一體的多功能智能遙控車(chē)。Q:Wifi Robot無(wú)線遠(yuǎn)程智能遙控小車(chē)用在什么地方?A:Wifi Robot無(wú)線遠(yuǎn)程智能遙控小車(chē)可以放在公司作為產(chǎn)品演
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘭州交通大學(xué)《JavaWeb框架應(yīng)用開(kāi)發(fā)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 病毒與木馬的認(rèn)知與防護(hù)-教案8
- 新能源汽車(chē)維護(hù)與故障診斷(微課版)課件 項(xiàng)目4 任務(wù)4.1.1VCU與其他高壓控制系統(tǒng)無(wú)法通信故障診斷與排除-任務(wù)4.5.2制動(dòng)開(kāi)關(guān)信號(hào)丟失引發(fā)高壓不上電故障診斷與排除
- 勞務(wù)合同畜牧合同樣本
- 2025屆山東省濟(jì)寧市鄒城一中高考英語(yǔ)押題試卷含答案
- 2025屆新疆兵團(tuán)農(nóng)二師華山中學(xué)高考英語(yǔ)考前最后一卷預(yù)測(cè)卷含解析
- 大數(shù)據(jù)存儲(chǔ)在智能安防中的應(yīng)用報(bào)告
- 2025年游戲化教學(xué)在音樂(lè)節(jié)奏教學(xué)中的實(shí)踐探索報(bào)告
- 新能源微電網(wǎng)在智能交通系統(tǒng)中的穩(wěn)定性控制與能源管理報(bào)告
- 互聯(lián)網(wǎng)金融平臺(tái)合規(guī)發(fā)展中的市場(chǎng)風(fēng)險(xiǎn)與監(jiān)管挑戰(zhàn)研究報(bào)告
- T-CAQI 387-2024 測(cè)量不確定度在分析化學(xué)領(lǐng)域質(zhì)量控制中的應(yīng)用指南
- 基于語(yǔ)篇分析的七選五題型解題策略課件-高三英語(yǔ)二輪復(fù)習(xí)
- 國(guó)家衛(wèi)健委中醫(yī)師承關(guān)系合同(2025年版)
- 中國(guó)贛州低空經(jīng)濟(jì)產(chǎn)業(yè)園
- 2025年春季形勢(shì)與政策-從教育大國(guó)邁向教育強(qiáng)國(guó)
- 中國(guó)急性缺血性卒中診治指南(2023)解讀
- 基于AIGC的設(shè)計(jì)學(xué)專(zhuān)業(yè)環(huán)境設(shè)計(jì)類(lèi)課程中教學(xué)模式轉(zhuǎn)型與探索
- 有機(jī)肥料腐熟度識(shí)別技術(shù)規(guī)范 -DB37-T 4110-2020 山東
- 2025年光大環(huán)保(中國(guó))有限公司招聘筆試參考題庫(kù)含答案解析
- 《S市某大學(xué)宿舍樓工程招標(biāo)控制價(jià)文件編制》13000字(論文)
- 啤酒廠精釀生產(chǎn)線安全操作規(guī)程
評(píng)論
0/150
提交評(píng)論