Posts with «leonardo» label

Control discarded copier and tape drive-style displays with Arduino

As hardware hackers, we’re always on the lookout for discarded components that can be re-purposed into something even more awesome. One such class of component that you may find is the controller-less graphics LCD modules, which can be found on old copiers, tape libraries, and the like.

This project by Ivan Kostoski shows how to drive one of these displays with a 320×240 resolution. He’s tested his code using several types of Arduino board, such as the Uno and Leonardo, using minimal external components. 

Summary
Repository contains code samples for driving 4-bit parallel controllerless graphics LCD (CLGLCD) module with AVR MCU on an Arduino board, using minimal external components and staying within Arduino IDE.

4-bit Controllerless Graphics LCD modules
Controllerless graphics LCD modules are antiques that can be salvaged from old copiers, tape libraries, etc… They commonly are missing, well, the controller chip, the one with the memory. Don’t go buying one of these, for Arduino usage, even if you find them on sale. They are usually industrial, have poor viewing angles, generally slow response time, and pain to work-with. There, I said my peace… But if you already have one, their size (i.e. 5.7in) or simplicity can have its uses and beauty.

I have tested this code with 320×240 STN LCD monochrome module marked as F-51543NFU-LW-ADN / PWB51543C-2-V0, salvaged some time ago from retired tape library, without the controller module (which it appears is based on FPGA and wouldn’t be of much use anyway).

The same type of interface (4-bit data) with various signal names is present on many industrial modules based on multiplexed column and common row LCD drivers, like LC79401/LC79431. Or this is what is behind the controller IC. They all have some variations like LCD drive voltage (positive or negative, depending on temperature and size of the module), backlight (LED/CCFL), some logic quirks (i.e. CL2 is ignored while CL1 is up, etc…), so maybe this code can be adapted to other controllerless modules. Module’s datasheet is necessity for the connector pinouts and timing requirements. Some modules may even generate LCD drive voltage internally, and outputting it on a pin so actual V0 driving voltage can be adjusted.

More info on the build/technique is found on GitHub, where you can also download project code and find more background on how interfacing with these devices works.

Video stream surfing with Arduino!

While channel surfing might increasingly seem to be a thing of the past, Kevin Darrah demonstrates that it’s possible to control your streaming computer with a traditional TV remote. 

His simple solution reads IR signals with an IR detector module, which can then be passed along and translated into USB keypresses for computer control.

You can see his experimental Arduino Leonardo setup in the video below, which takes advantage of the board’s ATmega32U4 chip to emulate USD keyboard functions directly.

Fun project here that could have a lot of uses – basically a TV remote to USB translator, so could think of a lot of ways to use something like this.  For me, I just wanted an easy way to channel surf using the same TV remote that came with the TV.  For this, I just read in the IR codes form the remote, then map them to key-strokes to do different things.  I could see the up/down left/right keys being used to drive the mouse around… lol, that might be my next project!

The bulk of the clip, however, is around a discussion on decoding IR signals and the programming involved (code available here), starting at about 6:00 in.

Play Mario Kart: Double Dash with a hacked VTech steering wheel

YouTuber “Insert Controller Here” has been creating gaming controllers out of a variety of objects, like bananas, mayonnaise, and meat. For his latest iteration, the YouTuber decided to convert a VTech Turn and Learn Driver into—what else?—a Mario Kart: Double Dash steering console.

As seen in the video below, the build consists of disassembling the toy, then soldering wires to the correct points to recreate steering wheel input, braking, and throttle. An Arduino Leonardo is used for the gaming interface, allowing Mario and Luigi to make it around the track by turning the wheel and applying brakes, while the accelerator is simply “shifted” into place.

Hack a cheap remote light switch with an Arduino Leonardo

Chris Lovett used a cheap wireless remote to control his Christmas lights; however, when the fob’s A53G 12V battery died, he decided to go a different direction. Rather that just replace the battery, he hooked up an Arduino Leonardo for full lighting automation.

For this hack, he bypassed the onboard IC and instead sent a simulated signal produced by the Leonardo through the wireless transmitter. The appropriate signals were decoded by a logic analyzer, then sent using one output pin to power the transmitter and a second to output the correct pulses. Full automation was accomplished via a Python Script running on a computer to activate the Leonardo at sunset and sunrise. 

Arduino code can be found here, along with the Python script, if you’d like to try something similar.

Custom weather station enhances and modifies electronic music

While the environment is important for any musical performance, generally it’s not an active part of the show. Adrien Kaeser, though, has come up with a device called the “Weather Thingy that integrates weather directly into electronic music performances. It’s able to sense wind direction and speed, light intensity, and rain, translating this data into MIDI inputs.

The system, which was created at ECAL, consists of two parts: a compact weather station on top of a portable stand, as well as a small console with buttons and knobs to select and modify environmental effects on the music. 

Hardware for the project includes an Arduino Mega and Leonardo, a small TFT screen to display the element under control and its characteristics, an ESP32 module, a SparkFun ESP32 Thing Environment Sensor Shield, a SparkFun MIDI Shield, high speed optocouplers, rotary encoder knobs, and some buttons.

Be sure to see the demo in the video below, preferably with the sound on!

Neon skulls illuminate to the MIDI beat

LEDs, whether single-color or programmable, have enabled makers to create a wide variety of vibrant projects at a reasonable price. Neon sign projects, which require sophisticated glass making techniques as well as high voltage for control aren’t as common, but do still have their adherents. Some have even experimented with making them sound reactive.

Up until now, sound control meant using a microphone to detect audio signals and flash accordingly. David Garges, however, is using an Arduino Leonardo equipped with an Olimex MIDI shield to individually activate three neon skulls, crafted by artist Dani Bonnet. 

His setup can be programmed via MIDI directly, or can use beat analysis software to activate the proper lights depending on audio output. 

There has been much desire in the Neon Art community for clean and responsive musical interaction with high-voltage Neon Signs. Currently, the existing infrastructure uses a microphone to detect audio and flash accordingly. Unfortunately, due to this method of processing the Neon always responds with a small delay. Clapping and shouting can also disrupt the interaction when using an on-board microphone.

This project solves that problem by transmitting musical data via MIDI protocol to a controller which activates then activates Neon Tubes accordingly. I have designed and built a system that takes a slightly different approach but accomplishes what the Neon Art community desires.

This project offers two performance modes: one that allows for electronic artists to perform seamlessly using MIDI instruments, and one that allows DJs to feed BPM analysis to the system to synchronize the Neon flashing with actual recorded music which enables Real-Time Audio-Controlled Neon.

Be sure to check out the demo in the video below!

Sip and puff Morse code entry with Arduino

Those that need a text entry method other than a traditional keyboard and mouse often use a method where a character is selected, then input using a sip or puff of air from the user’s mouth. Naturally this is less than ideal, and one alternative interface shown here is to instead use sip/puff air currents to indicate the dots and dashes of Morse code.

The system—which can be seen in action in the video below—uses a modified film container, along with a pair of infrared emitters and detectors to sense air movement. The device was prototyped on an Arduino Mega, and its creators hope to eventually use a Leonardo for direct computer input. 

A tube connected to a custom made bipolar pressure switch drives an Arduino which translates puffing and sucking into Morse code and then into text.

Puffs make repeating short pulses (dots) and sucks repeating longer pulses (dashes) just like ham radio amateurs do with a dual-lever paddle.

Code for this open source project can be found on GitHub.

Morse code input for Android with Arduino

Morse code may not be as widely used as in its heyday, but it still certainly has its adherents. One avid user is Tanya Finlayson, who has been using this as her method of communication for roughly 40 years. Now, with the Gboard phone keyboard supporting input via dots and dashes, the world of Android computing has been opened up to her as well.

In order to get button presses to the phone, Ken Finlayson used an Arduino Leonardo to read inputs from a trio of buttons, indicating dot, dash, and mode select. The third button allows for phone navigation in addition to text input. Because of its built-in HID capabilities via the ATmega32U4 chip, the Leonardo is a great choice for this application, demonstrated in the video below. 

Many people cannot use keyboards and touchscreens to control their digital devices. Instead, they use custom hardware switches that emulate typing, swiping, and tapping. The Android operating system provides software that allows these switches to control Android devices, and recently Google provided a new Morse Keyboard within the Gboard keyboard for people who find this method easier for text entry.

This experiment is a DIY hardware adapter that enables assistive tech developers to connect existing switch based input systems to their Android device. Once connected, 2 switch assistive systems (with an additional switch for mode switching) can control both the standard Android accessibility func

tions as well as text entry through Morse on Gboard.

This experiment is built using Arduino and is compatible with most standard assistive 2 switch systems with 1/8” mono outputs.

Arduino Blog 12 Jul 22:12

Play Striker Air Hockey on a capacitive touch surface

After discovering capacitive touch interactions with a Makey Makey device and an Arduino Leonardo, Jason Eldred realized it could also be used to control the Unity game engine. After a night of hacking, he had a basic interface that could change the scale of a virtual circle. From there, he teamed up with Alex L. Bennett to produce an art installation called Bee that invited users to interact with it by physically touching a panel to change graphics on the panel itself and a screen in front of them.

While not meant as a game per se, after more experimentation including work by Gabe Miller and Dustin Williams, this interactive display method was finally turned into a virtual air hockey table via a giant crisscrossing grid of copper tape and wires.

In the game, two players push a virtual puck projected onto a horizontal surface for colorful AR interactions at a very low cost. You can see it in action below, and read more about the project on DigiPen’s website and in Gamasutra’s recent article.

Pour Reception turns water into radio controls

Using a capacitive sensing arrangement, artists Tore Knudsen, Simone Okholm Hansen, and Victor Permild have come up with a way to interact with music with two glasses of water.

One pours water into a glass to turn the radio on. Channels can then be changed by transferring water from one glass into the other, and fine-tuned by touching the outside of container. Volume can even be adjusted by poking a finger into the water itself.

An Arduino Leonardo is used to pick up capacitive signals, and data is then sent a computer where a program called Wekinator decodes user interactions.

Pour Reception is a playful radio that strives to challenge our cultural understanding of what an interface is and can be. By using capacitive sensing and machine learning, two glasses of water are turned into a digital material for the user to explore and appropriate.

The design materials that we have available when designing digital artifacts expands along with the technological development, and with the computational machinery it is possible to augment our physical world in ways that challenges our perceptions of the objects we interact with. In this project, we aim to change the users perception of what a glass is – both cultural and technical.

You can see it in action below, and read more about project in its write-up here.