Every year Atlanta Hobby robotics polyathlon is held. It requires you to build a somewhat flexible robot that can do such things as find objects and push them off tables, follow lines, dead reckoning and the beacon killer. I've found the beacon killer competition the most challenging. It requires you to build a beacon and robot sensor that is up to 10 feet away. The competitors bring their own beacon so its literally whatever the builder dreams up as a beacon can be used. The beacon must be able to work in a noisy well lit room. So a simple sound sensor or light sensor may not work. There are also obstacles to avoid so the sensor cannot interfere with your obstacle detection sensors. After reading what others had doe and considering I have a lack of electronic skill or parts to build a microwave sensor, nor could I interfere with my sonar sensors I was left with the polarized light solution.
Polarized light is filtered light with all the light waves oriented in a similar direction. Normal light tends to wiggle up to down or left to right. If you put a filter in front of the light and a filter that is oriented the same as the filter in front of the light you will see the light (a little dimmer) . If you orient the filter in front of your eye turned 90 degrees the polarized light will not be much darker and could be totally blocked depending on the quality of your filters.
The beacon finder is leverages these filters by putting two LDR (Light dependent resistors) pointing in the same direction. Each sensor will have polarized film in front of it but one will be vertically oriented and the other horizontally. This will allow you to take a voltage reading from each sensor and if they are pointing at a polarized light one sensor value will be greatly different from the other. If they are pointing at a non polarized light source then the sensors will have a similar voltage reading and their difference will be zero.
The sensors will be connected to an arduino board's analog inputs to do the readings. Arduinos have a minimum of 6 analog inputs so we will use six outputs on this sensor. It is possible to get away with just 3 inputs but I've tried this before and its not as predictable as using six outputs so we wont go over hat method.
Step 1: First Collect Your Materials
Print the beacon finder. You can download it from Thingiverse . You will also need the following
- 6 ldr sensors. GM5539 fit well in this design.
- at least 2 3x3 inch Polarized film sheets
- 6 resistors ~10 k ohm.
- 8 7 inch strands of wire with one end able to plug into an arduino board.
- A black electrical table
- An Arduino board.
- 3d print of Sensor Mount
Tools you need
- A soldering iron
- A hot glue gun.
Step 2: Hot Glue the Sensors In.
Insert a LDR sensor from the inside facing out. If its a 5539 or similar sized sensor you will find it stops about halfway into the hole. this is because the hole is 4 mm in diameter on the outer face of the beacon part but 6mm in diameter on the inner face. Make sure the sensor is laying flat on the inner rim of the hole then use the glue gun to put a dollop of glue on the back of the sensor. Let it cool. Do the same for the other 5 sensors. make sure you do not glue the wires on the sensor together. Also do not overdue the glue. It can get messy.
Step 3: Soldering the Resistors
Move a single wire from each glued sensor to the floor of the beacon finder and twist their ends together. Attach a wire This will be the voltage wire so keep that in mind when choosing a wire color. Now on the remaining lead attach a resistor to each sensor. On the connection between the resistor and the LDR sensor connect your signal wire. We are building 6 voltage divider circuits here. One for each LDR sensor.
After connecting the resistors and wires then use either tape or heat shrink tubing to insulate the connections from each other. You can also reduce the odds of damage by adding a few more dollops of glue to hold everything in place.
Last but not least attach the remaining lead from each resistor. Twist them together and solder your ground wire to them. Another few dollops of hot glue and you should be ready for the attaching to the film.
Step 4: Attaching the Polarized Film
Cut two strips of polarized film. They should be around 8 mm wide. Make sure that each strip is orthoganal to each other. you can tell which way are they orthogonal by setting the two strips on top of each other and they are black where they overlap then. If not orthogonal they are fairly clear. Make sure you peel off their protective covering.
At the top of the 3d printed part you will see a 6 slots with one corresponding to each sensor. This is where you insert the film to cover the sensor. Put an strip about 10 mm long in each slot where each pair of slots is orthogonal to each other per pair You can use black leectri tape to hold the filters in place.
To confirm you have the film oriented correctly take one of the films nd tape it to a flashlight and shine the light on the sensors.The flash light needs to be turned where the film is oriented in the same way as the 3d-printed part. If everything is OK then you should be able to see one sensor but not the other turning the flashlight reverses which sensor you can see.
Step 5: Connect the Arduino Board.
Attach the ground of the sensor to the board. attach the five volt lead on the arduino to the sensor as well. Plugin the sensor wires to the analog ports of the arduino making sure that that the neighboring sensors will be neighbors on the pins of the arduino.
Upload code to the arduino board and turn on the serial monitor. You should see 'no beacon' repeated on the serial monitor.
If you point the flashlight at the sensors and rotate the flashlight and you will see left, right and/or center since depending on which sensor the light bulb is pointing at.
Step 6: Done.
You should now have a working beacon sensor. Whats left is how to build a brighter beacon. This will require a super bright LED bulb. Building the beacon will be a later instructable.