diff --git a/README.md b/README.md index a580d8f..58c4135 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,17 @@ ## Micro Manipulator Stepper -This project contains an open source low-cost, easy-to-build motorized **XYZ Micro-Manipulator** motion control platform achieving sub micrometer precision. +This project contains an open source low-cost, easy-to-build motorized **XYZ Micro-Manipulator** motion control platform achieving submicron precision. It's designed for applications such as optical alignment, probing electronic components, and microscopy. Check out the YouTube video for more information about the device and how it is built: -[![DeviceInMotion](images/overview.gif)](https://youtu.be/MgQbPdiuUTw) +# Youtube Video +[![Watch the video](images/thumbnail.jpg)](https://youtu.be/MgQbPdiuUTw) Thanks to its parallel kinematic structure and miniature ball joints, it achieves good mechanical stiffness and a large range of motion. The motors are off the shelf stepper motors dr​iven by a 30 kHz closed loop controller and a very precise PWM signal. A 'magnetic gearing' approach increases the resolution of the low-cost magnetic rotary encoders by a factor of 30 allowing for steps down to 50nm -(**Please mind the difference between resolution and accuracy**. The absolute accuracy is much lower). +(**Please mind the difference between resolution and accuracy**. The absolute accuracy is significantly worse. The device can be controlled via simple G-Code commands over a USB serial interface and is thus easily integrated into other projects. The firmware implements a complete motion planning stack with look-ahead for smooth and accurate path following capabilities. @@ -29,9 +30,11 @@ You can also 3D-Print the parts but have to live with thermal drift (carbon fill
-The files can be found here: [CAD Models](construction). +The CAD files can be found here: [CAD Models](construction). Please note that FreeCAD version **1.1.0dev** was used, and the files might not work with older versions. +STL files for printing can be found here: [STL Files](construction/STL_3D_Printing/) + ### ⚙ Kinematic Model The kinematic model is defined here: [kinematic_model_delta3d.cpp](firmware/MotionControllerRP/src/kinemtaic_models/kinematic_model_delta3d.cpp). @@ -39,7 +42,7 @@ Please check the dimensions of your build against the values set in the construc ### ⚙ Electronics -IMPORTANT: If you fabricated PCB verion v1.2 (see version label on the board) you need to drill out a misplaced via on diode D1 that shorts 5V rail to ground. The problem was fixed in v1.3. +IMPORTANT: If you fabricated PCB verion v1.2 (see version label on the board) you need to drill out a misplaced via on diode D1 that shorts 5V rail to ground (See [repair image](electronics/pcb_v1.2_fix.jpg) ). The problem was fixed in v1.3. The electronics are designed in **KiCAD** and only commonly available modules (motor drivers and MCU boards) are used and connected by a simple PCB. No SMD soldering is required to populate the board to make the build extra accessible. For usual winding resistance of your motors, the device should be powered by $${\color{lightgreen} 5V-6V }$$ (2A) to keep current and heating to a reasonable level. @@ -83,9 +86,3 @@ The client must wait for an acknowledgment from the previous command before send | `M51` | Get motion controller and servo loop update frequency. | | `M52` | Get the number of items in the planner queue. | | `M53` | Check if all moves are finished. Returns `1` if finished, `0` otherwise. | - - - - -# Youtube Video -[![Watch the video](images/thumbnail.jpg)](https://youtu.be/MgQbPdiuUTw) diff --git a/bom.txt b/bom.txt index 0a13169..3ec0b03 100644 --- a/bom.txt +++ b/bom.txt @@ -13,9 +13,9 @@ * 1m Brass Pipe OD=2mm ID=1mm -* 12 M2 Screw M2x12mm, Counsersunk +* 12 M2 Screw M2x12mm, Countersunk -* 6 M3 Grub Screw M3x4 +* 6 M3 Grub Screw M3x4 --- Electronics ------------------------------------------------------------------- Qty. Name Comments @@ -32,8 +32,23 @@ * 2 4.7k Resistor 0603 (optional) -* 1 2 Pin Power Header -* 4 4 Pin Header -* 1 8 Pin Header +* 1 2 Pin Power Header 7.5 mm pitch +* 4 4 Pin Header 2.5 mm pitch +* 1 8 Pin Header 2.0 mm pitch * 3 NEMA 17 Stepper Motor (Body length <= 38mm) + +--- 3D Printing ------------------------------------------------------------------ + Qty. Name Comments + +* 3 WireFlexureMount 0.4mm+ nozzle will probably require post-processing. + +* 3 RubberBandCollet 0.4mm+ nozzle will probably require post-processing. + +* 3 BallJointMount 0.4mm+ nozzle will probably require post-processing. + +* 3 Motor Mount + +* 1 EndEffector + +* 1 Base Block diff --git a/construction/v3_3dprinting_stl/BallJointMount.stl b/construction/v3_3dprinting_stl/BallJointMount.stl new file mode 100644 index 0000000..f67afb3 Binary files /dev/null and b/construction/v3_3dprinting_stl/BallJointMount.stl differ diff --git a/construction/v3_3dprinting_stl/BaseBlock.stl b/construction/v3_3dprinting_stl/BaseBlock.stl new file mode 100644 index 0000000..b46e925 Binary files /dev/null and b/construction/v3_3dprinting_stl/BaseBlock.stl differ diff --git a/construction/v3_3dprinting_stl/EndEffector.stl b/construction/v3_3dprinting_stl/EndEffector.stl new file mode 100644 index 0000000..f1628c3 Binary files /dev/null and b/construction/v3_3dprinting_stl/EndEffector.stl differ diff --git a/construction/v3_3dprinting_stl/MotorHorn.stl b/construction/v3_3dprinting_stl/MotorHorn.stl new file mode 100644 index 0000000..51346c5 Binary files /dev/null and b/construction/v3_3dprinting_stl/MotorHorn.stl differ diff --git a/construction/v3_3dprinting_stl/MotorMount.stl b/construction/v3_3dprinting_stl/MotorMount.stl new file mode 100644 index 0000000..0f51870 Binary files /dev/null and b/construction/v3_3dprinting_stl/MotorMount.stl differ diff --git a/construction/v3_3dprinting_stl/RubberBandCollet.stl b/construction/v3_3dprinting_stl/RubberBandCollet.stl new file mode 100644 index 0000000..6c069e3 Binary files /dev/null and b/construction/v3_3dprinting_stl/RubberBandCollet.stl differ diff --git a/construction/v3_3dprinting_stl/WireFlexureMount.stl b/construction/v3_3dprinting_stl/WireFlexureMount.stl new file mode 100644 index 0000000..efd29db Binary files /dev/null and b/construction/v3_3dprinting_stl/WireFlexureMount.stl differ diff --git a/datasheets/TB6612FNG.pdf b/datasheets/TB6612FNG.pdf new file mode 100644 index 0000000..a76198d Binary files /dev/null and b/datasheets/TB6612FNG.pdf differ diff --git a/electronics/pcb_v1.2_fix.jpg b/electronics/pcb_v1.2_fix.jpg new file mode 100644 index 0000000..bb4de07 Binary files /dev/null and b/electronics/pcb_v1.2_fix.jpg differ diff --git a/images/thumbnail.jpg b/images/thumbnail.jpg index 8e712b5..038977f 100644 Binary files a/images/thumbnail.jpg and b/images/thumbnail.jpg differ