買書捐殘盟

2011年8月10日 星期三

Matlab for NXT,測試光感知器每秒鐘亮滅一次設計

[說明]使用Matlab 讓光感知器每秒鐘做亮或滅的動作

[程式碼]

clear all

clc

%Define Sensor Parameters
SwitchPort = SENSOR_1;
LightPort =SENSOR_2;
Mode = 0;

COM_CloseNXT('all');

hNXT=COM_OpenNXT();
COM_SetDefaultNXT(hNXT);

OpenSwitch(SwitchPort);

while(GetSwitch(SwitchPort)==false)
  if(Mode == 0)
    ModeType = 'INACTIVE';
    OpenLight(LightPort,ModeType);
    pause(1);
  end
  if(Mode == 1)
    ModeType = 'ACTIVE';
    OpenLight(LightPort,ModeType);
    pause(1);
  end
  Mode = not(Mode);
end

COM_CloseNXT(hNXT);
使用not函數,用以改變mode狀態


[執行結果]

2 則留言:

  1. 這個測試實驗還有另一個用途:
    使用matlab pause函數,可維持前一個狀態直至條件滿足往下執行。例如:
    動作一
    pause(1)
    動作二

    動作一狀態維持一秒鐘後,繼續動作二。

    回覆刪除
  2. 想藉由這個pause函數,來作取樣的動作

    回覆刪除