Remote Controlled Dalek (Doctor Who)
by DmitryM8 in Circuits > Robots
216 Views, 5 Favorites, 0 Comments
Remote Controlled Dalek (Doctor Who)
Ever wanted to make a remote controlled villain from Doctor Who TV series, complete with speech generation and tiny language model inside?
Now you can!
Here I'm documenting what is described in two videos on my channel,
Make sure to watch these too, to get some visual understanding of the work you are about to complete.
Supplies
For color scheme of the Dalek, there is no need to exactly match the colors I used (black, red and gray). See the makes section of the original design for some inspiration.
I used eSUN ABS+ for printing the parts, they turned out to be sturdy enough.
Complete list of parts:
- DUALSKY AS82MG Servo (you can use a cheaper 9g servo instead with little adjustments to servo holder)
- ESP32 WROVER-IB (must be WROVER or other type with PSRAM!)
- ESP32 38P Expansion board (same link, pay attention to number of the pins! the ESP32 above has 38 pins)
- 2x Single Shaft TT motors (I actually bought dual shaft and had to cut the second shaft)
- 2x yellow wheels
- L298N motor driver
- WS2812B Addressable Led Pixel Ring 16 Leds
- PAM8406 Digital Amplifier
- 8 Ohm 10W Speakers
- Castor wheel
- 1x switch
- 7.4V 1600 mAh battery with dimensions 1x1x1. The battery I used was bought quite some time ago and I cannot find the link to exactly the same one. However if you get a battery (any type) with similar properties, it should be fine. Voltage can be higher, but not lower, check L298N specs.
- Bunch of wires and dupont wires
Finally, you'll need some tools:
- a 3D printer. The largest part is the bumper (), so you will need the print area at least this big.
- miscellaneous tools (glue gun, small pliers, screwdriver, etc.)
Print and Prepare the Parts
Printing and postprocessing the parts is pretty long process, and is probably around 50% of the job in this case. The STL files are uploaded to Thingverse.
You will need to print:
1) 1x Bumper
2) 1x Core
3) 1x Eye
4) 1x Plunger
5) 2x Armball.
6) 1x Upper Skirt, 1x Lower Skirt, note: May need to be printed with support.
7) 1x Shoulder, note: May need to be printed with support.
8) 1x Dome, note: May need to be printed with support.
9) 2x Ring Halves (for each of the three rings, six total).
10) 2x Lamps
11) 2x Eyestalk Halves
12) 2x Gun Halves
13) 1x Plunger Arm
14) 1x Shoulder Joint Cap, note: Includes two pieces in the file.
15) 1x Slats File, note: Contains 18 pieces; each slat corresponds to a specific slot on the shoulder.
16) 54x Bumps
17) 54x Bump Rings
18) 1x motor_driver_board
19) 1x esp32_board
20) 1x servo_axel
21) 1x servo_holder
After finishing printing, remove the supports where they were installed. Spray paint parts if necessary (I spray painted the upper part of the core, gun and lamps).
Assembly Notes:
Bumps and Bump Rings: Attach to the skirt without glue. Insert bumps through rings, into skirt holes, and turn 90 degrees to lock in place.
Lower skirt to Upper skirt: Glue together.
Skirt to Bumper: Press down; friction fit. Optionally, add a dab of glue (don't glue before finishing installing electronics!).
Core to Skirt: Press in; friction fit. Optionally, add a dab of glue (don't glue before finishing installing electronics!).
Slats to Shoulder: Press into corresponding slots. Friction fit; a dab of glue recommended.
Arm Balls: Fit into shoulder sockets. Shoulder joint caps glue over them; apply glue carefully to avoid jamming.
Plunger Arm: Trim support and glue into the plunger and arm ball.
Gun Halves: Glue together, then press into the arm ball.
Shoulder Assembly: Slides over the core and sits flush on the skirt. Snap ring halves into grooves (bottom to top: Ring 1, Ring 3).
Dome Lamps: Insert into holes in dome bottom. Use glue to secure, if needed.
Eyestalk: Glue halves together, attach to eye piece, then insert into dome slot. Use filament piece to secure, if needed.
Assemble the Circuit
It's a good idea to assemble the circuit and upload the code to the control board, so we know everything works - before assembling all the things together.
Consult the above diagram for wiring (you can also download the fritzing file). Additionally the ESP32 pins used:
Please leave a comment if something is unclear or confusing about wiring! I'll reply and make corrections if required.
Git clone the Github repository for the project.
Connect ESP32 to you computer, have ESP IDF (tested with 4.4.8, not guaranteed to work with other versions. Likely to work with 4.x, but not any other major version) installed and run the following commands from the folder of cloned repository:
After the code is finished uploading the ESP32 will boot and LED ring wil blink green. A new WiFi network will be created called tiny_dalek.
Connect to it with your phone and open Arduino Car app. Press on the cog button and set the configuration as in picture above.
Test different functions to make sure they work as intended: motors, servo (upper slider), LEDs(upper headlights icon), X button makes Dalek speak.
Downloads
Assemble the Chassis
The below instructions assume that you have all the electronics already wired. You will need to disconnect LED and Servo for Chassis assembly though.
Glue the motors to the chassis with the hot glue gun. Glue the motor_driver_board printed part on top of it.
Attach the L298N motor driver and amplifier to the motor_driver_board with the self-tapping screws.
Place the speaker at the back of the chassis and the battery in front of it, as in the picture above.
Attach the ESP32 on expansion board to esp32_board printed part with the self-tapping screws.
The power switch placement is a bit awkward in current design: it is glued to the one of the bumps in front of the Dalek. It works this way, but better to be improved in future version.
Attach the castor wheel in the middle of the chassis - either with self-tapping screws or with hot glue gun.
Now you should have working chassis - you can drive it around for testing.
Assemble the Core
Insert servo into servo_holder and use the screws (self-tapping) or regular to fix it in place.
Use self-tapping screws to attach the servo disc arm to the servo_axel.
Put the LED ring around the servo and attach the servo disc arm with servo_axel to the servo.
The servo - LED - axel part is assembled then and can be pushed up inside the core.
Put It All Together
Re-connect the Servo and the LED ring to ESP32 expansion board.
There is no glue or any additional connection between skirt and core parts, so the core is simply put on top of the upper skirt.