/* * Rueda convexa para robot Plumabot * * Por Rafael Jurado * * * La cubierta se hace con un trozo de cámara de bicicleta o cualquier aro de goma similar. * Los parámetros de la rueda se pueden cambiar en la sección "Parámetros de usuario" * Partimos del diámetro y grosor de la rueda, y el tamaño del eje del motor. */ /**************************************************/ /* Parámetros de usuario */ /************************************************/ DiametroRueda=40; GruesoRueda=10; Llanta=2; EjeMotor=[3, 2.5]; //descomentar para Micro/Mini metal gearmotor de pololu //EjeMotor=[5, 4]; Maciza=0; /* Para rueda maciza cambiar por Maciza=1*/ /******************************************************/ RadioCamara=GruesoRueda/2-1; RadioLlanta=DiametroRueda/2-GruesoRueda/2+2; union() { difference() { disco(); radios(); cylinder (r=EjeMotor[0], h=GruesoRueda+0.1, $fn=25, center=true); translate([-0.5,-EjeMotor[0]-2,-GruesoRueda/2-0.1]) cube([1,EjeMotor[0]+2, GruesoRueda+0.1]); } buje(); } module disco() { difference() { union() { cylinder (r=RadioLlanta, h=GruesoRueda, $fn=50, center=true); rotate_extrude( $fn=50) translate([RadioLlanta-1, 0, 0]) rotate([0, 0, 0]) circle(r=RadioCamara); } if (Maciza==0) { translate ([0, 0, -GruesoRueda/2+2]) cylinder (r=RadioLlanta-Llanta, h=GruesoRueda, $fn=50); } } } module radios() { RadioHueco=2*(RadioLlanta-Llanta)*3.1416/32; CentroHueco=RadioLlanta-Llanta-RadioHueco; for( i=[0:15]) rotate(i*45,[0, 0, 1]) hull() { translate ([CentroHueco, 0,-0.1]) cylinder (r=RadioHueco, h=GruesoRueda+1, $fn=50,center=true); translate ([EjeMotor[0]+2, 0,-0.5]) cylinder (r=1, h=GruesoRueda, $fn=50,center=true); } } module buje() { union() { difference() { cylinder (r=EjeMotor[0]+1, h=GruesoRueda, $fn=25, center=true); cylinder (r=EjeMotor[0]/2, h=GruesoRueda+0.1, $fn=25,center=true); translate([-0.5,-EjeMotor[0]-1,-GruesoRueda/2-0.1]) cube ([1,EjeMotor[0], GruesoRueda+0.2]); } translate([-EjeMotor[0]/2, (EjeMotor[0]/2)-(EjeMotor[0]-EjeMotor[1]),-GruesoRueda/2]) cube([EjeMotor[0],1,GruesoRueda]); } }