-module sensors(){
- translate([between_sensor_centers / 2, 0, 0]){
- cylinder(r = sonar_sensor_radius, h = sonar_sensor_height);}
- translate([between_sensor_centers / 2 - between_sensor_centers_variance,
- 0,
- 0]){
- cylinder(r = sonar_sensor_radius, h = sonar_sensor_height);
- translate([0, -sonar_sensor_radius, 0]){
- cube([between_sensor_centers_variance,
- sonar_sensor_radius * 2,
- sonar_sensor_height]);}}
- translate([-between_sensor_centers / 2, 0, 0]){
- cylinder(r = sonar_sensor_radius, h = sonar_sensor_height);}}
-
-module sensor_holder(){
- // arm_depth is deck_depth minus a little bit to make it fit
- arm_depth = deck_depth - 0.7;
- elbow_length = deck_depth + 0.8;
- difference(){
- cube([sonar_holder_length, sonar_holder_width, sonar_holder_depth]);
- translate([sonar_holder_length / 2, sonar_holder_width / 2, -0.05]){
- sensors();}}
- translate([sonar_holder_length, 0, 0]){
- cube([elbow_length, deck_depth, arm_depth]);
- translate([elbow_length, 0, 0]){
- linear_extrude(height = arm_depth){
- polygon([[0, 0],
- [arm_depth, 0],
- [arm_depth, sonar_holder_width / 2],
- [0, sonar_holder_width / 2 + arm_depth]]);}
- translate([0, (sonar_holder_width + arm_depth) / 2, 0]){
- cube([arm_depth / 2,
- (sonar_holder_width - arm_depth) / 2 + 0.8,
- arm_depth]);}
- translate([-1.7, sonar_holder_width + 0.8, 0]){
- linear_extrude(height = arm_depth){
- polygon([[0, 0],
- [arm_depth / 2 + 1.7, 4],
- [arm_depth / 2 + 1.7, 0]]);}}}}}