這一回我們要玩的是搖桿模組(joystick module)。Gadgeteer的搖桿模組有X、Y兩軸的可動度,以及一個下壓的按鈕。接下來向您介紹如何讀取搖桿模組的X、Y軸數值,並用最簡單的方式──Debug.Print來呈現資料:
搖桿模組X、Y軸位置之資料型別為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
讀取搖桿模組X、Y軸位置資料,並將其顯示在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欄位看見即時的X、Y軸數值變化,我們可以看見X、Y軸的數值精密度高達小數點後16位,另外搖桿的X、Y初始位置並非很準確地在0.5這個數值。
延伸練習與挑戰
1.
結合LED模組,另用XY軸數值變化來調色