Giá đỡ nút nguồn Ender 3 NG v1.2 C14 và 22 mm

Mô tả cách chế tạo giá đỡ nút nguồn cho Ender 3 NG v1.2, cho phép bạn điều khiển máy in của mình tắt an toàn bằng tín hiệu nguồn từ SoC. Bao gồm tập lệnh để làm mát và tắt máy an toàn.

👁️
211
Lượt Xem
❤️
13
Lượt Thích
📥
16
Lượt Tải
Cập Nhật Dec 25, 2025
Chi tiết
Tải xuống
Bình Luận
Khoe bản in
Remix

Mô tả

Nội dung được dịch bằng AI

Trong Ender 3 NG v1.2, hướng dẫn lắp ráp yêu cầu người dùng sử dụng đầu nối nguồn và công tắc nguồn từ Ender gốc làm bộ phận cho. Điều này hoạt động tốt cho firmware điều khiển trên bo mạch cho Ender tiêu chuẩn (ví dụ: Marlin), nhưng trên hầu hết các bản dựng Ender 3 NG v1.2, một module SoC cũng được sử dụng (ví dụ: Raspberry Pi). Khi tắt máy in bằng công tắc này khi có RPi, RPi sẽ bị tắt đột ngột, có thể dẫn đến không nhất quán hệ thống tệp và mất dữ liệu. Ngoài ra, máy in lý tưởng nhất là nên làm mát các bộ phận trước khi cắt nguồn.

Nếu bộ phận tản nhiệt hoặc bộ phận làm nóng buồng còn nóng khi nguồn bị cắt, có thể xảy ra kẹt dây tóc và một số bộ phận có thể bị chảy.

Giải pháp cho tất cả những điều này là làm cho máy in tắt khi an toàn để tắt. Chúng ta có thể gửi tín hiệu tắt ACPI bằng công tắc nguồn đến module SoC, và hệ điều hành sẽ tự tắt nguồn. Khi điều này xảy ra, nguồn AC có thể được cắt an toàn. Đối với các bộ phận cần làm mát thêm, một tập lệnh có thể được sử dụng để theo dõi nhiệt độ giảm trước khi tắt.

Các bộ phận trong mô hình này dành cho đầu nối nguồn C14 dạng ép khớp và công tắc nguồn DPST 22 mm tức thời có đèn báo. Dưới đây là các liên kết Amazon cho các bộ phận phù hợp với mô hình này:

Đầu nối nguồn Ender 3 gốc cũng bao gồm một cầu chì, được loại bỏ với mô hình này. Bạn vẫn nên bao gồm một cầu chì ngay sau đầu vào nguồn, và việc gắn một bộ giữ cầu chì trên thanh ray DIN sẽ gọn gàng hơn một chút. Dưới đây là bộ giữ cầu chì gắn trên thanh ray DIN có chỉ báo cầu chì bị nổ mà bạn có thể gắn bên trong bảng điện tử của mình:

Dưới đây là mô-đun rơ-le được cấp nguồn 24V và sẽ chấp nhận tín hiệu điện áp từ mô-đun SoC của bạn để kích hoạt nguồn:

Bạn cũng có thể quan tâm đến cho mô-đun rơ-le 30A ở trên.

Để lắp bảng này, hãy đặt bảng và mặt sau lại với nhau, và lắp đầu nối và công tắc lên các mô hình (bao gồm cả việc thêm đai ốc công tắc). Sau đó, tháo lỗ thông hơi bên phải khỏi máy in, trượt các mô hình vào lỗ thông hơi dưới cùng, sau đó lắp lại lỗ thông hơi bên phải.

Nếu bạn muốn bản dựng đơn giản hơn, có một biến thể lẫy của công tắc. Điều này sẽ chỉ cung cấp một cần gạt bật, tắt mà không cần bất kỳ kiểm soát quản lý năng lượng nào. Sẽ không cần mô-đun rơ-le cho thiết lập này. Như mọi khi, hãy sử dụng cầu chì cho thiết lập này.

Dưới đây là một tập lệnh shell bạn có thể sử dụng, tập lệnh này đợi tất cả các quạt quan trọng dừng lại, sau đó tắt máy. Tập lệnh này làm nhấp nháy đèn LED của máy in ở độ sáng thấp để cho biết nó đang "hoạt động". Tôi chọn theo dõi quạt thay vì theo dõi nhiệt độ, vì máy in cố tình tắt quạt khi các bộ phận quan trọng đã nguội.

Chỉnh sửa mảng FANS với các quạt bạn muốn theo dõi, biến LED với đèn LED bạn muốn làm nhấp nháy, và tùy chọn, bạn có thể thay đổi LED_CYCLE để sử dụng chu kỳ "hoạt động" khác và LED_OFF để trạng thái LED khác khi máy in tắt.

Cá nhân tôi giữ tập lệnh này trong /etc/moonraker/poweroff-when-fans-are-stopped. Đảm bảo nó có thể thực thi bằng cách gọi chmod +x /etc/moonraker/poweroff-when-fans-are-stopped.

#!/bin/sh

MOONRAKER_BASE_URL="http://localhost:7125"

FANS=(
  "controller_fan controller_fan"
  "heater_fan heatbreak_cooling_fan"
  "temperature_fan _chamber_fan_left"
)

LED="Enclosure_LEDs"

LED_CYCLE=(
  "RED=0 GREEN=0 BLUE=0 WHITE=0.01"
  "RED=0 GREEN=0 BLUE=0 WHITE=0.02"
)

LED_OFF="RED=0 GREEN=0 BLUE=0 WHITE=0"

POWEROFF_COMMAND=("sudo /usr/bin/systemctl poweroff")

query=("${FANS[@]/%/=power}")
query=$(IFS="&"; echo "${query[*]// /%20}")
fans_url="$MOONRAKER_BASE_URL/printer/objects/query?$query"

function pulse_leds() {
  while :; do
    for led_values in "${LED_CYCLE[@]}"; do
      curl -sX POST "$MOONRAKER_BASE_URL/printer/gcode/script" -H "Content-Type: application/json" -d "{\"script\": \"SET_LED LED=$LED $led_values\"}" > /dev/null

      sleep 0.5
    done
  done
}

echo "Polling Moonraker API until fans stop..."

while :; do
  fans_response=$(curl -s "$fans_url")

  if ! jq -e '.result.status | with_entries(.value = .value.power)' <<< "$fans_response"; then
    echo "Moonraker API unavailable."

    "${POWEROFF_COMMAND[@]}"
  fi

  jq -e '.result.status | map(.power) | all(. == 0)' <<< "$fans_response" > /dev/null && break

  if [ -z "$pulse_leds_pid" ]; then
    pulse_leds &
    pulse_leds_pid=$!
  fi

  sleep 1
done

if [ -n "$pulse_leds_pid" ]; then
  kill "$pulse_leds_pid"
  unset pulse_leds_pid

  curl -sX POST "$MOONRAKER_BASE_URL/printer/gcode/script" -H "Content-Type: application/json" -d "{\"script\": \"SET_LED LED=$LED $LED_OFF\"}" > /dev/null
fi

echo "All fans stopped."

"${POWEROFF_COMMAND[@]}"

Để kích hoạt tập lệnh này khi bạn nhấn nút nguồn, bạn cần yêu cầu systemd bỏ qua nút nguồn. Thực hiện điều này bằng cách thay đổi /etc/systemd/logind.conf để bao gồm cấu hình bên dưới, sau đó khởi động lại systemd-logind.service.

[Login]
...
HandlePowerKey=ignore
...

Sau đó, đảm bảo acpid được cài đặt và tạo tệp /etc/acpi/events/poweroff-when-fans-are-stopped:

event=button/power
action=/usr/bin/sudo -u moonraker /etc/moonraker/poweroff-when-fans-are-stopped

sudo được sử dụng ở đây vì tôi muốn tập lệnh được gọi với tư cách người dùng moonraker. Nếu bạn không ngại tập lệnh chạy với quyền root, bạn có thể bỏ qua sudo -u moonraker. Sau đó, đảm bảo acpid được đặt để khởi động khi khởi động và khởi động lại nếu cần để xem tệp sự kiện mới.

Nếu cần, hãy đảm bảo rằng người dùng gọi /etc/moonraker/poweroff-when-fans-are-stopped có quyền gọi lệnh nguồn bằng sudo. Đây là tệp sudoers của tôi được gọi là /etc/sudoers.d/moonraker. %moonraker có nghĩa là bất kỳ người dùng nào trong nhóm moonraker. Nếu bạn muốn cấp quyền cho một người dùng cụ thể, bạn có thể bỏ qua % (ví dụ: moonraker).

%moonraker ALL=(ALL) NOPASSWD: /usr/bin/systemctl poweroff,/usr/bin/systemctl halt,/usr/bin/systemctl reboot,/usr/bin/systemctl restart moonraker

Bây giờ, khi bạn nhấn nút nguồn, đèn sẽ nhấp nháy trong khi quạt làm mát các bộ phận, sau đó máy in sẽ tắt. Và khi điều này xảy ra, rơ-le sẽ tắt và ngắt toàn bộ nguồn điện cho máy in. Hay quá!

Giấy phép

Tác phẩm này được cấp phép theo

Creative Commons — Attribution — Noncommercial — Share Alike

CC-BY-NC-SA

Yêu cầu ghi công
Remix & phái sinh Được phép
Sử dụng thương mại Không được phép

File mô hình

TẤT CẢ FILE MÔ HÌNH (4 Tập tin)
Đang tải files, vui lòng chờ...
Vui lòng đăng nhập để bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Vui lòng đăng nhập để khoe bản in của bạn.

Chưa có bản in nào được khoe. Hãy là người đầu tiên!

Remix (0)