Введение
Современные 3D-принтеры на прошивках Marlin и Klipper — это мощные, но часто капризные устройства. Постоянная калибровка стола, настройка ретракции, контроль температуры сопла и подогрева стола требуют времени и опыта. Что если передать рутинные операции AI-агенту? ASI Biont подключается к вашему принтеру через COM-порт (Marlin) или SSH (Klipper на Raspberry Pi) и берёт на себя мониторинг, диагностику и управление. В этой статье я покажу, как за 5 минут настроить интеграцию, используя Hardware Bridge для Marlin и execute_python для Klipper.
Какой способ подключения и почему
Для 3D-принтеров на Marlin (например, Ender 3, Anycubic, Prusa) идеально подходит Hardware Bridge — вы запускаете bridge.py на ПК, который соединён с принтером через USB-COM. ASI Biont отправляет G-код команды через industrial_command, bridge передаёт их в порт, и принтер выполняет. Для Klipper (Raspberry Pi с Moonraker API) используем SSH — AI подключается к Raspberry Pi по paramiko и выполняет скрипты управления (например, изменение температуры или запуск макроса).
Сценарий 1: Предиктивная калибровка стола через Marlin
Задача: Пользователь хочет, чтобы AI автоматически проверял уровень стола перед каждой печатью и при необходимости корректировал Z-offset.
Как это работает в чате:
1. Пользователь пишет: «Подключись к моему Ender 3 на COM3, 115200 бод, проверь уровень стола и если отклонение больше 0.2 мм — откалибруй.»
2. AI запускает bridge.py на ПК пользователя (если ещё не запущен) и отправляет команды.
Пример команды AI в Industrial Tool:
industrial_command(
protocol='serial',
command='G28\nG29',
port='COM3',
baudrate=115200
)
Пример Python-скрипта для execute_python (используется, если bridge уже запущен):
# Этот код выполняется в sandbox ASI Biont
# Для отправки G-кода используем industrial_command через tool call
# Но для примера — аналитика данных калибровки
import json
# Допустим, данные с датчика BLTouch пришли в виде строки
raw_data = "0.12,0.34,0.08,0.22,0.45"
heights = [float(x) for x in raw_data.split(',')]
avg = sum(heights) / len(heights)
max_dev = max(heights) - min(heights)
if max_dev > 0.2:
print(f"Отклонение {max_dev:.2f} мм — требуется калибровка")
# AI отправит команду G29 через industrial_command
else:
print(f"Стол в норме, отклонение {max_dev:.2f} мм")
Результат: AI выполняет G28 (парковка), затем G29 (автокалибровка), анализирует точки и, если нужно, корректирует Z-offset. Всё — за 30 секунд.
Сценарий 2: Удалённый мониторинг печати через Klipper + SSH
Задача: Отслеживать температуру сопла и скорость печати, и при перегреве отправлять уведомление в Telegram.
Подключение:
1. Пользователь даёт IP Raspberry Pi (192.168.1.100), логин (pi) и пароль.
2. AI пишет скрипт с paramiko, который подключается к Moonraker API (по умолчанию на порту 7125) и получает статус.
Пример скрипта (выполняется в execute_python):
import requests
import json
# Moonraker API
url = "http://192.168.1.100:7125/printer/objects/query?extruder&heater_bed"
try:
resp = requests.get(url, timeout=5)
data = resp.json()
extruder_temp = data['result']['status']['extruder']['temperature']
bed_temp = data['result']['status']['heater_bed']['temperature']
if extruder_temp > 250:
# Отправляем уведомление в Telegram через Bot API
telegram_token = "ВАШ_ТОКЕН"
chat_id = "ВАШ_CHAT_ID"
msg = f"🔥 Перегрев сопла! {extruder_temp:.1f}°C"
requests.post(f"https://api.telegram.org/bot{telegram_token}/sendMessage",
json={"chat_id": chat_id, "text": msg})
except Exception as e:
print(f"Ошибка подключения: {e}")
Реальный сценарий: Пользователь запускает печать, уходит из дома, а AI контролирует процесс. При превышении 250°C — Telegram-оповещение, и AI может отправить M104 S0 через industrial_command, чтобы выключить нагрев.
Сценарий 3: Автоматизация пост-обработки (G-код модификация)
Задача: После слайсинга нужно добавить в G-код команду «G28 X0 Y0» для парковки головы после печати.
Как делает AI:
1. Пользователь загружает файл .gcode в чат (через attachment) или даёт ссылку.
2. AI читает файл, находит последнюю строку и вставляет команду.
Пример кода (execute_python):
import re
# Предположим, содержимое файла — в переменной gcode_content
gcode_content = """...
G1 X10 Y10
M104 S0
M140 S0
"""
# Добавляем парковку
lines = gcode_content.split('\n')
if 'G28 X0 Y0' not in lines[-1]:
lines.insert(-1, 'G28 X0 Y0')
modified = '\n'.join(lines)
print("Файл модифицирован")
Результат: Пользователь получает готовый .gcode с парковкой — без ручного редактирования.
Почему именно ASI Biont?
Главное преимущество — отсутствие необходимости писать код вручную. Вы просто описываете задачу на естественном языке, а AI генерирует и выполняет интеграцию. Не нужно ждать обновлений прошивки или искать готовые библиотеки — AI сам подключается к любому устройству через execute_python. Всё работает в облаке, а bridge.py на вашем ПК обеспечивает безопасный канал.
Заключение
Интеграция 3D-принтера с AI-агентом ASI Biont превращает рутинную калибровку и мониторинг в автоматические процессы. Вы экономите часы на настройке, исключаете человеческие ошибки и получаете удалённый контроль. Попробуйте сами: опишите свою задачу в чате на asibiont.com — и AI подключит ваш принтер за секунды.
Комментарии