Posts | Comments

Planet Arduino

Archive for the ‘LED’ Category

Light painting: there’s something that never gets old about waving lights around in a long exposure photo. Whilst most light paintings are single shots, some artists painstakingly create frame-by-frame animations. This is pretty hard to do when moving a light around by hand: it’s mostly guesswork, as it’s difficult to see the results of your efforts until after the photo has been taken. But what if you could make the patterns really precise? What if you could model them in 3D?

[Josh Sheldon] has done just that, by creating a process which allows animations formed in Blender to be traced out in 3D as light paintings. An animation is created in Blender then each frame is automatically exported and traced out by an RGB LED on a 3D gantry. This project is the culmination of a lot of software, electronic and mechanical work, all coming together under tight tolerances, and [Josh]’s skill really shines.

The first step was to export the animations out of Blender. Thanks to its open source nature, Python Blender add-ons were written to create light paths and convert them into an efficient sequence that could be executed by the hardware. To accommodate smooth sliding camera movements during the animation, a motion controller add-on was also written.

The gantry which carried the main LED was hand-made. We’d have been tempted to buy a 3D printer and hack it for this purpose, but [Josh] did a fantastic job on the mechanical build, gaining a solidly constructed gantry with a large range. The driver electronics were also slickly executed, with custom rack-mount units created to integrate with the DragonFrame controller used for the animation.

The video ends on a call to action: due to moving out, [Josh] was unable to continue the project but has done much of the necessary legwork. We’d love to see this project continued, and it has been documented for anyone who wishes to do so. If you want to check out more of [Josh]’s work, we’ve previously written about that time he made an automatic hole puncher for music box spools.

Thanks for the tip, [Nick].

As if you already weren’t agonizing over whether or not you should build your own arcade cabinet, add this one to the list of compelling reasons why you should dedicate an unreasonable amount of physical space to playing games you’ve probably already got emulated on your phone. [Rodrigo] writes in to show off his project to add some flair to the lighted buttons on his arcade controller. (Google Translate)

The wiring for this project is about as easy as you’d expect: the buttons connect to the digital inputs on the Arduino, and the LEDs on the digital outputs. When the Arduino code sees the button getting pressed, it brings the corresponding LED pin high and starts a fade out timer using the SoftPWM library by [Brett Hagman].

It’s worth noting that the actual USB interface is being done with a stand-alone controller, so the Arduino here is being used purely to drive the lighting effects. The more critical reader might argue that you could do both with a single microcontroller, but [Rodrigo] was in a classic “Use what you’ve got” situation, and already had a USB controller on hand.

Of course, fancy lit arcade buttons won’t do you much good without something to put them in. Luckily we’ve covered some fantastic looking arcade cabinets to get you inspired.

There was a time when having a blinking blue LED on a project was all you needed to be one of the cool kids. But now you need something more complex. LEDs should not just snap on, they should fade in and out. And blinking? Today’s hotness is breathing LEDs. If that’s the kind of project you want, you should check out [jandelgado’s] jled library.

At first glance, an Arduino library for LED control might seem superfluous, but if you are interested in nice effects, the coding for them can be a bit onerous. If you don’t mind stopping everything while you fade an LED on (or off) then sure, you just write a loop and it is a few lines of code. But if you want to have it happen while other things continue to execute, it is a little different. The library makes it very simple and it is also nicely documented.

Obviously, to create a special effect LED, you need to create a JLed object. Then you can use modifier methods on that object to get certain effects. The only overhead is that you need to call the update method on the LED periodically. Here is one of the examples from the project:

#include <jled.h>

// connect LED to pin 13 (PWM capable). LED will breathe with period of
// 2000ms and a delay of 1000ms after each period.
JLed led = JLed(13).Breathe(2000).DelayAfter(1000).Forever();

void setup() { }

void loop() {

Pretty easy and readable. Just remember that some Arduinos can’t do PWM on pin 13, so you might have to adjust. Our only complaint is that you have to update each LED. It would be nice if the JLed constructor kept a linked list of all LED objects so you could have a class method that updates all of them with one call. In the examples, the author keeps all the LEDs in an array and steps through that. However, that would be easy to fork and add. Oh wait, we did it for you. The library does do a lot of work, including taking advantage of higher PWM resolution available on the ESP8266, for example.

The library can turn an LED on or off (including delays), blink or breathe an LED forever or for a certain number of times, or fade an LED on or off. In addition to the presets, you can provide your own brightness function if you want to do some kind of custom pattern. You can modify most actions by specifying a delay before or after, a repeat count (which can be forever) and you can also tell the library that your LED is active low, so you don’t have to mentally remember to flip everything around in your code.

Rocket science? No. But we like it. Blocking for an LED effect is bad and this makes fancy asynchronous LEDs simple. Why not use it? Recent IDEs can install it from the manage library dialog, so it takes just a second.

Really, libraries are a key to building systems simple. Why not stand on the backs of others? Some of our favorites handle SPI and proportional integral derivative (PID) control.

There are plenty of cheap projection clocks available, but as [Thomas Pototschnig] points out in this project, where’s the fun in just buying something? He set out to build a cheap projection clock using a small LCD screen, a cheap LED backlight, and a cheap lens. Cheap is the order of the day here, and [Thomas] succeeded admirably, creating a design that can be made with a couple of cheap PCBs, a 3D printer and the other parts mentioned above. He does a nice job of laying out his thinking in this design, showing how he calculated the projection path and made other decisions. His project has room to grow as well: it runs from an Arduino compatible STM32 that could handle many things other than showing the time if you were inclined to expand the project further.

[Thomas] has released all of the files he created for the project, including a number of options for the case that can use C-mount and Sony E-mount lenses. I’m not sure if you would want to attach your expensive camera lenses to a home-made projector like this, but it’s good to have the option if you have a dead E-mount lens that you were going to tear apart for parts anyway.

Light painting is a technique which allows you to “draw” on a photograph by moving a light past the camera during a long exposure shot. While it can be difficult to master, light painting allows for some incredible effects such as text and images that appear to be hovering in mid-air. Think of it like a very slow but much cooler version of an augmented reality app.

[Reven] recently wrote in to tell us about the Arduino light painter he put together, and while DIY (and even commercial) light painting gear isn’t exactly new at this point, we think he’s raised the bar a bit with his design. With the addition of a slick 3D printed enclosure and on-board display and menu system, his light painter looks exceptionally professional for being built out of hardware he had on hand.

On his blog, [Reven] has done a phenomenal job of documenting the build from start to finish. Not only does he include a detailed Bill of Materials and the STL files so you can build your own version of his light painter, he walks the reader though his design process and explains why he did the things he did. Even if you aren’t interested in building a light painter, there’s almost certainly something of interest for anyone who’s ever looked at a pile of parts on their workbench and wondered how they were going to turn it into a functioning device.

Powered by an Arduino Uno, the light painter provides a user interface on a 16×2 LCD which allows control over not only the brightness of the WS2812 LED strips but selecting and loading different images from the micro SD card. The case was designed in FreeCAD, and while [Reven] mentions there are a number of issues which could be improved, satisfies all his design goals.

We covered the original Adafruit project that [Reven] based his code all the way back in 2013, though there’s certainly been more modern interpretations of the idea since then.

When tossing something into the rubbish bin, do you ever concoct that momentary mental scenario where you’re on a basketball court charging the net — the game’s final seconds ticking down on the clock — making a desperate stretch and flicking some crumpled paper perfectly into the basket only for no one to notice your awesome skills? Well, now you can show off how good you are at throwing out garbage.

Well, not strictly garbage. The genesis of this IoT basketball hoop was in fact an inflatable ball on [Brandon Rice]’s desk that he felt would be more fun to fidget with if he could keep score. The hoop and backboard were laser cut on his Epilog cutter, and sport a Particle Photon to track and upload his running point tally to the Internet. An Arduino and IR sensor detect objects passing through the hoop — ultrasound proved to be too slow to keep up with [Rice]’s shots.

This smart hoop also has an LCD screen which displays [Rice]’s score, and a strip of LEDs that flash every five points. Not a bad way to spend $50, if you ask him. With the advent of smart basketball nets, there will be robots out-shooting us at free-throws in no-time. Wait, that’s already happened?

[smash_hand] had a clear goal: a big, featureless, white plastic disk with RGB LEDs concealed around its edge. So what is it? A big ornament that could glow any color or trippy mixture of colors one desires. It’s an object whose sole purpose is to be a frame for soft, glowing light patterns to admire. The disk can be controlled with a simple smartphone app that communicates over Bluetooth, allowing anyone (or in theory anything) to play with the display.

The disk is made from 1/4″ clear plastic, which [smash_hand] describes as plexiglass, but might be acrylic or polycarbonate. [smash_hands] describes some trial and error in the process of cutting the circle; it was saw-cut with some 3-in-1 oil as cutting fluid first, then the final shape cut with a bandsaw.

The saw left the edge very rough, so it was polished with glass polishing compound. This restores the optical properties required for the edge-lighting technique. The back of the disc was sanded then painted white, and the RGB LEDs spaced evenly around the edge, pointing inwards.

The physical build is almost always the difficult part in a project like this — achieving good diffusion of LEDs is a topic we talk about often. [smash_hands] did an impressive job and there are never any “hot spots” where an LED sticks out to your eye. With this taken care of, the electronics came together with much less effort. An Arduino with an HC-05 Bluetooth adapter took care of driving the LEDs and wireless communications, respectively. A wooden frame later, and the whole thing is ready to go.

[smash_hands] provides details like a wiring diagram as well as the smartphone app for anyone who is interested. There’s the Arduino program as well, but interestingly it’s only available in assembly or as a raw .hex file. A video of the disk in action is embedded below.

Making LED lighting interactive comes in many different shapes and forms, and as the disk above shows, shifting color patterns can be pleasantly relaxing.

Some dogs have no sense of self-preservation. Given the opportunity, they will eat until they’re sick. It’s up to us humans to both feed them and remember doing it so they aren’t accidentally overfed. In a busy household with young children, the tricky part is the remembering.

[Bryan]’s family feeds their dog Chloe once a day, in the mornings. She was a rescue who spent a few years scrounging for meals on the street, so some part of her is always interested in finding food, even if she just ate. Each morning, the flurry of activity throughout the house is compounded by Chloe’s repeated requests for food, so [Bryan] got his kids involved and built a simple circuit that lets everyone know—at a glance—whether Chloe was fed.

Chloe’s kibble is kept in a touch-top wastebasket that flips open at the press of a button. [Bryan]’s dog-fed detector uses a reed switch and an Arduino clone to detect when the lid is opened. When the reed switch goes, low, the Arduino lights up an LED. The light stays on for two hours and then shuts off automatically to get ready for the next day. You don’t have to beg for a demo video, because it’s waiting for you after the break.

Since Chloe devours a bowl of food in about two minutes flat, maybe the next project for [Bryan]’s family could teach her to slow down a bit.

How do you get to sleep at night? For some of us, it can be the most difficult thing we do all day. Worrying about falling asleep and letting other intrusive thoughts in night after night only compounds the problem, as less sleep leads to depression which (for us) leads to even less sleep. We lay there, trapped inside a vortex of churning thoughts, imprisoned in a mind that feels like it’s malfunctioning and half-wishing for a future where instructor-led meditation videos can be beamed to the insides of our eyelids. In the meantime, there is FADing, the Fall Asleep Device.

FADing takes its cues from a relaxation technique that uses light to focus your attention and control your breathing. The light’s intensity waxes and wanes on a schedule designed to get you down from the average eleven breaths per minute to a zen-like six breaths per minute. You surrender to the light, breathing in as it intensifies and breathing out as it fades. There are commercial products that bring this technique to the bedroom, but they aren’t cheap and don’t offer much control. Fail to fall asleep in the prescribed window and you’re back to square one with one more thing to think about: buyer’s remorse.

[Youz] was inspired by these devices but dissatisfied with the price tag and lack of options, so he created his own version with a flexible window of operation that appeals to both back- and side-sleepers. It uses an Arduino Nano and two momentaries to control two LEDs, a relay to hold the power after startup, a 9V, and a diode to protect the Nano. One LED projects on the ceiling, and the other radiates through a slice of acrylic which has been shaded blue. One button is for power, and the other lets you add time by two-minute increments. You can see the build video after the break and then tell us how you’d do it with a 555, a coin cell, and a chunk of uranium glass in the comments.

Once you can focus on your breathing without a light, reuse that Nano to measure the quality of all that sleep you’re getting.

Retro tech is almost always ripe for the hacking — be it nostalgia, an educational teardown, or acknowledging and preserving the shoulders upon which we stand. Coming across an old West-German built flip clock, YouTuber [Aaron Christophel] retrofitted the device while retaining its original mechanical components!

No modern electronics are complete without LEDs of some kind, so he has included a strip in the base of the clock face for visibility and cool factor. He doesn’t speak to the state of the clock beforehand, but he was able to keep the moving bits of the clock working for its second shot at life.

Controlling the clock is an Arduino Mini Pro and a simple DS1307 RTC board housed within the clock itself. Originally, it had a conspicuous external box that housed the electronics and power supply that has now been rendered obsolete — or ready for re-purposing another day! Code for the Arduino is an efficient few lines using a pair of libraries. All it needs to do is flip the polarity of the electromagnet motor every minute to update the time.

We like an elegant hack once in a while and sometimes retro tech lends itself to exactly that.

  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook