Hardware Requirement
Microcontroller: Arduino Uno board, USB Cable
Motor driver: Adafruit Motor Shield
Motor: DC 3-6v BO Gear Motor & Servo Motor
Sensor: HC-SR04 Ultrasonic Sensor
Receiver: HC-05 Bluetooth module
External Power: Battery - 9V
Robot Chassis
Software Requirement
Arduino IDE
Hardware Specification
Arduino Uno
The Arduino Uno is a micro controller board which is based on the ATmega328. Arduino Uno have 14 digital input or output pins(where 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz ceramic resonator, a USB connection, a power jack, an ICSP header and a reset button. It have everything needed to support the microcontroller, you need to simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started.
Features
Easy application programming using open source IDE
Easy to learn Microcontroller using Arduino boards
256k Flash
Easy application programming using open source IDE
Ready Library for most of sensors and application modules
Specification
ATmega328 Controller
Digital IO 13
PWM Channel 6
Working Freq. 16MHz
DC current / IO 40mA
DC current / IO 50mA (3.3V)
Input Voltage 6V to 20V DC
Flash 32Kb
SRAM 2Kb
EEPROM 1Kb
Adafruit Motor Shield
The Adafruit Motor Shield is a great and quick way to control DC motors, servos or even stepper motors. It has the capability of controlling up to 2 stepper motors, 4 DCmotors. and 2 servos.
Specification
2 connections for 5V 'hobby' servos connected to the Arduino's high-resolution dedicated timer - no jitter!
4 H-Bridges: TB6612 chipset provides 1.2A per bridge (3A for brief 20ms peaks) with thermal shutdown protection, internal kickback protection diodes. Can run motors on 4.5VDC to 13.5VDC.
Up to 4 bi-directional DC motors with individual 8-bit speed selection (so, about 0.5% resolution)
Motors automatically disabled on power-up
Big terminal block connectors to easily hook up wires (18-26AWG) and power
Arduino reset button brought up top
Polarity protected 2-pin terminal block and jumper to connect external power, for separate logic/motor supplies
Tested compatible with Arduino UNO, Leonardo, ADK/Mega R3, Diecimila & Duemilanove. Works with Due with 3.3v logic jumper. Works with Mega/ADK R2 and earlier with 2 wire jumpers.
5v or 3.3v compatible logic levels - jumper configurable
DC 3-6v BO Gear Motor with Plastic Tire Wheel
A DC Geared DC motor is a simple DC motor with gear box attached to it
Features
Center hole: 5.3MM x 3.66MM
Wheel size: 65 x 26mm
Specification
Voltage: DC 3V-6V
Current: 100 MA-120MA
Reduction rate: 48: 1
RPM (With tire): 100-240
Tire Diameter: 65mm
Car Speed(M/minute): 20-48
Motor Weight (g): 29/each
Motor Size: 70mm X 22mm X 18mm
Noise: <65dB
Servo motor
A servo motor is an electrical device which can push or rotate an object with great precision. If you want to rotate and object at some specific angles or distance, then you use servo motor. It is just made up of simple motor which run through servo mechanism.
Hardware Features TowerPro SG-90
Operating Voltage is +5V typically
Torque: 2.5kg/cm
Operating speed is 0.1s/60°
Gear Type: Plastic
Rotation : 0°-180°
Weight of motor : 9gm
Package includes gear horns and screws/li>
How to use a Servo Motor
To make this motor rotate, we have to power the motor with +5V using the Red and Brown wire and send PWM signals to the Orange colour wire. Hence we need something that could generate PWM signals to make this motor work, this something could be anything like a 555 Timer or other Microcontroller platforms like Arduino, PIC, ARM or even a microprocessor like Raspberry Pie. Now, how to control the direction of the motor? To understand that let us look at the picture given in the datasheet.
From the picture we can understand that the PWM signal produced should have a frequency of 50Hz that is the PWM period should be 20ms. Out of which the On-Time can vary from 1ms to 2ms. So when the on-time is 1ms the motor will be in 0° and when 1.5ms the motor will be 90°, similarly when it is 2ms it will be 180°. So, by varying the on-time from 1ms to 2ms the motor can be controlled from 0° to 180°
Application
Used as actuators in many robots like Biped Robot, Hexapod, robotic arm etc..
Commonly used for steering system in RC toys
Robots where position control is required without feedback
Less weight hence used in multi DOF robots like humanoid robots
Ultrasonic sensor
As the name indicates, ultrasonic sensors measure distance by using ultrasonic waves. The sensor head emits an ultrasonic wave and receives the wave reflected back from the target. Ultrasonic Sensors measure the distance to the target by measuring the time between the emission and reception.
An optical sensor has a transmitter and receiver, whereas an ultrasonic sensor uses a single ultrasonic element for both emission and reception. In a reflective model ultrasonic sensor, a single oscillator emits and receives ultrasonic waves alternately. This enables miniaturization of the sensor head.
The distance can be calculated with the following formula: Distance L = 1/2 × T × C
where L is the distance, T is the time between the emission and reception, and C is the sonic speed. (The value is multiplied by 1/2 because T is the time for go-and-return distance.)
Robot Chassis
You can use any Robot Chassis availble in the market to mount all the parts use in this project
Circuit Diagram
Limitations
As the range of the Bluetooth Communication is limited (a maximum of 10 meters for class 2 devices for example) the control range of Bluetooth Controlled Robot is also limited.
Make sure that sufficient power is provided to all the modules, especially the Bluetooth Module. If the power is not sufficient, even though the Bluetooth Module powers on, it cannot transmit data or cannot be paired with other Bluetooth devices.
Application
Low range Mobile Surveillance Devices
Military Applications (no human intervention)
Assistive devices (like wheelchairs)
Home automation