`
mmdev
  • 浏览: 13243227 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

恰好以前购买的一个PDAWifi功能,所以与其用PC通过Zigbee控制智能小车,不如用PDA来控制,这样更为方便,不过由于目前.NET MF开发板不直接支持Wifi功能,所以我们也只好间接控制了,也就是PDA控制PCPC通过Zigbee控制智能小车。

对我们开发者来说,Wifi和普通的网线接口一样,都是Socket编程。我们只需用在PDA上构建一个简单的TCP Client端,在PC构建一个TCP Server端即可,PDA发送相关指令,PC接收后通过Zigbee转发给智能小车。

PDA ===> WifiTCP/IP ===> PC ===> Zigbee(串口232/TTL) ===> 智能小车

PC通过Zigbee控制智能小车,在我的上篇博文《Zigbee遥控智能小车》已有介绍,所以这里就略过不提了。

我们先开发PDA上的程序(操作系统Windows Mobile 5.0),开发语言我们选择C#,相关代码如下:

public frmMain()

{

InitializeComponent();

Connect("192.168.1.2", 7722);

}

public void Connect(string server,int port)

{

sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

if (ipEndPoint != null) sock.Connect(GetEndPoint(server, port));

}

private void btnForward_Click(object sender, EventArgs e)

{

if (sock != null) sock.Send(new byte[] {48});

}

private void btnLeft_Click(object sender, EventArgs e)

{

if (sock != null) sock.Send(new byte[] { 49 });

}

private void btnRight_Click(object sender, EventArgs e)

{

if (sock != null) sock.Send(new byte[] { 50 });

}

private void btnBack_Click(object sender, EventArgs e)

{

if (sock != null) sock.Send(new byte[] { 51 });

}

private void btnStop_Click(object sender, EventArgs e)

{

if (sock != null) sock.Send(new byte[] { 52 });

}

编译运行后的效果图如下:

完成PDA上的编程,我们改造一下《Zigbee遥控智能小车》中提到的PC Zigbee通信程序,我们把相关TCP服务代码加入其中,相关代码如下:

listener = new TcpListener(IPAddress.Parse(ip),7722);

listener.Start();

Thread thread = new Thread(new ThreadStart(StartSocketListen));

thread.IsBackground = true;

thread.Start();

private void StartSocketListen()

{

while (true)

{

try

{

//当接收到一个客户端请求时,确认与客户端的连接

if (listener.Pending())

{

socket = listener.AcceptSocket();

//开辟线程(启动相关通信服务)

Thread threadServer = new Thread(new ThreadStart(ServiceRun));

threadServer.IsBackground = true;

threadServer.Start();

}

}

catch //(Exception ex)

{

socket = null;

}

Thread.Sleep(200);

}

}

private void ServiceRun()

{

//接收数据并存入buff数组中

byte[] buff = new byte[1024];

while (true)

{

if (socket != null)

{

if (socket.Available > 0)

{

//接收数据

socket.Receive(buff, socket.Available, SocketFlags.None);

switch (buff[0])

{

case 48:

serial.Write("0");

serial.DiscardInBuffer();

break;

case 49:

serial.Write("1");

serial.DiscardInBuffer();

break;

case 50:

serial.Write("2");

serial.DiscardInBuffer();

break;

case 51:

serial.Write("3");

serial.DiscardInBuffer();

break;

case 52:

serial.Write("4");

serial.DiscardInBuffer();

break;

}

}

}

Thread.Sleep(100);

}

}

运行PC程序,建好Zigbee通道,我们就可以用PDA来控制智能小车了。

相关控制视频如下:

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

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

本文源码2http://www.sky-walker.com.cn/yefan/MFV40/SourceCode/PDASocket_wifi.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开发板--i2c主从模式

    在"两块STM32开发板--i2c主从模式"的项目中,一块STM32作为主机,负责发起通信并控制数据流的方向;另一块作为从机,响应主机的请求并提供或接收数据。主机可以是多个,但每个从机都有一个唯一的7位或10位地址,使得...

    STM32_Nano开发板--原理图

    在分析STM32_Nano开发板的原理图时,我们需要关注的关键点包括了微控制器单元、电源管理、外围接口、以及可能的接口驱动和保护措施。 首先,STM32_Nano开发板核心部分是基于STM32微控制器单元的。STM32是一系列由...

    安富莱_STM32-V7开发板资料

    安富莱_STM32-V7开发板资料 本文档简介了安富莱_STM32-V7开发板的使用手册,涵盖了开发板的简介、配置信息、开发环境、HAL 库介绍、CMSIS 软件包、STM32CubeMX 图形平台、调试方法、硬件异常解决办法等知识点。 ...

    STM32F407开发板-标准例程-寄存器版本

    "STM32F407开发板-标准例程-寄存器版本"包含了59个实例,涵盖了STM32F407的所有实验,旨在帮助开发者深入理解和熟练运用该芯片。 STM32F407的核心特性包括: 1. 高性能的32位ARM Cortex-M4内核,运行频率高达180MHz...

    STM32F407开发板-以太网-TCP客户端网络通信

    STM32F407开发板是基于ARM Cortex-M4内核的微控制器,具有高性能、低功耗的特点,广泛应用于嵌入式系统设计。在本项目中,我们将重点探讨如何利用STM32F407开发板实现以太网TCP客户端的网络通信功能。 以太网是...

    华清远见STM32MP157开发板FS-MP1A硬件手册一览

    【华清远见STM32MP157开发板FS-MP1A硬件手册一览】深入解析 FS-MP1A开发板是专为嵌入式系统开发者设计的一款强大的开发工具,其核心是ST(意法半导体)公司的STM32MP1系列微处理器。STM32MP1系列芯片采用了独特的...

    普中STM32-PZ6806L开发板资料-A

    普中STM32-PZ6806L开发板资料光盘结构 | |---1--用户必看 | |--KEIL5安装教程 | |--普中ARM仿真器使用说明 | |--普中PZ6806L开发板入门教程 | |---2--开发板原理图 | |--彩屏原理图-----------------对应...

    资源野火cortex-M3STM32开发板M3-RT-Thread

    资源野火cortex-M3STM32开发板M3-RT-Thread

    基于正点原子的STM32FMP157开发板的TF-A移植

    STM32FMP157是一款高性能的微控制器,由STMicroelectronics生产,属于STM32MP1系列,集成了ARM Cortex-A7和Cortex-M4双核处理器,适用于嵌入式系统和物联网(IoT)应用。TF-A,全称Trusted Firmware-A,是针对Arm ...

    STM32 Nucleo-32带st-link(STM32F103CBT6) 开发板硬件原理图PCB+STM32Cube软件源码

    STM32 Nucleo-32带st-link(STM32F103CBT6) 开发板AD设计硬件原理图+PCB+STM32Cube软件源码,硬件采用4层板设计,大小为50*18mm.可以做为你的学习设计参考。 软件例程: STM32L011K4-Nucleo STM32L031K6-Nucleo STM32L...

    阿波罗STM32F767开发板51-65.rar

    阿波罗STM32F767开发板立场实验51到65部分,实验51 FPU测试(Julia分形)实验,实验52 DSP测试实验,实验53 手写识别实验,实验54 T9拼音输入法实验,实验55 串口IAP实验,实验56 USB读卡器(Slave)实验,实验57 USB...

    安富莱_STM32-V6开发板emWin教程_EWIN_stm32_emwin_图形界面_

    STM32-V6开发板上的emWin教程是一个深入学习图形界面设计的重要资源,特别是对于使用EWIN库在STM32微控制器上实现图形用户界面的开发者来说。emWin是一款广泛应用于嵌入式系统的图形库,它提供了丰富的功能,使得...

    教程 1、stm32单片机之开发板介绍

    教程 1、stm32单片机之开发板介绍教程 1、stm32单片机之开发板介绍教程 1、stm32单片机之开发板介绍教程 1、stm32单片机之开发板介绍教程 1、stm32单片机之开发板介绍教程 1、stm32单片机之开发板介绍教程 1、stm32...

    stm32f030开发板资料

    在“stm32f030开发板资料”中,我们主要会接触到以下几个关键知识点: 1. **STM32F030架构与特性**: - STM32F030采用32位Cortex-M0处理器,工作频率可达72MHz,具有高速处理能力。 - 内置闪存和SRAM,不同型号的...

    STM32开发板 ATK-RM04 WIFI模块测试实验.rar_STM32F103_atk wifi_rm04 _stm32

    STM32开发板 ATK-RM04 WIFI模块测试实验

    ALIENTEK战舰STM32F1 V3开发板原理图

    其中,ALIENTEK战舰STM32F1 V3开发板是一款专门针对STM32F1系列芯片设计的开发平台,它为学习和应用STM32提供了便利。本文将深入探讨该开发板的原理图,揭示其内部构造与工作原理,以便于读者更好地理解和使用。 ...

    STM32学习开发板资料UC-GUI学习ucgui-vc源码

    STM32学习开发板资料UC-GUI学习ucgui-vc源码

    STM32学习开发板资料UC-GUI学习GUI-V4源码

    STM32学习开发板资料UC-GUI学习GUI-V4源码

    STM32学习开发板资料UC-GUI学习GUI-V3源码

    STM32学习开发板资料UC-GUI学习GUI-V3源码

Global site tag (gtag.js) - Google Analytics