Модуль-корпус для ESP32 Lite V1.0.0

Описание проекта: Модуль-корпус для ESP32 Lite V1.0.0

Введение

Проект направлен на создание 3D-модели корпуса для платы ESP32 Lite V1.0.0, который можно использовать в различных сборках и проектах. Корпус обеспечивает защиту платы, а также удобство в использовании и монтаже. Скрипт, написанный на языке OpenSCAD, генерирует модель корпуса с учетом размеров платы и необходимых вырезов для подключения.

Цели проекта

  1. Создание защитного корпуса: Обеспечить защиту платы от механических повреждений и внешних воздействий.
  2. Удобство монтажа: Предусмотреть вырезы для подключения USB Type-C и других интерфейсов.
  3. Адаптивность: Корпус должен быть совместим с различными сборками и проектами, что достигается за счет округления размеров до ближайших стандартных значений.

Исходные данные

  • Размеры платы:
    • Ширина: 50.6 мм
    • Длина: 26.9 мм
    • Высота над дном: 5 мм
  • Толщина стенок корпуса: 1.6 мм
  • Доступные размеры для округления: [13, 18, 26, 37, 52, 74]

Описание скрипта

Скрипт состоит из нескольких ключевых модулей:

  1. Функция округления: round_up_to_nearest_size — округляет размеры корпуса до ближайших доступных значений, что позволяет обеспечить совместимость с существующими стандартами.

  2. Модуль hull: Создает основной объем корпуса, вычитая внутренний куб, чтобы сформировать полый корпус.

  3. Модуль board_stand: Создает подставки для платы, которые обеспечивают ее надежное крепление внутри корпуса.

  4. Модуль 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();
3D вид:
Скачать stl файл