IT技術互動交(jiao)流平jiao)/h4>

湖北快三官网

作者︰lanchaohuan  發布(bu)日期︰2020-02-26 02:50:34

1.引言(yan)

本項目(mu)的產品是以launchpad作為(wei)控制核心的wifi視頻(pin)小車。可(ke)以通過(guo)上(shang)位機(ji)操(cao)作實現小車dang)那qian)進後退(tui)左轉右轉等基本動作,車上(shang)搭載的攝像頭能夠將小車dang)募囁鞀 媸凳貝 hui)上(shang)位機(ji)。在該小車dang)幕∩shang)加(jia)以擴展(zhan)和改裝(zhuang),可(ke)將小車實際運用于火災、毒氣等危(wei)險環境(jing)中。

2.系統(tong)方案

 

 

160825372.png

 

 

 

 

 

 

3.系統(tong)硬(ying)bu)杓/span>

一.主控制模塊

155540993.jpg

 

本系統(tong)使(shi)用的芯(xin)片板為(wei)TI公(gong)司的launchpad G2系列,搭載芯(xin)片為(wei)MSP430G2553,除了接收和處理指令(ling),小車大部分時間(jian)處在等待(dai)指令(ling)的狀(zhuang)態,所以可(ke)以充分利用MSP430芯(xin)片超低功耗(hao)的特點(dian),將芯(xin)片在等待(dai)指令(ling)的階段進入休眠狀(zhuang)態,大大降dang)土誦xin)片耗(hao)能,延(yan)長了電池使(shi)用時間(jian)。此外,launchpad小巧輕便的設計也能相當方便地搭載在小車上(shang)。

 

二.Wifi模塊

155547119.jpg

 

Wifi模塊由(you)TP-link703n路由(you)器(qi)改裝(zhuang),可(ke)以刷(shua)入openwrt系統(tong)(介紹見附(fu)錄(lu)1),在系統(tong)中裝(zhuang)入攝像頭驅(qu)動和安裝(zhuang)ser2net服務,即可(ke)支持視頻(pin)傳輸和TTL指令(ling)傳輸。其特點(dian)是小巧便攜,方面安裝(zhuang)在小車上(shang),且自帶USB接口(kou)供攝像頭接入。

 

三(san).電機(ji)模塊

 

電機(ji)模塊原理圖

155550539.jpg

 

155555459.png

1.驅(qu)動芯(xin)片︰L298N雙H橋驅(qu)動芯(xin)片

2.驅(qu)動部分端子供電範圍VMS︰+5V~+35V

3.驅(qu)動部分峰值dang)緦o︰2A/橋

4.邏輯(ji)部分端子供電範圍Vss︰4.5-5.5V

5.邏輯(ji)部分zhi)?韉緦鞣段0~36mA

6.控制信(xin)號輸入電壓gou)段?焊叩縉.5-5.5V 低電平0V
7.最大功耗(hao)︰20W

 

四(si).電源模塊

 

本模塊中提供三(san)檔(dang)電源給系統(tong)供電,7.5V給電機(ji)供電,5VL298N和路由(you)器(qi)供電,3.6Vlaunchpad供電。

電源有一對(dui)2700mah16850電池組(zu)組(zu)成,輸出電壓為(wei)7.5V,用LM317可(ke)調節降壓降至(zhi)5V,再(zai)用兩個IN4007二極管將5V降至(zhi)3.6V

LM317原理圖如(ru)下︰

155557561.png

五.車體部分

車體底zhou)灘cai)用透明亞(ya)克力板,車輪由(you)兩個直流電機(ji)和一個萬向輪組(zu)成,電機(ji)由(you)L298N電機(ji)模塊驅(qu)動,三(san)輪結構使(shi)小車運動更加(jia)靈活。

155601376.jpg

 

 

4.系統(tong)軟件設計

 


 

下位機(ji)部分︰

155604137.png

 

 

 

 

 

 

指令(ling)格(ge)式為(wei)416進制數,其中包括開始位,類型位,數據位和結束(shu)位,具體格(ge)式如(ru)下︰

/**************************************************************
協議規定︰
包頭類型位數據位結束(shu)位
0XFF 1 1 0XFF
各命令(ling)說明︰
類型位數據位功能
0X00 0X01 前(qian)進
0X00 0X02 後退(tui)
0X00 0X03 左轉
0X00 0X04 右轉
0X00 0X00 停止(zhi)
0X01 0X00 LED1
0X01 0X01 LED1
**************************************************************/

如(ru)前(qian)進指令(ling)為(wei)FF0001FF,單片機(ji)每次(ci)接收一位數據則(ze)進入一次(ci)中斷,將接收的數據進行存儲,當收到結束(shu)位FF時,四(si)次(ci)所接收的數據進行打(da)包並執行動作控制外圍設備做出相應動作。

下位機(ji)完(wan)整代碼(ma)見附(fu)錄(lu)2.

 

 

上(shang)位機(ji)部分

上(shang)位機(ji)分為(wei)PC端和手機(ji)端,PC端在windows系統(tong)中運行,手機(ji)端在android中運行。

PC控制端可(ke)拓展(zhan)功能多,便于調試。

以下為(wei)軟件界面︰

155610275.png

155612685.png

手機(ji)安卓控制端支持自yuan)ㄒ逯噶ling),當按下按鍵時發送動作指令(ling),松開按鍵時發送停止(zhi)指令(ling),支持重(zhong)力感應控制。

軟件界面如(ru)下︰

155615232.jpg

 

PS︰上(shang)位機(ji)程序(xu)源代碼(ma)均(jun)源自網絡。

5.系統(tong)創新(xin)

u采(cai)用wifi信(xin)號傳輸,相比于藍牙,傳輸速度更快,距離更遠(yuan)。

u搭載了高清攝像頭,可(ke)實時監控小車畫面。

u采(cai)用通信(xin)協議數據包格(ge)式,易于擴展(zhan)更多功能。

u運用了MSP430低功耗(hao)的特點(dian),使(shi)芯(xin)片大部分時間(jian)處于休眠狀(zhuang)態,延(yan)長系統(tong)的續航時間(jian)。

u利用了手機(ji)重(zhong)力感應的功能,增強了小車dang)娜?緞浴/span>

 

6 產品演示視頻(pin)


 



附(fu)錄(lu)

1.openwrt

 

OpenWrt的被描述為(wei)一個嵌入式設備的Linux發行版,而不是試圖建立一個單一的,靜態的固(gu)件,OpenWrt的包管理提供了一個完(wan)全可(ke)寫的文(wen)件系統(tong),從應用程序(xu)供應商(shang)提供的選擇和配置,並允許(xu)您自yuan)ㄒ宓納璞福 允視θ魏斡τ貿絛xu)通過(guo)使(shi)用包。對(dui)于開發人員(yuan),OpenWrt的是框(kuang)架來構建應用程序(xu),而無需建立一個完(wan)整的固(gu)件左右;對(dui)于用戶來說,這(zhe)意味著(zhou)完(wan)全定制pin)哪芰Γ 永疵揮性?氳姆絞絞shi)用該設備。

簡單來說,openwrt是一個主要以網絡為(wei)基礎並拓展(zhan)應用的系統(tong),可(ke)以安裝(zhuang)訂制新(xin)功能,當然也可(ke)以刪jing)恍枰 墓δ塴1鞠金mu)中在openwrt系統(tong)中安裝(zhuang)了攝像頭驅(qu)動和ser2net,用于攝像頭畫面傳輸和指令(ling)傳輸。

 

2.MSP430G2553完(wan)整代碼(ma)


#include "msp430g2553.h"#define uchar unsigned char#define uint unsigned intint i=0,j,n=1,URTAReceivedCount=0;uchar Tempdatatable[4];uchar CommandData[4];//延(yan)時子函數void Delay_1ms(uint i){uchar x,j;for(j=0;j<i;j++)for(x=0;x<=148;x++); }/*****************************************以下五個子函數分別為(wei)前(qian)進、後退(tui)、左轉、右轉動作指令(ling)*****************************************/void Moto_Forward(){ P2OUT=0x0a;// Delay_1ms(100);}void Moto_Backward(){P2OUT=BIT0+BIT2 ;P2OUT=~BIT1+~BIT3;// Delay_1ms(100);}void Moto_TurnLeft(){ P2OUT=0x02;// Delay_1ms(100);}void Moto_TurnRight(){ P2OUT=BIT1+BIT3 ;P2OUT=~BIT0+~BIT2;// Delay_1ms(100);}void Moto_Stop(){ P2OUT&= 0x00;//Delay_1ms(100);}/**************************************************************數據打(da)包完(wan)畢(bi)後執行RunCommand函數進行對(dui)接收的數據包進行解析並轉向相應的動作函數**************************************************************/void RunCommand(void){if(CommandData[0]==0xff && CommandData[3]==0xff){switch(CommandData[1]) //判斷類型位,00為(wei)電機(ji)動作,01為(wei)LED1動作{case 0x00:switch(CommandData[2]){case 0x00:Moto_Stop();break;case 0x01:Moto_Forward();break;case 0x02:Moto_Backward();break;case 0x03:Moto_TurnLeft();break;case 0x04:Moto_TurnRight();break;}break;case 0x01:switch(CommandData[2]){case 0x00:P1OUT=BIT0; //LED1亮break;case 0x01:P1OUT&=~BIT0; //LED1滅break;default: break;}break;default: break;}}}/*******************************************************************以下為(wei)數據回(hui)傳函數,用于測試程序(xu),小車成功運行後可(ke)不執行void Send_Data(uchar type,uchar cmd){uchar Buffer[4];intx=0;uint SendCount=0;Buffer[0]=0xff;Buffer[1]=type;Buffer[2]=cmd;Buffer[3]=0xff;while(1){if(Buffer[x]==0xff){SendCount++;}UCA0TXBUF=Buffer[x];x++;if(SendCount==2){break;} } }**************************************************************/void main(void){WDTCTL = WDTPW + WDTHOLD; //停止(zhi)看門(men)狗(gou)UCA0CTL1 = UCSWRST; // USCI_A0 進入軟件復ci)蛔zhuang)態UCA0CTL1 = UCSSEL_2; //時鐘源選擇 SMCLKBCSCTL1 = CALBC1_1MHZ; //設置 DCO 頻(pin)率為(wei) 1MHzDCOCTL = CALDCO_1MHZ;P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXDP1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXDP1DIR = BIT0;P1OUT&=~BIT0;P2DIR=0xff;P2OUT=0X00;UCA0BR0 = 0x68; //時鐘源 1MHz 時波特率為(wei)9600UCA0BR1 = 0x00; //時鐘源 1MHz 時波特率為(wei)9600UCA0MCTL = UCBRS0; //小數分頻(pin)器(qi)UCA0CTL1 &= ~UCSWRST; //初始化(hua) USCI_A0 狀(zhuang)態機(ji)IE2= UCA0RXIE; //使(shi)能 USCI_A0 接收中斷_EINT(); //開總中斷while(1){LPM1; //進入低功耗(hao)模式1}}#pragma vector = USCIAB0RX_VECTOR //接收中斷__interrupt void USCI0RX_ISR(void){LPM1_EXIT; //退(tui)出低功耗(hao)模式IE2&=~ UCA0RXIE; //關閉(bi)中斷,禁止(zhi)中斷被嵌套while ( !(IFG2&UCA0TXIFG) ); uchar temp;temp=UCA0RXBUF;if(temp==0x00&&URTAReceivedCount==0){;}else{if(temp==0xff&&URTAReceivedCount<2){Tempdatatable[0]=0xff;URTAReceivedCount++;}else{Tempdatatable[n]=temp;n++;}if(URTAReceivedCount>1){Tempdatatable[0]=0xff;Tempdatatable[3]=0xff;n=1;URTAReceivedCount=0;CommandData[0]=Tempdatatable[0];CommandData[1]=Tempdatatable[1];CommandData[2]=Tempdatatable[2];CommandData[3]=Tempdatatable[3];//Send_Data(CommandData[1],CommandData[2]); //指令(ling)回(hui)傳,測試使(shi)用RunCommand();}}IE2= UCA0RXIE; 開啟中斷}

 

湖北快三官网

    • 湖北快三官网

    一分pk10官网About IT165 - 廣(guang)告服務 - 隱私聲明 - 版權申明 - 免責條(tiao)款 - 網站地圖 - 網友投稿 - 聯(lian)系方式
    本站內容來自于互聯(lian)網,僅供用于網絡技術學習,學習中請(qing)遵循相關法律法規
    湖北快三官网 | 下一页