INFRARED TRACKING SYSTEM USING ATMEGA32
Our project is an infrared (IR) tracking system. A beacon, placed on the object to be tracked, continuously emits infrared signals in all directions. The signals coming from the beacon are detected by 2 IR receivers mounted on 2 stepper motors, which rotate independently and are in separate locations. The direction each receiver is pointing towards allows the CPU to determine the position of the beacon via triangulation. The position of the tracked object is then displayed on the TV, where the center point is the middle point of the 2 receivers, and the distance and direction are displayed on the LCD.
Idea and Motivation:
Our initial idea was to design a system consisting of an emitter and a receiver which would keep track of the emitter. We wanted to build a cheap beacon that you could throw in a car or laptop, or attach to your pet (or maybe individuals?), and be able to monitor its motion on a screen in real-time, similar to those gadgets in spy movies. Our goal was not to locate very accurately where the tracked object is, but rather to alert the user when the object is undesirably moving (car being stolen) or moving outside a given perimeter (pet has escaped), and give enough location information to allow plain tracking and/or recovery of the object.
We originally considered Radio frequency, since its range is good enough for the applications we had in mind and it goes through walls so can be used outdoors. Similar existing system are GPS (using satellites), and Radio triangulation (using antennas on buildings), but these are very expensive (over $600 for Lojack car security system). Since there is no accurate unvarying relationship between signal strength and distance, we decided to use 2 rotating directional antennas. However, we quickly abandoned RF because of the issues of cost, multipath, fading, interference from other sources, and the difficulty of making reliable directional antennas. So we decided to use infrared instead. However IR requires line of sight, so we could only test it indoors, and within a small range. Since IR emitters are very directional, we just placed several of them to point in all directions.
When the system is turned on, the 2 motors start turning in opposite directions until an IR source is found or a full rotation is completed. The motors stop independently when each sensor detects the beacon, and the motors remain while the beacon is not moving (low inputs from the IR receivers). Once the input gets high (target moved), the motors immediately turn a few steps in one direction, then in the other direction, increasing the step size every time until the target is found again. The motors remember the previous direction they had to turn in, so that next time it starts looking in that direction first, because we are assuming that if the target is moving, it is more likely to keep going in the same direction. This enabled us to continuously keep track of fast moving object.
From the diagram below (Fig. 2), it is not difficult to derive the coordinates for the position of the target beacon. We used the following equation to determine the beacon position:
x = d* (cos(α1)*sin(α2)/sin(α1+ α2) 1/2)
y = d* sin(α1)*sin (α2)/sin(α1+ α2),
where d is the distance between the 2 motors and α1, α2 are the angles each motor makes with the line connecting them. The distance D of the beacon from the center point is then given by:
Figure 2. Coordinate system used in our project to track the beacon
Since we made use of the NTSC video code, we had to adhere to strict timing requirements in the software. To this extent, it forced us to keep the interaction between hardware and software as minimal as possible. We tried to be as conservative as possible and only kept the code that was absolutely vital to our application. The result of this is that the hardware became slightly more complex to make the software simpler. For example, we used control circuitry to handle operation of the bipolar motors which made the software simpler as we only needed to specify two outputs per motor instead of four. Also, we used the LMC555 oscillator to generate the 38kHz infrared wave on our emitter object. This hardware saved us from having to generate the signal in software and simplified our lives greatly.
Intellectual property considerations:
We did not explicitly reuse code from earlier projects or anything found on the web since the majority of work we found online involved the use of unipolar motors while we built our project around bipolar motors. The difference lies in the control circuitry we had to use (FAN8200 vs. ULN2003) as well as in the pulse sequences that need to be generated by the control circuitry. The video code we used was provided to us by Professor Land. We did not reverse engineering a design nor did we use anybody elses design. As far as we could tell, no earlier project attempted to track and find an object using infrared sensors. We do not believe there are patent opportunities for our project as there exist more sophisticated tracking devices already on the market (GPS, etc) with greater range than our small scale system.
We did not encounter any existing patents, copyrights or trademarks which would affect our project. All code referenced in our project was available in the public domain and we credited all sources we used in the project. There are no copyrights or patents on the search algorithms we used to track the moving object.
Our project requires the use of a black and white television (provided by lab). As a result we followed the EIA RS170 and NTSC video standards. EIA RS170 is used to generate black and white video signals for televisions in the US, (different standards apply in Europe and in the rest of the world). This standard specifies three different voltage levels (sync, black, and white) as well as two sync pulses for horizontal and vertical alignment. The voltages levels we used were white = 1V, sync=0V, and black=0.3V. We followed the schematic given to us in Lab 4 to achieve this voltage levels using a resistive network. The NTSC standard specifies 525 lines/frame with a frame rate of 30 frames/second. NTSC uses interlacing to reduce flicker. This is accomplished by displaying the odd lines first then the even lines. In the video code provided to us by Professor Land, this is modified since we are displaying only about 200 lines (100 odd lines, 100 even lines). There are no applicable standards for infrared transmission in our project since we are simply sending out an IR signal and attempting to determine its location.
The IR Emitter:
The IR emitter is simply an LED which emits light with wavelength typically around 950nm. Our first dilemma was to choose between IR phototransistors (transistors acting as variable current sources with the base voltage determined by the amount of light hitting the transistor) and IR modules (whose outputs are normally high and are set low when an IR signal at a specific frequency is detected). We tested both types of receivers, and we found that IR phototransistors were very sensitive to daylight and had a very small range of usage (it would not detect any signal coming from a source more than 5 cm away). The IR modules, on the other hand, are quite robust and detect signals farther than 3 m, but the transmitted signal needs to be frequency modulated. Another disadvantage is that the output of the modules is either high or low, whereas it is analog for the phototransistors, which would have allowed us to quickly determine whether the receiver is rotating in the right direction (the signal would get stronger) while searching for the beacon (as it moves, the signal strength goes down).
Bipolar Stepper Motors
Hot wheels Toy Car
Mega32 / STK500
Resistors, Capacitors, Wires, Batteries, Tape, Straws, TV
For mored detail: INFRARED TRACKING SYSTEM
Leave a Comment
You must be logged in to post a comment.