Posts with «shift register» label

A Very MIDI Christmas Lightshow

Christmas light displays winking and flashing in sync to music are a surefire way to rack up views on YouTube and annoy your neighbours. Inspired by one such video, [Akshay James] set up his own display and catalogued the process in this handy tutorial to get you started on your own for the next holiday season.

[James], using the digital audio workstation Studio One, took the MIDI data for the song ‘Carol of the Bells’ and used that as the light controller data for the project’s Arduino brain. Studio One sends out the song’s MIDI data, handled via the Hairless MIDI to serial bridge, to the Arduino which in turn sets the corresponding bit to on or off. That gets passed along to three 74HC595 shift registers — and their three respective relay boards — which finally trigger the relay for the string of lights.

From there, it’s a matter of wiring up the Arduino shift register boards, relays, and connecting the lights. Oh, and be sure to mount a speaker outdoors so passers-by can enjoy the music:

Be sure to set up a secondary power source for the relays, as drawing the power from the Arduino is likely to cause big problems. If your preferred digital audio workstation doesn’t have a virtual MIDI instrument, [James] used loopMIDI for the desired effect. He has also provided the code he used to save you some trouble if you’re building this during an invariably hectic holiday season.

Of course, you could always plug your lights into an IoT power bar and have fun that way.


Filed under: Arduino Hacks, Holiday Hacks

Colorful, Touch-Sensitive Light Table is Ready for Gaming

It’s an ambitious build for sure — you don’t start with $500 worth of wood if you don’t intend for the finished product to dazzle. And this 240-pixel touch-sensitive light box coffee table does indeed dazzle.

Sometimes when we see such builds as these, fit and finish take a back seat to function. [dasdingo89] bucks that trend with a nicely detailed build, starting with the choice of zebrawood for the table frame. The bold grain and the frosted glass top make for a handsome table, but what lurks beneath the glass is pretty special too. The 240 WS2812 modules live on custom PCBs, each thoughtfully provided with connectors for easy service. There’s also an IR transmitter-receiver pair on each board to detect when something is placed over the pixel. The pixel boards are connected to custom-built shift register boards for the touch sensors, and an Arduino with Bluetooth runs the whole thing. Right now the table just flashes and responds to hand gestures, but you can easily see this forming the basis of a beautiful Tetris or Pong table.

This build reminds us a little of this pressure-sensitive light floor we featured recently, which also has some gaming possibilities. Maybe [dasdingo89] and  [creed_bratton_] should compare notes and see who can come up with the best games for their platform.

[via r/DIY and a tip from emptycanister]


Filed under: Arduino Hacks, led hacks

An Arduino Device that Monitors Your External IP Address

[Bayres’] dad setup a webcam as a surveillance camera for a remote property. The only problem was that the only stable Internet connection they could get at this property was DSL. This meant that the external IP address of the webcam would change somewhat often; the needed a way to keep track of the external IP address whenever it changed. That’s when [Bayres] built a solution using Arduino and an Ethernet shield.

The main function of this device is to monitor the public IP address and report any changes. This is accomplished by first making a request to checkip.dyndns.org. This website simply reports your current public IP address. [Bayres] uses an Arduino library called Textfinder in order to search through the returned string and identify the IP address.

From there, the program compares this current value to the previous one. If there is any change, the program uses the Sendmail() function to reach out to an SMTP server and send an e-mail alert to [Beyres’] dad. The system also includes a small LCD. The Arduino outputs the current IP address to this display, making it easy to check up on the connection. The LCD is driven by 74HC595 shift register in order to conserve pins on the Arduino.

The system is also designed with a pretty slick setup interface. When it is booted, the user can enter a configuration menu via a Serial terminal. This setup menu allows the user to configure options such as SMTP server, email address, etc. These variables are then edited and can be committed to EEPROM as a more permanent storage solution. Whenever the system is booted, these values are read back out of the EEPROM and returned to their appropriate variables. This means you can reconfigure the device on the fly without having to edit the source code and re-upload.


Filed under: Arduino Hacks