Introduction: 3D Printable 3D Scanner Using Intel Realsense D435
For a school project a co-student (Wouter Drost firstname.lastname@example.org) and I (Sander Boelen email@example.com) made a 3D scanner using an Intel Realsense D435 depth camera. Our goal was to make a scanner for hobbyists and educational purposes. With commercially available 3D scanners costing around €1000+ we wanted to stand out by making our scanner cheaper so it's more accessible to a broader group of people. Due to the D435 resolution our goal was not to make 3D scans to be able to perfectly replicate machine parts with tight tolerances. This scanner would be for making scans to derive parts from (like scanning a can of beer to make a beer holder) or to 3D print replicas of scanned items (for example for making miniature items for in a dollhouse). This would make 3D printing more accessible to more people since a lot of people are not able to make their own 3D models. With this 3D scanner, even kids are able to make their own STL files by tinkering whatever they want and then 3D scanning it.
The total costs of this project will be around €250 (the main cost will be the camera) and consists out of the following parts:
- Intel Realsense D435 (with USB-C cable)
- Arduino Uno (with USB-B cable)
- MF-6402411 Stepper motor with ULN2003 Driver
- 7 male-female jumper cables
- Skateboard/Fidget spinner ball bearing (8mm (inner diameter) x 22mm (outer diameter) x 7mm (width))
- 20x20mm extrusion profile 30cm
- M4 bolts and nuts (screw heads prefered)
- Camera mount bolt
- 3D printed PLA parts (minimal 150*150 print bed required)
Step 1: 3D Printing All Parts
All parts for the 3D scanner can be 3D printed in PLA on basic 3D printers without brims or supports. For all parts 3 wall layers, 0.2mm layers and at least 15% infill is recommended.
For the camera stand there are multiple variants available. Since my own 3D printer can't make the stand in 1 part its split in 2 parts (without support needed). When a printer with a print bed longer then 220mm is used, the stand can be printed in 1 part (support needed). All parts found in the parts folder are given names which clearly show what parts should be printed in which case.
Step 2: Arduino Wiring
The wiring to the Arduino should be connected as shown in the picture above using male-female jumper cables.
5V to +
GND to -
D8 to IN1
D9 to IN2
D10 to IN3
D11 to IN4
Step 3: Assembly
When all parts are printed and the Arduino is wired up it is time to start assembling the 3D scanner.
1. Start by pressing the small gear on the stepper motor.
2. Place the Arduino, Stepper driver and Stepper motor inside the frame. When the Arduino or the Stepper driver don't stay in place by themselves it is possible to glue them in or keep them in place using double-sided tape.
3. Use 2 M4 bolts to lock the Stepper motor in place.
4. Press the ball bearing inside the ball bearing holder.
5. Assemble the ball bearing holder on the frame using 4 M4 bolts. Pay attention to the orientation since the ball bearing isn't symmetric. The middle of the bearing should align with the middle of the frame. (It might also be handy to put the cables underneath the ball bearing holder to keep them in place)
6. Connect the USB-B cable to the Arduino.
7. Slide the extrusion profile into the frame and secure it using glue.
8. If the camera stand in 2 parts is chosen, connect the 2 parts using 2 M4 bolts and nuts.
9. Put 2 M4 nuts in the nut holder.
10. Slide the nut holder into the bottom groove of the extrusion profile with the nuts facing up.
11. Slide the extrusion profile into the camera stand.
12. Drive 2 bolts in the bottom of the camera stand into the nuts inside the nut holder. Be careful not to tighten the bolts to strong!
13. Secure the camera on the stand using the camera mount bolt.
14. Press the turning top inside of the bearing.
15. Connect the USB-C cable to the camera.
Step 4: Installing Software
1. Download the required software:
2. Unpack the "3D scanner.rar"
3. The "Main program" folder should be placed on a location from where you want to run the scanner. Make sure to keep all the files in the same folder.
4. "Arduino 3D scanner.ino" script should be uploaded to the Arduino.
Step 5: Using the 3D Scanner
Execute the "3Dscanner.exe" file to start the program. From here on everything should be straight forward on how to use. Enjoy!
To change the code you can use the "3D scanner.py" file, which is the source file for the program.