Building an Animatronic Tail
My friend Rah and I were chatting and she happened to mention how cool it would be to have a tail. I joked that I bet someone had built one using an Arduino. A quick search showed that indeed a few people had and even a tentacle. Rah's next question was would I built one, fast forward a couple of years and I've finally got around to starting. Taking a 3D printable design as my starting point.
Parts
- 3D Printed
- 10 x Vertebra
- 1 x Tail
- 1 x Arm
- 1 x Buckle
- 1 x Servo Brace
- 1 x Servo Wheel
- Connectors
- 0.7mm by 250m Fishing Line
- 1.5mm by 5m Black Rubber Cord
- 0.8mm by 100m Elastic Cord
- 1 x Picture Hanging Kit
- Various nuts, bolts and washers
- Electronics
- 1 x Futaba S3003 Servo
- 1 x Arduino Uno R3
- 1 x Case for Arduino Uno R3
- 1 x USB Power Switch
- 1 x Battery Pack
Hardware Build

The design didn't come with instructions, so I needed to guess how the part fit together.
Assembling the tail involved threading the Rubber cord on the vertical holes. Tieing knots at each end. The Elastic cord in the hortizontal holes. I left out the fishing cord until later.

I bolted on the servo horn, then marked out the holes in the wheel. Drilled holes with a Dremel

Seeing how the Buckle, Arm and Brace was simple.

One thing I did wrong was gluing those three parts together before attaching the servo. Pulling them apart. Fitted the servo and glued it all back together.

Threading the fishing wire. Adding two eye hooks on ether side of the servo wheel as cable guides. A single nail at the top as an attachment point.

Electronics
Most parts are USB, so simple plug together. Battery to switch to Arduino. The servo is a little bit more work, a quick Google showed
brown or black = ground (GND, battery negative terminal) red = servo power (Vservo, battery positive terminal) orange, yellow, white, or blue = servo control signal line
The signal line connect to digital pin 9 on the Arduino and that was everything assembled.
Software
I started with the sample code and played around with various timing. In the end most of them didn't look right, so I reverted the changes. The current code is on GitHub.
Things that didn't work
My original plan was to use a pulse sensor to control the speed of the tail. I used the advanced example, reading the BPM was fine but does not vary enough to have a noticable effect.
If I was building this again. I'd look at an accelerometer to use as input to the Arduino. That would give variation required to produce more interesting movement from the tail.