使用微控制器GSM控制的机器人
GSM控制的机器人或SMS控制的机器人是一种无线机器人,它通过接收一组短信息服务(SMS)形式的指令来执行必要的行动。在这个项目中,我们可以通过从手机上发送短信来控制机器人的方向,如前进、后退、左边和右边。早些时候,我们已经看到了一个不使用微控制器的DTMF控制机器人的工作。
本文引用地址:http://www.amcfsurvey.com/article/202305/446156.htm这个项目主要由两个部分组成,一个是移动单元,另一个是机器人单元。固定在机器人上的GSM调制解调器接收手机发送的信息,并向微控制器发出指令,控制机器人的方向。在这个项目中,我们将8051微控制器与GSM SIM 300连接。控制器和GSM调制解调器之间的通信所使用的协议是UART(通用异步收发器)。该系统不断检查信息,以决定是否控制机器人。
电路原理:
当我们把信息从手机发送到调制解调器时,GSM调制解调器会连续发送以下命令,表示收到了新的信息。
+CMTI: "SM",3
在上面的命令中,数字3表示新信息的位置。现在我们需要读取这条未读信息,并将其显示在LCD上。从GSM调制解调器读取信息的命令是
at+cmgr=3
这里的数字3表示要读取的信息的位置。在向GSM模块发送这个命令后,调制解调器将连续发送以下命令。
+cmgr: "rec unread", "md-waysms",, "13/05/20,15:31:48+34″。
forward
在上述命令中,"REC UNREAD "表示该信息是未读信息,"MD-WAYSMS "表示发件人的手机号码或姓名,13/05/20表示日期,15:31表示时间,forward是信息的内容。
从上述命令中,我们需要提取用户发送的信息(转发)。现在将此信息与预定义的字符串(向前、向后、向左、向右)进行比较,根据结果控制机器人。
框图:
GSM控制的机器人 - 方框图
电路图:
GSM控制的机器人电路图
硬件要求:
8051单片机
AT89C51编程板
编程电缆
16*2 LCD
MAX 232电平转换器
GSM sim 300模块
L293D电机驱动器
机器人
9V直流电池 - 2
5V电源电路
0.1uF陶瓷电容 - 4个
33pF电容 - 2
10uF 电解电容
12MHz晶体
10k(1/4瓦)电阻
单针连接线
软件要求:
Kiel U vision
Flash magic
Proteus
电路设计:
上述电路中使用的主要部件是微控制器、电机驱动器、电平转换器、GSM模块和机器人。这里使用的是at89c51微控制器,它需要一个正5V的直流电源。为了给控制器提供稳定的5V直流电压,使用7805电源电路。这里使用两个9V电池,一个用于给电路供电,另一个用于运行直流电动机。
在上述电路中,16 x 2 LCD以4位模式连接到微控制器的PORT1。LCD的数据线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模块之间的中介,它被用来转换电压水平。要了解关于max232的更多细节,请参考Max232数据表。
GSM模块需要5V的电源。为了与GSM通信,我们需要使用串行通信(UART协议)发送AT命令。使用9600的波特率来与GSM通信。
控制器的P2.0、P2.1、P2.2和P2.3引脚与l293d输入引脚相连,这些引脚用于控制两个直流电机。这个IC的工作电压是5V。使用这个IC,我们可以在4.5-36V的电压范围内操作两个直流电动机。我们需要在l293d的第8个引脚上施加电机电源。要了解更多关于电机驱动IC的信息,请参考L293D数据表。
电路工作算法:
初始化LCD和UART协议
持续检查命令+CMTI: "SM",3 (位置号)以了解是否收到新的信息。
如果你收到了命令,那么存储信息的位置号。
现在读取该特定信息并提取信息的内容
在LCD上显示提取的内容,并将其与预定义的字符串进行比较。
如果匹配,则在机器人上执行必要的动作。
使用下面的代码从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控制的机器人项目编写程序。
现在,在flash magic的帮助下,将程序刻录到单片机上。
按照电路图给出连接方式。
使用电源电路向微控制器提供5V直流电。
在GSM模块上插入SIM(用户身份模块)。
现在打开电源
用其他手机向GSM模块发送短信
现在你可以在LCD上看到相同的信息。
如果收到的信息与任何预定义的字符串相匹配,机器人就会相应地移动。
电路应用:
这个项目被用于机器人应用中
在军事上的应用。
该电路的局限性:
机器人部分必须有网络以无线方式接收命令。
由于没有密码,任何人都可以通过发送信息来操作机器人。
评论