Friday, October 31, 2014

230V Flasher Circuit

This circuit operates with 230v.you can use this circuit to decorate your parties.I think this will be a wonderful circuit to you all. Here DIAC ER 900 and Triac BTW 11-400.

230V

230V Flasher Circuit diagram

Note:
# Be careful when you deal with 230V
# Build this circuit on a PCB
# Use only mentioned values.
Continue reading...

Thursday, October 30, 2014

MAKING A ZENER DIODE

Sometimes a zener diode of the required voltage is not available. Here are a number of components that produce a characteristic voltage across them. Since they all have different voltages, they can be placed in series to produce the voltage you need. A reference voltage as low as 0.65v is available and you need at least 1 to 3mA through the device(s) to put them in a state of conduction (breakdown).


source : http://www.talkingelectronics.com.au/projects/200TrCcts/200TrCcts.html
Continue reading...

Wednesday, October 29, 2014

Electronic Motor Starter Diagram Circuit

This motor starter protects single-phase motors against voltage fluctuations and overloading. Its salient feature is a soft on/off electronic switch for easy operation. The transformer steps down the AC voltage from 230V to 15V. Diodes D1 and D2 rectify the AC voltage to DC. The unregulated power supply is given to the protection circuit. In the protection circuit, transistor T1 is used to protect the motor from over-voltage. The over-voltage setting is done using preset VR1 such that T1 conducts when voltages goes beyond upper limit (say, 260V). When T1 conducts, it switches off T2. Transistor T2 works as the under-voltage protector. The under-voltage setting is done with the help of preset VR2 such that T2 stops conducting when voltage is below lower limit (say, 180V). Zener diodes ZD1 and ZD2 provide base bias to transistors T1 and T2, respectively. Transistors T3 and T4 are connected back to back to form an SCR configuration, which behaves as an ‘on’/‘off’ control.

ElectronicSwitch S1 is used to turn on the pump, while switch S2 is used to turn off the pump. While making over-/under-voltage setting, disconnect C2 temporarily. Capacitor C2 prevents relay chattering due to rapid voltage fluctuations. Regulator IC 7809 gives the 9V regulated supply to soft switch as well as the relay after filtering by capacitor C4. A suitable miniature circuit breaker is used for automatic over-current protection. Green LED (LED1) indicates that the motor is ‘on’ and red LED (LED2) indicates that the power is ‘on’. The motor is connected to the normally-open contact of the relay. When the relay energizes, the motor turns on.
Continue reading...

Tuesday, October 28, 2014

LM3909 IC bassed Color organ electronic project

Using LM 3909 LED flasher IC , can be designed various electronic projects . As you can see in this circuit diagram , using the LM3909 LED flasher IC can be designed a very simple color organ .

This circuit is not complicated , it use just some common active audio filters for filtering audio signals and a part formed by a LM3909 IC .

All of three active filters drives the audio spectrum into three bands drive rectifiers and then drive IC2,3 and 4 , flashing the LEDs at 6 Hz. D4,D5 and D6 should be three different colors for best effect .
In the table bellow you can see all electronic parts required by this color organ project .
Simple
Simple

B
Continue reading...

Monday, October 27, 2014

STK4038 bassed 60 watt audio amplifier circuit project and explanation


Using the STK4038X audio amplifier IC, can be designed a very simple high power and efficiency audio power amplifier . This circuit is manufactured by Sanyo Corporation and will provide a output power of 60 watts on a 8 ohms load or 4 ohms load with 0.008% distortion .

The output power that is provided by this audio IC , can be more higher , but with more distortion.
If you will use a 8 ohms load you must power this audio amplifier project from a dual +/- 40 volts DC power supply and if you’ll use a 4 ohms load you must power this audio project form a dual +/- 33.5 volts DC power source.
To prevent over heating the STK4038X audio power IC must be heatsinked on a good heatsink .
Also you must use a very well filtered power supply ( a 10000uF capacitor will be fine for this audio project) .

Continue reading...

Saturday, October 25, 2014

Circuit Mobile Phone Battery Charger

This post share about Mobile Phone charger circuits, previously you can see other Phone Battery Charger Circuit  or Charger Circuit . This Charger ciruit use to charging phone battery using IC 7805 for plus voltage regulator or & 7905 for min voltage regulator. Below is a schematic circuit adapter, power supply, or battery charger (for gadgets, mobile phones, MP4player, smartphone) that is equipped with a 5V voltage stabilizer:

adapter

Diode Bridge
diode bridge, known as a diode bridge is used for the rectifier circuit current (rectifier) from AC to DC. to make the diode bridge properly you need to know the type of diode to be used, to suit your needs. example: to make the power supply 12 Volt 3 ​​Ampere diode type 1N5401 is needed, for more detail how to choose the right type of diode to the adapter.

Voltage stabilizers are commonly used are the 78XX or 79XX type LM, XX indicates the maximum voltage output is generated. see the example in the circuit schematic above, to output 5 V is used type LM 7805. for other voltages must be adjusted to the transformer and its stabilizer IC.
Continue reading...

Thursday, October 23, 2014

Power Supply Variable 1 3V 12 2V 1A Circuit

Power supply circuit to generate output below were variations between 1.3V DC to 12.2V DC with 1A current. In addition, the power supply circuit is also equipped with over-current protection or shield against belebih flow. Power supply circuit is very simple, but the quality is quite good, made her basiskan regulator IC LM723 is a pretty legendary.




1.3V


Description:

R2 to set the output voltage. The maximum current is determined by R3, over-current protection circuit inside the LM723 to detect the voltage on R3, if it reaches 0.65 V, the voltage output will be off her. So the current through R3 can not exceed 0.65 / R3 although output short-circuit in his.

C3 and C4 are ceramic capacitors, as much as possible directly soldered to the PCB, this is because the LM723 is prone to oscillation that is not cool.

LM723 works with 9.5V input voltage to 40 V DC and the LM723 can generate its own current of 150mA when the output voltage is not more than 6-7V under input voltage.



Specifications:

Output (value estimated):
Vmin = (R4 + R5) / (R5 * 1.3)
Vmax = (7.15 / R5) * (R4 + R5)
Imax = 0.65/R3
Max. Power on R3: 0.42/R3
Min. DC Input Voltage (pin 12 to pin 7): Vmax + 5



Component List:
B1 40V/2.5A
C1 2200uF (3300uF even better)
C2 4.7uF
C3 100nF
C4 1NF
C5 330nF
C6 100uF
Green LED D1
D2 1N4003
F1 0.2A F
F2 2A M
IC1 LM723 (in a DIL14 plastic package)
R1 1k
R2 Pot. 5k
R3 0.56R/2W
R4 3.3k
R5 4.7k
S1 250V/1A
T1 2N3055 on a heatsink 5K / W
TR1 220V/17V/1.5
Continue reading...

Wednesday, October 22, 2014

Water Temperature Gauge Digital Network Diagram

This circuit measures the water temperature. this circuit use IC CA3161 and CA3162 for control all, The Temperature Value can’t be keep always while no power supply as It hasn’t EEPROM to save. This circiut will be display for you monitoring only that is make sense to implement in water.

The IC CA3161 is a counter and 7segment LED driver to display amount of temperature on 7segments. About a temperature sensor is a diode which number 1N4148. This is like of the Car Radiator. Connect to the 5 Vdc power supply from Car Battery that you can use a LM7805 for +5Vdc regulation with low cost voltage regulator.

Skema rangkaian pengukur suhu air

For the method of temperature measurement: first after application of at least 2 currents of a thermal sensor, including at least two output signals are generated calculating an analog signal to the temperature of the reaction at least two signals, the analog signal representative of temperature to the temperature sensors, a calibration, the calibration factor is calculated by applying the order of leastthree thermal sensor, and calibration of a gap in the temperature of the concept of analog signal, that the development gap-term is at least a series of parasite resistance to the thermal temperature sensor and the signal processing theanalog digital signal to a temperature reference value for the conversion of the reference value for the transition is consistent with the calibration.


IC LM340A Temperature Gauge

The LM340A monolithic 3-terminal positive voltage regulators employ internal current-limiting, thermal shutdown and safe-area compensation, making them essentially indestructible. If adequate heat sinking is provided, they can deliver over 1.0A output current.

IC
Parameters IC LM340A
  • Output Current: 1000 mA
  • Output Voltage: 7.5, 12, 15, 8, 5 Volt
  • Input Min Voltage: 7.5, 14.8, 10.5, 17.9 Volt
  • Input Max Voltage: 35 Volt
  • Temperature Min: 0 deg C
  • Temperature Max: 70, 125 deg C
  • RegType: Linear Regulator


IC CA3161E Description

The CA3161E is a monolithic integrated circuit that performs the BCD to seven segment decoding function and features constant current segment drivers. When used with the CA3162E A/D Converter the CA3161E provides a complete digital readout system with a minimum number of external parts.

IC
Absolute Maximum Ratings IC CA3161E
  • DC VSUPPLY (Between Terminals 1 and 10) . . . . . . . . . . . . . .+7.0V
  • Input Voltage (Terminals 1, 2, 6, 7). . . . . . . . . . . . . . . . . . . . . .+5.5V
  • Output Voltage
  • Output “Off”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +7V
  • Output “On” (Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +10V


IC CA3162E Description

The CA3162E are I2L monolithic A/D converters that provide a 3 digit multiplexed BCD output. They are used with the CA3161E BCD-to-Seven-Segment Decoder/Driver and a minimum of external parts to implement a complete 3-digit display. The CA3162AE is identical to the CA3162E except for an extended operating temperature range.
IC
Absolute Maximum Ratings IC CA3162E
  • DC Supply Voltage (Between Pins 7 and 14) . . . . . . . . . . . . . +7V
  • Input Voltage (Pin 10 or 11 to Ground). . . . . . . . . . . . . . . . . . . 15V
  • Temperature Range CA3162E. . . . . . . . . . . . . . . . . . . . . . . . . . .0 to 75oC
  • Temperature Range CA3162AE . .. . . . . . . . . . . . . . . . . . . . . . -40oC to 85oC
  • Maximum Junction Temperature . . . . . . . . . . . . . . . . . . . . . . . 150oC
  • Maximum Storage Temperature Range . . . . . .. . . . . . . . . . . . .-65oC to 150oC
  • Maximum Lead Temperature (Soldering 10s) . . . . . . . . . . . . . 300oC..
Continue reading...

Friday, October 17, 2014

Rise Nikon Camera Remote Control

 This is an IR remote control for Nikon cameras. It is compatible with the Nikon ML-L3 remote control. Supported cameras include: D40, D40X, D50, D60, D70, D70s, D80, Coolpix 8400 8800. This design is based on an idea from http://www.bigmike.it/ircontrol/.

Hardware

The circuit is extremely simple: an ATtiny13V, button, transistor, resistor, IR diode and 3V battery. You could even omit the transistor and resistor, and connect the IR diode directly to the ATtiny13V, but that will limit the LED current and therefor the range.

schematic

I chose to power the circuit permanently, and connect the button to an input, instead of controlling the power with the button. This ensures that the IR sequence is always completely sent, even when you release the button too early, and that contact bounce may be filtered. The standby power consumption is so low, about the same as the self-discharge rate of the lithium battery, that this does not really affect the battery life.

The internal oscillator of the ATtiny13V is used as a clock source, which seems to be sufficiently accurate. To get optimal results, you may want to calibrate the internal oscillator. See main.c for details.
Continue reading...

Thursday, October 16, 2014

Build a Bass Treble Tone Control Circuit Diagram

How build a Bass-Treble Tone Control Circuit Diagram . The LM1036 is a DC controlled tone (bass/treble), volume and balance circuit for stereo applications in car radio, TV and audio systems. An additional control input allows loudness compensation to be simply effected. Four control inputs provide control of the bass, treble, balance and volume functions through application of DC voltages from a remote control system or, alternatively, from four potentiometers which may be biased from a zener regulated supply provided on the circuit. Each tone response is defined by a single capacitor chosen to give the desired characteristic.

 Build a Bass-Treble Tone Control Circuit Diagram


Features:
  • Wide supply voltage range, 9V to 16V
  • Large volume control range, 75 dB typical
  • Tone control, ±15 dB typical
  • Channel separation, 75 dB typical
  • Low distortion, 0.06% typical for an input level of 0.3 Vrms
  • High signal to noise, 80 dB typical for an input level of 0.3 Vrms
  • Few external components required
Note:
Vcc can be anything between 9V to 16V and the output capacitors are
10uF/25V electrolytic.

Continue reading...

Wednesday, October 15, 2014

Alternating Flasher



This circuit uses three easily available 555 timer ICs. All three work as astable multivibrators. The first 555 has an on period and off period equal to 1 sec. This IC controls the on/ off periods of the other 2 555s which are used to flash two bulbs through the relay contacts.
The flashing occurs at a rate of 4 flashes per second.
The diodes are used to protect the 555 ICs from peaks. The relays should have an impedance greater than 50ohms i.e, they should not draw a current more than 200mA.
The flashing sequence is as follows:
The bulb(s) connected to the first relay flashes for about 1 sec at a rate of 4 flashes per second. Then the bulb(s) connected to the second relay flashes for 1 sec at a rate of 4 flashes per second. Then the cycle repeats.
The flashing rates can be varied by changing the capacitors C3 and C5. A higher value gives a lower flashing rate.
Note that the values of C3 and C5 should be equal and should be less than that of C1.
The value of C1 controls the change-over rate ( default 1sec). A higher value gives a lower change-over rate.
If you use the normally open contacts of the relay, on bulb will be OFF while other is flashing,and vice versa.
If normally closed contacts are used, one bulb will be ON while the other is flashing.
Continue reading...

Monday, October 13, 2014

Cranial Electrotherapy Stimulator Circuit diagram

Parts:
R1_____________1M5 1/4W Resistor
R2____________15K 1/4W Resistor
R3___________100K Linear Potentiometer
R4_____________2K2 1/4W Resistor

C1___________330nF 63V Polyester Capacitor
C2___________100µF 25V Electrolytic Capacitor

D1_____________3mm. Red LED

IC1___________7555 or TS555CN CMos Timer IC
IC2___________4017 Decade counter with 10 decoded outputs IC

SW1___________SPST Slider Switch

B1______________9V PP3 Battery

Clip for PP3 Battery

Two Earclips with wires (see notes)

Device purpose:

Owing to the recent launching in Europe of Cranial Electrotherapy Stimulation (CES) portable sets, we have been "Electronically Stimulated" in designing a similar circuit for the sake of Hobbyists. CES is the most popular technique for electrically boosting brain power, and has long been prescribed by doctors, mainly in the USA, for therapeutic reasons, including the treatment of anxiety, depression, insomnia, and chemical dependency. CES units generate an adjustable current (80 to 600 microAmperes) that flows through clips placed on the earlobes. The waveform of this device is a 400 milliseconds positive pulse followed by a negative one of the same duration, then a pause of 1.2 seconds. The main frequency is 0.5 Hz, i.e. a double pulse every 2 seconds. Some people report that this kind of minute specialized electrical impulses contributes to achieve a relaxed state that leaves the mind alert.
Obviously we cant claim or prove any therapeutic effectiveness for this device, but if you are interested in trying it, the circuit is so cheap and so simple to build that an attempt can be made with quite no harm.

Circuit operation:

IC1 forms a narrow pulse, 2.5Hz oscillator feeding IC2. This chip generates the various timings for the output pulses. Output is taken at pins 2 & 3 to easily obtain negative going pulses also. Current output is limited to 600µA by R2 and can be regulated from 80 to 600µA by means of R3. The LED flashes every 2 seconds signaling proper operation and can also be used for setting purposes. It can be omitted together with R4, greatly increasing battery life.

Notes:

  • In order to obtain a more precise frequency setting take R1=1M2 and add a 500K trimmer in series with it.
  • In this case use a frequency meter to read 2.5Hz at pin 3 of IC1, or an oscilloscope to read 400msec pulses at pins 2, 3 or 10, adjusting the added trimmer.
  • A simpler setting can be made adjusting the trimmer to count exactly a LED flash every 2 seconds.
  • Earclips can be made with little plastic clips and cementing the end of the wire in a position suited to make good contact with earlobes.
  • Ultra-simple earclips can be made using a thin copper foil with rounded corners 4 cm. long and 1.5 cm. wide, soldering the wire end in the center, and then folding the foil in two parts holding the earlobes.
  • To ensure a better current transfer, this kind of devices usually has felt pads moistened with a conducting solution interposed between clips and skin.
  • Commercial sets have frequently a built-in timer. Timing sessions last usually 20 minutes to 1 hour. For this purpose you can use the Timed Beeper the Bedside Lamp Timer or the Jogging Timer circuits available on this website, adjusting the timing components in order to suit your needs.
Continue reading...

Friday, October 10, 2014

Power Amplifier OCL 50W by 741 2N3055 MJ2955 with PCB

This is old circuit Power amp OCL, But easy circuit and very nice. To use for play music in your home. It low cost too. It use IC 741 or LF351(good) and Transistor x 4 (2N3055+MJ2955+BD139+BD140) and little component. Power supply volt +35V/-35V and 3A for Mono, 5A for Stereo.


Circuit Power Amp OCL by 741+2N3055+MJ2955

Continue reading...

Thursday, October 9, 2014

Autonomous Parallel Parking RC Car

Logical Structure

Our project is broken down into two major components: the control system and the move car algorithm. The move car algorithm directs the car and the control system implements the directions of the move car algorithm.

Design

Figure 1: Logical Structure of High Level Design

Control System

The control system contains all the hardware and its associated software. It allows the parking and parking detection algorithms to interface with the car. The software in this module is broken up into three major sections: the Left-Right/Front-Back (LR/FB) state machines, master state machine, and distance calculations. The LR/FB state machines determines which direction to move the car based on flags set by the detect parking space and park car algorithms. Once the LR/FB state machines decides which direction to move the car, the master state machine implements this movement by sending the correct input and enable signals to the H-Bridge. The distance calculations implemented independently every millisecond.

Move Car

Move car contains the detect parking space and parallel parking algorithms. All functions in move car interface with the control module by setting movement flags. The parking space detection and parking algorithms use information from the distance sensors to set these movement flags and guide the car.

Move car works by initializing the movement flags of the car. It sets the car on a default trajectory and then calls detect parking space. Once a parking space has been detected, the parking algorithm is called. After the car has successfully parked, it idles until it is reset.

Hardware/Software Tradeoffs:

Distance Sensors

  1. When selecting infrared distance sensors there was always a tradeoff between the sensors ability to measure close range and long range. We tried to minimize this problem by using sensors designed for varying ranges.
  2. Using accurate sensors cost significant time. Every measurement from our distance sensors is approximately 40ms delayed. This affected our ability to start and stop the motors of the car at the correct times.
  3. We used integer calculations rather than floating point to calculate distances. We decided the increased accuracy would not significantly improve our ability to park the car because we cannot control the movement of the car with that degree of accuracy.
  4. Each sensor draws a maximum of 50mA. To accommodate for this, we needed to use a 5v regulator that could source up to 1A.

Batteries

  1. We decided to power our car using batteries rather than using a steady power source. This gave us increased mobility but was very inconsistent in the current it supplied to the motors. As the batteries wore out, they supplied less and less current to the motors. This made calibrating the velocity of the car very difficult.
  2. In order to best utilize the mobile power resources we have, we power the motors using four AA batteries, which are stored in the battery compartment of the RC car. These batteries supply the Supply Voltage to the H-bridge, which in turn powers the motor. We use a 9V battery to power the PCB.

Software

  1. 1. Our code requires the motor control software, parking algorithm software, and distance sensor software to run in parallel. However, this is not possible in the Atmega644. We got around this issue by making every important task a state machine. By breaking up each function into small pieces, we can execute one piece of function one, then one piece of function two, followed by one piece of function3, and then another piece of function one, etc. This enables us to emulate a multi-tasking architecture.

Hardware

RC Car | H-Bridge | Distance Sensors

Hardware consists of three main components:

  • RC Car
  • H-Bridge
  • Distance Sensors

All hardware used the following color convention:

Color Connected To
Red Vss
Green Ground
Purple Input
Yellow Output
Orange Enable

Table 1: Wire Color Convention

RC Car

The first step of our hardware design involved fully understanding the mechanics our RC car. We took apart the car and rebuilt it multiple times to fully understand how it was built, what every part in the car is used for, and how those parts contribute to the control of the car.

After understanding the mechanics of the car, we decided the easiest way to control our car would be to directly control the inputs to the DC brush motors controlling the front and rear wheels, bypassing all of the car’s internal circuitry. To do this, we scoped the control signals of the car. We found that the control signals were very simple. There is one motor for the reverse and forward movement of the rear wheels and one motor to turn the front wheels left and right. These motors are controlled by a simple 5V DC input. A +5V turns the rear wheels forward and the front wheel to the left. A -5V input turns the rear wheels backwards and turns the front wheels to the right. To more easily control the motors we soldered wires to their plus and minus terminals. This allows us to easily apply a +/-5V without opening up the car again.

H-Bridge

We use an ST Micro L298HN H-Bridge to control the motors of the RC Car. It allows us to switch between +/-5V across the motor. It also allows us to source the power from the batteries while using the processor to control the transistors in the H-Bridge. The control algorithm turns the appropriate transistors on/off, applying the proper voltage across the brush motor. The H-Bridge is connected using the following configuration:

H-Bridge

Figure 2: H-Bridge Schematic

The first H-Bridge (to the left) is used to control the front motor of the car. This motor turns the front wheels either left or right. The second H-Bridge (the the right) is used to control the rear motor, which is used for the forward and reverse functionality of the car. The inputs and enables of the H-Bridge are connected to port B.

Front Motor (Left/Right) Rear Motor (Forward/Reverse)
Pin Connected To Pin Connected To
In 1 Port B7 In 3 Port B3
In 2 Port B6 In 4 Port B2
En A Port B5 En B Port B1
Out 1 + Motor Terminal Out 3 + Motor Terminal
Out 2 - Motor Terminal Out 4 - Motor Terminal

Table 2: H-Bridge Pin Configuration

In addition configuring the H-Bridge to control the motors, we also had to protect the H-Bridge from inductive spikes caused by turning the DC brush motors on and off. We used diodes on the output to protect from these spikes. The H-Bridge was wired as follows:

H-Bridge

Figure 3: Inductive Current Protection on H-Bridge Outputs

Distance Sensors

We used three Sharp infrared distance sensors to determine the distance between our car and nearby objects. We placed a sensor on the front, the right side, and the rear of the car. For the front and rear, we used 4-30cm sensors. For the right side, we used we used a 10-80cm sensor. We decided to use a sensor with a larger range for the side so that we could more easily detect a parking space. However, this made aligning the parking the car more difficult, so we rely more heavily on the front and rear sensors to park the car. To slightly improve the short distance range of our sensors, we placed the sensors as far back on the car as possible.

The challenge with using these sensors is that their voltage output is nonlinear (inverse function) and each sensor varies slightly. Therefore, we scoped the output of each sensor at various distance values, linearized the plot, curve fit the line, and implemented an analog to digital conversion so that we had reliable distance values.

Measurements and Linearization

Distance (cm) Front Sensor Output (V) Rear Sensor Output (V)
4 2.78 2.6
5 2.36 2.22
6 2.06 1.92
8 1.6 1.52
10 1.32 1.26
12 1.12 1.08
15 .92 .88
18 .776 .76
21 .664 .656
24 .567 .576
27 .536 .52
30 .476 .48

Table 3: Front and Rear Sensor Measurements

Front Front

Figure 4: Front Sensor Plots of Distance vs. Voltage and Distance-1 vs. Voltage

Rear Rear

Figure 5: Rear Sensor Plots of Distance vs. Voltage and Distance-1 vs. Voltage

After taking the inverse of the distance versus voltage plots, we determined it would be best to fit the curve using two linear lines rather than one. The equations of the lines are:

Table 4: Front and Rear Distance Sensor Equations

The analog to digital conversion uses a different equation depending on the value of the measure voltage. If the measured voltage is above a certain threshold, the ADC will use the equation in the top row. If it is below a certain threshold, the ADC will use the equation in the bottom row. The threshold for the front sensor is 1.5v and 1.25v for the rear sensor.

Front Sensor Rear Sensor
voltage=9.759*[1/distance]+0.381, >1.5V voltage=8.963*[1/distance]+0.395, >1.25V
voltage=12.738*[1/distance]+0.057, <1.5v voltage=11.806*[1/distance]+0.09, <1.25v
Distance (cm) Side Sensor Output (V)
10 2.28
15 1.64
20 1.28
25 1.08
30 .808
35 .728
45 .672
50 .612
55 .556
60 .516
65 .488
70 .452
75 .432
80 .42

Table 5: Side Sensor Measurements

Side Side

Figure 6: Rear Sensor Plots of Distance vs. Voltage and Distance-1 vs. Voltage

When looking at the data for the 10-80cm side sensor plot, we determined that one linear line would be sufficient to accurately capture the output voltage vs. distance characteristics of the sensor. The equation of this line is:

voltage=21.592*[distance]^(-1)+0.173

Analog to Digital Conversion

For the analog to digital conversion we used the built in ADC function of the MCU. Because we had three distance sensors, we had to rotate which sensor was connected to the ADC. This was simply done by changing the value of ADMUX. One of the three sensors is sampled every millisecond.

We take the value from the ADCH register and perform the appropriate calculation to convert this value to a distance. We decided to use only the ADCH register because the value represented by the bottom two bits of the ADC is on the same order of magnitude as noise. Therefore, these two bits are not important to our calculation. To do this, the ADC is left adjusted. By using the value in the ADCH register, we are using the upper eight bits of the ten ADC bits. We use the internal reference voltage of 2.56V for comparison, so our calculation is:

ADC ADC ADC ADC ADC

Software

Control Module | Algorithm Module

The software for this project has been partitioned into 2 files based on functionality. There are 2 files, ControlModule.c and AlgorithmModule.c.

The state machines in ControlModule control the motors, and are:

  • fbStateMachine
  • lrStateMachine
  • masterStateMachine

The state machines in the AlgorithmModule use the sensor data and various algorithms to determine what should be the next movement the car must make. They assert flags which tell the ControlModule state machines to actually move the motors. The state machines in AlgorithmModule are:

  • moveCar
  • detectParking
  • parkCar

Below we have explained the various state machines we have used in our project.

Control Module

fbStateMachine()

Function:

The fbStateMachine controls the motor for Forward-Backward operations. It is controlled by the isForward and isReverse flags. These flags serve as indicators as to whether the car should be traveling forward or reverse. In order to control the velocity of the forward-backward motion we anded the enable bit with a a PWM signal.

Working:

In State 0, the motor is at rest. The corresponding FB control bits are 00. When the algorithm requires the car to go forward or reverse, the corresponding flags (isForward and isReverse) are set, and the FB state machine switches states to 1 or 3 respectively.

In State 1, the motor rotates to drive the car forward. The state machine remains in this state while isForward is equal to 1. Once isForward is de-asserted, the state machine moves to a buffer state to stop the car from moving forward due to inertia.

After isForward is set to 0, leaving state 1 and stopping the motor isn’t enough. The wheels might continue to rotate due to inertia, and so a buffer state, State 2, is required. It makes the motor go in Reverse for 1 cycle (50ms) of the FB State Machine, before going back to the rest state, State 0.

If isReverse is asserted, the state machine jumps to State 3. The state machine remains in this state while isReverse is equal to 1. Once isReverse is de-asserted, the state machine moves to a buffer state to stop the car from moving in reverse due to inertia.

After State 3, a buffer state, State 4, is needed to stop the wheels from continuing to rotate in reverse due to inertia. This is a 1 cycle Forward motion, similar in function to State 2’s reverse functionality. Once done, the FB State Machine goes back to its rest state, State 0.

Timing:

The fbStateMachine is called upon every 50ms. This is enough time to evaluate the flags set in the AlgorithmModule, but at the same time fast enough to make the motor motion very accurate.

lrStateMachine()

The lrStateMachine() works the same way are the fbStatemachine. A forward corresponds to a left turn and a right corresponds to a reverse. The diagram for both are:

BF/LR

Figure 7: FB/LR Motor State Machine

masterStateMachine()

Function:

This uses the FB and LR control bits to call the required functions in order to send the appropriate input signals to the H-Bridge and make the motors rotate in the appropriate direction.

Working:

In this function, the 2 FB and LR control bits are combined to create 4 master control bits by left shifting the FW bits by 2 and adding it to the LR bits.

Therefore,

fbBits = fb.controlBits; // (FB FB)

lrBits = lr.controlBits; // (LR LR)

masterBits = (fbBits<<2)>

As a result, each of the 7 car movements (stop, forward, forward-left, forward-right, reverse, reverse-left, reverse-right) have a unique masterBits combination associated with them. The master control bits are then used in the function to decide which motor control function is to be called.

Timing

This state machine is invoked in each iteration of the infinite while loop in main. In other words, it can be considered to be executing continuously and not at intervals. This is essential because parking requires a great deal of accuracy when controlling the motors. Therefore, we want to update the motors as often as possible, which would require us to call masterStateMachine as often as possible.

Algorithm Module

moveCar()

Function:

This is the master state machine of the algorithm module. It decides which mode the car is in, i.e., whether the car is moving forward to detect a parking spot, aligning itself once a parking spot has been detected, or actually going through the motion of parking.

Diagram:

Move

Figure 8: Move Car Motor State Machine

Working:

This is a 5 state linear state machine, as can be seen in the diagram above.

It starts off in State 0. In this state, the car is at rest. It gives enough time for all transients in the car to stabilize. Once everything is stable, it moves to State 1.

In State 1, car moves forward till it detects a parking spot. While in this state, the car invokes the detectParking state machine each time the moveCar state machine is called in the Control Module. Details of how the detectParking state machine works are explained in the next section.

Once a parking lot has been detected, the state machine moves into State 2. It remains in State 2 until the car has parked itself. The parkCar state machine is invoked for each cycle that the moveCar state machine is in State 2. Once the car has been parked by parkCar state machine, the isParked flag is asserted, and moveCar moves onto state 3.

When we reach State 3, the car parked itself. The car will eternally remain in this state hereafter, since the car has parked itself and is at rest.

In addition to serving as a state machine as described above, moveCar also makes available 2 values – rsDist and rrsDist – to its sub-state machines, detectParking and parkCar. rsDist stores the values of the side distance in the previous clock tick of the moveCar state machine, while rrsDist stores the value 2 clock cycles earlier.

Timing:

The moveCar state machine is invoked every 100ms. The moveCar state machine also serves as a clock for the detectParking and parkCar state machines. When in State 1, each clock tick of the moveCar state machine serves as a clock tick for the detectParking machine. When in State 3, each clock tick of the moveCar state machine serves as a clock tick for the parkCar machine.

detectParking

Function:

The function of detectParking state machine is, as its name suggests, to detect a parking space to park in. It accomplishes this by continuously polling the distance values from the side distance sensor.

Diagram:

Detect

Figure 9: Detect Parking Space State Machine

Working:

detectParking is a 6 state state machine, as can be seen in the diagram above.

State 0 serves as a start-up. This is essential because the first few cycles of the detectParking take place while the side distance sensor is still calibrating itself. Once the wait state is done, the state machine enters state 1.

State 1, essentially, searches for a sudden increase in the side distance value. A sudden increase corresponds to the beginning of a parking space. It does this by checking the (sDistance – rsDist) value. If there is a sudden depression, sDistance will increase and so it’s difference from its own previous value (rsDist) will be a large number. When this does occur, the state machine goes onto State 2.

In State 2 it attempts to confirm that it indeed is detecting a valid depression, by calculating (sDistance – rrsDist). Since State 2 is invoked 1 clock tick after the depression was last detected in State 1, rrsDist will store the value of the side distance before the depression began, i.e., from 2 clock cycles earlier. If (side distance – rrsDist) is still a large number, we can confirm that a depression has been detected, and we move to State 3.

In State 3, we keep track of how long the depression is. This is done by incrementing the detect.controlBits for each state machine clock tick that we are still in the depression. When there is a sudden decrease in the value of the side distance, we move to state 4, since it signals a probable end of the parking lot.

State 4 confirms that the possible end of the parking space, as detected in State 3, is indeed the end of the space. This is done in a manner similar to the confirmation done in State 2 using the rrsDist variable.

Once a parking space has been detected by the above states, the state machine moves into State 5 wherein it checks the control Bits (which kept track of how long the parking space was by incrementing for each cock tick while in the depression) to make sure the parking space is large enough. If large enough, then the isParkingLot flag is asserted which would direct moveCar to stop and start the parking sequence.

Timing

Each tick of the detectParking state machine corresponds to a tick of the moveCar function. When moveCar is in State 1, it calls detectParking on each of its ticks. Therefore, detectParking is called every 100ms until a parking space has been located.

parkCar()

Function:

The function of the parkCar state machine is to park the car once a parking spot has been identified. The algorithm to park the car continuously interacts with its surroundings through the forward, side and rear sensors.

Diagram:

Park

Figure 10: Park Car State Machine

Parking

Figure 11: Parking Motion of Car, colors correspond to state of the Park Car State Machine

Working:

The parkCar function tries to simulate how a human would parallel park. It is, essentially, just the following 4 motions:

  1. Reverse Right until you are inside the parking lot.
  2. Go Forward and redo 1. if the car is not aligned.
  3. Reverse Left until the car is fairly straight and close to the back wall.
  4. Forward Right until the car is straight and close to the front wall.

The above routine is accomplished using a 7 state machine.

State 0 makes the car move forward by a certain amount. The idea is to give the car enough space to move and rotate into the parking space.

State 1 simply turns the front wheels to the right. We turn the wheel before reversing the car so as to not lose turning radius by turning as the car reverses. Once the wheel is turned, the state machine moves onto state 2.

State 2 commands the car to go reverse right for a specified amount of time until the car has passed the edge of the parking space. Once past the edge of the space, it moves to state 3.

In State 3, the car continues in reverse right until it is either a certain distance from inside of the parking space, or the rear distance is close to the edge. These conditions, as can be seen from the figure above, are checks to verify that the car is deep enough inside the parking lot to be able execute the reverse left maneuver. Once the conditions are met, the car stops and the state machine moves to state 4.

NOTE: If at any point in states 1, 2 or 3 the car’s AI decides it is not in a position to go through with the parking, it will go back to State 0, and redo the whole procedure.

In State 4, the car moves reverse left. It does this until the rear of the car is close to the side wall of the parking space, which can be judged by the rear distance sensor value. Once close enough to the rear value, it stops and moves to state 5.

State 5 commands the car to go forward right. This attempts to straighten out the car completely and to align it nicely inside the spot. It goes forward right until it is close to the side wall of the parking space, as judged by the forward distance sensor. Once aligned, the car is parked and it moves to state 6.

State 6 is a 1 cycle stop before progressing back to state 0. Also, here the isParked variable is set so that the moveCar state machine can move out of parking mode to rest mode.

Timing:

Each tick of the parkCar state machine corresponds to a tick of the moveCar function. When moveCar is in State 3, it calls parkCar on each of its ticks. Therefore, parkCar is called very 100ms while the car is being parked.

Misalignment Detection

Our parking algorithm is equipped with a Misalignment Detector. Its role is to judge whether the car can park itself in the given space, and if it judges that parking is impossible, to correct the car’s position to make it possible.

Our algorithm has a provision to keep track of the values of distance from the side sensor (sDIstance) from the earlier clock (rDist) and earlier 2 clock ticks (rrDist) of the state machine. Having these 2 values is extremely important to the successful working of the misalignment detector.

The detector works by checking how much sDIstance has changed over the last 2 clock cycles. If the change in sDistance is large, it means the car is not ideally positioned and it will set the park car state machine to the forward state. It will also define how long the car should remain in this state. This can be seen in the figure below:

Misalignment

Figure 12: Example of Misalignment Detection

What is beautiful about this whole setup is that this exactly how a human would park the car! If the driver realizes that he is not aligned well enough, he will go forward and try again.

Putting it All Together

If you have taken a look at the high level design described earlier in the code, and read the description of the state machines in the earlier section, you have all the information you need to understand how the software of the car works.

Essentially, the AlgorithmModule state machines are what set the flags to control the movement of the car. These flags are interpreted by the ControlModule state machines, and translate it into actual motor control.

Results of Design

Speed of Execution | Accuracy | Safety and Interference | Usability

Speed of Execution

Speed wasn’t a big issue for us. All components of the software were done as state machines.

The Motor Control state machines update at ticks every 50ms. This was ample time for the state machines to compute the necessary controlBits and assert the required inputs to the H-bridge. As a result, we were able to obtain highly accurate and sensitive responses from the motors to the control code.

The Algorithm Control state machines update at ticks every 100ms. This was enough time for the state machines to compute the necessary parameters, and to assert the necessary flags for the Control Module to interpret them and translate it into motor motion.

The response of the car to its surroundings is also very fast. The sensors have a response time of 20ms, which is quick enough for them to be processed in real time.

Accuracy

Distance Sensors

The sensors were very accurate within their specified range. Even with integer calculations, we were able to calculate distances with a +/- 1cm accuracy. Because we could not control the movement of the car with this degree of accuracy, the accuracy of our distance sensors are sufficient.

Parking Space Detection

The sequence to detect a parking space works very accurately. In the many trials that we performed, it always detected the parking space and stopped on detection.

Parking Algorithm

The parking algorithm we have written works very well when the car is close to a set distance from the side of the parking lot. It, however, becomes less accurate when the car is placed at larger distances from the parking space.

The parking algorithm we have written works very well when the car is close to a set distance from the side of the parking lot. It, however, becomes less accurate when the car is placed at larger distances from the parking space.

Safety and Interference

There were not many safety concerns with our project. In order to minimize disturbance to other project groups, and avoid the car colliding into students, we made a separate test area in the hallway. We used this test area for all testing purposes.

Also, since the car is completely autonomous, there was no human contact required (except for turning on the car). Therefore, there wasn’t an issue of interference with the systems in the car.

Usability

In our opinion, this project has tremendous potential. With some more work on the parking algorithm, we feel that we can develop a system for the RC car to park irrespective of its orientation and distance from the parking lot. With enough research, this can be developed for real cars!

It can also be used as a learning tool for people who want to learn driving. By observing the motion of this car, students can learn how to parallel park better.

Lastly, this project could serve as a useful reference point for future projects dealing with R/C cars. The Control Module we have implemented to control the R/C car can be used universally for any 2-wheel drive R/C car.

Conclusion

Standards, IP, and Legal | Ethical Considerations

Overall, we feel the project met most of our expectations, as we were able to build an autonomous car which could detect a parking space, and park in it. When we started out, we intended the car to be able to locate a parking spot, and park irrespective of its distance from the parking space and its orientation. We were, however, unable to make it robust enough to accommodate parking from different orientations and distances. However, we feel the basic algorithm would remain the same, and this algorithm can be built upon to accommodate these features.

This was also a tremendous learning experience for us, especially with the hardware. We learn a tremendous amount about motor control systems, efficient circuit design, and hardware debugging. We also learned a lot about software. Through this project, we got valuable experience in developing efficient software using memory and run-time optimizations, something that cannot be gained through routine assignments.

If we had an opportunity to start this project over, there are a few things we would do differently.

  1. Use a regulator to ensure a steady current is being supplied to the batteries despite the fluctuation in voltage across the batteries, particularly as they lose power
  2. Consider implementing an optical sensor to track the velocity of the car
  3. Build a feedback PWM loop to control the velocity of the car
  4. Consider adding a fourth sensor on the side to calculate the orientation of the car
  5. Consider building the car ourselves

Standards, Intellectual Property, and Legal Concerns

There were no standards or regulations that concerned our project because we decided not to control the car using radio signals. There are also no concerns with intellectual property because we purchased the RC car and are only using it for personal use. All the software and other hardware was designed by us.

Ethical Considerations

We adhered to the IEEE Code of Ethics throughout this project. We were very careful to consider the effects of our decisions on us, those around us, and the outcome of our project. We took significant time to plan our project before implementing it. We wanted to ensure our car was designed in the best way possible, in terms of performance, reliability, and safety. We worked cooperatively with other people, seeking and providing feedback and constructive criticism from the professor, TAs, and other groups to build the best possible design.

We also set up a safe testing environment. In an area with high traffic, people could have easily stepped on the car and been hurt. We tested our car in a highly controlled environment to ensure everyone’s safety. We did not make any decisions that would cause harm to others or the environment.

In no circumstances did we give or accept bribes. All of our parts were either bought or sampled in the appropriate manner. We have been honest regarding the results and limitations of our design. We have worked hard to create the best design possible in the given time frame, and it is safe to operate. All people involved with this project were treated fairly.

Appendix

Commented Code | High Level Schematic | Parts List and Cost | Tasks | References

Appendix A: Commented Code

This link contains the source code for our project: Source Code

This link contain supplementary functions we wrote during the development of our project: Supplementary Code

Appendix B: High Level Schematic

High

Appendix C: Parts List and Cost

Part Number Cost
RC Car 1 $20
10cm-80cm Sharp IR Sensor (GP2Y0A21YK) 1 Free (Sampled From Sharp)
4cm-30cm Sharp IR Sensor (GP2D120XJ00F) 2 Free (Sampled From Sharp)
ST Micro H-Bridge (L298HN) 1 Free (Sampled from ST Microelectronics)
ATMEGA 644 1 Free (Sampled from Empire Technologies)
Custom PC Board 1 $4
Small Solder Board 1 $2
9V Battery 1 $2
AA Battery 4 $2
Headers 65 $3.25
Regulator (LM340T5) 1 Free (In Lab)
Screws and Spacers

Free (In Lab)






Total

$33.25

Appendix D: Tasks

Both of us contributed to all parts of the project, however we spent more time working on certain things.

  • Design of Hardware: Nagappan
  • Design of Control Algorithm: Both
  • Design of Parking Algorithm: Prakash
  • Testing of Hardware: Both
  • Testing of Software: Both
  • Compiling Report and Web Site: Both
Continue reading...

Sunday, October 5, 2014

PIC16F628 Digital Clock Timer circuit and explanation

PIC16F628

This clock timer uses a PIC16F628 microcontroller to display 3 and 1/2 digit time and control an external load. It can be programmed to time from 1 to 59 minutes. The clock includes a calendar with leap year and optional daylight savings adjustments. The timer output can be set from 1 to 59 minutes and manually switched on and off. The clock also has a correction feature that allows an additional second to be added every so many hours to compensate for a slightly slow running oscillator. The oscillator uses a common 32.768 KHz watch crystal and the frequency can be adjusted slightly with the 24pF capacitor on the right side of the crystal.

Continue reading...

Friday, October 3, 2014

RANGKAIAN CONVERTER AC 12VDC 220VAC


CMOS 4047 is the capital basic of this baby voltage advocate which transforms a 12V dc into 220V ac. 4047 is acclimated as a astable mutivibrator, at pins 10 and 11 will accept a balanced ellipsoidal arresting wich is amplified b 2 Darlington transistors and assuredly ability the accessory braid of mains agent ( 2×10V / 60VA ).

At the capital braid terminals will get 220V. With the advice of P1 the achievement frequnecy can be adapted amid 50Hz to 400Hz. Although this is not allotment of any able dc ac converters it can be acclimated absolutely able on some home appliances.

Continue reading...

Wednesday, October 1, 2014

Simple Fish Caller Circuit

A lot of controversy exists among amateur fishermen as to the effectiveness of "fish-callers". Some swear by them, others just shake their heads. Here’s an inexpensive way of finding out. The two·transistor circuit drives the speaker.
Varying the two potentiometers produces a wide variety of sounds. You may be lucky and hit on one that will bring in the big ones. An inexpensive waterproof housing is thick walled polythene bag with a few lead sinkers inside. An on-off toggle switch can be manipulated without opening the bag when switching power on and off. The bag opening is sealed with good quality electrical tape to make system waterproof. Tape seal should be renewed after each use. 


Continue reading...