天天看點

.Net Micro Framework研究—用MF控制機器人

機器人研究一直是我很早以前的夢想,沒有想到在深入研究.Net Micro Framework同時能和機器人搭上了聯系。

美國iRobot作為一家大型的機器人軍工機械廠,其家用機器人吸塵器(電不足時能自動充電的機器人)已經讓iRobot公司名滿天下。我們研究的機器人就是iRobot公司推出了的新作——一個可以自己程式設計的機器人移動平台iRobot Create。

由于最近才從微軟拿到這個機器人,是以我們第一步就是先要了解這個機器人,然後MF才能作為它的大腦控制該機器人。

讓我們先一睹iRobot Create的“芳容”。

.Net Micro Framework研究—用MF控制機器人
iRobot Create 和充電基座(Home Base)
.Net Micro Framework研究—用MF控制機器人

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之上延遲,才能保證通信成功)。控制界面如下。

.Net Micro Framework研究—用MF控制機器人

機器人控制本身就是一個很大的課題,是以我們這裡也無法一次說個完整和明白,今後我會陸陸續續發些相關文章的。我們今天先說說iRobot Create該充電時是如何找到“家”的(我想大家一定對這個感興趣)。

iRobot Create畢竟是一個簡單的機器人,是以千萬不要和它捉迷藏,Homebase一定要放在室内開闊地帶(iRobot Create是通過紅外信号發現Homebase的是以中間最好不要有遮擋物,否則iRobot Create有可能要找一陣子)。

Homebase有兩個紅外發射管,可充當位置标記(一個為Green Buoy,一個為Red Buoy)。在iRobot Create頭上有一個全方位紅外接收頭,可以接收到Homebase發出的紅外資訊。

.Net Micro Framework研究—用MF控制機器人

可收到的紅外指令如下:

.Net Micro Framework研究—用MF控制機器人

iRobot Create就是根據以上資訊,不斷地調整自己的方位,找到回家的路。 

繼續閱讀