Few robots are more recognisable than WALL·E; his cute appearance and distinctive personality make him instantly endearing to anyone who sees him! In this project, I designed a WALL·E replica with the aim to allow each of the robot's joints to be moveable by hand or using servo motors.
Loosely based on the dimensions and design of ChaosCoreTech's Wall-E replica, this version was designed from scratch in Solidworks and allows 7 of the joints to be actuated, including the arms, neck, head and eyes. The robot design has the following features:
- Each eye can be raised and lowered independently with servo motors.
- There is room in each eye to add a small camera.
- The head can look left and right using a servo motor.
- The neck is actuated at two joints, allowing the head to look up/down and to be raised/lowered.
- Each arm has a motor at the shoulder to move it up/down.
- The arms consist of pressure fit joints, hands and fingers, which can be manually posed.
- The tank treads (skid steering) are fully 3D printed and can be powered using two 12V DC geared motors.
This is an ambitious project, aimed at people who want to build a fully animatronic WALL·E robot with servo controlled joints. It took me about 3 months to design and assemble the robot, with more than a month spent on just 3D printing all of the parts. In total, there are 310 parts (although 210 of those are very small and make up the tank treads). A PDF containing a list of all the parts and the quantity of each that needs to be printed is included in the download section with the STL files.
If you feel up for the challenge of tackling this project and printing all the files, please let me know how it goes! Please note that all STL files are in millimetres.
A more detailed description of the robot can be found on my website:
The code used to program the robot and Raspberry Pi can be found on GitHub. If you have any programming related issues or questions, please ask them on my website.
Here is a video of my WALL·E robot in action:
Update 1: (30th June 19) Reuploaded tread-pin-x140.stl; the original file was exported at the wrong scale.
Update 2: (2nd July 19) Modified neck-bottom-right.stl, body-bottom.stl, wheel-bracket-outer-left.stl and wheel-bracket-outer-right.stl to correct minor bolt hole misalignments.
Update 3: (6th July 19) Added wiring digram and an assembly instructions video.
Update 4: (12th July 19) Reuploaded body-back.stl as part of the piston geometry was missing. The file missing-piston-insert.stl was added so that people who have already printed the part can glue in the missing section.
Update 5: (15th July 19) Added parts neck-wire-guide-left.stl and neck-wire-guide-right.stl.
The hardware and electronics required to assemble the robot are:
- (x14) M3 Bolt - 10mm length [link]
- (x12) M3 Bolt - 20mm length
- (x26) M3 Nut
- (x2) Paper clip - used as linkages
- (x7) 9g Micro servo motor [link]
- (x2) Plano-convex lens: ⌀30mm, 2.5mm thickness - for the eyes [link]
- (x2) 12V DC geared motor - 60RPM [link]
- (x1) Arduino Uno or equivalent [link]
- (x1) Arduino Motor Shield R3 [link]
- (x1) 16-channel 12-bit PWM servo driver - PCA9685 [link]
- (x1) 12V DC battery pack
- (x1) 12V to 5V DC buck converter [link]
For the eyes I took apart some old binoculars that I had lying around; I think that the reflections and shine on the lenses really make the replica seem more realistic. Additionally, a Raspberry Pi can be used to add extra functionality, such as allowing the robot to play sounds, use a camera, and be remote controlled via a web interface:
- (x1) Raspberry Pi [link]
- (x1) Small speaker
- (x1) USB camera
(Note: links are for reference only; please shop around for the best supplier near you!)
- Layer Height: 0.3mm
- Infill: 15%
- Supports: Yes - for some of the parts
- Material: Grey PLA
(All STL files are metric - dimension in millimetres)
- I used a relatively coarse resolution and low infill percentage to speed up the printing times and reduce the weight of the parts. The small servo-motors used to actuate the joints are not very strong, so keeping mass to a minimum is a must.
- I printed all components on a heated glass bed, with a 5mm brim to reduce warping. Some of the parts have overhangs and require supports.
- If you intend to paint the robot, I recommend printing in a metallic grey colour so that it looks like metal if any paint is chipped away.
- Tolerances for all slots and interconnecting parts is +-0.20mm.
After printing all the components, these are the main steps I took to put the robot together:
- Sanding - all parts were painstakingly sanded to remove the print lines.
- Priming - I used a filler primer that was specialised for plastics.
- Painting - yellow, black, white, metallic and red spray paints were used.
- Assembly - See the video below.
- Wiring - the motors were connected to the micro-controller.
- Weathering - black and brown water colours were used to make the robot look dirty and worn. A metallic marker was used to add scratches and marks to the sides of the robot.
- Programming - code was written for the Arduino and Raspberry Pi to control the robot. The code can be found on my Github page: https://github.com/chillibasket/walle-replica
If you have any programming related questions, please leave a comment on my website
The wiring diagram is shown below, illustrating how each of the electronic components were connected in the robot. The USB port of the Arduino Uno was then connected to the USB port of the Raspberry Pi. If the 12v to 5v DC buck converter is capable of delivering up to 5 amps, then the Raspberry Pi can be directly powered from the converter. Otherwise, it should be connected to a separate 5v battery.