Introduction: 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
Step 1: 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
Step 2: 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).
Step 3: 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); } }