DMX Animatronic Robot

by danielencina in Circuits > Arduino

3676 Views, 17 Favorites, 0 Comments

DMX Animatronic Robot

IMG_4888 2.jpg
Anotación 2020-06-14 213058.jpg

This project describes the development of a fully functional animatronic prototype. It is implemented from scratch and it aims to be a guide for the development of future more complex animatronic robots. The system is based on an Arduino microcontroller. The communication protocol with other devices is DMX512. The choice of this communication protocol is due to the fact that it is a standard in the world of lighting technology, a common environment for this kind of robots. The developed robot includes servo motors and different types of LEDs. The manufacture of the mechanical components has been carried out mainly by 3D printing after modelling it using Solidworks.

Supplies

  • Arduino MEGA
  • 3 5mm LED
  • XLR3 connector
  • 5V DC power supply and connector
  • 2 MG996R servos
  • MAX485 module
  • Round WS2812 LED pixel matrix
  • 2 servo brackets
  • 2 servo gears
  • 3x8x4mm bearing
  • 12 8x3mm neodymium magnet
  • M3 bolts and nuts

Total cost of materials including PLA is about 60$

Design the Animatronic

Anotación 2020-06-14 213200.jpg

First of all, if you want to create your own animatronic design, you must design it using a CAD software such as Solidworks or Autodesk fusion 360. Make the design thinking about what actuators and elements (such as servos, lights...) you want to use. If you want to replicate this model you have the STL files available on the next step.

3D Print the Pieces

IMG_4381 2.jpg

To print all the pieces I used a 0.16mm layer height and 0.4mm nozzle for a high quality print. The head pieces use support. On such a high quality print, it can take up to 100 hours to print all the necessary pieces on this prototype.

Design the Electronics Circuit

DMX_robot_head_electronics_schematics.jpg

Once you know all the components that will go into your design, take your time to figure out how to wire everything together. I used fritzing software to design the electronics schematic. For this project I used an Arduino MEGA microcontroller.

Polish and Paint the Head Pieces

527DC927-81CC-4DCC-9705-5C6337E01C87.JPG
IMG_4709.jpg

Once you've printed all the pieces, it's time to polish and spray paint the head. I used black matte paint so it has a gorgeous contrast with the LEDs. Once the paint dries insert the magnets on the head and base holes for the magnetic coupling of the pieces.

Wire the Electronics

IMG_4489.jpg
IMG_4475.jpg
IMG_4472.jpg
IMG_4479.jpg
IMG_4477.jpg

Before adding all the components into the assembly you must wire all the electronic components. I used 30cm 26awg cable. To give a better look to the mouth LEDs you can polish them using a fine grain paper sander.

Assemble the Mechanics

head_01.jpg
IMG_4496.jpg
IMG_4495.jpg
IMG_4497.jpg
IMG_4498.jpg
IMG_4645.jpg
IMG_4499.jpg

Once you have all the components assemble them. Most parts connect using generic M3 bolts and nuts.

Solder the Electronic Boards

IMG_4729 2.jpg
IMG_4730 2.jpg
IMG_4731 2.jpg
IMG_4732 2.jpg
IMG_4712.jpg
IMG_4728 2.jpg

To mount all the electronic components I used a 5x7 cm universal circuit board sliced in half. One half contains the communications part and the other half contains the power distribution board. On the electronics box you can also include an XLR3 female connector to plug the DMX cable and a female power jack to power the entire system. In my case I used a 3 pin aviation connector since I didn't have an XLR3 connector. If you use this kind of connector you need to make a DMX to aviation connector cable.

Program the Device

The program uses 3 libraries: FastLED.h, Adafruit_TiCoServo.h and DMXSerial.h . The regular servo library doesn't work because it has conflict with the FastLED library. From this code it's easy to understand how to add more elements or control other kind of actuators, in case of more complex animatronics devices.

Test the Device

IMG_4886 2.jpg

To test the device you can use any source that outputs DMX. In my case I used a DMX console, but you can create your own Arduino hardware to output DMX with the same library used on this project. You could also use a USB to DMX cable and a software such as Xlights.