Mouse.move()

描述

移動電腦上的滑鼠游標。在螢幕上,滑鼠游標的移動距離是一個相對值(即上一個位置與目前位置的距離)。在呼叫 Mouse.move() 函式之前,要先呼叫 Mouse.begin() 函式。

注意:當你呼叫 Mouse.move() 函式後,86Duino 會接管你的滑鼠游標,使它做出移動的行為(使用此函式前,請確認實體滑鼠運作是沒問題的)。 建議你可以在程式中,判斷一個外接按鈕是否按下,來決定是否送出移動 86Duino 滑鼠的命令。

語法


Mouse.move(xVal, yPos, wheel);

參數

xVal:沿著 X 軸移動的距離 – signed char 型別
yVal:沿著 Y 軸移動的距離 – signed char 型別
wheel:滾輪移動的距離 – signed char 型別

回傳

無回傳值

範例

const int xAxis = A1;         // 類比感測器1,讀值用來計算沿著 X 軸移動的距離
const int yAxis = A2;         // 類比感測器2,讀值用來計算沿著 Y 軸移動的距離

int range = 12;               // XY方向上的移動範圍
int responseDelay = 2;        // 滑鼠的響應時間(單位:毫秒)
int threshold = range/4;      // 偵測是否移動的門檻值
int center = range/2;         // 範圍的中間值
int minima[] = {1023, 1023};  // 儲存 x, y 軸上由 analogRead() 所讀到的最小值
int maxima[] = {0,0};         // 儲存 x, y 軸上由 analogRead() 所讀到的最大值
int axis[] = {xAxis, yAxis};  // 在 x, y 軸上所使用的腳位
int mouseReading[2];          // 滑鼠的 x, y 座標


void setup() {
 Mouse.begin();
}

void loop() {

// 讀取 x 和 y 軸的範圍
  int xReading = readAxis(0);
  int yReading = readAxis(1);

// 移動滑鼠
  Mouse.move(xReading, yReading, 0);
  delay(responseDelay);
}

int readAxis(int axisNumber) {
  int distance = 0;    // 滑鼠的移動距離

  // 讀取類比輸入
  int reading = analogRead(axis[axisNumber]);

  // 假如目前的讀值超過軸的最大或最小值
  // 則重新設定最大最小值
  if (reading < minima[axisNumber]) {
    minima[axisNumber] = reading;
  }
  if (reading > maxima[axisNumber]) {
    maxima[axisNumber] = reading;
  }

  // 將讀值重新映射
  reading = map(reading, minima[axisNumber], maxima[axisNumber], 0, range);

  // 假如輸出讀值已經超過移動的門檻值
  // 則計算距離中心點的長度:
  if (abs(reading - center) > threshold) {
    distance = (reading - center);
  } 

  // 為了能正確的映射出移動距離,Y 軸的值需要乘上 -1
  if (axisNumber == 1) {
    distance = -distance;
  }

  // 回傳該軸的移動距離
  return distance;
}

See also

Mouse.begin()
Mouse.click()
Mouse.end()
Mouse.press()
Mouse.release()
Mouse.isPressed()


函式庫參考主頁面

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.