This Checkout Scanner project I posted recently uses the NXT 2.0 Color Sensor in Light Sensor mode to scan simple "barcodes" made out of LEGO beams and imitate a laser barcode scanner. The interesting thing is how fast it is able to work (the standard light sensor would be as fast as well). Here is a video of the scanner in action:
This project was inspired a bit by one of the missions on the FLL board this year, the Medicine Dispenser, where teams might want to use a light sensor to count black lines on the mat to get the exact distance right. My team was doing this mission and driving very slowly to make sure the sensor was able to count the lines properly. As I was watching them, I was thinking this was one of those cases where your instincts as a human don't relate well to what a robot can do. I knew the sensor could work much faster (and therefore the motor response is the limiting factor, not the sensor), but I was curious how much faster. So I did some tests and then thought of this project.
It turns out you can take light readings about 300 times per second, which is fast enough to do some pretty fast scanning. When you are working on data coming in this fast, it helps to visualize it in graph form, so also included in the programming instructions for this project are a program and some instructions on how to do some basic "data logging" on the NXT, to get sensor data from the sensor, transfer it to the PC, and graph it, as shown in this sample graph:
The data logging program and instructions are for doing it "manually", not using the built-in Data Logging feature of NXT-G 2.x from LEGO Education, which is not available in the retail software, and in any case is limited to only 25 samples per second, so it's not fast enough for this application.