[Gadgeteer]搖桿模組X、Y軸數值變化讀取


     
這一回我們要玩的是搖桿模組(joystick module)。Gadgeteer的搖桿模組有XY兩軸的可動度,以及一個下壓的按鈕。接下來向您介紹如何讀取搖桿模組的XY軸數值,並用最簡單的方式──Debug.Print來呈現資料:

搖桿模組XY軸位置之資料型別為double,數值範圍從0-1。將搖桿如下圖擺正,向上向右為1,向下向左為0,中間則為0.5





 


本範例使用的硬體如下:


1.      FEZ Spider主板


2.      Mini USB線用來連接電腦


3.      USB供電板


4.      搖桿模組


請依照下圖接線完成即可。




程式解說


STEP1 
新增專案


      建立一個Visual Studio C#專案,專案設定如下:


名稱:[joystick_(x,y)_Position]


      版本:4.2


STEP2 
新增搖桿模組


新增joystick模組,將搖桿連接到主控制版的9號接頭。


STEP3 
讀取搖桿模組XY軸位置資料,並將其顯示在Debug欄位上


程式解說:

<Program.cs>




using System;



using
Gadgeteer.Modules.GHIElectronics;


 


namespace joystick__x_y__position


{


    public
partial class Program


    {


        GT.Timer
myTimer = new GT.Timer(1000);       //
建立一個名為myTimer的新Timer型別資料


 


        void
ProgramStarted()


        {


            myTimer.Tick += new GT.Timer.TickEventHandler(myTimer_Tick); //建立myTimer.Tick的新事件


            myTimer.Start();                              //啟動myTimer


            Debug.Print("Program Started");


        }


 


        void
myTimer_Tick(GT.Timer myTimer)


        {


            double
x = joystick.GetJoystickPosition().X; //
取得搖桿的X軸資料,型別為double


            double
y = joystick.GetJoystickPosition().Y; //
取得搖桿的Y軸資料,型別為double


            string
Sx = x.ToString();                    //
將搖桿X軸資料轉為字串


            string
Sy = y.ToString();                    //
將搖桿Y軸資料轉為字串


 


            Debug.Print("(x,y)");                                       


            Debug.Print(Sx);                             //Debug欄位顯示搖桿X軸資料


            Debug.Print(Sy);                             //Debug欄位顯示搖桿X軸資料


        }


    }


}


 


STEP5 編譯並下載


        完成程式編譯後,將組裝完畢的Gadgeteer套組連接上電腦,按下Debug鍵下載程式。


 


操作


        灌入程式後,可以在Debug欄位看見即時的XY軸數值變化,我們可以看見XY軸的數值精密度高達小數點後16位,另外搖桿的XY初始位置並非很準確地在0.5這個數值。


 



 

延伸練習與挑戰


1.     
結合LED模組,另用XY軸數值變化來調色


發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *