ソースを参照

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 <electronics.scad>
use <sg90.scad>
use <switch.scad>
//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();
}
}

+ 19
- 3
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);
}
}

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

読み込み中…
キャンセル
保存