上次介紹了如何安裝 NXT toolbox 到MATLAB上,這次讓我們來建立程式工作環境並寫一個簡單的程式。
由於toolbox已經安裝好了,所以基本的工作環境其實已經準備好了,現在我們要建立的是程式的工作環境。請看下面範例:
COM_CloseNXT('all')
close all
clear all
clc % clear old messages from command line
hNXT = COM_OpenNXT(); % look for USB devices
COM_SetDefaultNXT(hNXT); % sets global default handle
% now we don't have to use hNXT anymore!
NXT_PlayTone(440, 300);
pause(0.3);
NXT_PlayTone(440, 300);
% but never forget to clean up after your work!!!
COM_CloseNXT(hNXT);
程式一開始先執行 COM_CloseNXT('all') 指令清除可能存在之 NXT 與電腦的連線以免程式錯誤,接下來三行是 MATLAB 本身的指令,close all 會關閉所有視窗,clear all 則是清除所有變數,clc則是清空 command window 的內容。
接下來執行 hNXT = COM_OpenNXT(); 指令,此指令會尋找使用 USB 線與電腦連接的 NXT ,若是要使用藍芽的話則只要在括號內加上 'bluetooth.ini' 即可,非常簡單,當然電腦與 NXT 的連線要先建好。此指令並會回傳一個代碼(handle)代表找到的NXT,我們把它存在變數 hNXT 裡,之後所有 NXT 指令在使用時都必須要輸入特定的代碼。當然,這樣會非常麻煩,於是在下一行的 COM_SetDefaultNXT(hNXT); 將 hNXT 設為全域的預設代碼,之後就不需要在指令後再輸入代碼了。
接下來的指令就非常簡單明瞭了,NXT_PlayTone(440, 300); 代表播放一個頻率440Hz的聲音0.3秒,pause(0.3)暫停0.3秒,最後 COM_CloseNXT(hNXT); 關閉連線。
最後提醒一下,在MATLAB裡分號是可有可無的,若是沒打分號的話,該指令相關的訊息會顯示在command window上,例如 COM_OpenNXT() 若是沒打分號,在連線建立後command window就會顯示一推 NXT 的資訊,如下圖所示: