Need Arduino Gesture Controlled Robot Code - MPU6050!! Will Pay$$ !!

Hey guys.

$ Im willing to pay for the work completed $ its quite urgent

I've been asked to take my queries over to this part of the forum (my original post is still active and i know double posting isnt accepted but i cant remove :confused: ).

The help is regarding a robotic car i've made thats based on a Arduino Uno and MPU6050. Attached as images are basic IPO's of the system and the wiring diagrams (the nano is swapped for Uno).

Ive written an application code for the Arduino but the only reading i get is backwards. The code is as follows:

int xPin=A4; //X axis input
int yPin=A5; //Y axis input
int zPin=A1; //Z axis input(not used)
int Q1=10,Q2=11,Q3=12,Q4=13; //Output pins to be connected to 10, 11, 12, 13 of Decoder IC
long x; //Variabe for storing X coordinates
long y; //Variabe for storing Y coordinates
long z; //Variabe for storing Z coordinates
void setup()
{
  Serial.begin(9600);
  Serial.println("Initialize MPU6050");
  pinMode(Q1,OUTPUT);
  pinMode(Q2,OUTPUT);
  pinMode(Q3,OUTPUT);
  pinMode(Q4,OUTPUT);
 
}
void loop()
{
  x = analogRead(xPin); //Reads X coordinates
  y = analogRead(yPin); //Reads Y coordinates
  z = analogRead(zPin); //Reads Z coordinates (Not Used)
    if(x<500)      // Change the value for adjusting sensitivity  
      forward();
    else if(x>500) // Change the value for adjusting sensitivity
      backward();
    else if(y>500) // Change the value for adjusting sensitivity
      right();
    else if(y<500) // Change the value for adjusting sensitivity
      left();
    else
      stop_();
}
void stop_()
{
  Serial.println("");
  Serial.println("STOP");
  digitalWrite(Q1,LOW);
  digitalWrite(Q2,LOW);
  digitalWrite(Q3,LOW);
  digitalWrite(Q4,LOW);
}
void forward()
{
  Serial.println("");
  Serial.println("Forward");
  digitalWrite(Q1,HIGH);
  digitalWrite(Q2,LOW);
  digitalWrite(Q3,HIGH);
  digitalWrite(Q4,LOW);
}
void backward()
{
  Serial.println("");
  Serial.println("Backward");
  digitalWrite(Q1,LOW);
  digitalWrite(Q2,HIGH);
  digitalWrite(Q3,LOW);
  digitalWrite(Q4,HIGH);
}
void left()
{
  Serial.println("");
  Serial.println("Left");
  digitalWrite(Q1,LOW);
  digitalWrite(Q2,HIGH);
  digitalWrite(Q3,HIGH);
  digitalWrite(Q4,LOW);
}
void right()
{
  Serial.println("");
  Serial.println("Right");
  digitalWrite(Q1,HIGH);
  digitalWrite(Q2,LOW);
  digitalWrite(Q3,LOW);
  digitalWrite(Q4,HIGH);
}

I have also programmed the arduino with an example sketch which lets me see all the values that the accelerometer is transferring on real time. The code for that exmple sketch is below:

#include<Wire.h>
const int MPU_addr=0x68;  // I2C address of the MPU-6050
int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;
void setup(){
  Wire.begin();
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x6B);  // PWR_MGMT_1 register
  Wire.write(0);     // set to zero (wakes up the MPU-6050)
  Wire.endTransmission(true);
  Serial.begin(9600);
}
void loop(){
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x3B);  // starting with register 0x3B (ACCEL_XOUT_H)
  Wire.endTransmission(false);
  Wire.requestFrom(MPU_addr,14,true);  // request a total of 14 registers
  AcX=Wire.read()<<8|Wire.read();  // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)     
  AcY=Wire.read()<<8|Wire.read();  // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
  AcZ=Wire.read()<<8|Wire.read();  // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)
  Tmp=Wire.read()<<8|Wire.read();  // 0x41 (TEMP_OUT_H) & 0x42 (TEMP_OUT_L)
  GyX=Wire.read()<<8|Wire.read();  // 0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
  GyY=Wire.read()<<8|Wire.read();  // 0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L)
  GyZ=Wire.read()<<8|Wire.read();  // 0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L)
  Serial.print("AcX = "); Serial.print(AcX);
  Serial.print(" | AcY = "); Serial.print(AcY);
  Serial.print(" | AcZ = "); Serial.print(AcZ);
  Serial.print(" | Tmp = "); Serial.print(Tmp/340.00+36.53);  //equation for temperature in degrees C from datasheet
  Serial.print(" | GyX = "); Serial.print(GyX);
  Serial.print(" | GyY = "); Serial.print(GyY);
  Serial.print(" | GyZ = "); Serial.println(GyZ);
  delay(333);
}

The values that im receiving from the MPU6050 when i perform the 5 gestures; (stop, forward, backward, left, right) are as follows:

Stop:
AcX = 1012 | AcY = 412 | AcZ = 11184 | Tmp = 25.24 | GyX = 10 | GyY = -18 | GyZ = -27
AcX = 1132 | AcY = 532 | AcZ = 11048 | Tmp = 25.24 | GyX = 9 | GyY = -20 | GyZ = -21
AcX = 1108 | AcY = 400 | AcZ = 11160 | Tmp = 25.33 | GyX = 12 | GyY = -18 | GyZ = -22
AcX = 1036 | AcY = 448 | AcZ = 11056 | Tmp = 25.33 | GyX = 9 | GyY = -20 | GyZ = -23
AcX = 1116 | AcY = 516 | AcZ = 11008 | Tmp = 25.42 | GyX = 8 | GyY = -17 | GyZ = -24
Forward:
AcX = -6688 | AcY = 468 | AcZ = 9236 | Tmp = 24.91 | GyX = 10 | GyY = -54 | GyZ = -23
AcX = -6732 | AcY = 508 | AcZ = 9420 | Tmp = 24.86 | GyX = 13 | GyY = 1 | GyZ = -1
AcX = -6696 | AcY = 476 | AcZ = 9136 | Tmp = 25.00 | GyX = 7 | GyY = -48 | GyZ = -4
AcX = -6756 | AcY = 524 | AcZ = 9288 | Tmp = 25.00 | GyX = 10 | GyY = -22 | GyZ = -19
AcX = -6792 | AcY = 504 | AcZ = 9220 | Tmp = 25.05 | GyX = 21 | GyY = -33 | GyZ = -4
Backward:
AcX = 8568 | AcY = 244 | AcZ = 9236 | Tmp = 25.33 | GyX = 5 | GyY = -22 | GyZ = -24
AcX = 8460 | AcY = 224 | AcZ = 9276 | Tmp = 25.42 | GyX = 6 | GyY = -18 | GyZ = -15
AcX = 8512 | AcY = 252 | AcZ = 9176 | Tmp = 25.42 | GyX = 9 | GyY = -23 | GyZ = -8
AcX = 8536 | AcY = 208 | AcZ = 9220 | Tmp = 25.38 | GyX = 6 | GyY = -21 | GyZ = -17
AcX = 8524 | AcY = 160 | AcZ = 9208 | Tmp = 25.57 | GyX = 8 | GyY = -21 | GyZ = -15
Left:
AcX = 1100 | AcY = -6436 | AcZ = 9384 | Tmp = 25.66 | GyX = -4 | GyY = -30 | GyZ = -23
AcX = 1016 | AcY = -6412 | AcZ = 9560 | Tmp = 25.80 | GyX = 13 | GyY = -18 | GyZ = -19
AcX = 1108 | AcY = -6420 | AcZ = 9408 | Tmp = 25.71 | GyX = -3 | GyY = -36 | GyZ = -10
AcX = 1052 | AcY = -6384 | AcZ = 9464 | Tmp = 25.71 | GyX = 20 | GyY = -22 | GyZ = -13
AcX = 964 | AcY = -6388 | AcZ = 9596 | Tmp = 25.75 | GyX = 6 | GyY = -23 | GyZ = -14
Right:
AcX = 1024 | AcY = 6708 | AcZ = 9972 | Tmp = 25.28 | GyX = 8 | GyY = -21 | GyZ = -17
AcX = 1008 | AcY = 6600 | AcZ = 9940 | Tmp = 25.38 | GyX = 10 | GyY = -22 | GyZ = -12
AcX = 1104 | AcY = 6724 | AcZ = 9784 | Tmp = 25.33 | GyX = -7 | GyY = -29 | GyZ = -39
AcX = 1072 | AcY = 6736 | AcZ = 9928 | Tmp = 25.38 | GyX = 7 | GyY = -22 | GyZ = -15
AcX = 1064 | AcY = 6636 | AcZ = 10008 | Tmp = 25.38 | GyX = 9 | GyY = -20 | GyZ = -15

All i need for the arduino to do is get the data from the MPU6050 map it to a gesture and then feed that into the encoder and rf transmitter.

Thanks Henza64

check your PM

did you figure it out? would you be able to help me?