Audio Animatronics 26-Oct-2010 4:05 PM
Edit FancyEdit New New Blog Upload All Recent Home Logout
TOP
>1.
Table Of Contents
  • 1. @@TOC@@ Animatronic diagram

    Overview

    In the mid 1960s, Walt Disney Imagineering invented a system that could control robots and keep them in sync with an audio playback track.

    Their implementation consisted of a multitrack audio tape that provided the audio for the attraction in one track, along with a series of tones in other audio tracks. The tones would vibrate resonant reeds relays, which would then activate air-pneumatics, moving small mechanisms in the various puppets in the attraction.


    The obvious solution

    The obvious way to reproduce this with modern means is to use a micro of some kind that reads commands from a storage card of some kind, along with the audio tracks to play back. This could easily be accomplished with:

    Then of course, the additional drivers (if necessary) to drive lighting, servos for puppet animation, etc.

    The concept here would be to store MP3 audio files on the SD card, along with the sync and control information. The micro would read the song and control data from the SD card, stream the MP3 data to the MP3 shield for audio playback, while controlling the servos and such directly.

    But seriously... what's the fun in that?


    My Solution

    Instead of going the completely modern route, I instead propose taking a kind of retro-modern approach, using surplus, obsolete, outdated technology. Using some modern control bits, but relying on the traditional means where possible.

    This method, shown in the diagram above, works as follows.

    The audio cassette mirrors the audio tape used by Disney. It is a standard stereo audio cassete and standard stereo playback device. The left channel will contain the puppet's audio to be amplified and played back to the audience. The right channel contains a pre-recorded MODEM transmission.

    The right channel output will be sent directly into an obsolete modem unit. The modem's RS232 connection is connected to a micro running a very simple program, which controls servos, lighting, etc. based on the simple ascii commands being sent over serial. The command protocol will be explored later in this document.

    This retro approach eliminates the need for the costly microSD interface board, the MP3 interface board, and greatly simplifies the firmware running on the micro.


    Example protocol

    The protocol is based on plaintext, printable ASCII characters; not a binary format. This will greatly simplify debugging and such. The protocol structure is:

    • one byte - start 'AA'
    • one byte - command
    • zero to N bytes - data for the command (no 'Z')
    • one byte - end 'ZZ'

    Protocol packets can immediately be followed by the next protocol packet, or any number of garbage characters, which are ignored. (up until the next AA is sent)

    Command string examples

    • "AAL56ZZ" Turn lights 5 and 6 on.
      • "L" turn the list of lights on
    • "AAO8ZZ" Turn light 8 off
      • "O" turn the list of lights off
    • "AAP7042ZZ"
      • "P" Set the specified single PWM line to 000..255
    • "AAS1255ZZ" Turn servo '1' to position '255' (MAX)

      • "S" move the specified single servo to 000..255

      Servos and Lights can be 0..9, A..Z, a..z (Up to 62 bit-devices)

      All value ranges are 000..255, backfilled with zeroes to 3 digits

    Command list

    • 'A' - enable Modem Answer mode (sends "ATA")
    • 'L' - Set of lights to turn on
    • 'O' - Set of lights to turn off
    • 'P' - Set a single PWM line
    • 'R' - Full reset - everything turned off
    • 'S' - Set a single servo's position
    • 'I' - Read input from a specific bit port (returns 1/0)

    Possible challenges

    There are a few unknowns that I'll have to research and/or try out to overcome (if they are issues, of course)

    • I know that a modem transmission can be recorded (ref: InSoc)
      • how is this accomplished?
      • Are level converters going to be necessary? Optocouplers?
      • How do you "fake" the other side to simulate a "connect" so data can be "sent"
      • Can this just be reproduced purely with software, or is hacked hardware needed
    • What is needed to get the audio playback up to telephone levels for the puppet modem?
      • Are level converters going to be necessary?
      • Is there an audio line level rather than telephone line level that can be tapped within the modem's circuit?

    Am I overthinking this? Perhaps I just need to hook up one modem to another directly, set one "ATA", the other "ATD", tap off of the sender's TX line (green) and record it. Then in the puppet, set it's modem to ATA on startup, and just listen to the prerecorded audio stream.


    References

    NOTE: "Disney", "Imagineers" etc are all registered trademarks of the Walt Disney Company (DIS). This page, project, and ideas are not sanctioned or approved by DIS.<

Animatronic diagram

Overview

In the mid 1960s, Walt Disney Imagineering invented a system that could control robots and keep them in sync with an audio playback track.

Their implementation consisted of a multitrack audio tape that provided the audio for the attraction in one track, along with a series of tones in other audio tracks. The tones would vibrate resonant reeds relays, which would then activate air-pneumatics, moving small mechanisms in the various puppets in the attraction.


The obvious solution

The obvious way to reproduce this with modern means is to use a micro of some kind that reads commands from a storage card of some kind, along with the audio tracks to play back. This could easily be accomplished with:

Then of course, the additional drivers (if necessary) to drive lighting, servos for puppet animation, etc.

The concept here would be to store MP3 audio files on the SD card, along with the sync and control information. The micro would read the song and control data from the SD card, stream the MP3 data to the MP3 shield for audio playback, while controlling the servos and such directly.

But seriously... what's the fun in that?


My Solution

Instead of going the completely modern route, I instead propose taking a kind of retro-modern approach, using surplus, obsolete, outdated technology. Using some modern control bits, but relying on the traditional means where possible.

This method, shown in the diagram above, works as follows.

The audio cassette mirrors the audio tape used by Disney. It is a standard stereo audio cassete and standard stereo playback device. The left channel will contain the puppet's audio to be amplified and played back to the audience. The right channel contains a pre-recorded MODEM transmission.

The right channel output will be sent directly into an obsolete modem unit. The modem's RS232 connection is connected to a micro running a very simple program, which controls servos, lighting, etc. based on the simple ascii commands being sent over serial. The command protocol will be explored later in this document.

This retro approach eliminates the need for the costly microSD interface board, the MP3 interface board, and greatly simplifies the firmware running on the micro.


Example protocol

The protocol is based on plaintext, printable ASCII characters; not a binary format. This will greatly simplify debugging and such. The protocol structure is:

Protocol packets can immediately be followed by the next protocol packet, or any number of garbage characters, which are ignored. (up until the next AA is sent)

Command string examples

Command list


Possible challenges

There are a few unknowns that I'll have to research and/or try out to overcome (if they are issues, of course)

Am I overthinking this? Perhaps I just need to hook up one modem to another directly, set one "ATA", the other "ATD", tap off of the sender's TX line (green) and record it. Then in the puppet, set it's modem to ATA on startup, and just listen to the prerecorded audio stream.


References

NOTE: "Disney", "Imagineers" etc are all registered trademarks of the Walt Disney Company (DIS). This page, project, and ideas are not sanctioned or approved by DIS.<>