Zigbee 技術(shù)目前在物聯(lián)網(wǎng)領(lǐng)域和 RFID 一樣,受關(guān)注度非常高。日前中科院上海微系統(tǒng)與信息技術(shù)研究所、無(wú)錫物聯(lián)網(wǎng)產(chǎn)業(yè)研究院等傳感器網(wǎng)絡(luò)標(biāo)準(zhǔn)工作組成員單位聯(lián)合發(fā)布了名為 VW628 、 WSNS1_SCBR 的兩款中國(guó)自主知識(shí)產(chǎn)權(quán)的無(wú)線傳感網(wǎng) SoC 芯片,其中 WSNS1_SCBR 為中國(guó)首款符合 IEEE802.15.4g 標(biāo)準(zhǔn)的驗(yàn)證型全集成傳感網(wǎng)節(jié)點(diǎn) SoC 芯片。
其實(shí)封裝好的 Zigbee 模塊,使用起來(lái)和操作串口一樣,特別是我們把其通信模式設(shè)置為透明傳輸模式,這時(shí)候我們已經(jīng)感覺(jué)不到是在用 Zigbee 模塊,而覺(jué)得是在用一條串口線。在之前寫的《 Zigbee 在 .Net Micro Framework 系統(tǒng)中的應(yīng)用 》博文中相對(duì)詳細(xì)的介紹了 Zigbee 相關(guān)模塊的應(yīng)用,感興趣的網(wǎng)友,可以參考一下。
單個(gè)的 Zigbee 模塊非常小,其串口管腳為 TTL 電平,需要直接和 MCU 相連 , 具體接線管腳如下(簡(jiǎn)便期間,我們只接 4 根管腳):
序號(hào) |
Zigbee 模塊 |
紅牛開發(fā)板 |
1 |
3 ( RX0 ) |
PA2 ( USART2_TX ) |
2 |
4 ( TX0 ) |
PA3 ( USART2_RX ) |
3 |
6 ( GND ) |
GND |
4 |
7 ( VCC ) |
3.3v |
開發(fā)板上的控制程序如下(非常簡(jiǎn)單,就是串口接收和小車控制程序):
// 打開串口 , 并設(shè)置 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);
// 讀取數(shù)據(jù)
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);
}
}
上面的程序進(jìn)行了簡(jiǎn)化,關(guān)于小車 PWM 控制部分的代碼,請(qǐng)參考我以前寫的博文《 用 PWM 驅(qū)動(dòng)智能小車 》及《 紅外遙控智能小車 》。
為了便于控制,我們需要在 PC 上編寫一個(gè)最簡(jiǎn)單的串口發(fā)送程序,以控制智能小車的運(yùn)轉(zhuǎn),相關(guān)代碼如下:
// 串口
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();
}
運(yùn)行后的界面如下:
單擊相關(guān)按鈕,如果不出意外的話,在 Zigbee 通信范圍的智能小車應(yīng)該已經(jīng)動(dòng)起來(lái)了。
相關(guān)控制視頻如下:
http://video.sina.com.cn/v/b/40292033-1804832611.html
( 1 )、小車底盤
http://item.taobao.com/item.htm?id=7218838776
( 2 )、四路直流電機(jī)驅(qū)動(dòng)器
http://item.taobao.com/item.htm?id=7218717808
( 3 )、 .NET Micro Framework 開發(fā)板
http://item.taobao.com/item.htm?id=7117999726
注: 需要紅牛開發(fā)板固件在 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 微軟中文技術(shù)論壇 (.NET Micro Framework)
開發(fā)板簡(jiǎn)明手冊(cè): http://blog.sina.com.cn/s/blog_6b938f630100kh0k.html
【低價(jià)開發(fā)板】 http://item.taobao.com/item.htm?id=7117999726
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
