Корпус для ESP32 Lite V1.0.0
Описание проекта: Модуль-корпус для ESP32
Цель проекта
Проект направлен на создание модульного корпуса для платы ESP32, который может быть использован в различных сборках и проектах. Корпус обеспечивает защиту платы, удобство монтажа и доступ к необходимым интерфейсам, таким как USB Type-C.
Основные характеристики
- Размеры корпуса:
- Ширина: 50 мм
- Длина: 26 мм
- Высота: 5 мм (возвышение платы) + 20 мм (высота корпуса)
- Толщина стенок: 1.6 мм
- Перфорация: Корпус имеет отверстия для вентиляции и крепления, с диаметром 1.7 мм и расстоянием между центрами 6 мм.
Структура проекта
Проект состоит из нескольких модулей, каждый из которых выполняет свою функцию:
-
Модуль hull():
- Создает внешний и внутренний кубы, формируя основную геометрию корпуса.
- Выполняет перфорацию дна корпуса для улучшения вентиляции.
-
Модуль board_stand():
- Создает подставки для платы, обеспечивая ее надежное крепление внутри корпуса.
-
Модуль case_body():
- Объединяет все элементы корпуса, включая вырезы для USB Type-C и крышки.
- Обеспечивает доступ к интерфейсам платы и защищает ее от внешних воздействий.
Процесс создания
Скрипт написан на языке OpenSCAD, который позволяет создавать 3D-модели с помощью программного кода. Проект включает в себя:
- Определение размеров и параметров корпуса.
- Создание основной геометрии с учетом толщины стенок.
- Добавление функциональных элементов, таких как вырезы для подключения и вентиляции.
Применение
Данный модуль-корпус может быть использован в различных проектах, связанных с IoT, робототехникой и другими областями, где требуется использование ESP32. Корпус обеспечивает защиту от механических повреждений и упрощает интеграцию платы в конечные устройства.
Заключение
Проект по созданию модульного корпуса для ESP32 представляет собой полезное решение для разработчиков, позволяющее легко и удобно интегрировать плату в различные устройства. Использование OpenSCAD для моделирования обеспечивает гибкость и возможность дальнейшей модификации дизайна в зависимости от потребностей проекта.
// Этот скрипт создаёт модуль-корпус для ESP32 для применения его в других сборках
// Устанавливаем размеры
board_width = 50; // ширина платы 50
board_length = 26; // длина платы 26
board_start_height = 5; // возвышение платы над дном 5
case_wall_thickness = 1.6; // Толщина стенок 2.0
hole_diameter = 1.7; // Диаметр перфорации
hole_spacing = 6; // Расстояние между центрами дырок
case_width = board_width + case_wall_thickness* 2 ; // ширина корпуса
case_length = board_length + case_wall_thickness * 2; // длина корпуса
case_height = board_start_height + case_wall_thickness* 2 + 20; // высота корпуса над возвышением платы
module hull() {
difference() {
// Внешний куб
cube([case_width, case_length, case_height]);
// Внутренний куб, который вырезается
translate([case_wall_thickness, case_wall_thickness, case_wall_thickness]) // Сдвигаем внутренний куб, чтобы учесть толщину стенок
cube([case_width - case_wall_thickness* 2, case_length - case_wall_thickness* 2, case_height - case_wall_thickness]); // Уменьшаем размеры на 2 * толщину стенки
// Перфорация дна
for (x = [case_wall_thickness + hole_spacing : hole_spacing : case_width - hole_spacing]) {
for (y = [case_wall_thickness + hole_spacing : hole_spacing : case_length - hole_spacing]) {
translate([x, y, 0])
cylinder(hole_diameter, 3, 1);
}
}
}
}
// Подставка для платы
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();