#やろうとしていること
今、Arudinoを用いて加速度センサーとbluetoothモジュール(RN42評価キット)を繋げ(外部電源)、パソコンのbluetoothを介して加速度センサーでサーブモーターを制御しようとしています。
そこでプログラミングについての質問なのですが
#「加速度センサーとbluetoothモジュール側」
include <Servo.h>
int BTReset = 3;
Servo myservoX;
Servo myservoY;
void setup()
{
digitalWrite(BTReset, LOW);
delay(100);
digitalWrite(BTReset, HIGH);
delay(500);
// シリアルモニターの初期化をする
Serial.begin(115200) ;
myservoX.attach( 5 );
myservoY.attach( 6 );
}
void loop()
{
int i ;
long x , y;
// 各データを100回読み込んで平均化する
x = y = 0 ;
for (i=0 ; i < 100 ; i++) {
x = x + analogRead(3) ; // X軸を読み込む
y = y + analogRead(4) ; // Y軸を読み込む
}
x = x / 100 ;
y = y / 100 ;
int rotateX = (x-198)/7.8888; //角度を求める式
Serial.print("X:") ;
Serial.print(x) ;
Serial.print(" ") ;
Serial.print(rotateX) ;
int rotateY = (y-220)/7.02;
myservoY.write( 90-rotateY );
Serial.print(" Y:") ;
Serial.print(y) ; // Y軸
Serial.print(" ") ;
Serial.println(rotateY) ; // Y軸
delay(10) ;
}
#「サーブモータ側」
include <Servo.h>
Servo myservoX;
Servo myservoY;
void setup()
{
// シリアルモニターの初期化をする
Serial.begin(115200) ;
myservoX.attach( 5 );
myservoY.attach( 6 );
}
void loop()
{
int i ;
long x , y;
// 各データを100回読み込んで平均化する
x = y = 0 ;
for (i=0 ; i < 100 ; i++) {
x = x + analogRead(3) ; // X軸を読み込む
y = y + analogRead(4) ; // Y軸を読み込む
}
x = x / 100 ;
y = y / 100 ;
int rotateX = (x-198)/7.8888; //角度を求める式
Serial.print("X:") ;
Serial.print(x) ;
Serial.print(" ") ;
Serial.print(rotateX) ;
int rotateY = (y-220)/7.02;
myservoY.write( 90-rotateY );
Serial.print(" Y:") ;
Serial.print(y) ; // Y軸
Serial.print(" ") ;
Serial.println(rotateY) ; // Y軸
delay(10) ;
}
以上のプログラミングで試したら、加速度センサーでのシリアルモニターが止まったりし、全くモーターが動かないのですが、どこを直したらいいかよくわかりません…
わかる方がいたらぜひ教えて頂きたいです!
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/20 09:11