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