Let's Make Robots!

Cacaphonix

Make a lot off noise!

This is Cacaphonix, named after the bard in the "Asterix and Oblix" cartoons because it makes a terrible noise in an attempt to make music. Unfortunately for Cacaphonix, his musical talent is limited to what I can program and I'm terrible at music. Things will probably get worse later when I make a second robot for the keyboard.

After Rik had a video rejected by Utube because of the soundtrack, I suggested he make a robot to create his sound tracks. When I saw this keyboard cheap in an after Christmas sale I decided to make one myself.

The keyboard has 8 instruments, 8 drumbeats, 4 drums to make your own drumbeat, 4 animal noises and the ability to record and playback your musical attempts. Some of the instuments even sound like they're supposed to. No bad for $14 AUD (about $9 US). It even came with batteries!

First thing I had to do was fix a dodgy solder joint that made every 8th key not work. Since I had to pull it apart anyway this was no big deal and the dry solder joint was easy to spot and fix.

 

 Next I removed a very nice little modular battery box (3xAA) that I can use in another project and installed a socket and a LM2940CT +5V regulator. Now I can run this of a 6V plugpack.

Cacaphonix1__small_.jpg

Cacaphonix3__small_.jpg

This keyboard is easy to hack, plenty of room inside. the brains is one small chip. You could control this easily with a transistor on each button but where would be the fun in that? Click on the photo for a larger image, the regulator is easy to see.

Cacaphonix4__small_.jpg

This is the guts of the little robot, just 3 minature servos. I used a little hotglue to hold them together and then decided that would not be strong enough so I cut out some polymorph pannels and joined them with nylon post and 3mm screws. This made sure the servos can't move.

I haven't decided on a head yet as I have too many ideas. Wait and see what I find.

Another simple polymorph bracket allows the waist servo horn to be screwed to the back of the keyboard.

At the moment I'm using the control board from my last laser range finder experiment. Once I've made a second bot for the keyboard I'll make up a new board and fit it in the battery compartment. With the original battery holder removed there's enough room for a picaxe 28X1.

 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

hahaha i love asterix!!!

This is real funny post - i have to say he is very determined and happy with his own performance.

How about some Legs so he can walk around and play the Keyboard..........

He looks great. And Yes, it did make me laugh. Full points for your white drum machine.
It is definately not a yellow drum machine, that would just confuse things to much. There was a much cooler black version of the keyboard that I wanted but it sold out.
OMG this guy is awesome! I love the ending when your robot lifts its arms up goin' "yeah, I'm awesome."
Thanx Zanth, I got that Idea from Frits's cup lifter :)  Once I put a head on him and speed up his drumming I want him to be more like "Animal" from the muppets.

You really make some cool sh*t :D Vey inspiring & funny!!

As you know, before I saw that you have actually posted this, I wrote you a mail. Bad karma; I was writing stuff in a one-to-one corrospondence, that should have been made in the public forum! Shame on me :(

However, for what it's worth - Even though i see it perhaps does not apply.. well.. here is a copy-pase of my mail, in the hope that it will help someone out there at some point :

***

Since you are going to program musical robots; You probably know / have figured out, but you'll need to engeneer backwards in time: We are used to say "high 1" to get action. But different motors & "arms" have different speeds. This is what I did:

Make the code tun a speaker on & off, to make a click.

In your "sequencer", have a pre-delay of at least the slowest stick (or more to have room - explanation follows)

When your sequencer says "Hey, you stick, you should make a sound on this beat, wht happens is this:

For every beat, a count-down is starting: 10, 9, 8..

A slow stick is then fired at 7, a faster is fired at 4, and speaker-click (mentioned above) is fired at 0.

To tune everything, you take one stick at a time, and syncronize it so that it hit's excactly at the speaker-click.

After all has hit / what the sequencer expected, then insert a small break, to allow some uncertainty - perhaps the stick was a bit slower this time, and we want to wait till it has hit the target.

All this (countdown, hit, hit, hit, general pause) should happen in every 16'th note -firing the sticks that the sequencer tells.

Then.. one problem if you (like arty me) are relying on CPU-speed (no interrupts) to have the beat at a somewhat decent smooth frequency, you need to do some strange code:

If stick is fired (told by the sequencer), at it's "delay-time" (as described above), sure, you should just write stuff like "High 1", and after the time of desired hit (the speaker-click) and the pause, you should of course take back the stick, like "low 1).. HOWEVER.. if the stick is NOT fired, ALL the same routines should be gone through. In this example it should then be a "low 1", followed by a "low 1". And including all calls to sub-routines, if-then-statements etc. This way, the "beating-routine" takes (just about) the same time to run through every 16'th cycle - no matter if 1 or 15 sticks are fired. And you really want that ;)

I haven't read the email yet :D  Thanx for the compliment :-)

As for the timing, each drum button does have slightly different timing and pressure requirements and had to be individually callibrated. Consequently I ended up with a subroutine for each drum button and callibrated them so that they each took the same amount of time to execute. Due to speed and strength of the servos I can only get about 4 beats a second as the buttons are quite firm. This is causing the waist to be bent backwards at the servo horn and adds some unreliability, that drum sequence does not work every time.

At this stage I'm looking at changing the waist mechanism to a stronger design and weakening the spring tension in the buttons so that they can be pressed easier and quicker. I'll document the changes in the next update and hopefully have a faster better drum beat.

PS: Nice video in every aspect!!

Wow lookes cool and really intriguing but i dont need anything else making racket around here.

I need more quiet :)

 

Dan (the 2nd?)