使用微控制器GSM控制的機(jī)器人
GSM控制的機(jī)器人或SMS控制的機(jī)器人是一種無(wú)線機(jī)器人,它通過(guò)接收一組短信息服務(wù)(SMS)形式的指令來(lái)執(zhí)行必要的行動(dòng)。在這個(gè)項(xiàng)目中,我們可以通過(guò)從手機(jī)上發(fā)送短信來(lái)控制機(jī)器人的方向,如前進(jìn)、后退、左邊和右邊。早些時(shí)候,我們已經(jīng)看到了一個(gè)不使用微控制器的DTMF控制機(jī)器人的工作。
本文引用地址:http://butianyuan.cn/article/202305/446156.htm這個(gè)項(xiàng)目主要由兩個(gè)部分組成,一個(gè)是移動(dòng)單元,另一個(gè)是機(jī)器人單元。固定在機(jī)器人上的GSM調(diào)制解調(diào)器接收手機(jī)發(fā)送的信息,并向微控制器發(fā)出指令,控制機(jī)器人的方向。在這個(gè)項(xiàng)目中,我們將8051微控制器與GSM SIM 300連接??刂破骱虶SM調(diào)制解調(diào)器之間的通信所使用的協(xié)議是UART(通用異步收發(fā)器)。該系統(tǒng)不斷檢查信息,以決定是否控制機(jī)器人。
電路原理:
當(dāng)我們把信息從手機(jī)發(fā)送到調(diào)制解調(diào)器時(shí),GSM調(diào)制解調(diào)器會(huì)連續(xù)發(fā)送以下命令,表示收到了新的信息。
+CMTI: "SM",3
在上面的命令中,數(shù)字3表示新信息的位置?,F(xiàn)在我們需要讀取這條未讀信息,并將其顯示在LCD上。從GSM調(diào)制解調(diào)器讀取信息的命令是
at+cmgr=3
這里的數(shù)字3表示要讀取的信息的位置。在向GSM模塊發(fā)送這個(gè)命令后,調(diào)制解調(diào)器將連續(xù)發(fā)送以下命令。
+cmgr: "rec unread", "md-waysms",, "13/05/20,15:31:48+34″。
forward
在上述命令中,"REC UNREAD "表示該信息是未讀信息,"MD-WAYSMS "表示發(fā)件人的手機(jī)號(hào)碼或姓名,13/05/20表示日期,15:31表示時(shí)間,forward是信息的內(nèi)容。
從上述命令中,我們需要提取用戶發(fā)送的信息(轉(zhuǎn)發(fā))?,F(xiàn)在將此信息與預(yù)定義的字符串(向前、向后、向左、向右)進(jìn)行比較,根據(jù)結(jié)果控制機(jī)器人。
框圖:
GSM控制的機(jī)器人 - 方框圖
電路圖:
GSM控制的機(jī)器人電路圖
硬件要求:
8051單片機(jī)
AT89C51編程板
編程電纜
16*2 LCD
MAX 232電平轉(zhuǎn)換器
GSM sim 300模塊
L293D電機(jī)驅(qū)動(dòng)器
機(jī)器人
9V直流電池 - 2
5V電源電路
0.1uF陶瓷電容 - 4個(gè)
33pF電容 - 2
10uF 電解電容
12MHz晶體
10k(1/4瓦)電阻
單針連接線
軟件要求:
Kiel U vision
Flash magic
Proteus
電路設(shè)計(jì):
上述電路中使用的主要部件是微控制器、電機(jī)驅(qū)動(dòng)器、電平轉(zhuǎn)換器、GSM模塊和機(jī)器人。這里使用的是at89c51微控制器,它需要一個(gè)正5V的直流電源。為了給控制器提供穩(wěn)定的5V直流電壓,使用7805電源電路。這里使用兩個(gè)9V電池,一個(gè)用于給電路供電,另一個(gè)用于運(yùn)行直流電動(dòng)機(jī)。
在上述電路中,16 x 2 LCD以4位模式連接到微控制器的PORT1。LCD的數(shù)據(jù)線D4、D5、D6和D7分別連接到P1.4、P1.5、P1.6和P1.7,控制引腳連接到P1.0、P1.1和P1.2。在這里,它用于指示收到的信息。
GSM調(diào)制解調(diào)器的Tx和Rx引腳連接到max232的13和14引腳。微控制器的TXD和RXD引腳被連接到電平轉(zhuǎn)換器的11和12引腳。在這里,max232是控制器和GSM模塊之間的中介,它被用來(lái)轉(zhuǎn)換電壓水平。要了解關(guān)于max232的更多細(xì)節(jié),請(qǐng)參考Max232數(shù)據(jù)表。
GSM模塊需要5V的電源。為了與GSM通信,我們需要使用串行通信(UART協(xié)議)發(fā)送AT命令。使用9600的波特率來(lái)與GSM通信。
控制器的P2.0、P2.1、P2.2和P2.3引腳與l293d輸入引腳相連,這些引腳用于控制兩個(gè)直流電機(jī)。這個(gè)IC的工作電壓是5V。使用這個(gè)IC,我們可以在4.5-36V的電壓范圍內(nèi)操作兩個(gè)直流電動(dòng)機(jī)。我們需要在l293d的第8個(gè)引腳上施加電機(jī)電源。要了解更多關(guān)于電機(jī)驅(qū)動(dòng)IC的信息,請(qǐng)參考L293D數(shù)據(jù)表。
電路工作算法:
初始化LCD和UART協(xié)議
持續(xù)檢查命令+CMTI: "SM",3 (位置號(hào))以了解是否收到新的信息。
如果你收到了命令,那么存儲(chǔ)信息的位置號(hào)。
現(xiàn)在讀取該特定信息并提取信息的內(nèi)容
在LCD上顯示提取的內(nèi)容,并將其與預(yù)定義的字符串進(jìn)行比較。
如果匹配,則在機(jī)器人上執(zhí)行必要的動(dòng)作。
使用下面的代碼從GSM調(diào)制解調(diào)器中讀取一條新信息。
while (rx_data() ! = 0x0d);
while (rx_data() ! = 0x0a);
if (rx_data() == ‘+’)
{
if (rx_data() == ‘C’)
{
if (rx_data() == ‘M’)
{
if (rx_data() == ‘T’)
{
if (rx_data()==’I’)
{
while (rx_data() != ‘,’);
a = rx_data ();
delay_ms (10);
tx_string (“at”);
tx_data (0x0d);
tx_data (0x0a);
tx_string (“at + cmgf =1”);
tx_data (0x0d);
tx_data (0x0a);
tx_string (“at + cmgr =”);
tx_data (a);
tx_data (0x0d);
tx_data (0x0a);
while (rx_data() ! = 0x0a);
while (rx_data() != 0x0a);
while (rx_data() ! = 0x0a);
for (i=0; i<15; i++)
{
read [i]= rx_data();
}
lcd_stringxy(1,0,read);
delay_ms (5000);
}
}
}
}
}
如何操作?
使用Keil軟件為GSM控制的機(jī)器人項(xiàng)目編寫(xiě)程序。
現(xiàn)在,在flash magic的幫助下,將程序刻錄到單片機(jī)上。
按照電路圖給出連接方式。
使用電源電路向微控制器提供5V直流電。
在GSM模塊上插入SIM(用戶身份模塊)。
現(xiàn)在打開(kāi)電源
用其他手機(jī)向GSM模塊發(fā)送短信
現(xiàn)在你可以在LCD上看到相同的信息。
如果收到的信息與任何預(yù)定義的字符串相匹配,機(jī)器人就會(huì)相應(yīng)地移動(dòng)。
電路應(yīng)用:
這個(gè)項(xiàng)目被用于機(jī)器人應(yīng)用中
在軍事上的應(yīng)用。
該電路的局限性:
機(jī)器人部分必須有網(wǎng)絡(luò)以無(wú)線方式接收命令。
由于沒(méi)有密碼,任何人都可以通過(guò)發(fā)送信息來(lái)操作機(jī)器人。
評(píng)論