【STM32 .Net MF开发板学习-16】Zigbee遥控智能

系统 1491 0

Zigbee 技术目前在物联网领域和 RFID 一样,受关注度非常高。日前中科院上海微系统与信息技术研究所、无锡物联网产业研究院等传感器网络标准工作组成员单位联合发布了名为 VW628 WSNS1_SCBR 的两款中国自主知识产权的无线传感网 SoC 芯片,其中 WSNS1_SCBR 为中国首款符合 IEEE802.15.4g 标准的验证型全集成传感网节点 SoC 芯片。

其实封装好的 Zigbee 模块,使用起来和操作串口一样,特别是我们把其通信模式设置为透明传输模式,这时候我们已经感觉不到是在用 Zigbee 模块,而觉得是在用一条串口线。在之前写的《 Zigbee .Net Micro Framework 系统中的应用 》博文中相对详细的介绍了 Zigbee 相关模块的应用,感兴趣的网友,可以参考一下。

【STM32 .Net MF开发板学习-16】Zigbee遥控智能小车

单个的 Zigbee 模块非常小,其串口管脚为 TTL 电平,需要直接和 MCU 相连 , 具体接线管脚如下(简便期间,我们只接 4 根管脚):

序号

Zigbee 模块

红牛开发板

1

3 RX0

PA2 USART2_TX

2

4 TX0

PA3 USART2_RX

3

6 GND

GND

4

7 VCC

3.3v

开发板上的控制程序如下(非常简单,就是串口接收和小车控制程序):

// 打开串口 , 并设置 zigbee 模块为透明传输模式

serial = new SerialPort ( "COM2" , 115200, Parity .None, 8, StopBits .One);

serial.Open();

serial.DataReceived += new SerialDataReceivedEventHandler (serial_DataReceived);

string strCommand = "---2-" ;

byte [] byteData = System.Text. Encoding .UTF8.GetBytes(strCommand);

serial.Write(byteData, 0, byteData.Length);

// 读取数据

static void serial_DataReceived( object sender, SerialDataReceivedEventArgs e)

{

if (serial.BytesToRead > 0)

{

byte [] bytData = new byte [serial.BytesToRead];

serial.Read(bytData, 0, bytData.Length);

serial.Write(bytData, 0, bytData.Length);

string KeyName = "" ;

switch (bytData[0])

{

case 48: //'0'

KeyName = "Forward" ;

MoveForward();

break ;

case 49: //'1'

KeyName = "Left" ;

MoveLeft();

break ;

case 50: //'2'

KeyName = "Right" ;

MoveRight();

break ;

case 51: //'3'

KeyName = "Back" ;

MoveBack();

break ;

case 52: //'4'

KeyName = "Stop" ;

MoveStop();

break ;

}

Debug .Print(KeyName);

}

}

上面的程序进行了简化,关于小车 PWM 控制部分的代码,请参考我以前写的博文《 PWM 驱动智能小车 》及《 红外遥控智能小车 》。

为了便于控制,我们需要在 PC 上编写一个最简单的串口发送程序,以控制智能小车的运转,相关代码如下:

// 串口

SerialPort serial = null ;

public frmMain()

{

InitializeComponent();

serial = new SerialPort ( "COM1" , 115200, Parity .None, 8, StopBits .One);

serial.Open();

string strCommand = "---1-" ;

byte [] byteData = System.Text. Encoding .UTF8.GetBytes(strCommand);

serial.Write(byteData, 0, byteData.Length);

}

private void frmMain_FormClosed( object sender, FormClosedEventArgs e)

{

serial.Close();

}

private void btnForward_Click( object sender, EventArgs e)

{

serial.Write( "0" );

serial.DiscardInBuffer();

}

private void btnLeft_Click( object sender, EventArgs e)

{

serial.Write( "1" );

serial.DiscardInBuffer();

}

private void btnRight_Click( object sender, EventArgs e)

{

serial.Write( "2" );

serial.DiscardInBuffer();

}

private void btnBack_Click( object sender, EventArgs e)

{

serial.Write( "3" );

serial.DiscardInBuffer();

}

private void btnStop_Click( object sender, EventArgs e)

{

serial.Write( "4" );

serial.DiscardInBuffer();

}

运行后的界面如下:

【STM32 .Net MF开发板学习-16】Zigbee遥控智能小车

单击相关按钮,如果不出意外的话,在 Zigbee 通信范围的智能小车应该已经动起来了。

相关控制视频如下:

http://video.sina.com.cn/v/b/40292033-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 以上

本文源码 1 http://www.sky-walker.com.cn/yefan/MFV40/SourceCode/PCZigbee.rar

本文源码 2 http://www.sky-walker.com.cn/yefan/MFV40/SourceCode/ZigbeeCar.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

【低价开发板】 http://item.taobao.com/item.htm?id=7117999726

【STM32 .Net MF开发板学习-16】Zigbee遥控智能小车


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论