The clock is a perfect technology. For just a few dollars, you can buy a digital wristwatch and chronometer able to keep extremely accurate time for years without winding a spring or replacing a battery. Anything ‘improvement’ on the design of a clock only makes it harder to read, a feature exploited by the very 1337 binary clocks we see from time to time. [Ch00f] decided it was time to give way to the march of progress and build a completely unreadable clock. He came up with a QR code clock that is unreadable by humans and cellphones alike.
The hardware is built around nine 8×8 LED matrix panels resulting in a 24 x 24 pixel display, perfect for displaying a 21 pixel square QR code. The LED drivers are a standard multiplexed affair, but this project really shines in the firmware department.
The microcontroller [Ch00f] used – an ATMega328 – is far too small to store the 1440 QR codes for every minute of the day. No, this project would have to dynamically generate QR codes on the fly, not exactly an easy problem.
After looking over the official QR code standard, [Ch00f] wrote a rather large program that turns alphanumeric sequences into QR code. This runs on the microcontroller every minute, generating a new QR code for every minute of the day.
It’s nigh impossible for a human to read a QR code, but [Ch00f] figured he could make his project even less useful. By multiplexing the LEDs at a very low duty cycle [Ch00f] made it impossible for a camera to capture the entire QR code, even though the pattern of pixels is still visible to the human eye. A fabulously useless build that really steps up the game for unreadable clocks.
Video after the break.
Continue reading “QR clock is unreadable by humans and computers alike”
[Jeremy Blum] wrote in to share his LibeTech QR Code Door Lock project. He developed it during his Senior year at Cornell University along with three of his classmates. It seeks to move away from magnetic card locks in favor of optical locks that authenticate based on a QR code.
The hardware he’s using here is definitely cost prohibitive, but we’re sure the concept could be greatly simplified. In this case a BeagleBone running embedded Linux monitors a feed from a webcam. When it detects a QR code it compares it with a database of approved keys and will unlock the door for you.
There are problems with this technique, one being that an attacker might be able to get a usable photograph of your key without you knowing. But the majority of hotel locks in use right now are even less secure than that. On the upside, the key to your room can be emailed to you for use on just about any device with a screen, or printed out on a piece of paper.
You can find [Jeremy’s] presentation video embedded after the break.
Continue reading “QR code opens doors to you”
Former Hackaday contributor [mikeysklar] has been trying to etch a QR code into a sheet of copper. Although his phone can’t read the CuR codes he’s made so far, he’s still made an impressive piece of milled copper.
The biggest problem [mikey] ran into is getting Inkscape to generate proper cnc tool paths instead of just tracing a bitmap image. He’s got the CNC part of his build under control, but he still can’t find a QR code reader that will register his work.
We’re no stranger to QR codes here at Hack a Day, and it’s very possible the only thing that could be stopping [mikey]’s QR code from being read by a phone is the contrast of the image. We’re thinking a little bit of printer’s ink forced into the non-copper part of the PCB would make the QR code register. Since [mikey] already has a very nice negative etching of his QR code, he could easily use his new board as a printing plate, making infinite paper copies of his copper-based QR code.
If you’ve got any ideas on how [mikey] can get his QR code working, post them in the comments.
This game of Space Invaders is played by tilting your iPhone to the left or right. It’s a demonstration of HTML5 used to link devices in-browser. The only setup that’s required is for the base device to load up a webpage, then the control device scans a QR code (or just types in a link) to connect with the game. You can give it a try right now if you want.
It only works with iOS devices but we believe that’s because mobile Safari has the ability to poll accelerometer data and other browsers do not. If this was using on-screen buttons rather than the tilt controls it would work on any device that implements HTML5. The connection is facilitated by Node.js and Socket.IO. The QR code that is generated by the host machine’s page includes a unique ID which allows the control device to link with it. Once loaded, commands from the controller are sent via Socket.IO to the node on the host machine.
As with this HTML5-based sensor data application, we think this method is important because it allows control without the need for a standalone application. We’re hoping to see a lot of this in embedded projects in the future. By serving data to a smart phone or other device you remove to need for a physical user interface in your projects, which means you can make great things while spending less.
Here’s another audio playback hack that uses physical tokens to choose what you’re listening to. It uses Touchatag RFID hardware to control iTunes. The concept is very similar to the standalone Arduino jukebox we saw on Wednesday except this one interfaces with your computer and the tags select entire albums instead of just one song. A shell script processes the incoming tag ID from the reader, populates a playlist with all the tracks from the associated album, then executes an AppleScript to launch that playlist. Check out the short demo after the break.
But what really caught our eye is the QR-code reader concept which [Janis] hopes to implement at some point in the future. The computer side of things doesn’t need to be changed, but we love the challenge of putting together an FPGA-based camera to recognize and decode the QR image. Looks like a perfect use for that $10 camera module and it’s FPGA driver!
Continue reading “RFID playlists plus a QR code concept”
This project shows you one possible way to use HTML5 to fully integrate sensor data from a microcontroller into our technological lives. Now, when we saw this tip come through our inbox we thought it would be an interesting example to learn from but we weren’t ready for how truly cool the setup is. Take a look at the video after the break and you’ll see that scanning the QR code on the project box will immediately start a 10ms resolution live stream of the accelerometer data. Furthermore, the browser page that the phone loads allows you to send what you’re currently viewing to the main frame of a browser running on a different computer with the touch of a button. In this way you can build a dashboard of streaming sensor data. Talk about the future of home automation. Imagine a QR code on your thermostat that allows you gain access to your home’s heating, air conditioning, humidifier, and water heater performance and controls just by snapping a pic? The sky’s the limit on this one so let us know what you’d use it for by leaving a comment.
Continue reading “Wicked use of HTML5 to display sensor data”
Love them or hate them, plenty of people around the world use QR codes on a daily basis. Since he thinks they’re pretty great, Hackaday reader [falldeaf] thought it would be cool to put together an automatic QR code generator to be used on web sites.
Inspired by the custom QR logo embedding work done by our own [Brian Benchoff], his dynamic QR code generator allows you to do the same thing, but with far less work. The code requires that you have PHP and the GD library installed on your server, but other than that his code does the rest.
All you need to do is call up the page and pass along a URL, optional caption text, optional image overlay (to add your logo to the center of the code), as well as an optional hash code for tracking traffic sources. The page spits out a png image that can be used on its own, or embedded in a blog, which is what [falldeaf] plans on using it for.
If QR codes are your thing, be sure to grab a copy of his code, it will certainly be a handy tool to have around.