Interactive Animatronic of Bender From Futurama

by zackisjank in Circuits > Arduino

87 Views, 0 Favorites, 0 Comments

Interactive Animatronic of Bender From Futurama

IMG_4612.jpg

This project is the design of an interactive animatronic face of Bender from Futurama. The design uses commonly available materials such as wood, tape, etc, along with electronic sensors and motors to be controlled by an Arduino. The animatronic uses input from two sensors to output articulated mouth and eyebrow movements synchronously with audio.

Construct Supporting Structure

Resized_20251119_001212.jpeg
Picture1.jpg

The supporting structure is made up of 3 (2 x 4 in) wood pieces that form an “H”. The base that supports the “H” structure is made up of 1 (1 x 6 in) piece of wood. All pieces are connected by 4 screws: two (10 x 3”) horizontally connecting the “H” structure, and two (10 x 3”) vertically connecting the “H” structure to the base.

The base holds the mouth servo motor, breadboard with all connecting wires, touch sensor, ultrasonic sensor, and Arduino. The second base (creating the “H” shape) holds two servo motors which control the eyebrow movement of Bender’s animatronic face.

On the front of the supporting structure, a piece of cardboard is nailed onto the second base, and Krazy glued on the top left and right corners of the “H” shape. On top of the cardboard piece is the print out of Bender’s face, which has been Krazy glued onto the cardboard. There are 3 cutouts on both the cardboard and the printout paper: 2 holes where the servo motors go through to connect to the 3D printed eyebrows, and 1 rectangular cutout where the servo motor connects to the 3D printed mouth piece (which is covered by a printout of Bender’s teeth)

On the bottom right (audience view), a name tag printout is taped (using 3M tape) onto a piece of cardboard which is taped on the side of the base of the whole structure. The touch sensor was then sewed onto the cardboard nametag (using the 4 holes on the sensor).


Joint Design

IMG_4605.jpeg
IMG_4606.jpeg

The animatronic features three joints to articulate the movement of the mouth and eyebrows. The mouth mechanism is intended to produce motion that is visually approximates vertical translation, similar to a person speaking. This effect is achieved by attaching an extended linkage to the servo arm, effectively increasing the radius of rotation. The servo then oscillates ±15° to generate the motion. For the eyebrows, the desired movement was purely rotational as that can be used to mimic emotional expressions. This was done by simply attaching the eyebrow shape to the face of the servo arm. Two of these will be needed, one for the left eyebrow and one for the right eyebrow.

Sensors

FHM4K1RLHAKH15Q.jpg
FPHJSQCLHAKH15R.jpg

The animatronic uses two different sensors to enable two types of interaction. The first interaction activated by a capacitive touch sensor. This sensor is able to detect when it comes in contact with the users finger, thus sending a signal and triggering the Arduino to start the first interaction. The second sensor used is an ultrasonic ranging module. This device sends out signals, then measures the time to receive them. Knowing the speed of the signal, it can then be used to calculate its distance from an object. It is used to send a signal to the Arduino once an object comes within 10 cm of the sensor.

Programming

The animatronic uses two programs to deliver the overall presentation. One program is used to control the logic, sensors, and motors while the other program is used to play audio from the laptop the Arduino is plugged into. The algorithm used to control the interaction is as follows. Input: the code is looking for a signal from either the capacitive sensor or the ultrasonic sensor. Depending on which is activated it will trigger the appropriate sequence of events. Output: Both interactions use a sequence of movements from the servos meant to replicate the facial movement of Bender while talking. The second program is a python program that monitors the Arduino serial port for a key phrase, such as "Play audio 1". Once the program detects this, it plays the locally stored audio file through the laptops output device.

Final Product

Picture2.jpg

Lessons Learnt / Suggestions for Improvement

Some lessons learned in the progress of making this would be to start the servos at the midpoint position rather than 0 degrees if you want to incorporate travel in both directions. Initially, the eyebrows were set at 0 degrees but later on we wanted to rotate them "backwards" which meant having to go back and change all the code. Keeping the code organized is also very helpful. Annotations make it much easier and faster to identify issues or make changes. A suggestion for improvement would be to make the body more three dimensional, perhaps via 3D printing. The audio could also stand to be more synchronous with the audio.