Monday, September 29, 2008

Halloween Prop for 2008

I REALLY like how our animated skull for our hearse driver came out this year. This is a project I have been working on for 2 years. Ever since we created a hearse for our graveyard display I wanted a talking driver. A lot of things just came together the right way and it turned out better than I could have thought.

I wrote an initial speech that Chris helped me edit. We found a voice talent guy at HaUNTcon that turned out perfect.

One of my original plans was to use the uMP3 player from Rouge Robotics. It has a SD Memory card slot so any sized MP3 file can be used. It requires a custom cable to be built for use with the EFX-TEK line of controllers but it wasn't hard to make and it works great!

One of my original plans was to use the standard "Bucky" skeleton from Anatomical chart co. that we always use. I didn't want to manufacture any special parts or at least none that anyone could make. The issue with this is that the skull is VERY heavy and most people couldn't figure out a way to make it work. I had one of those creative moments and bought a 2" nylon ball and drilled a hole in it and slid it down the bar that holds his had and then sanded out the base of the skull a bit and it pivoted nicely on the ball. I added a spring to counter balance the head and it now could turn and nod without much effort. I later added a bearing below the ball to make is spin smoother. The rest of the mechanics (placement of servos and linkages) other people had already done so I just copied them.

I also wanted to use an EFX-TEK prop controller that loaded the entire movement show onto the the controller and just played it back on repeat. I didn't want to hook a computer to the animated head (that's how a lot of them are done). Another goal was to use a standard RC transmitter with 2 joysticks to puppeteer the the head and store the movements so we could play them back. I didn't want to have to to manually program each movement while listening to the audio track over and over which is how a lot of this type of thing is done. The joystick option is more how the movie people do it.

So EFX-TEK had a program on their forum that would allow you to use a VEX transmitter which I got off of eBay to move 4 servos using their Prop-SX controller and send the data out it's serial port that a PC could then capture. With the captured data you could create a show program that read the data and played it back. One of the first issues I ran into was that trying to move the head around and make the jaw move was just not practical. So I decided to use a "audio talker" which is a servo controller board that moves a servo based on a audio signal. It automates the jaw movements for you. So this freed up my transmitter to move the turn/nod/tilt servos while the audio played and the jaw moved which was MUCH easier.

After capturing what I felt was a conservative amount of head movement for the 2min speech I took at look at the data. It was just under 3000 data points which is 3 servo positions every 20ms. A lot of the data is redundant since the servos weren't always moving every 20ms so I compressed the data down with a 4th value that was a counter of how many 20ms frames do the servos stay in that position ( a common technique I found out from EFX-TEK). This reduced the data points down to just under 2000. The program area for the Prop-SX is 8K. When I created the reader program combined with all these data points the program was too big to fit into the 8K memory space. The program for the SX was pretty big and the left over memory was pretty small. I decided to try using the Prop-SX which is much slower than the SX but the data reader program is VERY simple and took hardly any memory so I could use the rest for the data points. It still wouldn't fit so I had to reduce the data points by increasing the counter to a minimum of 240ms frames instead of 20ms which created 425 data points. This fit into the Prop-2 but made the head movement a little jerky. I didn't have time at this point to fiddle with it any further so I stuck with the jerky movements. The Prop-SX has a 32K EPROM that you can burn data to but I had never done it or written/used any code that read from the EPROM so it will have to be something I try next year and get my entire 2000 data points in the EPROM.

I still have to come up with a amplifier solution for the audio since the output of the MP3 player is just line level. I found a couple of small amplifier solutions that I think will work.

But I am pretty pleased with how it turned out.



1 comment:

Antipaladin said...

why am I just now discovering this blog?
Did I miss a memo, or something?