Oct 29, 2010

NXT Checkout Scanner


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.

5 comments:

Claudio Di Tursi said...

Nice!
Take a look to this page :
Take a look to this page
http://www.multimatica.it/mindstorms/barcodereader.htm
a project of the early 2006.

Andy Dannelley said...

Dave,

Congrats! Terrific implementation as usual!

Your designs are always so simple and elegant and your documentation and build instructions are so easy to understand.

Thanks for all you do. Keep up the great work!

Andy

Matthias Paul Scholz said...

Dave,

Great job. Did you encounter misreadings by the scanner?

Dave Parker said...

Thanks Guys. MP, I didn't encounter any real misreadings from the sensor that I remember, but there is the issue of ambient light, which I mention in the instructions.

Claudio, nice scanner vehicle! I suggested trying something like that in my "Challenges" section, and that looks like a fun way to do it.

Linuxgeocacher said...

Thanks for showing us this great implementation! The video is amazing!

Also did some work on this topic and implemented an EAN-13 barcode scanner with leJOS NXJ. You can find more infos at http://sites.google.com/site/ghoelzl/barcodescanner

Related Posts Plugin for WordPress, Blogger...