So a while back someone posted (Free robotics character used in film/commercial) wanting to get rid of an old animatronic prop dragon that had been gathering dust. It had been fabricated by a propmaker in the building that had closed shop some time ago and left it behind…
It was heavy, kinda bashed up, missing any sort of controller, had some broken bits, was very dirty but I couldn’t say no… I wanted to bring it back to life in the hoped of having it as a greeter at the Space or if nothing else being able to terrorize my cats…
This post will chronical the journey…
First I had to get it home. It weighs a ton… Definitely more than 150 lbs… I managed to wrestle into my vehicle and get it safely home into my garage .
Next I pulled off all the fiberglass body parts to reveal its guts.
From what I can tell it has been cobbled together with parts from an old robot arm (circa 80s/90s) and misc. motor controlled joints… All the motors seemed to be different and none had any labels to indicate voltage.
Each joint also had a quadrature position encoder (HEDS-5500) which were still available but really pricey ($80.00 +).
There are 5 motor controlled sections:
Base Rotation
Base Joint Tilt
Middle Pivot Tilt
Head Pivot
Head Rotation
And 2 servo controlled section:
Horns Pivot
Tongue Movement
Each motor and encoder had its cable snaked out of the base along with a cable for the servos:
To start I pulled apart the cabling and labelled what cable went to what motor. I then checked each motor for some idea of the spec but had no luck finding anything. There were a few part numbers but had no luck finding out anything.
So I decided to Hail Mary it and see what would happen with a quick jolt of 12V DC. To my amazement each of the motors moved and nothing blew up. Got a little braver and determined that each of the motors would move through it’s full range using 12V. I had to be careful not to move any past the physical limits of the mechanism. This was great news as it meant I could easily control the motors with inexpensive easy to obtain H-Bridge driver modules and use PWM to control the speed. (which would allow for easy control using an Arduino).
Next I had to think about position control. Each of the motors joints did have an expensive quadrature encoder but these are only good for relative position. In other words they can tell you how far you have moved from a stating point but cannot tell you where they are in the allowable movement arc. While Eddie didn’t come with any control electronics, he did come with a sort of exoskeleton control arm that seemed to mimick all the joint.
At each joint it had a potentiometer and had a mess of cables that I assume would have led to some sort of controller (same controller all the motor and encoder cables would have gone to). I’m guessing that Eddies’ various joints would have been manually moved to some central positions and then was puppeted using the exoskeleton control. The operator would have had to make sure they did hit any of the mechanical limits which would have been fine for the limited amount of operation needed for the movie or add it was used for.
But this wouldn’t work for animatronic control where I have to limit movement to ensure I don’t rip it apart and need to always know the absolute position of each joint. The joints can easily be moved manually so Eddie could power up in any position, this means I always need to know the absolute position of the parts.
I also had to think about how I wanted to control Eddie. Ideally I wanted to be able to use animatronic control software like Visual Show Automation (VSA). VSA lets you sequence various motor movements with a sound track and there are ways to set this up for stand alone operation. That means Eddie can have various sound tracks created and movement can be choreographed to it. Then any of the sequences can be activated via a switch or whatever desired…
VSA also supports DMX output so this lets you use a host of controllers, lights or whatever you have that supports DMX. And it also means that if Eddies controller uses DMX it can be controlled using any DMX source (and thin can make testing, setup and troubleshooting much easier. However there is no cheap off the shelf solution to allow DMX control of DC motors with absolute positioning. But there are cheap DMX servo controllers (and I have a few) and since 2 of the 7 motors are servos this will immediately solve some of the control challenges.
The DMX servo controller I plan to use is called the Bobcat and it was designed by some Xmas lighting folk back in 2011. It supports 8 servos and 8 constant current LED channels. It has configurable limits for the servo range. Kits and PCBs for these were sold back in 2011 but are no longer available (luckily I have a few kits).
I still had the issue of positional control of the 5 other DC motors. I eventually found this site:
This code will allow you to control a DC motor (using a cheap H-Bridge controller), track it’s position (using an attached potentiometer) using a small micro controller responding to a servo PWN signal). This means I can control each motor from the DMX servo controller. Sounds a bit convoluted but I don’t think I can find a easier (or cheaper) solution. And I may already have most of the parts.
In this code a SAMD21 based Seeduino XIAO is used. These are cheap (less than $8.00 at Digikey). However I am going to see if I can get this working on an Arduino NANO as I have some of them. And since the NANO has 2 pins with interrupt support (needed to for measuring the servo PWM control signal) I’m hopping I can control 2 seperate motors with each NANO.
So next I’m working on building a test setup of the controller detailed above. I’ll try with a single motor and if that works I’ll try it with two motor control channels.