有了Wifi间接控制智能小车的经验,很自然的想到,也可以通过GPRS远程遥控智能小车,因为从通信原理上看,二者其实没有什么本质的不同,都是基于Socket的TCP通信,其控制环节如下:
手机 ===> GPRS(TCP/IP) ===> PC ===> Zigbee(串口232/TTL) ===> 智能小车
与Wifi通信不同,要使手机连接GPRS,还得需要进行一定的编程才能完成,相关内容,我这里也不用介绍了,我以前写的博文《让智能手机和居家电脑互联互通(WM6 GPRS)》中有详细的说明,网友可以参考一下。
手机的操作系统为Windows Mobile 6.0,其Socket通信控制程序和PDA上的程序大同小异,相关代码如下:
private void btnTcpConnect_Click(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
if (btnTcpConnect.Text == "连接")
{
if (gprs.TcpConnect(txtIP.Text, int.Parse(txtPort.Text)))
{
btnTcpConnect.Text = "断开";
picTCPFlag.BackColor = Color.Green;
}
}
else
{
btnTcpConnect.Text = "连接";
picTCPFlag.BackColor = Color.Red;
gprs.TcpDisconnect();
}
Cursor.Current = Cursors.Default;
}
private void btnForward_Click(object sender, EventArgs e)
{
gprs.TcpSend("0");
}
private void btnLeft_Click(object sender, EventArgs e)
{
gprs.TcpSend("1");
}
private void btnRight_Click(object sender, EventArgs e)
{
gprs.TcpSend("2");
}
private void btnBack_Click(object sender, EventArgs e)
{
gprs.TcpSend("3");
}
private void btnStop_Click(object sender, EventArgs e)
{
gprs.TcpSend("4");
}
编译运行后的效果图如下:
PC上的程序和开发板上的程序请参考《Zigbee遥控智能小车》和《Wifi遥控智能小车》两篇博文。
运行PC程序,建好Zigbee通道,我们就可以用GPRS来控制智能小车了,不过和Wifi通道相比,GPRS通信要略有延迟。
相关控制视频如下:
http://video.sina.com.cn/v/b/40307740-1804832611.html
(1)、小车底盘
http://item.taobao.com/item.htm?id=7218838776
(2)、四路直流电机驱动器
http://item.taobao.com/item.htm?id=7218717808
(3)、.NET Micro Framework开发板
http://item.taobao.com/item.htm?id=7117999726
注:需要红牛开发板固件在 V1.0.0以上
本文源码:http://www.sky-walker.com.cn/yefan/MFV40/SourceCode/GPRS_Control.rar
MF快速参考: .NET Micro Framework 快速入门
MF中文讨论组:http://space.cnblogs.com/group/MFSoft/
微软官方论坛:MSDN微软中文技术论坛(.NET Micro Framework)
开发板简明手册:http://blog.sina.com.cn/s/blog_6b938f630100kh0k.html