Animatronic Workbench Studio - Setup

Animatronic Workbench Studio - Setup

Animatronic

Note: This is an automatic translation of the original German text. You can read the original German version here.

How to install the Animatronic Workbench Studio

Animatronic Workbench is an open source solution for controlling animatronic figures. This means that movements no longer have to be laboriously programmed, but can be easily created with a graphical editor.

Preconditions

Animatronic Workbench Studio runs on dotnet core and thus basically on Windows, Linux and MacOS. However, as far as I know, the routines for controlling the COM port and the midi controllers are not yet implemented for Linux and MacOS. The same applies to the representation via WPF, for which there are probably ways to port WPF under Linux.

Installation

  1. Install dotnet core for your operating system.
  2. Download the latest version of Animatronic Workbench to a directory on your computer.
  3. If you are using the ZIP version, unzip the ZIP afterwards.
  4. Open a Windows input and change to the directory ** src\desktop\AwbStudio\ **
  5. Enter the command dotnet run

Projects

When you start Animatronic Workbench Studio for the first time, you have to create a new project. A project is always a directory where all the files for an animatronic character are stored.

Project

The AwbProject.awbprj and .awbtl files contain the information for the project and the individual animations. Although they are stored in a readable JSON format, they should be

Sound directory "audio"

Currently, the YX5300 MP3 player is primarily supported as hardware, which plays MP3 files from an SD card.

In the project directory there is a subdirectory "audio\SDCard\01", in which the sound files for the animations in MP3 format are stored. The directory "01" can then be copied 1:1 to the SD card of the MP3 player later.

The MP3 files should always be named in the form "001_Name1.mp3", "002_Name2.mp3", "003_AnotherName.mp3", etc., so that they can be easily accessed later via index. What is written after the "_" in the file name is later displayed in the user interface for selecting the sound.

Configuring the project

When setting up a project, the following settings are available:

Creating Timeline States

Movements of the animatronic characters are stored in Timeline. A timeline can be assigned to a timeline state, which can be seen as something like a topic or a rubric.

Examples of timeline states could be "sitting," "sleeping," or "standing." Via the timeline state "Sleep" you can find all timelines that contain a sleep movement.

For a new project, the following timeline states are already pre-filled:

  • "Default" - Default timelines
  • "DontExport" - timelines that should not be exported. These can be timelines that are not quite finished yet or that are stamped into other timelines as "nested timelines".

However, the pre-filled timeline states are only suggestions and can be renamed or deleted at will.

STS / SCS Servos

STS and SCS servos are special servos that are controlled via a serial interface. Such serial bus servos have the advantage that they do not have to be wired in a star shape, but can simply be attached to the bus one after the other. At the same time, they can also report their status (current position, temperature, torque) instead of just receiving the target position. They are not compatible with classic model making servos that are controlled via PWM. Well-known suppliers of STS/SCS servos are for example WaveShare or Feetech. With STS servos (in contrast to SCS) the acceleration can be adjusted in addition to the speed.

Serial servos can be added in the configuration of the project. At the same time, the serial bus must be configured in the settings of the ESP32 microcontroller by specifying the GPIO pins for RX and TX.

PWM Servos

PWM servos are classic model making servos, as they have been used since the 1970s. They are controlled by a PWM signal that indicates the target position of the servo. The position is then determined by the pulse width of the signal and each servo must be connected directly to the controller with its own cable.

To use PWM servos, a PWM controller must be connected and activated in the settings of the ESP32 microcontroller.

NeoPixel

RGB LEDs can also be used to provide an animatronic figure with lighting effects. These LEDs can be controlled individually and thus generate, for example, a running light or a color-changing animation. The control is carried out via a digital bus, which is controlled by a controller (for example an ESP32).

To use NeoPixel, the settings of the ESP32 microcontroller must specify the GPIO pin to which the data-in pin of the first LED is connected.

Inputs

Individual PIns of the ESP32 can be configured as inputs, for example to connect switches or sensors. Inputs can be used as conditions in the timelines, for example, to execute a motion only when a switch is pressed or a person stands in front of the character and triggers the motion detector.

In practice, this works like this, you can specify per timeline state which inputs must be active in order for the timelines of this state to be played. At the same time, you can specify for each timeline for which active inputs a timeline state is not activated.

Sounds complicated? Let's take a practical example:

My animatronic Grogu can either stand at the table or be in the shoulder bag. In the bag, he should only make movements in which the arms are raised, otherwise they would be damaged. On the table, he is supposed to let his arms hang down.

To do this, I created a number of timelines with the arms on top and others with the arms on the bottom. At the same time, the project has been given two timeline states, namely "InTasche" and "Stand", to which the timelines have been assigned accordingly.

Now the input comes into play: Grogu has a secret switch that you can turn on and off. The timeline state "InTasche" has this switch set as positive input and the timeline state "Stand" as negative input. This means that when the switch is activated, only the timelines with the arms at the top will be played, and when the switch is disabled, only the timelines with the arms at the bottom will be played.

Edit timelines

Let's continue with Editing Timelines.