大した内容ではありませんが、最後にArduino Pro Micro用のコードもアップしておきます。アナログ入力の回路自体はとても簡単なので、ポテンショメータの実装はこちらやこちらなどを参考にしてみてください。
以下コードです。
------------------------------------------------------------------------------------------
//trim cube v2.00
#include "Joystick.h"
int xAxis = 512;
int yAxis = 512;
int zAxis = 512;
int currentXAxis = 512;
int currentYAxis = 512;
int currentZAxis = 512;
int dev = 0;
int dev2 = 0;
int mon = 0; // mon = 1のとき、シリアルモニタ出力
//ジョイスティックの開始
Joystick_ Joystick;
void setup() {
//シリアルモニタ開始
Serial.begin(9600);
//ジョイスティックの初期化
Joystick.begin();
}
void loop() {
//X軸読み取り
xAxis = analogRead(A1);
dev = xAxis - currentXAxis;
dev2 = dev * dev;
//チャタリング防止のため、従来値と現在値の差が2以上の場合、データ更新
if (dev2 > 2){
//ジョイスティック出力
Joystick.setXAxis(xAxis);
//従来値を更新
currentXAxis = xAxis;
if (mon == 1){
Serial.print("x = ");
Serial.println(xAxis);
}
}
//Y軸読み取り
yAxis = analogRead(A2);
dev = yAxis - currentYAxis;
dev2 = dev * dev;
//チャタリング防止のため、従来値と現在値の差が2以上の場合、データ更新
if (dev2 > 2){
//ジョイスティック出力
Joystick.setYAxis(yAxis);
//従来値を更新
currentYAxis = yAxis;
if (mon == 1){
Serial.print("y = ");
Serial.println(yAxis);
}
}
//Z軸読み取り
zAxis = analogRead(A3);
dev = zAxis - currentZAxis;
dev2 = dev * dev;
//チャタリング防止のため、従来値と現在値の差が2以上の場合、データ更新
if (dev2 > 2){
//ジョイスティック出力
Joystick.setZAxis(zAxis);
//従来値を更新
currentZAxis = zAxis;
if (mon == 1){
Serial.print("z = ");
Serial.println(zAxis);
}
}
}
0 件のコメント:
コメントを投稿