浏览代码

Add homing-switches to carriage

iss17/08_feature_implementation_02
父节点
当前提交
d6dcb65230
共有 3 个文件被更改,包括 89 次插入10 次删除
  1. +43
    -7
      implementation/SCARA/hardware/openSCAD/carriage.scad
  2. +19
    -3
      implementation/SCARA/hardware/openSCAD/sg90.scad
  3. +27
    -0
      implementation/SCARA/hardware/openSCAD/switch.scad

+ 43
- 7
implementation/SCARA/hardware/openSCAD/carriage.scad 查看文件

@@ -3,6 +3,7 @@ use <arm.scad>
use <marker.scad> use <marker.scad>
use <electronics.scad> use <electronics.scad>
use <sg90.scad> use <sg90.scad>
use <switch.scad>
//module arm(holes, width, thinkness, bore){ //module arm(holes, width, thinkness, bore){




@@ -16,13 +17,17 @@ arm2_sq = pow(arm2,2);
length_sq = pow(length,2); length_sq = pow(length,2);
b = acos((arm1_sq + length_sq - arm2_sq)/(2 * arm1 * length)); b = acos((arm1_sq + length_sq - arm2_sq)/(2 * arm1 * length));
c = acos((arm1_sq - length_sq + arm2_sq)/(2 * arm1 * arm2)); 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_spaceing = 47;
stepper_offset = 55; stepper_offset = 55;
washer_thinkness = 0.6;
arm_thickness = 3; arm_thickness = 3;
arm_width = 10; arm_width = 10;
arm_offset = 15; arm_offset = 15;
arm_spacing = arm_thickness+washer_thinkness;


bus_diameter = 3 + arm_width; bus_diameter = 3 + arm_width;
shaft_bore = 5.3; 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 (){ module arm0 (){
difference(){ difference(){
union(){ union(){
@@ -67,7 +87,8 @@ module arm5b(){
arm5a(); arm5a();
difference(){ difference(){
translate([-arm_thickness/2-2.5,35,-14]) rotate([0,0,180]) {sg90_bracket(); 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); 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 //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 //arm3
rotate([angle2,0,0]){ 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]) { translate([0,-25,0]) rotate([angle1-angle2,0,0]) {
// arm4 // arm4
rotate([0,-90,0]) arm([0,arm1],arm_width,arm_thickness,joint_bore); 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 //carriage
translate([stepper_offset,0,0]){ translate([stepper_offset,0,0]){
difference(){
union(){
rotate([0,90,0]) { rotate([0,90,0]) {
stepper_103H5205_bracket(); stepper_103H5205_bracket();
translate([0,stepper_spaceing,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([-53,-25.5,-25.5])cube([40,98,4]);
translate([17.5,78,-14]) rotate([90,90,0]){
switch_mount();
// switch();
}
} }

+ 19
- 3
implementation/SCARA/hardware/openSCAD/sg90.scad 查看文件

@@ -1,4 +1,5 @@


$fn = $preview? 32 : 50;
sg90_length = 22.2; sg90_length = 22.2;
sg90_width = 11.8; sg90_width = 11.8;
sg90_flange_pos = 15.9; sg90_flange_pos = 15.9;
@@ -7,10 +8,9 @@ sg90_flange_length = 5;
sg90_flange_hole_pos = 2.7; sg90_flange_hole_pos = 2.7;
sg90_flange_hole_bore = 2; sg90_flange_hole_bore = 2;


module sg90(rot){
module sg90(){
translate([0,0,-sg90_flange_pos+7]) { translate([0,0,-sg90_flange_pos+7]) {
color("steelblue") import("SG90_v7.stl"); 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(); 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);
}
}

+ 27
- 0
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();

正在加载...
取消
保存