DIY 3D Scanner | 3D Scan Any Object At Home | 3D Plot with Python MatplotLib | Arduino With Python

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 มิ.ย. 2024
  • How to make a 3d scanner at home? Which can scan any object & plot it in 3d Space. It has an ultrasonic sensor (HC-SR04) connected to a servo motor (SG-90) & a DC motor all of these are controlled by Arduino Uno.
    For CAD & CODE: create.arduino.cc/projecthub/...
    This is a Jar. I want its shape, appearance & dimensions. for 3d printing. To do so, I could have measured its dimensions physically & made its cad design. So, I built this scanner to get all the coordinates. So, that I can directly import them & print them. Its 3d plot looks like this. To 3d scan any object. we calculate its distance from top to bottom. For this we are using an HC-SR04, Ultrasonic sensor, attached to a servo motor. This gives us two dimensions. For the 3rd dimension. The object needs to be rotated a few degrees at a time & then scanned simultaneously. To do so the object is placed on gear & rotated 18 degrees by a dc motor. Thus we get the 3rd dimension. Let's see its cad design. That we are going to scan. We have an ultrasonic sensor here. It is mounted on the horn of a servo motor. So that it can be rotated. mounted on a gear. The gear is driven by a worm connected to a dc motor. This arrangement reduced the speed of the motor & provides precise rotation. For scanning, the ultrasonic sensor is rotated from top to bottom, with the help of a servo motor. The sensor is sensing the distance between itself & the object in front of it Simultaneously. After a scan, the object rotated by a few degrees. Again the sensor scans the distances from top to bottom. This process repeats until the object is rotated 360 degrees. Here we can see, an ultrasonic sensor connected to the servo motor. And being rotated. To scan from top to bottom. The object to be scanned is placed on the gear. This gear is driven by a worm connected to a dc motor. And this mechanism rotates the object a few degrees. After each top to bottom scan. Let's see the trigonometry behind this scanner. Here we have the sensor pointing to the top of the bee. We want the height of that point. And its horizontal distance. The sensor provides distance. d. But that's slanted distance. We want it vertical or horizontal. we know the angle at which the sensor is being rotated by the servo motor. That's theta. So, the horizontal distance will be. d cos theta. And, the vertical distance will be. d sine of theta. We already know the height of the sensor from the ground. That is. H. So, the total vertical distance will be h + d sine theta. When the sensor is rotated. And is at 0 degrees. Cos of 0 is 1. So, the horizontal distance is equal to. d. The sine of 0 is 0. so the vertical distance of the point will be equal to the height of the sensor from the ground. h. The sensor is again rotated. Just the vertical distance is reversed. Now the vertical distance becomes h - d sine theta. That's how we get the coordinates of the points from top to bottom. There is an issue with this worm gear mechanism. The worm is not engaged properly with gear. So, the gear does not move. That's why we choose a new motor. This new motor is more precise & has smooth rotation, without wobble. With every pulse of 120 milliseconds, the motor rotates 18 degrees. To plot the data collected. We used the python programming language. It has a library called matplot lib. It can plot 3d. Matplotlib, plots in a cartesian coordinate system. That is x.y.z. But we have scanned the object as a cylindrical coordinate system. So, the plot of a cylinder looks like this, from our scan. A plane wall of points scanned. The result of the plot is not up to the mark. This is what a cylinder should look like. But, this is how it looks in the real scan. This is what a ball should look like after a scan. And, this is how it looks in the real scan.
    How to make a 3D scanner at home? Making 3d scanner with Arduino. Best Engineering Project. BE final year Project Easy. Best BE Arduino Projects.Engineering Arduino Easy Project with code. How to make Engineering projects easy. Electrical Engineering Projects with Arduino & code. Electrical Engineering Final Year Projects with Arduino & code. Electronics Engineering Projects with Arduino & code. Electronics Engineering Final Year Projects with Arduino & code. Arduino Robotics Projects with Code. Arduino Easy Robot projects.
    Chapters
    0:00 How to make a 3d scanner?
    0:09 Scanning Object from the scanner.
    0:21 Why did I build a 3d Scanner?
    0:30 Principle of 3d Scanning
    1:09 CAD Design to make 3D Scanner
    1:58 Physical Design to make 3D Scanner
    2:24 Trignometry/Math Behind 3D Scanner
    3:35 Issue with 3D Scanner
    3:55 Plotting in Python MatplotLib
    4:05 Issue in Plotting via Matplotlib Python
    4:28 Result of the plot of the 3D Scan on Python's Matplotlib
    5:01 I made a 3d Scanner at home
    Check out our channel for more related info: / @roboticseveryday
    Robotics EveryDay!!!

ความคิดเห็น • 11

  • @kenttabor7695
    @kenttabor7695 2 ปีที่แล้ว +2

    Very cool but I think the limitation you are seeing are due to the spacing of the transmitter and receiver. The top missing data may be due to the reflection of the wave due to the sharp angle.

    • @RoboticsEveryDay
      @RoboticsEveryDay  2 ปีที่แล้ว

      You got it right.
      Thanks for watching
      Robotics EveryDay!!!

  • @fachini104
    @fachini104 ปีที่แล้ว +1

    Cool project! You should consider using an infrared distance sensor and also placing another distance sensor at the top to get a better view of the object's shape

    • @RoboticsEveryDay
      @RoboticsEveryDay  ปีที่แล้ว

      That's the plan!
      We are also thinking of making a handheld 3D-Scanner, which will have distance sensors and IMU to get the exact position of the scanner in the 3D space and make the scanner portable.
      Thanks for the tip!
      Robotics EveryDay!

  • @ToyTechMachines
    @ToyTechMachines 2 ปีที่แล้ว +1

    Cool!

  • @rbmb7459
    @rbmb7459 2 ปีที่แล้ว +1

    👏👏👏

  • @minnhat5390
    @minnhat5390 ปีที่แล้ว

    can you try with a VL53L0x, I am building one but there are some problems when reading data and control the servo at the same time :((

    • @BUBAFONEK
      @BUBAFONEK 21 วันที่ผ่านมา

      Did you manage to get some usable data out of it? I have recently created a similar design using the VL53L0x and two stepper motors (one turning the object and the other one moving the sensor vertically using a threaded rod) and the output is just garbage.

  • @jorsanflo
    @jorsanflo ปีที่แล้ว +1

    put the sensor verticaly

    • @RoboticsEveryDay
      @RoboticsEveryDay  ปีที่แล้ว

      Thanks for the suggestion, we will try with that.
      Robotics Everyday!