2009年11月8日日曜日

ArduinoでJoyStick

300円でアナログコントローラが売っていたので、買ってきました。Arduinoにつないで、サーボをコントロールしてみます。

DigitalPin7 Servo01
DigitalPin8 Servo02

Analog IN 0 JoyStickの垂直方向の出力
Analog IN 1 JoyStickの水平方向の出力

あとは、電源を適当につないでスケッチ書きました。


#include <Servo.h>

int joyPin1 = 0;
int joyPin2 = 1;
int value1 = 0;
int value2 = 0;
int pos, Szero01=73, Szero02=73;

Servo servo01;
Servo servo02;

void setup() {
  servo01.attach(8);
  servo02.attach(9);
}

int posValue(int data, int zero) {
  return(data/20.5+zero);
}

void loop() {
  value1 = analogRead(joyPin1);
  value2 = analogRead(joyPin2);
  pos = posValue(value1,Szero01);
  servo01.write(pos);
  pos = posValue(value2,Szero02);
  servo02.write(pos);
  delay(10);
}



こんな感じです。

int posValue(int data, int zero) {
return(data/20.5+zero);
}

の部分で、アナログコントローラの出力を、使用するサーボ(今回は、PARALLAX製無限回転サーボ)にあわせて変換しています。

0 件のコメント:

コメントを投稿