I’ve always considered barcodes to be one of those invisible innovations that profoundly changed the world. What we might recognize as modern barcodes were originally designed as a labor-saving device in the rail and retail industries, but were quickly adopted by factories for automation, hospitals to help prevent medication errors, and a wide variety of other industries to track the movements of goods.
The technology is accessible, since all you really need is a printer to make barcodes. If you’re already printing packaging for a product, it only costs you ink, or perhaps a small sticker. Barcodes are so ubiquitous that we’ve ceased noticing them; as an experiment I took a moment to count all of them on my (cluttered) desk – I found 43 and probably didn’t find them all.
Despite that, I’ve only used them in exactly one project: a consultant and friend of mine asked me to build a reference database out of his fairly extensive library. I had a tablet with a camera in 2011, and used it to scan the ISBN barcodes to a list. That list was used to get the information needed to automatically enter the reference to a simple database, all I had to do was quickly verify that it was correct.
While this saved me a lot of time, I learned that using tablet or smartphone cameras to scan barcodes was actually very cumbersome when you have a lot of them to process. And so I looked into what it takes to hack together a robust barcode system without breaking the bank.
At a local LAN event, [Thomas] wanted a way to easily show off the capabilities from some of the Internet-of-Things devices everyone keeps talking about. His idea was to build an internet-connected foosball/table soccer/table football table to show off some hardware and software.
[Thomas]’s table automates almost everything that is part of the great sport of foosball. Once a user logs in using the barcode scanner, the game begins by deploying the tiny ball with parts salvaged from a Roomba. The table uses infrared sensors to detect the ball. Once a goal is scored, it is posted online where anyone can see the current score and a history of all of the games played on the table.
There are a few other unique touches on the foosball table, such as the LED lighting, touch screen displays, and an STM32-E407 ARM processor to tie the whole machine together.
Voice activation, one-touch cooking, web controls, cooking settings based on UPC… have you ever seen a microwave with all of these features? We sure haven’t. We thought it was nice that ours have a reheat button with three different settings. But holy crap, what if you could actually program your microwave to the exact settings of your choice? You can, if you let a Raspberry Pi do the cooking.
This hack run deep and results in a final product with a high WAF. Nathan started by taking apart his old microwave. He took pictures of the flexible sheets that make up the control button matrix in order to reverse engineer their design. This led him to etch his own circuit board to hook the inputs up to a Raspberry Pi board and take command of all the appliance’s other hardware. Because it also drives the seven segment display you’ll never see the wrong time on this appliance again. It’s set based on NTP.
We mentioned you can tweak settings for a specific food. The best way of doing this is shown in the demo video. The web interface is used to program the settings. Recalling them is as simple as using the barcode reader to scan the UPC. Amazing.
The LVL1 Hackerspace held a hackathon back in June and this is one of the projects that was created in that 24-hour period. It’s a 3D scanner made from leftover parts. The image gives you an idea of the math used in the image processing. It shows the angular relations between the laser diode, the subject being scanned, and the webcam doing the scanning.
The webcam is of rather low quality and one way to quickly improve the output would be to replace it with a better one. But because the rules said they had to use only materials from the parts bin it worked out just fine. The other issue that came into play was the there were no LCD monitors available for use in the project. Because of that they decided to make the device controllable over the network. On the right you can see a power supply taped to the top of a car computer. It connects to the laser (pulled out of a barcode scanner which produces a line of red light) and the turntable. A Python script does all of the image processing, assembling each slice of the scan into both an animated GIF and an OBJ file.