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