mpu 6050의 x축 y 축 z축에 대한 값을 0-180으로 mapping하여 블루투스를 통해 다른 아두이노에 전송할려고 합니다.
//master code
#include
#include
#include
MPU6050 mpu;
SoftwareSerial btSerial(3,2);
// Timers
unsigned long timer = 0;
float timeStep = 0.01;
// Pitch, Roll and Yaw values
float pitch = 0;
float roll = 0;
float yaw = 0;
int prepitch=0;
int preroll=0;
int preyaw=0;
void setup()
{
btSerial.begin(115200);
Serial.begin(115200);
// Initialize MPU6050
while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))
{
Serial.println("Could not find a valid MPU6050 sensor, check wiring!");
delay(500);
}
// Calibrate gyroscope. The calibration must be at rest.
// If you don't want calibrate, comment this line.
mpu.calibrateGyro();
// Set threshold sensivty. Default 3.
// If you don't want use threshold, comment this line or set 0.
mpu.setThreshold(3);
}
void loop()
{
timer = millis();
// Read normalized values
Vector norm = mpu.readNormalizeGyro();
// Calculate Pitch, Roll and Yaw
pitch = pitch + norm.YAxis * timeStep;
roll = roll + norm.XAxis * timeStep;
yaw = yaw + norm.ZAxis * timeStep;
int pitchmap= map(pitch ,-100,100,0,180);
int rollmap = map(roll,-100,100,0,180);
int yawmap = map(yaw, -100,100,0, 180);
Serial.print(pitchmap);
Serial.print(rollmap);
Serial.println(yawmap);
delay(100);
btSerial.println(pitchmap);
delay(100);
btSerial.println(rollmap);
delay(100);
btSerial.println(yawmap);
}
//slave
#include
SoftwareSerial btSerial(3,2);
void setup() {
btSerial.begin(115200);
Serial.begin(115200);
}
void loop() {
if(btSerial.available()){
int a =btSerial.parseInt();
Serial.println(a);
int b=btSerial.parseInt();
Serial.println(b);
int c=btSerial.parseInt();
Serial.println(c);
delay(100);
}
}
각각 master code와 slave 코드는 위와 같습니다. master code에서 serial print를 통해 각 pitchmap rollmap yawmap이 잘 나오는 것을 확인하였으며 master와 slave는 페어링이 되는 것 또한 확인했습니다. parseInt와 println을 통해 따로 변수에 있는 숫자 값을 블루투스로 전송되는 것 또한 확인하였습니다. 하지만 저렇게 코딩을 넣을 경우 slave에 있는 serial monitor에서 master의 mpu 6050의 x,y,z축에 변화를 주어도 90이라는 일정한 값이 출력됩니다. 처음에는 통신 속도의 문제라 생각하여 9600에서 115200으로 올렸는데도 같은 결과를 가져오네요...
어떤 부분이 문제일까요...?
|
이전글 |
초음파센서 NAN값 처리 방법 문의
|
2020-06-19 |