From d6dcb65230de621d968c2497a46223e3731ba2a5 Mon Sep 17 00:00:00 2001 From: Wouter Horlings Date: Thu, 3 Sep 2020 13:42:45 +0200 Subject: [PATCH] Add homing-switches to carriage --- .../SCARA/hardware/openSCAD/carriage.scad | 50 ++++++++++++++++--- .../SCARA/hardware/openSCAD/sg90.scad | 22 ++++++-- .../SCARA/hardware/openSCAD/switch.scad | 27 ++++++++++ 3 files changed, 89 insertions(+), 10 deletions(-) create mode 100644 implementation/SCARA/hardware/openSCAD/switch.scad diff --git a/implementation/SCARA/hardware/openSCAD/carriage.scad b/implementation/SCARA/hardware/openSCAD/carriage.scad index 2679135..544b903 100644 --- a/implementation/SCARA/hardware/openSCAD/carriage.scad +++ b/implementation/SCARA/hardware/openSCAD/carriage.scad @@ -3,6 +3,7 @@ use use use use +use //module arm(holes, width, thinkness, bore){ @@ -16,13 +17,17 @@ arm2_sq = pow(arm2,2); length_sq = pow(length,2); b = acos((arm1_sq + length_sq - arm2_sq)/(2 * arm1 * length)); c = acos((arm1_sq - length_sq + arm2_sq)/(2 * arm1 * arm2)); -angle1 = b + atan2(y,x) - 90; -angle2 = angle1 - 90 + c; +angle1_2_offset = 0; //[-90:0:90] +angle2_offset = 0; //[-90:0:180] +angle1 = angle1_2_offset + b + atan2(y,x) - 90; +angle2 = angle2_offset + angle1 - 90 + c; stepper_spaceing = 47; stepper_offset = 55; +washer_thinkness = 0.6; arm_thickness = 3; arm_width = 10; arm_offset = 15; +arm_spacing = arm_thickness+washer_thinkness; bus_diameter = 3 + arm_width; shaft_bore = 5.3; @@ -46,6 +51,21 @@ module arm3 (){ } } +module arm3b(){ + difference(){ + union(){ + arm3(); + translate([6,0,arm_thickness])hull(){ + cylinder(h=arm_thickness*2,d=arm_width/2,center=true); + translate([12,0,0]) cylinder(h=arm_thickness*2,d=arm_width/2,center=true); + } + + } + cylinder(d=shaft_bore,h=16,center=true); + } +} + + module arm0 (){ difference(){ union(){ @@ -67,7 +87,8 @@ module arm5b(){ arm5a(); difference(){ translate([-arm_thickness/2-2.5,35,-14]) rotate([0,0,180]) {sg90_bracket(); - sg90(-90); + sg90(); + sg90_arm(21,135); } translate([0,25,0]) rotate([0,90,0]) cylinder(d=7,h=10,center=true); } @@ -152,13 +173,13 @@ translate([stepper_offset,0,0]) { } //arm2 - translate([3,0,0]) rotate([angle1,0,0]) translate([0,0,-25]) rotate([-angle1,0,0]) rotate([90,0,90]) arm([0,stepper_spaceing],arm_width,arm_thickness,joint_bore); - translate([-3,0,0]) rotate([angle1,0,0]) translate([0,0,-25]) rotate([-angle1,0,0]) rotate([90,0,90]) arm([0,stepper_spaceing],arm_width,arm_thickness,joint_bore); + translate([arm_spacing,0,0]) rotate([angle1,0,0]) translate([0,0,-25]) rotate([-angle1,0,0]) rotate([90,0,90]) arm([0,stepper_spaceing],arm_width,arm_thickness,joint_bore); + translate([-arm_spacing,0,0]) rotate([angle1,0,0]) translate([0,0,-25]) rotate([-angle1,0,0]) rotate([90,0,90]) arm([0,stepper_spaceing],arm_width,arm_thickness,joint_bore); //arm3 rotate([angle2,0,0]){ - translate([3,0,0]) rotate([-90,0,-90]) arm3(); //([0,25],arm_width,arm_thickness,5); - translate([-3,0,0]) rotate([90,0,-90]) arm3(); //arm([0,25],arm_width,arm_thickness,5); + translate([arm_spacing,0,0]) rotate([-90,0,-90]) arm3(); //([0,25],arm_width,arm_thickness,5); + translate([-arm_spacing,0,0]) rotate([90,0,-90]) arm3b(); //arm([0,25],arm_width,arm_thickness,5); translate([0,-25,0]) rotate([angle1-angle2,0,0]) { // arm4 rotate([0,-90,0]) arm([0,arm1],arm_width,arm_thickness,joint_bore); @@ -186,9 +207,24 @@ translate([40,0,-60]) rotate([-0,-90,0]){ //carriage translate([stepper_offset,0,0]){ +difference(){ +union(){ rotate([0,90,0]) { stepper_103H5205_bracket(); translate([0,stepper_spaceing,0]) stepper_103H5205_bracket(); + } + translate([9,11,-16]) rotate([90,90,0]) translate([4.5,-4.38,0]) rotate([0,0,180]) cube([10.5,3,5]); + } + translate([9,11,-16]) rotate([90,90,0]){ + translate([-4.5,0,2.85]){ + rotate([90,0,0]) cylinder(d=1.5,h=10); + translate([7.65,0,-1.15]) rotate([90,0,0]) cylinder(d=1.4,h=10); + } + } } translate([-53,-25.5,-25.5])cube([40,98,4]); + translate([17.5,78,-14]) rotate([90,90,0]){ + switch_mount(); +// switch(); + } } diff --git a/implementation/SCARA/hardware/openSCAD/sg90.scad b/implementation/SCARA/hardware/openSCAD/sg90.scad index 470acf2..5f11b92 100644 --- a/implementation/SCARA/hardware/openSCAD/sg90.scad +++ b/implementation/SCARA/hardware/openSCAD/sg90.scad @@ -1,4 +1,5 @@ +$fn = $preview? 32 : 50; sg90_length = 22.2; sg90_width = 11.8; sg90_flange_pos = 15.9; @@ -7,10 +8,9 @@ sg90_flange_length = 5; sg90_flange_hole_pos = 2.7; sg90_flange_hole_bore = 2; -module sg90(rot){ +module sg90(){ translate([0,0,-sg90_flange_pos+7]) { color("steelblue") import("SG90_v7.stl"); - translate([5.9,16.3,32]) rotate([0,180,rot]) import("SG90_arm_v2.stl"); } } @@ -44,5 +44,21 @@ translate([17.8,11.9,4]) rotate([0,0,45]) cube([20,20,10],center=true); }*/ -//sg90(90); +sg90(); +sg90_arm(21,135); sg90_bracket(); + +module sg90_arm(length, rot){ + translate([5.9,16.3,19.5]) rotate([0,180,rot]) difference(){ + union(){ + translate([0,0,-0.5]) cylinder(d=9,h=3.5,center=true); + hull(){ + cylinder(d=9,h=2.5,center=true); + translate([0,-length,0]) cylinder(d=5,h=2.5,center=true); + } + } + cylinder(d=2.8,h=8,center=true); + translate([0,0,0.5]) cylinder(d=4.8,h=3.5,center=true); + translate([0,-length,0]) cylinder(d=2,h=8,center=true); + } +} diff --git a/implementation/SCARA/hardware/openSCAD/switch.scad b/implementation/SCARA/hardware/openSCAD/switch.scad new file mode 100644 index 0000000..dedd136 --- /dev/null +++ b/implementation/SCARA/hardware/openSCAD/switch.scad @@ -0,0 +1,27 @@ +$fn = $preview? 32 : 72; + + +module switch() { +scale(25.4) import("SPPB2A0101.stl"); +} + + +module switch_mount(){ + difference(){ + translate([4.5,-4.38,0]) union() { + rotate([0,0,180]) cube([11,3,6]); + hull(){ + translate([0,-3,0])rotate([0,0,180]) cube([11,3,6]); + translate([0,-10,6])rotate([0,0,180]) cube([11,3,6]); + } + } + translate([-4.5,0,2.85]){ + rotate([90,0,0]) cylinder(d=1.5,h=10); + translate([7.65,0,-1.15]) rotate([90,0,0]) cylinder(d=1.4,h=10); + } + } +} + + +switch(); +switch_mount();