Arduino Tetris on a Multiplexed LED Matrix

[Alex] needed a project for his microcomputer circuits class. He wanted something that would challenge him on both the electronics side of things, as well as the programming side. He ended up designing an 8 by 16 grid of LED’s that was turned into a game of Tetris.

He arranged all 128 LED’s into the grid on a piece of perfboard. All of the anodes were bent over and connected together into rows of 8 LED’s. The cathodes were bent perpendicularly and forms columns of 16 LED’s. This way, if power is applied to one row and a single column is grounded, one LED will light up at the intersection. This method only works reliably to light up a single LED at a time. With that in mind, [Alex] needed to have a very high “refresh rate” for his display. He only ever lights up one LED at a time, but he scans through the 128 LED’s so fast that persistence of vision prevents you from noticing. To the human eye, it looks like multiple LED’s are lit up simultaneously.

[Alex] planned to use an Arduino to control this display, but it doesn’t have enough outputs on its own to control all of those lights. He ended up using multiple 74138 decoder/multiplexer IC’s to control the LED’s. Since the columns have inverted outputs, he couldn’t just hook them straight up to the LED’s. Instead he had to run the signals through a set of PNP transistors to flip the logic. This setup allowed [Alex] to control all 128 LED’s with just seven bits, but it was too slow for him.

His solution was to control the multiplexers with counter IC’s. The Arduino can just increment the counter up to the appropriate LED. The Arduino then controls the state of the LED using the active high enable line from the column multiplexer chip.

[Alex] wanted more than just a static image to show off on his new display, so he programmed in a version of Tetris. The controller is just a piece of perfboard with four push buttons. He had to work out all of the programming to ensure the game ran smoothly while properly updating the screen and simultaneously reading the controller for new input. All of this ran on the Arduino.

Can’t get enough Tetris hacks? Try these on for size.

Bike Rim Lighting Lets the Night Crowd Know When You’re Rollin’

There comes a wonderful “MacGyver moment” in many hackers’ lives when we find ourselves with just the right microcosm of scrap parts to build something awesome. That’s exactly what [dragonator] did with his gifted tech box from Instructables. He’s combined RGB LEDs, a Trinket, and a hall effect sensor to add a semicircular rainbow pattern to his night ride while he rides it.

The theory behind the hack is well-known: given the time between pings from a hall-effect sensor responding to the magnet on a bike wheel, an embedded system can estimate the wheel rpm and predict the time to display a particular color on the LEDs. [dragonator] uses the known wheel speed to determine the LED pattern currently on display: either a slow breathing pulse to a half-circle rainbow that displays on the lower bike rim. He drops in the needed equations and required components to follow his trail in a well-documented instructable.

Persistence of Vision (POV) is a nice extension from blinking your first (or first hundred) LED(s). It’s just enough math to get the casual onlooker to cry “magic” and just enough embedded electronics to get those seasoned double-Es to nod their heads. If you’re new to the POV crowd, [dragonator’s] Instructable may be a great start.

Continue reading “Bike Rim Lighting Lets the Night Crowd Know When You’re Rollin’”

Persistence of Vision Clock on a Propeller

If you have a spare DC motor, a PIC16F84A microcontroller, and a lot of patience, then [Jon] has a great guide for building a persistence of vision clock that is sure to brighten up any room. For those who are unfamiliar with this type of clock, the principle is simple: a “propeller” with LEDs spins, and at just the right moment the LEDs turn on and display the time.

We’ve featured persistence of vision projects before (many times), and have even featured [Jon]’s older clocks, but the thing that makes this POV clock different is the detail of the project log. [Jon] wasn’t satisfied with the documentation of existing projects, and went through great pains to write up absolutely everything about his clock. The project log goes through four major versions of the hardware and goes into great depth about the software as well, making it easy for anyone to recreate this robust clock.

As for the clock itself, the final revision of the hardware has a PCB for all of the components, and uses a PC fan motor to spin the propeller. Power delivery eliminates slip rings or brushes in favor of wireless power transfer, which is an impressive feat on its own. Indeed, the quality of the clock is only surpassed by the extreme level of detail!

POV Display Does it on the Cheap

lowBudgetPOV

[Sholto] hacked together this ultra low-budget spinning display. He calls it a zoetrope, but we think it’s actually an LED based Persistence Of Vision (POV) affair. We’ve seen plenty of POV devices in the past, but this one proves that a hack doesn’t have to be expensive or pretty to work!

The major parts of the POV display were things that [Sholto] had lying around. A couple of candy tins, a simple brushed hobby motor, an Arduino Pro Mini, 7 green LEDs, and an old hall effect sensor were all that were required. Fancy displays might use commercial slip rings to transfer power, but [Sholto] made it work on the cheap!

The two tins provide a base for the display and the negative supply for the Arduino. The tins are soldered together and insulated from the motor, which is hot glued into the lower tin. A paper clip contacts the inside of the lid, making the entire assembly a slip ring for the negative side of the Arduino’s power supply. Some copper braid rubbing on the motor’s metal case forms the positive side.

[Sholto] chose his resistors to slightly overdrive his green LEDs. This makes the display appear brighter in POV use. During normal operation, the LEDs won’t be driven long enough to cause damage. If the software locks up with LEDs on though, all bets are off!

[Sholto] includes software for a pretty darn cool looking “saw wave” demo, and a simple numeric display. With a bit more work this could make a pretty cool POV clock, at least for as long as the motor brushes hold up!

Continue reading “POV Display Does it on the Cheap”

The Persistence of Jumping Rope

POV Jump Rope

[Antonio Ospite] recently took up jump rope to increase his cardio, and also being a hacker decided to have some extra fun with it. He’s created the JMP-Rope — the Programmable Jump Rope.

He’s using the same principle as a normal POV (Persistence of Vision) display, but with a cool twist. He’s managed to put the microcontroller (a Trinket) and battery into the handle of the jump rope. Using a slip ring system, the RGB signal gets passed to the rope, which contains the LEDs. It’s a pretty slick setup, and he’s written another post all about how he did the hardware.

To create the images for his JMP-Rope, he’s outlined the steps to a successful POV image on his blog. These include re-sizing the image to a circle (duh), reducing the color palette, and then performing pixel mapping using a discrete conversion (from polar to Cartesian coordinates). After that it’s just a matter of representing your new-found pixel map in a 1D animation, played column by column. [Antonio] stores these frames on the micro-controller as an RLE (run length encoded) indexed bitmap.

Stick around to see how he made it, and some other cool examples of what it can do!

Continue reading “The Persistence of Jumping Rope”

Persistence of Vision would make a Great HUD

povtyp

[Eduardo Zola] has just put the finishing touches on this awesome real-time persistence of vision display which displays text as you type!

It looks like the display is mounted on a small DC fan, which [Eduardo] powers using a bench top power supply. This allows him to fine tune the speed manually, without adjusting the the actual POV controller. The display receives the characters from the keyboard via a small USB RF receiver, and it has got a pretty snappy response time.

There isn’t too much more info on the project, but it certainly gives us an idea — could persistence of vision be used to create a kind of heads up display in a vehicle? What do you think?
Continue reading “Persistence of Vision would make a Great HUD”

Fubarino Contest: Persistence of Vision clock

propellerck5

The best part of these contests is that we get people to actually show off what they’ve been working on! Check out the POV clock which was sent in by [Taciuc]. He doesn’t have a webpage for it, but he did send a video which you can see after the break.

The project is a home-etched PCB with a long row or surface mount LEDs. The board is spun by a stepper motor which takes a little while to stabilize. But once it does it’s a twirling package of awesomeness. A PIC 16F628 drives the device, with a separate RTC chip to keep time. There’s also an IR receiver to facilitate user control. Our URL is displayed on the clock face itself and we think it’s always shown. But there is an easter egg in the code itself. If you try to dump the firmware from the chip you’ll see our web address in the hex output. Here’s his project archive if you want to the HEX, ASM and DipTrace schematic.


This is an entry in the Fubarino Contest for a chance at one of the 20 Fubarino SD boards which Microchip has put up as prizes!

Continue reading “Fubarino Contest: Persistence of Vision clock”