Add the electronics mounting panel for the 2 L298N modules and the ESP32 dev board.
This commit is contained in:
parent
990dd83da1
commit
7ee292e6ce
|
@ -124,8 +124,28 @@ BearingRotateZ4 = 180-45;
|
||||||
MotorMountX = (GearedMotorMountX + 0.1) / 2;
|
MotorMountX = (GearedMotorMountX + 0.1) / 2;
|
||||||
MotorMountY = (GearedMotorMountY + 0.1) / 2;
|
MotorMountY = (GearedMotorMountY + 0.1) / 2;
|
||||||
|
|
||||||
echo("Frame 2020 X (x2)", FrameX + 20);
|
ESP32BoardX = 63.15;
|
||||||
echo("Frame 2020 Y (x4)", FrameY);
|
ESP32BoardY = 77.6;
|
||||||
|
ESP32BoardZ = 1.7;
|
||||||
|
|
||||||
|
ESP32BoardClearanceX = 52.5;
|
||||||
|
ESP32BoardClearanceY = 66.66;
|
||||||
|
ESP32BoardClearanceZ = 20;
|
||||||
|
|
||||||
|
ESP32PostsX = 57.1;
|
||||||
|
ESP32PostsY = 72;
|
||||||
|
ESP32PostsD = 3.1;
|
||||||
|
|
||||||
|
L298NModuleX = 43.5;
|
||||||
|
L298NModuleY = 43.5;
|
||||||
|
L298NModuleZ = 1.5;
|
||||||
|
|
||||||
|
L298NModulePostsX = 36.5;
|
||||||
|
L298NModulePostsY = 36.5;
|
||||||
|
L298NModulePostsD = 2.8;
|
||||||
|
|
||||||
|
echo("BOM: [Frame] 2020 Extrusion X (x2)", FrameX + 20);
|
||||||
|
echo("BOM: [Frame] 2020 Extrusion Y (x4)", FrameY);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DEBUG MODULES
|
* DEBUG MODULES
|
||||||
|
@ -185,21 +205,52 @@ module bearing (pos = [0, 0, 0], width = 8, hole = true, padding = 0.1) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module ESP32_board (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
|
translate (pos) rotate(rot) {
|
||||||
|
difference () {
|
||||||
|
cube([ESP32BoardX, ESP32BoardY, ESP32BoardZ], center = true);
|
||||||
|
rect_bolt_voids(X = ESP32PostsX, Y = ESP32PostsY, D = ESP32PostsD, H = ESP32BoardZ + 1);
|
||||||
|
}
|
||||||
|
translate([0, 0, (ESP32BoardZ / 2) + (ESP32BoardClearanceZ / 2)]) cube([ESP32BoardClearanceX, ESP32BoardClearanceY, ESP32BoardClearanceZ], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module L298N_module (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
|
translate (pos) rotate(rot) {
|
||||||
|
difference () {
|
||||||
|
cube([L298NModuleX, L298NModuleY, L298NModuleZ], center = true);
|
||||||
|
rect_bolt_voids(X = L298NModulePostsX, Y = L298NModulePostsY, H = L298NModuleZ + 1, D = L298NModulePostsD);
|
||||||
|
}
|
||||||
|
translate([0, 10, (L298NModuleZ / 2) + (24.75 / 2)]) cube([23, 15.7, 24.75], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CONTACT PRINTER MODULES
|
* CONTACT PRINTER MODULES
|
||||||
**/
|
**/
|
||||||
|
|
||||||
module bearing_void (pos = [0, 0, 0], width= 8) {
|
module rect_bolt_voids (pos = [0, 0, 0], X = 1, Y = 1, D = 1, H = 1, $fn = 60) {
|
||||||
fuzz = 0.5;
|
translate(pos) {
|
||||||
|
translate([ X / 2, Y / 2, 0]) cylinder(r = R(D), h = H, $fn = $fn, center = true);
|
||||||
|
translate([-X / 2, Y / 2, 0]) cylinder(r = R(D), h = H, $fn = $fn, center = true);
|
||||||
|
translate([ X / 2, -Y / 2, 0]) cylinder(r = R(D), h = H, $fn = $fn, center = true);
|
||||||
|
translate([-X / 2, -Y / 2, 0]) cylinder(r = R(D), h = H, $fn = $fn, center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module bearing_void (pos = [0, 0, 0], width= 8, hole = false, padding = 0.5) {
|
||||||
translate (pos) {
|
translate (pos) {
|
||||||
difference () {
|
difference () {
|
||||||
cylinder(r = R(BearingOuterDiameter) + fuzz, h = width, center = true);
|
cylinder(r = R(BearingOuterDiameter) + padding, h = width, center = true);
|
||||||
|
if (hole) {
|
||||||
|
cylinder(r = R(BearingInnerDiameter) - padding, h = width + 1, center = true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module m3_panel_bolt_void (pos = [0, 0, 0], H = 10) {
|
module m3_panel_bolt_void (pos = [0, 0, 0], rot = [0, 0, 0], H = 10) {
|
||||||
translate(pos) {
|
translate(pos) rotate(rot) {
|
||||||
cylinder(r = R(6), h = 5, center = true, $fn = 40);
|
cylinder(r = R(6), h = 5, center = true, $fn = 40);
|
||||||
translate([0, 0, -(H/2) - (5/2) + 0.01]) cylinder(r = R(3.25), h = H, center = true, $fn = 25);
|
translate([0, 0, -(H/2) - (5/2) + 0.01]) cylinder(r = R(3.25), h = H, center = true, $fn = 25);
|
||||||
}
|
}
|
||||||
|
@ -889,6 +940,13 @@ module bearing_post_nut (pos = [0, 0, 0]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module m3_nut_bolt_void (pos = [0, 0, 0], rot = [0, 0, 0], H = 20) {
|
||||||
|
translate(pos) rotate(rot) {
|
||||||
|
m3_nut(3);
|
||||||
|
cylinder(r = R(3.5), h = H, center = true, $fn = 30);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
module corner_foot (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
module corner_foot (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
H = 30;
|
H = 30;
|
||||||
D1 = 16;
|
D1 = 16;
|
||||||
|
@ -908,18 +966,18 @@ module corner_foot (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module l289N_mount (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
module L298N_mount (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
$fn = 60;
|
$fn = 40;
|
||||||
DISTANCE = 36.5;
|
DISTANCE = L298NModulePostsX;
|
||||||
H = 4;
|
H = 4;
|
||||||
THICKNESS = 3;
|
THICKNESS = 3;
|
||||||
module stand () {
|
module stand () {
|
||||||
difference () {
|
difference () {
|
||||||
cylinder(r1 = 4, r2 = 3, h = H, center = true);
|
cylinder(r1 = R(8), r2 = R(6), h = H, center = true);
|
||||||
cylinder(r = 1.5, h = H + 1, center = true);
|
cylinder(r = R(3), h = H + 1, center = true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
translate(pos) rotate(rot) {
|
translate([pos[0] - (DISTANCE / 2), pos[1] - (DISTANCE / 2), pos[2]]) rotate(rot) {
|
||||||
translate([0, 0, 0]) stand();
|
translate([0, 0, 0]) stand();
|
||||||
translate([DISTANCE, 0, 0]) stand();
|
translate([DISTANCE, 0, 0]) stand();
|
||||||
translate([DISTANCE, DISTANCE, 0]) stand();
|
translate([DISTANCE, DISTANCE, 0]) stand();
|
||||||
|
@ -939,8 +997,8 @@ module motor_controller_panel (pos = [0, 0, 0]) {
|
||||||
translate(pos) difference() {
|
translate(pos) difference() {
|
||||||
union () {
|
union () {
|
||||||
translate([-5, 17, 0]) rounded_cube([110, 50, 3], d = 4, center = true, $fn = 30);
|
translate([-5, 17, 0]) rounded_cube([110, 50, 3], d = 4, center = true, $fn = 30);
|
||||||
l289N_mount([5, 0, 6]);
|
L298N_mount([5, 0, 6]);
|
||||||
l289N_mount([-52, 0, 6]);
|
L298N_mount([-52, 0, 6]);
|
||||||
}
|
}
|
||||||
translate([23, 18, 0]) rounded_cube([28, 28, 10], d = 4, center = true, $fn = 30);
|
translate([23, 18, 0]) rounded_cube([28, 28, 10], d = 4, center = true, $fn = 30);
|
||||||
translate([-34, 18, 0]) rounded_cube([28, 28, 10], d = 4, center = true, $fn = 30);
|
translate([-34, 18, 0]) rounded_cube([28, 28, 10], d = 4, center = true, $fn = 30);
|
||||||
|
@ -951,7 +1009,7 @@ module sprocketed_roller_upright (pos = [0, 0, 0]) {
|
||||||
translate (pos) {
|
translate (pos) {
|
||||||
difference () {
|
difference () {
|
||||||
sprocketed_roller(sprockets = Sprockets, bevel = SprocketedRollerBevel, model = SprocketedRollerModel, set_screw_top = SprocketedRollerSetScrewTop, set_screw_side = SprocketedRollerSetScrewSide, bolts = SprocketedRollerBolts, adjust_base = SprocketedRollerAdjustBase, reinforced = true);
|
sprocketed_roller(sprockets = Sprockets, bevel = SprocketedRollerBevel, model = SprocketedRollerModel, set_screw_top = SprocketedRollerSetScrewTop, set_screw_side = SprocketedRollerSetScrewSide, bolts = SprocketedRollerBolts, adjust_base = SprocketedRollerAdjustBase, reinforced = true);
|
||||||
bearing([0, 0, 12.4 + 0.3], hole = true, padding = 0.2);
|
bearing_void([0, 0, 12.4 + 0.3], hole = true, padding = 0.2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -977,7 +1035,7 @@ module sprocketed_roller_upright_solid (pos = [0, 0, 0]) {
|
||||||
translate (pos) {
|
translate (pos) {
|
||||||
difference () {
|
difference () {
|
||||||
sprocketed_roller(sprockets = Sprockets, bevel = SprocketedRollerBevel, model = SprocketedRollerModel, set_screw_top = SprocketedRollerSetScrewTop, set_screw_side = SprocketedRollerSetScrewSide, bolts = SprocketedRollerBolts, adjust_base = SprocketedRollerAdjustBase, reinforced = false);
|
sprocketed_roller(sprockets = Sprockets, bevel = SprocketedRollerBevel, model = SprocketedRollerModel, set_screw_top = SprocketedRollerSetScrewTop, set_screw_side = SprocketedRollerSetScrewSide, bolts = SprocketedRollerBolts, adjust_base = SprocketedRollerAdjustBase, reinforced = false);
|
||||||
bearing([0, 0, 12.4 + 0.3], hole = true, padding = 0.2);
|
bearing_void([0, 0, 12.4 + 0.3], hole = true, padding = 0.2);
|
||||||
|
|
||||||
//to be printed in resin
|
//to be printed in resin
|
||||||
translate([0, 0, 16.2]) {
|
translate([0, 0, 16.2]) {
|
||||||
|
@ -1023,7 +1081,7 @@ module sprocketed_roller_invert_solid (pos = [0, 0, 0]) {
|
||||||
translate([0, 0, -2]) cylinder(r = R(D), h = 1.5, center = true);
|
translate([0, 0, -2]) cylinder(r = R(D), h = 1.5, center = true);
|
||||||
}
|
}
|
||||||
translate([0, 0, 1]) gearbox_motor_shaft_void();
|
translate([0, 0, 1]) gearbox_motor_shaft_void();
|
||||||
bearing([0, 0, BearingZ], hole = true, padding = 0.2);
|
bearing_void([0, 0, BearingZ], hole = true, padding = 0.2);
|
||||||
if (SprocketedRollerSetScrewTop) {
|
if (SprocketedRollerSetScrewTop) {
|
||||||
m3_bolt_void([0, 0, 1]);
|
m3_bolt_void([0, 0, 1]);
|
||||||
}
|
}
|
||||||
|
@ -1089,15 +1147,85 @@ module gate_holder () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module electronics_panel_m3_bolts_voids (pos = [0, 0, 0]) {
|
||||||
|
XY = L298NModulePostsX;
|
||||||
|
Z = 1;
|
||||||
|
translate(pos) {
|
||||||
|
translate([32, 0, 0]) {
|
||||||
|
m3_panel_bolt_void([ XY / 2, XY / 2, Z]);
|
||||||
|
m3_panel_bolt_void([-XY / 2, XY / 2, Z]);
|
||||||
|
m3_panel_bolt_void([ XY / 2, -XY / 2, Z]);
|
||||||
|
m3_panel_bolt_void([-XY / 2, -XY / 2, Z]);
|
||||||
|
}
|
||||||
|
translate([-32, 0, 0]) {
|
||||||
|
m3_panel_bolt_void([ XY / 2, XY / 2, Z]);
|
||||||
|
m3_panel_bolt_void([-XY / 2, XY / 2, Z]);
|
||||||
|
m3_panel_bolt_void([ XY / 2, -XY / 2, Z]);
|
||||||
|
m3_panel_bolt_void([-XY / 2, -XY / 2, Z]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module button_void (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
|
translate(pos) rotate(rot) {
|
||||||
|
cylinder(r = R(7), h = PanelZ + 1, center = true, $fn = 40);
|
||||||
|
translate([0, 0, -10 / 2]) cylinder(r = R(9.5), h = 10, center = true, $fn = 40);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module electronics_panel (pos = [0, 0, 0], rot = [0, 0, 0]) {
|
||||||
|
X = PanelX - 40;
|
||||||
|
Y = 100;
|
||||||
|
WallX = 3;
|
||||||
|
WallY = Y - 20;
|
||||||
|
WallZ = 20;
|
||||||
|
ESP32PostsOffsetY = 10;
|
||||||
|
ESP32PostsZ = 23;
|
||||||
|
L298NModuleOffsetY = 5;
|
||||||
|
DCJackZ = 45;
|
||||||
|
translate(pos) rotate(rot) {
|
||||||
|
difference () {
|
||||||
|
union () {
|
||||||
|
cube([X, Y, PanelZ], center = true);
|
||||||
|
translate([(X / 2) - (WallX / 2), 10, -WallZ / 2]) cube([WallX, WallY, WallZ], center = true);
|
||||||
|
translate([-(X / 2) + (WallX / 2), 10, -WallZ / 2]) cube([WallX, WallY, WallZ], center = true);
|
||||||
|
rect_bolt_voids([0, ESP32PostsOffsetY, -ESP32PostsZ / 2], X = ESP32PostsX, Y = ESP32PostsY, D = 8, H = ESP32PostsZ);
|
||||||
|
L298N_mount([ 32, 46 + L298NModuleOffsetY, -4], [180, 0, 0]);
|
||||||
|
L298N_mount([-32, 46 + L298NModuleOffsetY, -4], [180, 0, 0]);
|
||||||
|
//panel for DC jack
|
||||||
|
translate([44.5, -(Y / 2) + 20 + (PanelZ / 2), -DCJackZ / 2]) cube([20, PanelZ, DCJackZ], center = true);
|
||||||
|
}
|
||||||
|
rect_bolt_voids([0, ESP32PostsOffsetY, -ESP32PostsZ], X = ESP32PostsX, Y = ESP32PostsY, D = 2.8, H = 10);
|
||||||
|
translate([0, ESP32PostsOffsetY, -ESP32PostsZ]) cube([ESP32BoardX + 0.3, ESP32BoardY + 0.3, 3], center = true);
|
||||||
|
//top panel bolts
|
||||||
|
m3_panel_bolt_void([(X / 2) - 10, -(Y / 2) + 10, 3]);
|
||||||
|
m3_panel_bolt_void([-(X / 2) + 10, -(Y / 2) + 10, 3]);
|
||||||
|
//underside panel bolts
|
||||||
|
m3_panel_bolt_void([-(X / 2) + 5, (Y / 2) - 12, -13], [0, 90, 0]);
|
||||||
|
m3_panel_bolt_void([ (X / 2) - 5, (Y / 2) - 12, -13], [0, -90, 0]);
|
||||||
|
electronics_panel_m3_bolts_voids([0, 9.5 + L298NModuleOffsetY, 1.5]);
|
||||||
|
//DC jack
|
||||||
|
translate([44.5, -(Y / 2) + 20 + (PanelZ / 2), -DCJackZ + 10]) rotate([90, 0, 0]) cylinder(r = R(11), h = 5 + 1, center = true, $fn = 60);
|
||||||
|
button_void([-40, -20, 0]);
|
||||||
|
button_void([40, -20, 0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
module debug () {
|
module debug () {
|
||||||
DaylightZ = 11.5;
|
DaylightZ = 11.5;
|
||||||
PanelOffsetZ = -2.5;
|
PanelOffsetZ = -2.5;
|
||||||
BearingOffsetZ = -2.5;
|
BearingOffsetZ = -2.5;
|
||||||
//////
|
//////
|
||||||
panel([0, -10, PanelOffsetZ]);
|
|
||||||
UseDaylight = true;
|
UseDaylight = true;
|
||||||
UseAll = false;
|
UseAll = false;
|
||||||
|
FrameOnly = true;
|
||||||
|
|
||||||
|
panel([0, -10, PanelOffsetZ]);
|
||||||
|
|
||||||
|
if (!FrameOnly) {
|
||||||
translate([0, RollerY, 18]) rotate([180, 0, 0]) difference () {
|
translate([0, RollerY, 18]) rotate([180, 0, 0]) difference () {
|
||||||
//sprocketed_roller_upright();
|
//sprocketed_roller_upright();
|
||||||
//translate([50, 0, 0]) cube([100, 100, 100], center = true);
|
//translate([50, 0, 0]) cube([100, 100, 100], center = true);
|
||||||
|
@ -1189,6 +1317,7 @@ module debug () {
|
||||||
//centered_geared_motor([ReelX, -ReelY, TakeupMotorZ], [180, 0, StockTakeupMotorRotationZ]);
|
//centered_geared_motor([ReelX, -ReelY, TakeupMotorZ], [180, 0, StockTakeupMotorRotationZ]);
|
||||||
|
|
||||||
//translate([0, 0, DaylightZ]) color("red", 0.25) cube([250, 100, 16], center = true);
|
//translate([0, 0, DaylightZ]) color("red", 0.25) cube([250, 100, 16], center = true);
|
||||||
|
}
|
||||||
|
|
||||||
//2020 frame
|
//2020 frame
|
||||||
//top/bottom
|
//top/bottom
|
||||||
|
@ -1203,11 +1332,18 @@ module debug () {
|
||||||
|
|
||||||
//feet
|
//feet
|
||||||
corner_foot([FrameX / 2, (FrameY / 2) + 10, -26], [0, 0, 180]);
|
corner_foot([FrameX / 2, (FrameY / 2) + 10, -26], [0, 0, 180]);
|
||||||
|
corner_foot([PanelX / 2 - 10, -(FrameY / 2) - 10, -26], [0, 0, 90]);
|
||||||
|
|
||||||
//motor_controller_panel([0, -75, PanelOffsetZ]);
|
//motor_controller_panel([0, -75, PanelOffsetZ]);
|
||||||
|
|
||||||
|
//electronics
|
||||||
|
//ESP32_board([0, -90, -25], [180, 0, 0]);
|
||||||
|
L298N_module([-32, -85, -9], [180, 0, -90]);
|
||||||
|
L298N_module([32, -85, -9], [180, 0, 90]);
|
||||||
|
electronics_panel([0, -100, -3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
PART = "feed_panel_stock";
|
PART = "electronics_panel";
|
||||||
LIBRARY = true;
|
LIBRARY = true;
|
||||||
|
|
||||||
if (PART == "panel") {
|
if (PART == "panel") {
|
||||||
|
@ -1274,6 +1410,8 @@ if (PART == "panel") {
|
||||||
gate_holder();
|
gate_holder();
|
||||||
} else if (PART == "lamp_LEDs") {
|
} else if (PART == "lamp_LEDs") {
|
||||||
lamp_LEDs();
|
lamp_LEDs();
|
||||||
|
} else if (PART == "electronics_panel") {
|
||||||
|
electronics_panel(rot = [180, 0, 0]);
|
||||||
} else {
|
} else {
|
||||||
debug();
|
debug();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue