// challenge-bot // GNU AGPLv3 (or later at your option) // project available at these locations: // https://gitorious.org/ozzloy/challenge-bot // https://github.com/waynegramlich/challenge-bot // sonar sensor measurements from https://www.thingiverse.com/thing:92869, // 3/8 inch in mm deck_depth = 4.7625; sonar_plate_width = 20; sonar_plate_length = 45; sonar_sensor_radius = 8; sonar_sensor_height = 13.8; sonar_holder_length = sonar_plate_length + 10; sonar_holder_width = sonar_plate_width + 3; sonar_holder_depth = 3; between_sensor_centers = 27; module sensors(){ translate([between_sensor_centers / 2, 0, 0]){ cylinder(r = sonar_sensor_radius, h = sonar_sensor_height);} translate([-between_sensor_centers / 2, 0, 0]){ cylinder(r = sonar_sensor_radius, h = sonar_sensor_height);}} module deck_holder(){ deck_holder_length = 25; deck_holder_width = sonar_holder_width; cube([deck_holder_length, deck_holder_width, sonar_holder_depth]); translate([0, 0, sonar_holder_depth]){ cube([deck_depth, deck_holder_width, deck_depth]); translate([0, 0, deck_depth]){ cube([deck_holder_length, deck_holder_width, sonar_holder_depth]);}}} module sonar_table_top_holder(){ difference(){ union(){ cube([sonar_holder_length, sonar_holder_width, sonar_holder_depth]); translate([sonar_holder_length, 0, 0]){ deck_holder();}} translate([between_sensor_centers / 2 + sonar_sensor_radius + 3, sonar_holder_width / 2, -1]){ sensors();} // cut out a bit of the circle to make it 3d printable, // no severe overhang translate([3 + sonar_sensor_radius, sonar_holder_width - 3.025, sonar_holder_depth / 2 - 0.025]){ cube([10, 6.1, sonar_holder_depth + .1], center = true); translate([between_sensor_centers, 0, 0]){ cube([10, 6.1, sonar_holder_depth + .1], center = true);}}}} rotate([90, 0, 0]){ sonar_table_top_holder();}