Tag Archives: mindsensors

MindSensors in LabVIEW

應該要給MindSensors拍拍手, 因為它把所有的 MindSensors裝置包弄成一個整合型icon。 站在user的角度來看, 這是值得鼓勵的。

在任何一個MindSensors產品頁下面可以看到各個軟體環境的sample code, 其中有一個”LVEE 2009/LabVIEW for High School Toolkit“, 下載之後按照pdf檔中的說明就可以了, 相當容易。

裝好以後, 就可以在Function選單看到 “mindsensors devices“, 點進去只有一個vi, 嚇我一跳, 想說是不是沒裝好, 事實上這是一個整合型vi, 非常好用。

裝置分成 Sensor和Controller, 就是輸入與輸出裝置.

請看以下兩圖是CAVE寫的 LineLeader範例, 會在 Front Panel 顯示目前的 LineLeader狀態。 另一個值得鼓勵的地方就是, 當我們對 LineLeader 這個 vi 選擇 Create indicator 與 Create Control, 對應的表單都已經建好了!! 也就是下圖<Front Panel>中的東西都是Mindsensors幫大家寫好的, 非常方便。

<Front Panel>

<Block Diagram>

MindSensors NXT-Cam V2 (兆民老師)

CAVE預計將在12月舉辦技術交流會,Mindsensors 的 NXTcam-V2將會是其中一項重點

請看以下影片, 機器人會跟著螢幕上的紅色色塊左右移動, 並運用了比例(proportional)控制, 目前做了簡單的應用,讓機器人能左右追蹤物體,運用P控制,效果看來還ok。

nxtcam號稱最多可以同時追蹤八個物體、八種使用者定義的顏色,如果能徹底發揮他的功能,絕對是強而有力的一個感應器!

 

Mindsensors 分別讀取8個light sensor值 in leJOS (by祥瑞)

import lejos.nxt.*;
import lejos.nxt.addon.NXTLineLeader;
import lejos.util.Delay;

class LLRead {
    public static void main(String args[]) {
        Button.ESCAPE.addButtonListener(new ButtonListener() {
            public void buttonPressed(Button b) {System.exit(0);}
            public void buttonReleased(Button b) {}
        });
        
        NXTLineLeader LL = new NXTLineLeader(SensorPort.S1);
        int address;
        byte[] buf = new byte[8];
        int ret;
        int value;
        while(true) {
            for(address=0x49; address<=0x50; address++) {
                ret = LL.getData(address, buf, 2);
                value = (ret == 0 ? (buf[0] & 0xff) : -1);
                LCD.drawString("S" + (address-0x49) + " " + value, 0, address-0x49);
            }
            Delay.msDelay(200);
            LCD.clear();
        }
    }
}

Mindsensors 分別讀取8個light sensor值 in NXC (by祥瑞)

Mindsensor LineLeader 說明文件

task main() {
     SetSensorLowspeed(S1);
     int address;
     int ret;
     int value;
     int buf[8];
     
     while(true) {
          for(address=0x49; address<=0x50; address++){
               ret = I2CRead(S1, 2, buf);
               value = (ret == 0 ? (buf[0] & 0xff) : -1);
              NumOut(0, (address-0x49)*LCD_LINE1, value);
          }
     Wait(200);
     ClearScreen();
     }
}

0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50就是 Lineleader的8個光感應器的位置.