Navigation

Home

About me

Friends

Family

EDL Project

Hopkins

Spring Fair

Infared Project

Resume

Links
Intelligent Tracking System using a VLSI Dual Imager Chip

This past spring, I worked on a project for Electronics Design Lab that involved an RC car, a PIC microprocessor chip, and a VLSI dual imager chip. The primary goal was enabling the RC car to steer around obstacles on its own. This would be accomplished through the use of a camera lens and the imager chip. The imager would view the car's surrounding field of view, while the PIC chip would process this information and control the car's motion through servo and motor signals.

The project took a while to get off the ground, as we needed to program the PIC, analyze the electrical signals the RC car uses to steer and accelerate, and determine the best way to use the imager. It was a fun project once we got things going.

Our control of the RC car depended on signals sent to the servo and motor controls, both of which are 4.5V lines with a frequency of 50 Hz and a duty cycle varying from 1 ms to 2 ms. What this means is that the pulse of the signal is only present for a fraction of the total clock cycle. (Think about a heart rhythm)

This oscilloscope screen capture shows the servo signal the car normally produces, with the signal our PIC generates below it.



This servo signal will control the direction of the RC car. Increasing the duty cycle toward 2.0 ms will cause the car to turn right, while decreasing the length of the pulse toward 1.0 ms instructs the car to make left turn. The 1.5 ms duty cycle shown in the picture will cause the RC car to continue straight ahead.

The following pictures show the servo signals for a maximum left turn (1 ms) and a maximum right turn (2 ms):





In order to monitor the field of view and direct the car's motion, the PIC needs to interact with the Dual Imager chip. The imager observes objects through the lens mounted on the RC car, and computes the centroid of objects it sees. The imager then sends the object's position to the PIC, which performs Analog-to-Digital conversion (ADC) on the signal.

The A/D result has a range of 0 - 256, with an increasing integer representing an object's location shifting from left to right. This integer is used with a lookup table to determine the correct degree of turn the RC car should make. The PIC has a pulse width modulation (PWM) module that is utilized in this project to generate 50 Hz signals with varying duty cycles. The lookup table provides the register value that updates the servo duty cycle many times each second, enabling the RC car to essentially drive itself.

In order for the imager to function correctly, control signals are generated by the PIC microprocessor. These signals bring the pixels and edge circuitry in and out of reset. The following picture shows the interaction of these reset signals. The measured 160 us gap between the signals is to ensure that the individual pixels come out of reset before the edge circuitry does. If this were not the case, then the imager would send out inaccurate results to the PIC.



The output voltage level of the imager chip can vary between 1.8 V and 2.8 V, depending on whether light has been detected on the left side, center, or right side. The following are oscilloscope captures showing a left side detection (1.8 V) and a right side detection. (2.8 V)





This is another screen capture of the output of the imager. In this case, the light is incident on the entire chip, causing all the pixels to fire at once. The centroid result, as you might expect, reads a center measurement of 2.32 V.



Note: Because of the high contrast required to trigger the imager pixels, we needed to use a penlight to control the motion of the car. One of the toughest elements of working with the imager was getting the focus for the lens as accurate as possible.

Overall, it took more time to develop the concept and program the PIC than anything else in this project. As you can see by our block diagram, it was not an easy task to keep track of all the signals involved.



And now the fun part, driving the car around! This RC model is pretty fast, and it was quite difficult to keep in front of it with the penlight.

View of the chip setup:



On the left side here is the Dual Imager chip, shielded on the sides by electrical tape. We mounted the lens above the chip. In the center of the photo is the PIC microprocessor. To the right is the RC car servo. We wire wrapped the board so that the RC car could function in automatic mode, or be manually driven using the controller. The switch is on the top of the board. Across the bottom is a row of voltage regulators, used to split the 9V supply into sources of 3.3V, 5V, and various others needed to power the imager and PIC chips.

Top view of the RC car:



Front view:





If you have questions about this project or PIC programming, feel free to email me here