AAScan: Open source, minimalist, fully automated 3D scanner based on Arduino and Android!

AAScan: Open source, minimalist, fully automated 3D scanner based on Arduino and Android!

thingiverse

<h1> AAScan: Open source, minimalist, fully automated 3D scanner based on Arduino and Android! </h1> YouTube video: https://www.youtube.com/watch?v=ZAbJcA6COqw&feature=youtu.be <h1>Introduction</h1> I’ve designed my own 3D scanner! So, what’s different between this and many other designs on Thingiverse? First, it is minimalist. It only include minimum features that keep it functional. For comparison, check out this beautiful design by daveyclk: https://www.thingiverse.com/thing:1762299 Second, it’s fully automated using the latest technology of Arduino and Android (And most importantly, Meshroom, another open source project that do all the photogrammetry!). For comparison, this design by Bribro12’s: https://www.thingiverse.com/thing:3723618 is minimalist, but is hand-driven. AAScan is designed with minimalism and functionalism in mind, and I am happy to share with you all! After software V3 update, the scanner is (potentially) able to work with multiple cameras and you can set the number of photos of your choice too! <h1>Resources gathering</h1> 1. All 3D printed parts (I have to admit, some remixes are doing even better than my original design, so check them out before printing!) 2. 28BYJ-48 stepper motor, ULN2003 motor driver board 3. Arduino 4. An android phone 5. A computer (Unfortunately, due to limitations of Meshroom, a CUDA enabled Nvidia GPU is required) 6. A lamp (Optional) 7. A local WiFi network that both of your computer and phone can connect to <h1>Software preparations</h1> 1. Install Python and some kind of IDE (I recommend VSCodium. Or Notepad++ if you are on Windows) on computer 2. Install Meshroom on computer 3. Install Arduino IDE on computer 4. Run "pip install pyserial" on the computer (for linux) or get the package from https://pypi.org/project/pyserial/ 5. Install QPython on Android phone and give it camera permissions (Source code also available on Github: https://github.com/QLRO/AA-Scan/tree/master) <h1>Steps to make this design</h1> 1. The parts should be quite straight-forward to assemble. Check out the included assembly diagram if you get stuck. 2. Connect the motor and motor driver to Arduino (This page may help: https://www.seeedstudio.com/blog/2019/03/04/driving-a-28byj-48-stepper-motor-with-a-uln2003-driver-board-and-arduino/). Note that I am using pin 2,3,4,5 for the driver board. If you want to use different pins, you need to modify the Arduino script. 3. Connect Arduino to the computer and upload the Arduino script “Turntable.ino” 4. Set the “serverAddressList” in Server.py and “serverAddress" in Client.py to the IP address of your Android phone (can be checked from “About phone” page on Android). Set the correct COM port number for serial connection if you are on Windows. (Note: if you have multiple cameras, just put all their IPs in the list in Client.py. It's a list, after all.) 5. (Optional) Set the number of photos to "nPhotos". 5. Transfer the Server.py to the phone and run it with QPython 6. Run Client.py on your computer 7. Your phone should start taking pictures and the turntable is starting to move as programmed! Sit back and relax! 8. Once the program ended. Your photos should be available on qpython/tmp folder. Transfer them to the computer and you can use Meshroom to generate the 3D model. If you find my guide hard to read, Dr Peter Falkingham has wrote another guide here: https://peterfalkingham.com/2020/03/07/automating-photogrammetry-3d-printing-an-arduino-and-an-android-phone/ -maybe this one is easier <h1>Update: SOLIDWORKS files</h1> I have released the original SOLIDWORKS files under the same license as other STL files (CC BY-NC-SA). Making modifications difficult, in my opinion, is against the very spirit of open source project. However, you are required to release all modified SOLIWORKS files, if you will distribute the derivative works. <h1>Update: Software V2</h1> I've uploaded a new version of software. The most important feature is probably allowing users to set different number of photos to take (Plus some other minor improvements). The new code is not fully tested. If it doesn't work, report it to my Github and use the old version. Thank you! <h1>Update: Software V3</h1> There are some minor bugs in previous version and I fixed them. Now the script can support multiple cameras too! This new function is NOT TESTED. If you have multiple phones, you may give it a try. Work or don't work, please do comment here or post issues on my Github. Thank you! <h1>Related works</h1> Below is some notable related works done by others. I didn't try any of these, so I can't vouch for their quality. If you are interested, have a try! By Kidm - Install "BL IP-Camera - Free" from Google Play (not open source~). Use the following script to take FHD photos directly to PC. https://cloud.mail.ru/public/5hAn/4D5pST787 - here is modified program. By exilaus - https://www.thingiverse.com/thing:4171496 Same but with ESP32 cam <h1>About me</h1> I am more active on Reddit. Check out my page https://www.reddit.com/user/redditNewUser2017 and my subreddit https://www.reddit.com/r/Simulations/ if you are interested.

Download Model from thingiverse

With this file you will be able to print AAScan: Open source, minimalist, fully automated 3D scanner based on Arduino and Android! with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on AAScan: Open source, minimalist, fully automated 3D scanner based on Arduino and Android!.