The Bionic Eye Module was modeled in OpenSCAD. Both the OpenSCAD source and STL files can be found below. This model should easily fit in the work envelope of most 3D printers. It will work well with either ABS or PLA. And since high strength is not required, you can print with minimal infill.
The prototype was printed on an UP! Plus2 using white ABS with 0.15mm Z- resolution and ‘hollow honeycomb’ fill. Total print time was about 3 hours.
When the print is complete, remove any support material and lightly sand any rough spots. Use a dental pick or a bent paperclip to clean out any support material from the screw holes.
Locate the center of the eye. (It is where the eyeball was attached to the printing platform.) Using permanent markers or paint (preferred), create an iris and pupil in the center of the eye. You can use the concentric rings from the print layers as a centering guide.
// Bionic Eye Module // by Bill Earl // for Adafruit Industries // // Model of LS-0003 sub-micro sized servo module LS0003_motor(c = "LightSteelBlue"){ difference(){ union(){ color(c) cube([19.5,8.5,16], center=true); color(c) translate([0,0,4.5]) cube([27.5,8.5,1], center=true); color(c) translate([5.5,0,2]) cylinder(r=3.9, h=19, $fn=20, center=true); color(c) translate([-3,0,1]) cylinder(r=0.8, h=16, $fn=20, center=true); color(c) translate([2,0,1]) cylinder(r=2.2, h=17, $fn=20, center=true); color("white") translate([5.5,0,3.5]) cylinder(r=1.85, h=22.5, $fn=20, center=true); } translate([10,0,-11]) rotate([0,-30,0]) cube([8,13,4], center=true); for ( hole = [11.5,-11.5] ){ translate([hole,0,5]) cylinder(r=1, h=4, $fn=20, center=true); } } } // Motor Bracket module motorBracket() difference() { cube([10, 5, 19]); translate([0,0,-0.5]) scale([2.2,1,1]) cylinder(20, r=4,, $fn=20); } // Model of complete motor assembly w/bracket. module motorAssembly () { translate([0,0,-1.5])LS0003_motor(); translate([0,12.5,0])rotate([-90,0,0])LS0003_motor(); translate([10,14.5,-9.5]) rotate([90,0,-90]) color("white") motorBracket(); } radius = 23; diameter = radius * 2; // The Eyeball rotate([90, 45, 0]) color("white") difference() { sphere(radius, $fn=120); difference() { sphere(radius-1, $fn=120); translate([0,0,11]) cylinder(h=radius, r=radius); } #translate([-5.5,0,radius - 22.75]) motorAssembly(); translate([0,0,10]) cylinder(h=radius, r=1, $fn=20); translate([0,0,15.5]) cylinder(h=radius, r=2, $fn=20); rotate([0,0,90])translate([5,5,-9]) union() { cube([diameter, diameter, 20]); translate([0,0,10]) rotate([-90,0,0]) cylinder(h=diameter, r=10); translate([0,0,10]) rotate([0,90,0]) cylinder(h=diameter, r=10);; } } // Motor Assembly Bracket color("LightSteelBlue") translate([radius, -radius, -radius]) difference() motorBracket(); // Eye cup insert color("gray")translate([(radius * 2.5), 0, -radius]) difference() { union() { translate([0,0,6])cylinder(10, r= radius, $fn = 120); translate([0,0,12]) cylinder(4, r= radius+2, $fn = 120); cylinder(6, r2=radius*0.6, r1=5, $fn=120); } translate([0,0,28]) sphere(radius + 2); translate([0,0,9]) cylinder(12, r= radius-1, $fn = 120); translate([0,0,-1]) cylinder(h=10, r=1, $fn=20); translate([0,0,1.5]) cylinder(h=10, r=1.85, $fn=20); difference() { cylinder(10, r=radius * 0.75, $fn=120); cylinder(10, r=radius * 0.3, $fn=120); translate([0,-20,0]) cube([20, 40, 20]); } }
Page last edited October 11, 2014
Text editor powered by tinymce.