Hacklet 32 – LED Persistence of Vision Displays

Blinking LEDs are good. Moving, spinning things are good too. Put them both together and you get a Persistence of Vision (POV) display. Hackers have been building these displays for years. This week’s Hacklet focuses on some of the best LED POV displays on Hackaday.io!

povtypeWe start with [EduardoZola] and POV as you type, write on the air. [Eduardo] used an Arduino Nano, a pair of 433 MHz radios, some blue LEDs and a motor to create a simple spinning display. A hall effect sensor keeps everything in sync. The entire display is powered by a 500 mAh LiPo battery. The awesome thing about this display is the interactive aspect. The transmitter module connects to a laptop via an on-board USB to serial converter. Typing into any serial terminal sends the text directly to the POV display, where the letters appear to hang in the air.

 

deathringNext up is [boolean] with Silent Orchestra POV aka “Death Ring”. [boolean] didn’t want to just create a POV ring, he wanted a huge 5 foot diameter display for his local Burning Man decompression. Death Ring is an aluminum ring spun by a 3HP motor. A hall effect sensor keeps everything synced up, and keeps Death Ring’s 3 horsepower motor in check. Light is provided by a PixelPusher and WS2812 RGB strips. The system is designed to be interactive, controlled with a Leap Motion controller or a Microsoft Kinect. An MPU-6050 keeps acceleration in check while processing maps video to the LED strip. An Arduino Yun allows the entire system to be controlled via WiFi. [boolean] and his team have taken Death Ring through several revisions. Judging by the quality of their aluminum welding though, they’re on the right track to an awesome end result!

locoHackaday.io power user [Davedarko] has been working on a POV display of a different sort. His Locomatrix is an 8×8 LED matrix which moves in and out on the Z axis. [Dave] originally created Locomatrix as his entry in the 2014 Hackaday Prize. We have to admit this is the first time we’ve seen this sort of display, but the idea is sound. In fact, [Bruce Land] posted in the comments to let [Dave] know that he’d seen a similar technique used with a CRT display back in 1964. We’re betting Dave’s 3D printed gears and LED matrix display will be more robust than a CRT tube slamming two and fro at several hundred pulses per minute!

CPOVFinally, we have Hackaday’s own [Mike Szczys] with CPOV – a Crappy Persistence of Vision display . CPOV is a proof of concept made from upcycled parts which [Mike] threw together in a couple of hours. He grabbed the motor from an old cassette deck, some plywood, perfboard, and of course LEDs to build his display. The processor is an ATtiny2313 running Adafruit’s MiniPOV 3 firmware. The system display doesn’t have a sync input, so [Mike] uses a novel form of Human-in-the-loop PWM control to keep the motor speed in check. CPOV is proof that Hackaday.io isn’t just for polished projects, but for proof of concepts, fails, and just plain research. Even if your project isn’t perfect, documenting it will help you learn from it. It might even inspire someone else to move forward and continue where you left off!

Want more POV goodness? Check out our new POV display list!

Our LEDs are going dim, so that’s about all the time we have for this Hacklet. As always, see you next week. Same hack time, same hack channel, bringing you the best of Hackaday.io!

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.

3D Printed LED Guitar Chord Chart

Learning to play guitar can involve a lot of memorization – chords, scales, arpeggios, you name it. [MushfiqM] has made the process a bit easier with his Digital Chord Chart. Just about every beginning guitarist keeps a chord app, chord book, or even a chord poster handy. Usually these chord charts are in the form of tablature, which is a shorthand method of showing where each finger should go on the instrument. [MushfiqM] took things a step further by actually placing that chart on a 3D printed model of a guitar fretboard.

ledmatrixx[MushfiqM] started by rendering a 3D model of an abbreviated guitar using Autodesk Inventor. He then printed his creation in 3 parts: headstock, neck, and fretboard. The neck of the guitar was hollowed out to allow room for a matrix of LEDs which would show the finger positions. [MushfiqM] then painstakingly soldered in a charlieplexed matrix of 30 leds, all connected by magnet wire. The LEDs are controlled by an Arduino UNO, which has the chord and scale charts stored in flash.

For a user interface, [MushfiqM] used a 2×16 character based LCD and a low-cost IR remote control. All the user has to do is select a chord or scale, and it’s displayed on the fretboard.

There are a couple of commercial products out there which perform a similar function, most notably the Fretlight guitar. Those can get a bit pricy though – costing up to $400.00 USD for an LED enabled guitar.

[via Instructables]

Electricity Usage Monitor is Linked to Google Spreadsheets

If you want to make your home more energy-efficient, chances are you will need a way to monitor your electricity usage over time. There are off-the-shelf solutions for this of course, but hackers like us tend to do things our own way. Take [Karl] for example. He recently built himself a solution with only a few smart components. We’ve seen similar projects in the past, but none quite like this.

[Karl’s] home has a power meter that blinks an LED to indicate the current amount of used electricity in Watt-hours. He knew all he needed was a way to electronically detect the blinking LED and he’d be able to accurately track his usage without modifying the meter.

The primary components used in this project were a CC3200 development kit and a photoresistor module. The dev kit contained a WiFi module built-in, which allows the system to upload data to Google spreadsheets as well as sync the built-in clock with an accurate time source. The photoresistor module is used to actually detect the blinking LED on the power meter. Everything else is done easily with code on the dev kit.

TweetHeart Shows You Some Love

[Stacey] wanted a more interesting way to monitor events related to her Twitter account. What she ended up with is a beautiful animated heart light.

TweetboxShe started out by designing the enclosure. Having access to a laser cutter, she opted to make it out of thin plywood. [Stacey] used an online tool called BoxMaker to design the actual box. The tool is very simple to use. You simply plug in the dimensions of the box and it will provide you with a two dimensional template you can use with your laser cutter. The resulting plywood pieces fit together like a puzzle. The heart piece is made from frosted acrylic and was also cut by the laser.

To light up the heart, [Stacey] opted to use NeoPixels. These are like many of the RGB LED strips we’ve seen in the past, though the pixel density is higher than most. She cut up the LED strip into the appropriate sizes and glued them to a piece of plywood in a rough heart shape. She tested the lights during each step so she would know exactly when any errors were made.

[Stacey] opted to use a SparkCore to control the LEDs. This had the advantage of including WiFi connectivity out of the box.  [Stacey] started with NeoPixel example programs, but quickly realized they all relied on the Delay function. This was a problem for her, because she needed to constantly watch for new Twitter events. She ended up having to write her own functions that relied on interrupts instead.

[Stacey] then wrote a Node.js script to monitor twitter and control the Spark. The script watches for specific events, such as one of [Stacey’s] tweets being re-tweeted, or a user unfollowing [Stacey]. The script then sends a message to the Spark to tell it which event just occurred. The Spark will then repeat the event until a new one occurs. Check out the demonstration video below. Continue reading “TweetHeart Shows You Some Love”

Simple and Inexpensive Heartbeat Detector

There are many ways to detect a heartbeat electronically. One of the simpler ways is to take [Orlando’s] approach. He’s built a finger-mounted pulse detector using a few simple components and an Arduino.

This circuit uses a method known as photoplethysmography. As blood is pumped through your body, the volume of blood in your extremities increases and decreases with each heartbeat. This method uses a light source and a detector to determine changes in the amount of blood in your extremities. In this case, [Orlando] is using the finger.

[Orlando] built a finger cuff containing an infrared LED and a photodiode. These components reside on opposite sides of the finger. The IR LED shines light through the finger while the photodiode detects it on the other side. The photodiode detects changes in the amount of light as blood pumps in and out of the finger.

The sensor is hooked up to an op amp circuit in order to convert the varying current into a varying voltage. The signal is then filtered and amplified. An Arduino detects the voltage changes and transmits the information to a computer via serial. [Orlando] has written both a LabVIEW program as well as a Processing program to plot the data as a waveform. If you’d rather ditch the PC altogether, you might want to check out this standalone heartbeat sensor instead.

Dual Complementary Optoisolator Logic

You’ve seen CMOS logic, you’ve seen diode-resistor logic, you’ve seen logic based on relays, and some of you who can actually read have heard about rod logic. [Julian] has just invented optoisolator logic. He has proposed two reasons why this hasn’t been done before: either [Julian] is exceedingly clever, or optoisolator logic is a very stupid idea. It might just be the former.

Inside each optoisolator is a LED and a phototransistor. There’s no electrical connection between the two devices, which is exactly what you need in something that’s called an isolator. [Julian] was playing around with some optoisolators one day to create a weird push-pull circuit; the emitter of one phototransistor was connected to the collector of another. Tying the other ends of the phototransistor to +5V and Gnd meant he could switch between VCC and VDD, with every other part of the circuit isolated. This idea whirled around his mind for a few months until he got the idea of connecting even more LEDs to the inputs of the optoisolators. He could then connect the inputs of the isolators to +5V and Gnd because of the voltage drop of four LEDs.

A few more wheels turned in [Julian]’s head, and he decided to connect a switch between the two optoisolators. Connecting the ‘input’ of the circuit to ground made the LED connected to +5V light up. Connecting the input of the circuit to +5 made the LED connected to ground light up. And deeper down the rabbit hole goes [Julian].

With a few more buttons and LEDs, [Julian] created something that is either an AND, NAND, OR NOR, depending on your point of view. He already has an inverter and a few dozen more optoisolators coming from China.

It is theoretically possible to build something that could be called a computer with this, but that would do the unique properties of this circuit a disservice. In addition to a basic “1” and “0” logic state, these gates can also be configured for a tri-state input and output. This is huge; there are only two universal gates when you’re only dealing with 1s and 0s. There are about 20 universal logic gates if you can deal with a two.

It’s not a ternary computer yet (although we have seen those), but it is very cool and most probably not stupid.

Video below.

Continue reading “Dual Complementary Optoisolator Logic”