Gesture Controlled Robotic Car
by robopathshala in Circuits > Arduino
7554 Views, 21 Favorites, 0 Comments
Gesture Controlled Robotic Car
Hi,
This is my 13th instructable and in this tutorial, I'm going to show you, how to build a simple Gesture Controlled Robotic Car by using Arduino, accelerometer and RF modules.
Before getting started just hit the vote button because i need a new laptop for my projects i think you guyzz help me...
let's start with component we need
Components and Software
- Arduino Board
- RF315/433 module
- Wires, Pins
- Accelerometer
- L293d
- Encoder and Decoder
- Motors, Wheels & Caster Wheel
- Glove
- General purpose pcb, Soldering iron
- Power source
Circuit Diagram, Soldering, Connections
Make connection as mention below for the glove
For Gyroscope.
- Connect "SDA" from your accelerometer to analog pin 4(A4) of the Arduino.
- Connect "SCL" from your accelerometer to analog pin 5(A5) of the Arduino.
- VCC to arduino 3.3v pin.
- GND to arduino GND pin.
For Transmitter Module
- Connect VCC to arduino 5v pin.
- Connect GND to arduino GND pin.
- Connect Rest of pins of ENCODER & TRANSMITTER as per the Figure 1.
- At last connection for battery.
Make connection as mention in Figure 5. for the receiver(robotic car).
Code
#include<wire.h>
const int MPU_addr=0x68; // I2C address of the MPU-6050
int16_t X,Y,Z;
void setup()
{
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
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
X=Wire.read()<<8|Wire.read(); // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)
Y=Wire.read()<<8|Wire.read(); // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
Z=Wire.read()<<8|Wire.read(); // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)
Serial.print("AcX = "); Serial.print(X);
Serial.print(" | AcY = "); Serial.print(Y);
Serial.print(" | AcZ = "); Serial.println(Z);
delay(333);
if(X > 3000 && X < 7000 )
{
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
digitalWrite(13,HIGH);
}
else if(X < -3000 && X > -7000 )
{
digitalWrite(12,HIGH);
digitalWrite(13,LOW);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
}
else if(Y < -3000 && Y > -7000 )
{
digitalWrite(12,LOW);
digitalWrite(13,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
}
else if(Y > 3000 && Y < 7000 )
{
digitalWrite(12,HIGH);
digitalWrite(13,LOW);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
}
else
{
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
}
}
Files