Модуль-корпус для ESP32 Lite V1.0.0
Описание проекта: Модуль-корпус для ESP32 Lite V1.0.0
Введение
Проект направлен на создание 3D-модели корпуса для платы ESP32 Lite V1.0.0, который можно использовать в различных сборках и проектах. Корпус обеспечивает защиту платы, а также удобство в использовании и монтаже. Скрипт, написанный на языке OpenSCAD, генерирует модель корпуса с учетом размеров платы и необходимых вырезов для подключения.
Цели проекта
- Создание защитного корпуса: Обеспечить защиту платы от механических повреждений и внешних воздействий.
- Удобство монтажа: Предусмотреть вырезы для подключения USB Type-C и других интерфейсов.
- Адаптивность: Корпус должен быть совместим с различными сборками и проектами, что достигается за счет округления размеров до ближайших стандартных значений.
Исходные данные
- Размеры платы:
- Ширина: 50.6 мм
- Длина: 26.9 мм
- Высота над дном: 5 мм
- Толщина стенок корпуса: 1.6 мм
- Доступные размеры для округления: [13, 18, 26, 37, 52, 74]
Описание скрипта
Скрипт состоит из нескольких ключевых модулей:
-
Функция округления:
round_up_to_nearest_size
— округляет размеры корпуса до ближайших доступных значений, что позволяет обеспечить совместимость с существующими стандартами. -
Модуль
hull
: Создает основной объем корпуса, вычитая внутренний куб, чтобы сформировать полый корпус. -
Модуль
board_stand
: Создает подставки для платы, которые обеспечивают ее надежное крепление внутри корпуса. -
Модуль
case_body
: Объединяет все элементы корпуса, включая:- Основной корпус
- Вырез под USB Type-C
- Вырез для крышки сверху
Результат
В результате выполнения скрипта создается 3D-модель корпуса, которая может быть использована для 3D-печати или в других производственных процессах. Корпус обеспечивает надежную защиту для платы ESP32 Lite V1.0.0 и удобство в использовании, что делает его идеальным решением для различных проектов, связанных с IoT и электроникой.
Заключение
Проект по созданию корпуса для ESP32 Lite V1.0.0 демонстрирует возможности 3D-моделирования и проектирования в OpenSCAD. Он может быть адаптирован для других плат и проектов, что делает его универсальным инструментом для разработчиков и инженеров.
// Этот скрипт создаёт модуль-корпус для ESP32 Lite V1.0.0 для применения его в других сборках
// Устанавливаем размеры
board_width = 50.6; // ширина платы 50
board_length = 26.9; // длина платы 26
board_start_height = 10; // возвышение платы над дном 5
case_wall_thickness = 1.6; // Толщина стенок 2.0
case_width_raw = board_width + case_wall_thickness + 10; // ширина корпуса
case_length_raw = board_length + case_wall_thickness * 2; // длина корпуса
case_height_raw = board_start_height + 14; // высота корпуса над возвышением платы
// Функция округления до ближайшего большего размера
function round_up_to_nearest_size(value, sizes) =
let (size = [for (s = sizes) if (value <= s) s])
size[0];
// Доступные размеры
available_sizes = [13, 18, 26, 37, 52, 74];
// Округляем размеры до ближайших больших значений
case_width = round_up_to_nearest_size(case_width_raw, available_sizes);
case_length = round_up_to_nearest_size(case_length_raw, available_sizes);
case_height = round_up_to_nearest_size(case_height_raw, available_sizes);
module hull() {
difference() {
// Внешний куб
cube([case_width, case_length, case_height]);
// Внутренний куб, который вырезается
translate([3, 3, 3]) // Сдвигаем внутренний куб, чтобы учесть толщину стенок
cube([case_width - 6, case_length - 6, case_height - 3]); // Уменьшаем размеры на 2 * толщину стенки
}
}
// Подставка для платы
module board_stand() {
translate([-case_wall_thickness, -case_wall_thickness, 0]) {
cube([5, 5, board_start_height]);
}
}
// Создаем корпус
module case_body() {
difference() {
// Основной корпус
hull();
// Вырез под USB Type-C
translate([0, case_wall_thickness + 2, case_wall_thickness +3+ board_start_height - 1])
cube([15, 12, 8]);
// Вырез сверху для крышки
translate([case_wall_thickness / 2, case_wall_thickness / 2, case_height - case_wall_thickness])
cube([case_width - case_wall_thickness, case_length - case_wall_thickness, case_wall_thickness]);
}
}
// Основной модуль
case_body();
// Добавляем подставки для платы
translate([case_width - case_wall_thickness-3, case_length - case_wall_thickness-3, 0]) board_stand();
translate([3, case_length - case_wall_thickness-3, 0]) board_stand();
translate([case_width - case_wall_thickness-3, 3, 0]) board_stand();
translate([3, 3, 0]) board_stand();