買書捐殘盟

2011年8月6日 星期六

Matlab for NXT,搭配LightSensor與TouchSensor之測試實驗

以前接觸Brixcc或lejos,TouchSensor就叫做TouchSensor,但Matlab的Toolbox命名為Switch。

以程式碼解說實際的簡單應用:
[程式碼]

%觸碰感知器(TouchSensor)、光感知器(LightSensor)測試

clear all
clc

COM_CloseNXT('all');

hNXT=COM_OpenNXT(); %此指令會尋找使用 USB 線與電腦連接的 NXT,若是要使用藍芽的話則只要在括號內加上 'bluetooth.ini' 即可
COM_SetDefaultNXT(hNXT); %將 hNXT 設為全域的預設代碼,之後就不需要在指令後再輸入代碼了

OpenSwitch(Sensor_1);
OpenLight(Sensor_2,'ACTIVE');

cnt=1;
while (GetSwitch(Sensor_1)==false)
LightValue(cnt)=GetLight(Sensor_2)*0.09775;
cnt=cnt+1;
end

plot(LightValue)
COM_CloseNXT(hNXT);


解說:
1.這個程式利用OpenLight()指令、OpenSwitch()指令分別初始光感知器、觸碰感知器,指令的應用,請在Matlab command提示字元下,輸入help OpenLight、help OpenSwitch查閱
2.OpenLight()指令,參數使用ACTIVE,告知初始即點亮LightSensor
3.GetSwitch()用以取得觸碰感知器觸碰與否,有則回傳true,反之則以false
4.GetLight()指令用以取得光感知器的讀值,乘以0.09775轉換為我們較為了解的光感值
5.程式判斷觸碰感知器未被按下時,記錄光感知器的讀值於LightValue陣列,並於觸碰感知器被按下後,將結果plot出來。

沒有留言:

張貼留言