Description
I want to see how fast I can develop a single-camera (pi camera module v3) rig with a stepper motor controlling a turntable that rotates the model being scanned. The trick here is not to be super fancy with 100's of sensors and data inputs, quite the opposite. I want to see how accurate I can scan objects into 3D-printable models using only a camera and as many fixed and known parameters as possible.
Speed to be augmented with agentic AI coding companion. As it stands, I have a 3D printer, pretty much all the electronics I need.
Goals
- Design and print working/workable camera rig
- Design and print working/workable turntable (considering printing my own cylinder-style bearings as well)
- Assemble rig components into MVP assembly
- Develop application that can hook into existing tools, or leverage a library like openCV, to process 2D images into a 3D model.
- Iterate until models are good enough to 3D print.
Resources
- https://www.instructables.com/3D-scanning-Photogrammetry-with-a-rotating-platfor/
- https://www.instructables.com/3d-Scan-Anything-Using-Just-a-Camera/
- https://www.instructables.com/Build-a-DIY-Desktop-3d-Scanner-With-Infinite-Resol/
- https://www.instructables.com/3D-Laser-Scanning-DIY/
Looking for hackers with the skills:
raspberrypi photogrammetry electronics 3d-printing 3d-modeling
This project is part of:
Hack Week 25
Activity
Comments
-
6 days ago by lparkin | Reply
Update end of day 1
What was done
I chose 3D CAD design + prototyping as my starting point for the motor and pulley housing:
- Did 3 iterations of the base design, need to do 1 or two more.
- Designed and printed turntable surface and base
- Designed and printed bushes to fit the 8mm inner-diameter bearings onto 5mm threaded rod.
- Loaded raspberry pi OS onto my pi zero 2 WH.
- Started experimenting with stepper motor code in Python (can currently rotate small pulley any number of degrees as input from the command line.
What's Next?
- Iterate once more on base design to allow about 2mm of additional space to allow easy fitting of the belt onto the pulleys.
- Design pi + camera housing (figure out what distance from center of turntable to camera will be optimal).
- Design structure to hold pi + camera at the desired height and angle.
- Connect everything and start mapping the digital design parameters:
- How many degrees on small pulley = how many degrees of rotation on turntable.
- How many photos to take, how many stops along the way.
- How to process the images. (on pi or off pi, on a device with more computational strength).
-
5 days ago by lparkin | Reply
Update end of day 2
What was done
- Turntable design, printing, and assembly completed.
- Dummy code flow to rotate stepper according to a config file + take a photo at each stop implemented.
- Pi cam housing design iteration 1 and 2 done, to be tested.
- First iteration camera stand and mount designed, to be printed.
-
3 days ago by lparkin | Reply
Update end of day 3
What was done
- The design for the camera housing reached a point of usability
- The camera stand (iteration 1) was designed and printed
- The first round scan images were captured
- Attempts to process the scanned images using colmap failed dismally, for various reasons:
- My work laptop doesn't have a discrete Nvidia GPU (colmap requires Cuda)
- Processing without a GPU produced a .ply mesh file that didn't even remotely resemble the model I scanned.
- Determined to switch to Meshroom, but it is a 19-ish GB download, and the site limits bandwidth to around 500Kbps, so the download wasn't finished by EOB.
-
-
Similar Projects
Discover 3d printing tools and improve integration in Linux desktop and flatpak by fcrozat
Description
Owner of a first 3d printing for some weeks (Bambulab P2S), I want to learn a bit more about the various tools to use it and, if needed, make sure they work fine in Linux desktop with flatpak.
Goals
Test the following tools: slicers: Bambu Studio, Orca Slicer addons: Bambu Connect design: Blender, Freecad, Fusion 360
See if they can work fine on Aeon using Flatpak and try to improve integration in Linux desktop
Resources
- https://wiki.bambulab.com/en/software/bambu-studio/studio-quick-start
- https://wiki.bambulab.com/en/software/bambu-connect
- https://www.orcaslicer.com/
- https://www.blender.org/
- https://www.freecad.org/
- https://www.autodesk.com/products/fusion-360/personal
- Spoolman
- Spoolman integration in Home Assistant
ESPClock: An open-source smart desk clock with Home Assistant integration by jbaier_cz
Description
ESPClock will be an open-source, Wi-Fi connected digital clock powered by ESP32 and ESPHome, designed to seamlessly integrate with Home Assistant. Featuring a 3D-printable case, the clock combines modern style with smart home functionality.
Goals
Key features:
- real-time clock
- native Home Assistant integration
- optional sensors for temperature, humidity and ambient light
- custom 3D-printable case
- open-source firmware and hardware design
- easy YAML-based configuration
Resources
- https://esphome.io/
- https://gist.github.com/baierjan/773e20a5061780f0a27ed86619dbffba
The Hacking
Chapter 1: Inventory
After thoroughly inspecting my closet, I managed to gather a handful of useful components. I decided to keep things simple and avoid making the project unnecessarily complex, opting for ready-made modules instead of assembling everything from individual parts. This approach saves time and reduces the chances of compatibility issues. The components I settled on are:
- Microcontroller: ESP32-LPkit
- 4-digit 7-segment display with integrated controller: TM1637
- Temperature and humidity sensor: DHT22
- Carbon dioxide sensor: MH-Z19
- PIR motion sensor: AM312
- Illumination sensor: VEML7700
- I2S-compatible microphone module: SPH0645LM4H
- A couple of micro switches
- A few LED diodes with appropriate resistors
With this list, the essential environmental parameters should be well covered. The clock’s main function—displaying the current time—is handled by the bright 0.56-inch display. Additionally, the setup provides simple input options through buttons and possibly even voice commands in the future.
Chapter 2: Wiring Diagram
I went through the datasheets for all the components to determine the most effective way to connect them. After comparing different options and checking for compatibility, I finalized the following wiring diagram.
Chapter 3: Firmware
For the software part, I decided to use ESPHome, which offers an easy and reliable way to integrate the clock with Home Assistant. All the components from the inventory are natively supported, so there is no need to write much additional code.
The following example shows how the YAML configuration for the clock may look: espclock.yaml
Discover 3d printing tools and improve integration in Linux desktop and flatpak by fcrozat
Description
Owner of a first 3d printing for some weeks (Bambulab P2S), I want to learn a bit more about the various tools to use it and, if needed, make sure they work fine in Linux desktop with flatpak.
Goals
Test the following tools: slicers: Bambu Studio, Orca Slicer addons: Bambu Connect design: Blender, Freecad, Fusion 360
See if they can work fine on Aeon using Flatpak and try to improve integration in Linux desktop
Resources
- https://wiki.bambulab.com/en/software/bambu-studio/studio-quick-start
- https://wiki.bambulab.com/en/software/bambu-connect
- https://www.orcaslicer.com/
- https://www.blender.org/
- https://www.freecad.org/
- https://www.autodesk.com/products/fusion-360/personal
- Spoolman
- Spoolman integration in Home Assistant