Fabric(ated) Drum Machine

Some folks bring out an heirloom table runner when they have company, but what if you sewed your own and made it musical? We’d never put it away! [kAi CHENG] has an Instructable about how to recreate his melodic material, and there is a link to his website, which describes his design process, not just the finished product. We have a video below showing a jam session where he exercises a basic function set.

GarageBand is his DAW of choice, which receives translated MIDI from a Lilypad. If you don’t have a Lilypad, any Arduino based on the ATmega328P chip should work seamlessly. Testing shows that conductive threads in the soft circuit results in an occasional short circuit, but copper tape makes a good conductor  at the intersections. Wide metallic strips make for tolerant landing pads beneath modular potentiometers fitted with inviting foam knobs. Each twist controls a loop in GarageBand, and there is a pressure-sensitive pad to change the soundset. Of course, since this is all over MIDI, you can customize to your heart’s content.

MIDI drums come in all shapes and sizes, from a familiar game controller to hand rakes.

Continue reading “Fabric(ated) Drum Machine”

Tiny Machine Learning On The Attiny85

We tend to think that the lowest point of entry for machine learning  (ML) is on a Raspberry Pi, which it definitely is not. [EloquentArduino] has been pushing the limits to the low end of the scale, and managed to get a basic classification model running on the ATtiny85.

Using his experience of running ML models on an old Arduino Nano, he had created a generator that can export C code from a scikit-learn. He tried using this generator to compile a support-vector colour classifier for the ATtiny85, but ran into a problem with the Arduino ATtiny85 compiler not supporting a variadic function used by the generator. Fortunately he had already experimented with an alternative approach that uses a non-variadic function, so he was able to dust that off and get it working. The classifier accepts inputs from an RGB sensor to identify a set of objects by colour. The model ended up easily fitting into the capabilities of the diminutive ATtiny85, using only 41% of the available flash and 4% of the available ram.

It’s important to note what [EloquentArduino] isn’t doing here: running an artificial neural network. They’re just too inefficient in terms of memory and computation time to fit on an ATtiny. But neural nets aren’t the only game in town, and if your task is classifying something based on a few inputs, like reading a gesture from accelerometer data, or naming a color from a color sensor, the approach here will serve you well. We wonder if this wouldn’t be a good solution to the pesky problem of identifying bats by their calls.

We really like how approachable machine learning has become and if you’re keen to give ML a go, have a look at the rest of the EloquentArduino blog, it’s a small goldmine.

We’re getting more and more machine learning related hacks, like basic ML on an Arduino Uno, and Lego sortings using ML on a Raspberry Pi.

Arduino Wristwatch Has LED Hands

When you read “Arduino wristwatch”, you fall into the trap of envisioning an Arduino UNO clumsily strapped to someone’s wrist. [Marijo Blažević’s] creation is much more polished than that. A round circuit board holds two surface mount ICs and 12 LEDs. The whole thing looks nice fit snugly inside of a watch body. It isn’t a Rolex, but it does have considerable geek cred without being unwearable in polite company.

One IC is an AVR micro, of course. The other is a DS3231 real time clock with built-in crystal. A CR2032 keeps it all running. The main body, the outer ring, the bottom, and the buttons are 3D printed in PLA. The crystal and the band are the only mechanical parts not printed. The bill of materials shows a 36mm crystal and even provides links for all the parts.

You don’t want to run LEDs all the time because it is bad on the battery. When you press the button once, you get one of the LEDs to light to show the hours. Another press reads the minutes in units of 5 minutes. A third press shows you one of five LEDs to show how many minutes to add. For example, if the time is 9:26 you’d get LED 9 (hours), LED 5 for 25 minutes, and the third press would show LED 1 for 1 extra minute. If either of the minute indicators show 12 o’clock, that indicates zero minutes.

The exciting thing, of course, is that you can program it beyond the code on GitHub. Already it can tell time and display the temperature. You don’t have a lot of I/O, but you ought to be able to get some more options and maybe some flashy LED blinking patterns in if you try.

Baby’s First Jukebox Is Fun For Parents, Too

Believe it or not, there’s a $400 toy mp3 player out there for kids. It looks pretty nice, with colorful buttons and a wood console and all, but those features don’t really justify the price tag. [DerThes] wanted one for his 2-year-old anyway, so he made his own ruggedized version for a whole lot less.

The simple and kid-friendly interface lets [DerThes Jr.] choose from one of nine albums to play by pushing one of the candy-colored buttons. The bottom row of buttons handle play/pause and moving through the track list. When mom and dad get tired of listening to whatever the kids are into these days, they can enter the special god mode code to access 99 of their favorite albums.

This baby boombox is built with an Arduino Uno and an Adafruit music maker shield. [DerThes] etched his own PCB to hold the buttons and the pair of shift registers needed to interface them with the Uno. If you’ve never etched before, here’s a good chance to dip your toe in the ferric chloride, because [DerThes] has the transparency in his repo and a line on a nice instructional video.

If you don’t think your toddler is ready to respect a field of momentaries, you could make a jukebox with NFC blocks.

[via Arduino blog]

Diurnal Reef Control Realistically Insolates Your Aquarium

[Phillip]’s project is not just great for learning new words, it also shows just how complex natural systems can be. 

As we know from news around the word, reefs are delicate systems prone to damage from just about any imaginable threat. Escaped aquarium fish, sunscreen, and the wayward feet of well meaning tourists to name a few. So it’s no wonder that aquarium hobbyists sometimes go to incredible lengths to simulate the natural environments these creatures live in.

While [Phillip] is still tinkering with his designs for this project, we found the data he included really interesting. His goal is to be able to plug in any coordinate on the earth and have the lights replicate the location. That includes not just the sun, but also the light from the moon as many corals seem to only spawn during certain tides. Of course no LED is perfect so he’s even experimenting with putting light sensors under the water to provide a feedback loop to make it perfect.

We really like the ambition of this project and we hope he continues.

Hacking An Arduino NFC Reader With WebUSB

When [gdarchen] wanted to read some NFC tags, he went through several iterations. First, he tried an Electron application, and then a client-server architecture. But his final iteration was to make a standalone reader with an Arduino and use WebUSB to connect to the application on the PC.

This sounds easy, but there were quite a few tricks required to make it work. He had to hack the board to get the NFC reader’s interrupt connected correctly because he was using a Leonardo board. But the biggest problem was enabling WebUSB support. There’s a library, but you have to change over your Arduino to use USB 2.1. It turns out that’s not hard, but there’s a caveat: Once you make this change you will need the WebUSB library in all your programs or Windows will refuse to recognize the Arduino and you won’t be able to easily reprogram it.

Once you fix those things, the rest is pretty easy. The PC side uses node.js. If you back up a level in the GitHub repository, you can see the earlier non-Arduino versions of the code, as well.

If you want to understand all the logic that went into the design, the author also included a slide show that discusses the three versions and their pros and cons. He did mention that he wanted a short-range solution so barcodes and QR codes were out. He also decided against RFID but didn’t really say why.

NFC business cards are a thing. You can also use them to catch some public transportation.

Need Hackable Melodies? Here’s The TETRIS Theme And More

[Robson Couto] started to get interested in musical projects and as a side effect created downloadable code with simple notation for a good variety of themes, songs, and melodies. They are all for the Arduino and use only the built-in tone() function, but don’t let that distract you. If you look past that, you’ll see that each sketch is a melody that consists of single notes and durations; easily adapted to other purposes or simply used as-is. After all, [Robson] wanted the source of each tune to be easily understood, easily modified, and to have no external dependencies.

All that may sound a bit like MIDI, but MIDI has much more in common with hardware events than music notation because it includes (among other things) note starts and note ends as separate elements. Converting MIDI into a more usable format was a big part of a project that fed Bach music to a neural network and got surprisingly good results.

When doing music projects, sometimes having a recognizable melody represented very simply as notes and durations with only one note at a time can be an awfully handy resource, and you can find them on GitHub. There’s a brief video of the Tetris theme (actual name: Korobeiniki) being played after the break.

Continue reading “Need Hackable Melodies? Here’s The TETRIS Theme And More”