Robocar With Wireless Steering Project

We have seen many projects where a robot is controlled by a remote controller. Here we describe a robot that can be steered in any direction just like you drive your car. Wireless steering senses the motion and transmits corresponding instruction to control the robot through RF communication. The robot also has an obstacle detection and avoidance system implemented. Fig. 1 shows prototypes of the wireless steering and the controlled robot.


Fig. 1: Prototypes of the wireless steering and the robot

Circuit and working
 
Fig. 2 shows the block diagram of the complete project. The movement of the steering is sensed by the accelerometer. The data from the accelerometer is processed by Arduino Uno board and corresponding instructions transmitted through the RF transmitter to control the robot. The robot receives the instructions and the MCU section drives motors corresponding to instructions received. Obstacle detectors sense any object in the way and intimate the microcontroller to stop forward motion.

Figs 3 and 4 show circuits of the wireless steering and the robot, respectively.

Wireless steering. It is built around Arduino Uno board (Board1), encoder HT12E (IC1), regulator 7805 (IC2), 433MHz RF transmitter module, accelerometer module and a few discrete components. Pins A0, A1, A2, A3, A4 and A5 of Board1 are connected to pins ST, Z-axis, Y-axis, X-axis, GND and VCC of the accelerometer module, respectively.

The microcontroller of Board1 receives data for x, y and z axes from the accelerometer. This data is continuously compared with predefined values for each axis. If the received value for any axis crosses the predefined value, a corresponding 4-bit code is generated at pins 8 through 11. This code is encoded through IC1 and transmitted using RF transmitter module.

Accelerometer module. An accelerometer is an electromechanical device that measures acceleration of anything that it is mounted on. The accelerometer module used here is based on ADXL335 triple-axis accelerometer from Analog Devices. The sensor has a full sensing range of ±3g.



Fig. 2: Block diagram of the complete project

Arduino Uno board. Arduino is an Open Source electronics prototyping platform based on flexible, easy-to-use hardware and software. It is intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environments.

Arduino Uno is a board based on ATmega328 microcontroller. It consists of 14 digital input/output pins, six analogue inputs, a USB connection for programming the on-board microcontroller, a power jack, an ICSP header and a reset button. It is operated with a 16MHz crystal oscillator and contains everything needed to support the microcontroller. It is very easy to use as the user simply needs to connect it to a computer with a USB cable or power it with an AC-to-DC adaptor or battery to get started. The microcontroller on the board is programmed using Arduino programming language and Arduino development environment.



Fig. 3: Circuit of the wireless steering

Fig. 4: Circuit of the robot

Robot. It comprises an RF receiver module, decoder HT12D (IC3), microcontroller PIC16F877A (IC4), operational amplifier LM324 (IC5), motor driver L293D (IC6), regulator 7805 (IC7) and a few discrete components.

 Data transmitted from the wireless steering is received by the RF receiver module and further decoded by IC3. Decoded data is fed to pins RC0 through RC3 of microcontroller IC4. Identical addresses can be selected for the encoder and the decoder through switches DIP1 and DIP2. The outputs from pins RD0 through RD3 of the microcontroller are fed to IN1 through IN4 of driver IC6 to drive motors M1 and M2, respectively. Enable pins EN1 (pin 1) and EN2 (pin 9) are kept high for always-enabled output.

Regulator IC7 is used for 5V regulated supply. 12V battery supply is directly connected to pin 8 of motor driver IC6. Two IR transmitter-receiver pairs are used for obstacle detection. Presets VR1 and VR2 are used to set the reference voltage for the two operational amplifiers in IC5, respectively.

  
When the robot reaches close to an obstacle, IR beam reflected off the obstacle is detected. Voltage at the inverting pins 2 and 6 of IC5 goes lower than the reference voltage and the output of both the operational amplifiers becomes high. The same is indicated by LED4 and LED5.

Output from pins 1 and 7 of IC5 is fed to pins RC5 and RC4 of microcontroller IC4, respectively. Microcontroller controls the motor corresponding to the data received from the transmitter and obstacle-detection system. Any obstacle will block forward movement but motion in the other directions is still allowed.




 Fig. 5: An actual-size, single-side PCB for the wireless steering

 Fig. 6: Component layout for the PCB in Fig. 5

Working of the circuit is straightforward. Hold the wireless steering in your hands as shown in Fig. 1 and adjust the tilt to obtain no-movement position. Now if you move the steering to the left and values from the accelerometer corresponding to that axis increase above the predefined value, the transmitter transmits the code for left movement to the robot. This code is received by the receiver of the robot and the microcontroller drives the motors to turn the robot to the left. Similarly, to move the robot in another direction, tilt the steering in that direction.

Software
The wireless steering is built around Arduino Uno board. Arduino Uno is programmed using Arduino IDE software. ATmega328 on Arduino Uno comes pre-burnt with a boot loader that allows you to upload new code to it without the use of an external hardware programmer. It communicates using the original STK500 protocol. You can also bypass the boot loader and program the microcontroller through ICSP (in-circuit serial programming) header, but using boot loader programming is quick and easy. Select Arduino Uno from ‘Tools→Board’ menu (according to the microcontroller on your board) in Arduino IDE and burn the program through standard USB port in the computer.

Fig. 7: An actual-size, single-side PCB for the robot

Fig. 8: Component layout for the PCB in Fig. 7

The source program for the robot is written in ‘C’ language and compiled using MPLAB IDE for the robot. Burn the hex code into the microcontroller using a suitable programmer. Program execution starts by initialising the input and output ports. The program checks the received data for forward, backward, left and right movements and gives corresponding control signals to the motor driver.

Construction and testing
Actual-size, single-side PCBs for the wireless steering and the robot are shown in Figs 5 and 7, respectively. Corresponding component-side layouts are shown in Figs 6 and 8, respectively. Suitable connectors are provided on both the PCBs to interface motors, Arduino board and power supplies.

Testing of the wireless steering. Check the correct input supply at TP1 with respect to TP0. The battery voltage can be verified at TP2. Monitor TP3 through TP6 as you tilt the steering in one direction to confirm that the steering is generating codes corresponding to the movements.

Testing of the robot. Verify correct power supply to the robot at TP1 with respect to TP0. Proper reset to the microcontroller can be verified at TP2 using an oscilloscope. Make any movements with the steering and check the changes at TP3 through TP6 to confirm that correct actions are initiated by the microcontroller after receiving the code. Reference voltage for the obstacle detection system can be checked and adjusted using TP7 and TP8.

Sourced By: EFY : Author: Robin Chalana
Read More

Electronic Cricket Match Game Circuit Diagram

This electronic cricket is a present for Kids. This simple battery powered circuit can be used to play Cricket Match with your friends. Each LED in the circuit indicates various status of the cricket match like Sixer, Run out, Catch etc. The Circuit uses two ICs ,one in the Astable mode and the second in the display driver mode. IC1 is wired as an Astable Multivibrator with the timing elements R1, R2 and C1. With the shown values of these components very fast output pulses are generated from the Astable.

Output from IC1 passes into the input of IC2 which is the popular Johnson Decade counter CD4017. It has 10 outputs. Of these 8 outputs are used. Output 9 ( pin9) is tied to the reset pin 15 to repeat the cycle. When the input pin 14 of IC2 gets low to high pluses, its output turns high one by one. Resistor R3 keeps the input of IC2 low in stand by state to avoid false indications.

Electronic Cricket Circuit Diagram


Cricuit Project: Electronic Cricket Match Game
When the Push Switch S1 is pressed momentarily, the Astable operates and all the LEDs run very fast sequentially. When S1 is released, any one of the LED stands lit which indicates the status of the match. For example, if LED D7 remains lit, it indicates Sixer and if LED 8 remains lit, it indicates Catch out. Label each LED for its status as shown in the diagram. Pressing of S1 simulates Bowling and Running LEDs indicates running of Batsman.
Read More

Toss A Coin Binary Box Circuit Diagram

This is a simple project of Toss A Coin Binary Box Circuit Diagram. This is a Simple Toss A Coin Binary Box Circuit Diagram. The entropy of such a process is given by the binary entropy function. This Circuit uses an astable multivibrator to vary the heads-or-tails condition, and a flip-flop to store the condition given by the multivibrator Consequently, the circuit is wired so that the flip-flop`s state is changed once for each full cycle the multivibrator goes through to assure an absolutely even 50-50 chance of a heads or tails loss. Link

 Toss A Coin Binary Box Circuit Diagram



Toss A Coin Binary Box Circuit Diagram
Read More

Simple Dice With 7-Segment Display Circuit Project

Simple Dice With 7-Segment Display Circuit Project. A simple digital dice circuit can be easily realised using an astable oscillator circuit followed by a counter, display driver and a display. Here we have used a timer NE555 as an astable oscillator with a frequency of about 100 Hz. Decade counter IC CD4026 or CD4033 (which-ever available) can be used as counter-cum-display driver. When using CD4026, pin 14 (cascading output) is to be left unused (open), but in case of CD4033, pin 14 serves as lamp test pin and the same is to be grounded.

Digital Dice With 7-Segment Display-Circuit diagram
Digital Dice With 7-Segment Display Circuit diagram

The circuit uses only a handful of components. Its power consumption is also quite low because of use of CMOS ICs, and hence it is well suited for battery operation. In this circuit two tactile switches S1 and S2 have been pro-vided. While switch S2 is used for initial resetting of the display to ‘0,’ depression of S1 simulates throwing of the dice by a player. 

When battery is connected to the circuit, the counter and display section around IC2 (CD4026/4033) is energised and the display would normally show ‘0’, as no clock input is available. Should the display show any other decimal digit, you may press re-set switch S2 so that display shows ‘0’. To simulate throwing of dice, the player has to press switch S1, briefly. This ex-tends the supply to the astable oscillator configured around IC1 as well as capacitor C1 (through resistor R1), which charges to the battery voltage. Thus even after switch S1 is released, the astable circuit around IC1 keeps producing the clock until capacitor C1 discharges sufficiently. Thus for du-ration of depression of switch S1 and discharge of capacitor C1 thereafter, clock pulses are produced by IC1 and applied to clock pin 1 of counter IC2, whose count advances at a frequency of 100 Hz until C1 discharges sufficiently to deactivate IC1. 

When the oscillations from IC1 stop, the last (random) count in counter IC2 can be viewed on the 7-segment display. This count would normally lie between 0 and 6, since at the leading edge of every 7th clock pulse, the counter is reset to zero. This is achieved as follows. 

Outputs

Observe the behavior of ‘b’ segment output in the Table. On reset, at count 0 until count 4, the segment ‘b’ output is high. At count 5 it changes to low level and remains so during count 6. However, at start of count 7, the output goes from low to high state. A differentiated sharp high pulse through C-R combination of C4-R5 is applied to reset pin 15 of IC2 to reset the output to ‘0’ for a fraction of a pulse period (which is not visible on the 7-segment display). Thus, if the clock stops at seventh count, the display will read zero. There is a probability of one chance in seven that display would show ‘0.’ In such a situation, the concerned player is given an-other chance until the display is non-zero. 

Note.  Although it is quite feasible to inhibit display of ‘0’ and advance the counter by ‘1,’ the same makes the circuit somewhat complex and there-fore such a modification has not been attempted.

Author : EFY LAb – Copyright : EFY
Read More