zoukankan      html  css  js  c++  java
  • 【STM32 .Net MF开发板学习20】蓝牙遥控智能小车(手机模式)

    无论是用WIfi还是用GPRS遥控小车,目前都离不了PC这个中转站,并且PC还得借助Zigbee通道和小车通信,这就大大地增加了此遥控平台的构建代价。以前在研究iRobot机器人的时候,用过其配套的蓝牙模块,可以通过PC上的蓝牙连接,远程控制iRobot(相关文章《MF控制机器人》)。目前大部分手机也都支持蓝牙接口,所以基于此,我们借用iRobot的蓝牙模块,就可以用手机直接遥控智能小车了。

    不过问题来了,原蓝牙模块是和iRobot配套的,其模块供电、串口连接等问题不用考虑,直接插入25针的接口就可以了,而我们想单独使用,必须搞明白蓝牙模块的25针的各个含义才成。很可惜,蓝牙模块本身没有更进一步的说明资料,幸好我们有iRobot25针接口资料,可以反推蓝牙模块的pin脚信息,说明书上pin1RXD,则蓝牙模块的pin1就应该是TXD,同样道理pin2RXD

    最终的pin脚定义及与开发板接线如下:

    序号

    蓝牙模块

    .NET MF开发板

    1

    2RX0

    PA2USART2_TX

    2

    1TX0

    PA3USART2_RX

    3

    25GND

    GND

    4

    8VCC

    3.3v

    注:蓝牙模块要求5V供电,开发板上比较容易引出的是3.3v,实际测试发现3.3v也能使蓝牙模块正常工作,另外蓝牙模块的串口为TTL电平。

     

    好了,小车这边的蓝牙模块我们已经接线完毕。下面我们开始配置手机上的蓝牙模块,下面就是手机蓝牙模块的设置步骤(注意,需保证与小车相连的蓝牙模块上电)

         、进入设置面板,选择蓝牙模块并进入;

         、选择添加新设备;

         、扫描周围的蓝牙设备;

         、发现蓝牙串口模块;

         、进行连接,并输入连接密码;

         、选择串口服务,单击“完成”按钮;

         、进入COM端口面板,选择新建发送端口;

         、选择新建串口的设备为蓝牙串口设备;

         、选择对应的串口,并单击“完成”按钮;

         、运行蓝牙操控程序(其实就是一个普通的串口程序);

    手机的系统为Windows Mobile 6.0,相关代码如下:

        namespace WMBluetooth

        {

            public partial class frmMain : Form

            {

                //串口

                SerialPort serial = null;

                public frmMain()

                {

                    InitializeComponent();  

                    serial = new SerialPort("COM7", 57600, Parity.None, 8, StopBits.One);

                    serial.Open();

                }

                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();

                }

                private void frmMain_Closed(object sender, EventArgs e)

                {

                    serial.Close();

                }      

            }

     }

    小车上的代码其实和上几篇的文章类似,不过需要提醒的是,蓝牙模块要求的通信波特率为57600,具体代码请参见《Zigbee遥控智能小车》。

    一切配置停当后,运行手机上的程序,我们就可以直接控制小车了,和GPRSWifi方式不同,这次我们就可以把他们带到室外,去尽情演示和控制了(前两个你也可以带到室外,不过前提是要带上那个中转站--PC)。

    相关视频(这是GPRS的视频,控制方式相同,不过蓝牙控制要比GPRS控制速度快多了):

    http://video.sina.com.cn/v/b/40307740-1804832611.html

     

    附记:

    在讨论组发表相关图片后,有网友说iRobot的蓝牙模块太大了,此外考虑到iRobot的蓝牙一是价格比较高,二是国内很难买到,所以我这边测试了一款小巧实用的蓝牙模块,效果还不错,性价比还是很高的。

    注:此蓝牙模块的通信波特率为9600,默认配对密码 1234,采用这款模块,记得把相关波特率由57600修改为9600。

    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

    4)、蓝牙模块

     http://item.taobao.com/auction/item_detail.htm?item_num_id=8333868680

     

       注:需要红牛开发板固件在 V1.0.0以上

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

    本文源码:http://www.sky-walker.com.cn/yefan/MFV40/SourceCode/BluetoothCar.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
  • 相关阅读:
    Element.scrollIntoView()
    dot.js
    微信小程序页面跳转导航wx.navigateTo和wx.redirectTo
    小程序swiper 滑块视图容器
    小程序表单提交
    自适应宽度圆角导航如何实现
    PC端和移动端一些奇葩兼容性问题
    如何实现两行内容增多和一行内容增多,多余的内容显示省略号
    表单提交判断,数据只能提交一次判断
    改变CSS世界纵横规则的writing-mode属性
  • 原文地址:https://www.cnblogs.com/yefanqiu/p/1875412.html
Copyright © 2011-2022 走看看