3D Scanner
During our Principals in Integrated Engineering class we were tasked to create a miniature scanner consisting of a distance sensor mounted to two servos that could pan and tilt to detect objects. We were unsatisfied with the scanner as it would only be able to map out a single face of an object. Instead of completing the assignment as requested, our team created a 3D scanner capable of capturing all faces of an object.
We achieved this by mounting the sensor to a swing arm on a servo, then mounting that servo on another swing arm that rotates perpendicular to the first arm. This design allows the distance sensor to make a full rotation around all faces of the scanned object.
Before CADing the design in SolidWorks, I completed the necessary torque calculations for the weight of each swing arm and the hardware mounted to them to ensure that the servos would have sufficient torque to move the arm smoothly through its travel. These calculations and FEA simulations are shown in the gallery below. After 3D printing the necessary components I assembled the scanner and soldered all connections to ensure that no matter how much the wiring loom moves the connections would not come free from the Arduino board.
We control the arm to collect distance data at 1 degree intervals through 170 degrees in the vertical axis and 360 degrees in the horizontal axis using code written within the Arduino IDE. Each of the 61,200 distance measurements and servo angles is sent to a laptop through the serial point which is then converted to cartesian coordinates using trigonometry and plotted within a point cloud using a Python script shown in the video to the left.