- Katılım
- 21 Haziran 2021
- Mesajlar
- 39
- Reaksiyon skoru
- 5
Merahaba,Pictoblox ile MPU6050 sensörünü kullanmaya çalışıyorum.X ekseninde açı okumam gerek ancak sürekli düşüyor.Kütüphane MPU6050.h.yardım ederseniz sevinirim.
//This c++ code is generated by PictoBlox
//Included Libraries
#include <Dabble.h>
#include <Servo.h>
#include <motor.h>
#include <MPU6050.h>
//MACROS are defined here
Motor Motor1(12, 11, 10);
Motor Motor2(8, 7, 9);
MPU6050 IMUSensor;
//Gloabl Variables are declared here
float angle;
float error;
void setup() {
//put your setup code here, to run once:
Dabble.begin(9600);
IMUSensor.init();
Motor1.moveMotor(2.55*0);
Motor2.moveMotor(2.55*0);
}
void loop() {
//put your main code here, to run repeatedly:
Dabble.processInput();
IMUSensor.readDataFromSensor(0.98);
Dabble.processInput();
if(GamePad.isPressed(7)) {
Motor1.lockMotor();
Motor2.lockMotor();
}
if(GamePad.isPressed(0)) {
angle = float(IMUSensor.getData(1));
Dabble.processInput();
Motor1.moveMotor(2.55*100);
Motor2.moveMotor(2.55*100);
while(!(!(GamePad.isPressed(0)))) {
Dabble.processInput();
error = (angle - IMUSensor.getData(1));
if((2 < error)) {
Motor1.moveMotor(2.55*0);
Motor2.moveMotor(2.55*100);
}
if((error < -2)) {
Motor1.moveMotor(2.55*100);
Motor2.moveMotor(2.55*0);
}
}
}
else {
if(GamePad.isPressed(1)) {
angle = float(IMUSensor.getData(1));
Motor1.moveMotor(-2.55*100);
Motor2.moveMotor(-2.55*100);
Dabble.processInput();
while(!(!(GamePad.isPressed(1)))) {
Dabble.processInput();
error = (angle - IMUSensor.getData(1));
if((2 < error)) {
Motor1.moveMotor(-2.55*65);
Motor2.moveMotor(-2.55*100);
}
if((error < -2)) {
Motor1.moveMotor(-2.55*100);
Motor2.moveMotor(-2.55*65);
}
}
}
else {
if(GamePad.isPressed(2)) {
Motor1.moveMotor(2.55*50);
Motor2.moveMotor(-2.55*50);
}
else {
if(GamePad.isPressed(3)) {
Motor1.moveMotor(-2.55*50);
Motor2.moveMotor(2.55*50);
}
else {
Motor1.moveMotor(-2.55*0);
Motor2.moveMotor(2.55*0);
}
}
}
}
}
//This c++ code is generated by PictoBlox
//Included Libraries
#include <Dabble.h>
#include <Servo.h>
#include <motor.h>
#include <MPU6050.h>
//MACROS are defined here
Motor Motor1(12, 11, 10);
Motor Motor2(8, 7, 9);
MPU6050 IMUSensor;
//Gloabl Variables are declared here
float angle;
float error;
void setup() {
//put your setup code here, to run once:
Dabble.begin(9600);
IMUSensor.init();
Motor1.moveMotor(2.55*0);
Motor2.moveMotor(2.55*0);
}
void loop() {
//put your main code here, to run repeatedly:
Dabble.processInput();
IMUSensor.readDataFromSensor(0.98);
Dabble.processInput();
if(GamePad.isPressed(7)) {
Motor1.lockMotor();
Motor2.lockMotor();
}
if(GamePad.isPressed(0)) {
angle = float(IMUSensor.getData(1));
Dabble.processInput();
Motor1.moveMotor(2.55*100);
Motor2.moveMotor(2.55*100);
while(!(!(GamePad.isPressed(0)))) {
Dabble.processInput();
error = (angle - IMUSensor.getData(1));
if((2 < error)) {
Motor1.moveMotor(2.55*0);
Motor2.moveMotor(2.55*100);
}
if((error < -2)) {
Motor1.moveMotor(2.55*100);
Motor2.moveMotor(2.55*0);
}
}
}
else {
if(GamePad.isPressed(1)) {
angle = float(IMUSensor.getData(1));
Motor1.moveMotor(-2.55*100);
Motor2.moveMotor(-2.55*100);
Dabble.processInput();
while(!(!(GamePad.isPressed(1)))) {
Dabble.processInput();
error = (angle - IMUSensor.getData(1));
if((2 < error)) {
Motor1.moveMotor(-2.55*65);
Motor2.moveMotor(-2.55*100);
}
if((error < -2)) {
Motor1.moveMotor(-2.55*100);
Motor2.moveMotor(-2.55*65);
}
}
}
else {
if(GamePad.isPressed(2)) {
Motor1.moveMotor(2.55*50);
Motor2.moveMotor(-2.55*50);
}
else {
if(GamePad.isPressed(3)) {
Motor1.moveMotor(-2.55*50);
Motor2.moveMotor(2.55*50);
}
else {
Motor1.moveMotor(-2.55*0);
Motor2.moveMotor(2.55*0);
}
}
}
}
}