叶帆工作室

嵌入式开发爱好者(十年开发经验,精通C/C++/VC/VB/C#...)

原创 .Net Micro Framework研究—用MF控制机器人收藏

 
机器人研究一直是我很早以前的梦想,没有想到在深入研究.Net Micro Framework同时能和机器人搭上了联系。
美国iRobot作为一家大型的机器人军工机械厂,其家用机器人吸尘器(电不足时能自动充电的机器人)已经让iRobot公司名满天下。我们研究的机器人就是iRobot公司推出了的新作——一个可以自己编程的机器人移动平台iRobot Create。
由于最近才从微软拿到这个机器人,所以我们第一步就是先要了解这个机器人,然后MF才能作为它的大脑控制该机器人。
让我们先一睹iRobot Create的“芳容”。
iRobot Create 和充电基座(Home Base)
iRobot Create 和BAM蓝牙模块
 
iRobot Create有六类共31条控制命令,即能控制机器人行走、旋转、播放音乐,也能获知32个内置传感器信息(轮是否抬起、是否是悬崖、前方是否有墙、左右碰撞检测等等)。通过串口和iRobot Create进行通信(默认波特率57600).
  //27号信息包
            public UInt16 WallSignal;                //墙反射的无线信号强度 0 - 4095 高字节在前
            //28号信息包
            public UInt16 CliffLeftSignal;           //左悬崖信号强度
            //29号信息包
            public UInt16 CliffFrontLeftSignal;      //左前悬崖信号强度
            //30号信息包
            public UInt16 CliffFrontRightSignal;     //右前悬崖信号强度
            //31号信息包
            public UInt16 CliffRightSignal;          //右悬崖信号强度
            //32号信息包
            public bool BpsChange;                   //波特率发生改变
            public bool DI_3;                        //DI输入
            public bool DI_2;
            public bool DI_1;
            public bool DI_0;
            //33号信息包
            public UInt16 AI;                        //模拟入 0 -1023(5V)   高字节在前
            //34号信息包
            public bool HomeBase;                    //是否到家
  public bool InternalCharger;             //是否充电
随便拿出一段代码,你就会发现iRobot Create可获取大量有效的传感器信息(这样的信息包有四十多个)。
为了便于研究iRobot Create,我先用C#编写一个Windows程序(该程序通信控制部分和MF程序没有太大的区别,仅串口操作有细微差别),通过蓝牙模块(串口)和机器人进行通信(也可以用串口线连接,但是这样控制起来不方便)。
在调试过程中发现蓝牙模块的通信性能和串口线相比,有一定区别,那就是延时较大(一般串口线直连15ms延迟就能保证通信收发成功,蓝牙通信一般需要50ms之上延迟,才能保证通信成功)。控制界面如下。
 
机器人控制本身就是一个很大的课题,所以我们这里也无法一次说个完整和明白,今后我会陆陆续续发些相关文章的。我们今天先说说iRobot Create该充电时是如何找到“家”的(我想大家一定对这个感兴趣)。
iRobot Create毕竟是一个简单的机器人,所以千万不要和它捉迷藏,Homebase一定要放在室内开阔地带(iRobot Create是通过红外信号发现Homebase的所以中间最好不要有遮挡物,否则iRobot Create有可能要找一阵子)。
Homebase有两个红外发射管,可充当位置标记(一个为Green Buoy,一个为Red Buoy)。在iRobot Create头上有一个全方位红外接收头,可以接收到Homebase发出的红外信息。
可收到的红外指令如下:
      iRobot Create就是根据以上信息,不断地调整自己的方位,找到回家的路。 

发表于 @ 2008年01月15日 22:59:00|评论(loading...)

新一篇: 用模拟器加载基于ARM平台的WinCE6.0 内核(NK.bin) | 旧一篇: 北京MVP Gathering简记(08-1-13)

用户操作
[即时聊天] [发私信] [加为好友]
叶帆
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
叶帆的公告
本博客原创文章,作者保留一切权利,需经作者同意后方可转载,转载时 请注明[叶帆工作室]及文章链接。yefan@vip.sina.com
【简介】叶帆[微软MVP]
【文章】叶帆文章列表
【软件】叶帆共享软件列表
文章分类
收藏
    【叶帆软件】
    [01]VB源码之友(V2.1.548)
    [02]API浏览器.net(V5.0)
    [03]叶帆成语词典(V2.0.8)
    [04]叶帆密码库(V1.2.8)
    【叶帆资源】
    DAO 2.0引擎
    叶帆快速通道
    MSDN-MVP
    Windows Embedded 专题
    中文MSDN
    叶帆圈子--工业自动化
    叶帆工作室(博客园)
    叶帆工控--工业自动化
    微软中文技术论坛
    微软硬件创新中心(HIC)
    瑞康社区论坛
    叶帆友情链接
    张欣
    枕善居
    莫依
    葛涵涛
    郑建
    陈辉
    马宁
    马骐
    魏涛序
    黎波
    存档
    Csdn Blog version 3.1a
    Copyright © 叶帆