You may have come across many tutorials about accelerometer controlled wireless robot (also known as gesture controlled or glove controlled) but all of them would have a microcontroller. This tutorial teaches you how to make them without using any microcontroller.
Fig. 1: Prototype of Microcontroller Less Accelerometer Controlled Robotic Car
Image: Final Image of Accelerometer Controlled Robot
Components required:
Block Diagram:
Fig. 2: Block Diagram of Microcontroller Less Accelerometer Controlled Robotic Car
Accelerometer
Fig. 3: Image showing MMA7361L Accelerometer Module
These sensors give analog output proportional to the tilt angle or orientation. We’ll discuss about this later.
LM324 Op-Amp
LM324 consists of four operational amplifiers which we would use as comparators. One of the inputs of each op-amp would be connected to the accelerometer’s output. And other inputs would be connected to their respective potentiometers which would be tuned later to give the required digital output.
Fig. 4: Image showing Accelerometer Axis’s on a plane with reference to hand
Fig. 5: Image showing Accelerometer Axis’s in three dimensions with reference to hand
These are the four orientations we would be assigning:
Fig. 6: Image showing Accelerometer Orientations by hand for navigating robot
VOLTAGE READING |
TILT DIRECTION |
||||
(in Volts) |
NO TILT |
FORWARD |
BACKWARD |
RIGHT |
LEFT |
X |
1.65 |
NA |
NA |
2.3 |
1.1 |
Y |
1.65 |
2.2 |
1.1 |
NA |
NA |
Now depending on these voltage values, we need to tune the potentiometers to get the correct digital output. Consider the following diagram
Fig. 7: Circuit Diagram of MMA7361L Accelerometer and LM324 based circuitry for sensing analog voltage for X axis
Now depending on these voltage values, we need to tune the potentiometers to get the correct digital output. Consider the following diagram Here Vx is the analog voltage coming from the X output; V1 and V2 are output voltages of the potentiometers. Remember V2 > V1. The circuit follows the below table:
Conditions |
Output 1 |
Output 2 |
Vx > V2 |
LOW |
HIGH |
Vx < V1 |
HIGH |
LOW |
V2>Vx>V1 |
LOW |
LOW |
Then we would get the below 4-bit output from the LM324 IC:
Tilt Direction |
O1 |
O2 |
O3 |
O4 |
FORWARD |
1 |
0 |
0 |
0 |
BACKWARD |
0 |
1 |
0 |
0 |
RIGHT |
0 |
0 |
1 |
0 |
LEFT |
0 |
0 |
0 |
1 |
For Encoder/Decoder and RF ASK transmitter/Receiver, refer to this tutorial: http://www.engineersgarage.com/electronic-circuits/dc-motor-control-circuit-wireless-rf
Motor Driver
We will be using L293D motor driver which can control two motors bi-directionally. The reason we use a motor driver is because circuits (most of them)/ microcontroller work at a different voltage level when compared to the motor and they cannot provide enough current to the motors. L293D has 4 inputs and 4 output terminals. Here is a table showing the input combinations and corresponding outputs.
INPUTS |
MOTOR DIRECTION |
ROBOT’S MOTION |
||||
I1 |
I2 |
I3 |
I4 |
LEFT MOTOR |
RIGHT MOTOR |
|
1 |
0 |
0 |
1 |
ANTI CLOCKWISE |
CLOCKWISE |
FORWARD |
0 |
1 |
1 |
0 |
CLOCKWISE |
ANTI CLOCKWISE |
BACKWARD |
1 |
0 |
1 |
0 |
ANTI CLOCKWISE |
ANTI CLOCKWISE |
RIGHT |
0 |
1 |
0 |
1 |
CLOCKWISE |
CLOCKWISE |
LEFT |
Why was a microcontroller needed?
Well if you carefully compare the output table of LM324 IC and the Input table for Motor driver, you would notice a problem.
COMPARATOR OUTPUT |
MOTOR DRIVER INPUT |
DIRECTION |
||||||
O1 |
O2 |
O3 |
O4 |
I1 |
I2 |
I3 |
I4 |
|
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
FORWARD |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
BACKWARD |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
RIGHT |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
LEFT |
Out of 4bits coming from the comparator, only one is high at a time whereas for motor driver, to drive the motors correctly requires two bits to be high and that too in a particular order. That’s where the microcontroller comes into play. We program it in such a way that it takes in the output from the comparator and gives out the correct sequence to the motor driver. Like this:
How I eliminated the microcontroller?
Fig. 8: Circuit Diagram of Digital Gates used in place of Microcontroller to control movement of Robotic Car
At Gate A, I1 = O1 + O3
Gate B, I2 = O2 + O4
Gate C, I3 = O3 + O2
Gate D, I4 = O4 + O1
Hardware Setup:
Gather all the parts shown in the image.
Fig. 9: Image of Components required for making Robotic Car
Attach the motors to the chassis and then the wheels to the axle.
Fig. 10: Image showing DC Motor attached Metallic Frame of the Robot’s Body
Fig. 11: Image showing wheel attached to DC motor on Robotic Car
Use some screws and bolts to attach the castor wheel
Fig. 12: Image showing Caster Wheel attached on Front Side of the Robotic Car
Arrange the transmitter and receiver circuit as per the circuit diagram.
Fig. 13: Image showing Frame of Robotic Car fully assembled with DC Motors and Wheels
Arrange the transmitter and receiver circuit as per the circuit diagram.
Fig. 14: Prototypes of Transmitter and Receiver Circuits for Robotic Car designed on Breadboards
Connect the motors to the motor driver output, and power both the transmitter and receiver. That’s it! You are ready to go!
Fig. 15: Prototypes of Receiver Circuit attached to Robotic Car
Circuit Diagrams
Circuit-Diagram-RF-Transmitter-Designed-Accelerometer-Controlled-Microcontroller-Less-Robotic-Car | |
Circuit-Diagram-RF-Receiver-Designed-Accelerometer-Controlled-Microcontroller-Less-Robotic-Car |
Project Video
Filed Under: Electronic Projects
Filed Under: Electronic Projects
Questions related to this article?
👉Ask and discuss on EDAboard.com and Electro-Tech-Online.com forums.
Tell Us What You Think!!
You must be logged in to post a comment.