Arduinoリファレンス

Arduinoリファレンスの日本語訳のページです
garretlab
move()

名称

move()

説明

接続したPCのマウスカーソルを動かす。画面上の動きは、常にマウスカーソルの現在位置との相対値で表す。Mouse.move()を使う前に、Mouse.begin()を呼ぶ必要がある。

注意:Mouse.move()コマンドを使うと、Arduinoはマウスを横取りする。このコマンドを使う前に制御可能であることを確認すること。マウス制御状態をトグルする押しボタンを使うのが効果がある。

書式

void Mouse_::move(signed char x, signed char y, signed char wheel)

引数

x X軸方向に動かす量
y Y軸方向に動かす量
wheel マウスホイールをスクロールする量

戻り値

なし

使用例

const int xAxis = A1;         // X軸用アナログセンサ  
const int yAxis = A2;         // Y軸用アナログセンサ

int range = 12;               // X/Yの移動の出力範囲
int responseDelay = 2;       // マウスの反応の遅延。単位はミリ秒
int threshold = range/4;      // 静止状態を表す閾値
int center = range/2;         // 出力幅の中心
int minima[] = {
  1023, 1023};                // 実際のanalogRead()の最小値(X軸、Y軸)
int maxima[] = {
  0,0};                       // 実際のanalogRead()の最小値(X軸、Y軸)
int axis[] = {
  xAxis, yAxis};              // X軸・Y軸を制御するためのアナログピン番号
int mouseReading[2];          // 最後のマウスの読み取り値


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

void loop() {

// 2つの軸の値を読み取り縮小する
  int xReading = readAxis(0);
  int yReading = readAxis(1);

// マウスを動かす
    Mouse.move(xReading, yReading, 0);
    delay(responseDelay);
}

/*
  軸(0のときはX軸、1のときはY軸)を読み取り、
 アナログ入力値を 0 から rangeの範囲に縮小する
*/

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軸は正負を逆転させる必要がある
  if (axisNumber == 1) {
    distance = -distance;
  }

  // 軸の移動距離を返す
  return distance;
}

バージョン

Arduino 1.8.4

オリジナルのページ

https://www.arduino.cc/en/Reference/MouseMove



メニューを表示するためにJavaScriptを有効にしてください。

inserted by FC2 system