Haunt Forum banner

JawDuino Talking Skull

16384 Views 64 Replies 23 Participants Last post by  Batbuddy
Hello All, I made a little prototype today for an Arduino-based talking skull, and it worked well enough that I thought I would share.

There is a bunch of info on my website HERE

I am about fried from typing up documentation this afternoon, so if you want more in-depth detail, please check out the links on the website.

Thanks, Mike
  • Like
Reactions: 5
1 - 20 of 65 Posts
Massively awesome, Mike. I commented on the video already at YT so I won't repeat. Just another thank you, though. Cool stuff!
The live action aspect of this set up opens up a lot of opportunities for an interactive scene in a haunt.
This will be another project I'll try down the road. I knew you'd figure it out.
I just ordered a couple of these little boards! Will try it out.
Ordered mine too. can't wait to try this out!
Great little find there Mike!!! Ordered a few of those KA2284 boards to mess around with myself. Thanks for posting!
Wow this is great!
As a n00b to animatronics, what motors are used to move the jaw? Is there another thread that has a bit of a how-to for this including all parts required, not just the music board?
Super slick, gonna have to order up some of those boards. Right now I am using a filter circuiton the input and some creative arduino map functions to get mine working even somewhat realistically.
djgra79, check out his website link in the first post...
I have not worked with arduinos before, but this looks like a great project. You mentioned that this is the development board. I assume that it is the UNO R3 ATmega 328P CH340G. Is that correct?
I also, have not worked with this. I was gonna try the banger project but I think I could have alot more fun with this one! I just ordered everything to build 2 of these.

Do you think this would be usable in a walgreens skeleton?

I ordered a couple of the KA2284 LED boards and have been playing with the JawDuino project.

I'm trying to code it so that one Arduino can both trigger a variety of MP3 on the Catalex and also interpret the input from the KA2284 and operate the servo.

Right now I've got it in a state machine and it's not quite working right. Do you have this done yet? If not, I'm willing to email my code and collaborate on it.

Jeff, what I have done is what I posted in the zip file online. Did you at least get that to work when piping in audio from a PC?
I am not 100% clear on what it is you are trying to accomplish with your project- is it just play an audio track when triggered? When triggered next, issue a "next" command?
Montclair is salivating, waiting for you guys to publish code that does all of the above. :D

Yes, I got your proof of concept code running. But I want to do more...

I want to have the entire project run by one Arduino. Parts would be:

- Arduino Pro Mini
- Catalex MP3 Board
- KA2284 sound meter
- Connection to servo

The Arduino would have a playlist of MP3s. It would tell the Catalex to play an MP3; you only need to send the Catalex a single serial command and then it takes over and plays the file. After sending that command, the Arduino would run your audio_update function to detect the levels from the sound meter and control the servo. Then there would be a pause, and then the Arduino would trigger another MP3, etc.

I have a similar setup running on one of Halstaff's earlier Picaxe boards, but that requires me to create the animation track on one of the stereo channels. And since we generate new audio tracks every year, animating them has gotten to be a chore. I used to do this with a Scary Terry board but I didn't like the way that animated the servo, so I've been looking for a better way for a few years.

The fallback if I can't get this to work is to just use two Arduino Pro Minis, and have one manage the playlist and play the MP3s, while the other animates the servo.

See less See more
I think the part I was unclear on was whether this would be triggered, or just play files sequentially in a loop. You also mentioned a pause- it might me nice if that could be made configurable.

The thing with the Catalex is that you would likely want to use the serial uart's Rx and Tx in order to query the "playing/busy" status of the player. Either that, or you would have to tell the Arduino how long each track is- and that could be cumbersome.

You could also use a mdfly or DF-player. Those both have a TTL status pin that would simplify the logic of knowing whether or not a track is currently playing.

You could also use an approach to just measure how long the audio has been "silent". This is actually built into the JawDuino app code I zipped up on the web.

if((millis() - lastMsg) > sleepWindow)

The code above was put in there to put the servos to sleep if no signal was detected within 2 minutes. You could possibly just substitute detach_servos() with a play_next() function, and change the sleepWindow variable to your desired timeout.

Do you think that might fly?
Lastly, are you going to use speaker-level or line-level signals to drive the peak meter?
See less See more
I've got part of this working - I now have it so that the Arduino triggers the Catalex, and then animates the servo. I just had to move your audio_update function out of the the state machine section and into the main loop.

For this year, I think I'll play the files sequentially in a loop. I want to set up a playlist of six different blurbs, and then have each one play in order, pause for a while, then play another one. When it gets to the end of the playlist, it goes back to the top.

For the Picaxe version, I coded it so that it picks randomly off the playlist without repeating before starting over, but that was wasted effort - no one noticed! So sequential playback it is.

I have a few of the Tenda players as well, but they're bigger and I'd prefer to use the Catalex.

I'm driving the audio meter directly from the Catalex right now, so I guess that's line level. I've been playing with the volume it puts out and the sensitivity on the audio board to see how things work.
I have made progress, burning the midnight oil (how appropriate!)..I now have a playlist of mp3s, can play them in order, and animating the servo while they play.

I still have a few things to check, and I want to add support for LED eyes that come on when the skull talks. That's the last thing I think.

Oh, and I'm going to see if I can have a pot that will allow you to adjust the pause on the Arduino with the prop in place.
Jeff, that sounds great! The LED's should be a piece of cake.
I'm curious to see what you think of the audio-to-movement performance, and how it compares to other methods you have used before. Please make a vid of your project when you get it all tweaked out :)
Thanks, Mike
1 - 20 of 65 Posts