Интеграция ЧПУ-станка (GRBL/Marlin) с AI-агентом ASI Biont: пошаговое руководство по автоматизации фрезеровки, мониторинга шпинделя и Telegram-уведомлений

Интеграция ЧПУ-станка (GRBL/Marlin) с AI-агентом ASI Biont: пошаговое руководство по автоматизации фрезеровки, мониторинга шпинделя и Telegram-уведомлений

Дата: 17 июля 2026

ЧПУ-станки на прошивках GRBL и Marlin — основа современной малой механической обработки: от фрезеровки печатных плат до изготовления корпусов для дронов. Но управление станком вручную через G-code-терминал (например, Candle или Universal G-Code Sender) — это рутина: нужно вручную запускать программу, следить за температурой шпинделя, останавливать обработку при ошибках. AI-агент ASI Biont меняет правила игры: он подключается к ЧПУ через COM-порт (Hardware Bridge), анализирует состояние станка в реальном времени, автоматически запускает фрезеровку по расписанию, контролирует температуру и отправляет уведомления в Telegram при авариях. В этой статье — пошаговое руководство с реальным кодом, схемой подключения и сценариями автоматизации.

1. Почему GRBL и Marlin? Краткий контекст

GRBL — открытая прошивка для Arduino (обычно на ATmega328), которая превращает микроконтроллер в контроллер ЧПУ с G-code-интерпретатором. Marlin — более мощная прошивка для 3D-принтеров и фрезерных станков на 32-битных платах (STM32, ARM Cortex). Обе прошивки общаются с ПК через последовательный порт (UART, USB-to-Serial) на скоростях от 115200 до 250000 бод. Команды — стандартный G-код: G0 (быстрое перемещение), G1 (линейная интерполяция), M3 (включение шпинделя), M5 (выключение шпинделя).

Проблема: ЧПУ — это не "умное" устройство. У него нет встроенного Wi-Fi, HTTP API или MQTT-клиента. Единственный способ взаимодействия — последовательный порт. ASI Biont решает это через Hardware Bridge: bridge.py запускается на ПК, подключённом к станку по USB, и открывает WebSocket-канал к облаку AI-агента. AI отправляет G-код через industrial_command, bridge пишет его в COM-порт и читает ответ.

2. Как ASI Biont подключается к ЧПУ: Hardware Bridge и COM-порт

ASI Biont не имеет прямого доступа к COM-портам пользователя — он работает в облаке (Railway). Для подключения к локальным устройствам используется bridge.py — приложение, которое пользователь запускает на своём ПК (Windows/Linux/macOS). Bridge подключается к ASI Biont через WebSocket (единственный канал связи) и обеспечивает отправку/приём данных через pyserial.

Схема подключения:

[ЧПУ станок (GRBL)] <--USB--> [ПК с bridge.py] <--WebSocket--> [Облако ASI Biont] <--AI агент

Что нужно сделать пользователю:
1. Скачать bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge).
2. Установить зависимости: pip install pyserial requests websockets.
3. Запустить bridge с параметрами:
bash python bridge.py --token=ВАШ_ТОКЕН_ИЗ_ДАШБОРДА --ports=COM3 --baud 115200
Где COM3 — порт, к которому подключён ЧПУ (в Linux — /dev/ttyUSB0), 115200 — скорость (типичная для GRBL 1.1).
4. Bridge подключится к облаку и будет ждать команд от AI.

Проверка связи: AI отправляет команду HELP (в hex: 48454c500a). GRBL/Marlin должен ответить списком поддерживаемых G-кодов. Если ответ получен — связь установлена.

3. Реальный сценарий: автоматическая фрезеровка с мониторингом и Telegram-уведомлениями

Рассмотрим конкретный кейс: владелец небольшой мастерской фрезерует партию корпусов для электроники. Ему нужно:
- Запускать фрезеровку в 9:00 утра (по расписанию).
- Контролировать температуру шпинделя (если превышает 60°C — остановить).
- При ошибке (например, превышение лимита по оси) — отправить уведомление в Telegram.

Реализуем это через ASI Biont.

Шаг 1. Подключение станка

Пользователь в чате ASI Biont пишет:

"Подключись к ЧПУ на GRBL через COM3, скорость 115200. Проверь связь."

AI отправляет industrial_command:

industrial_command(
    protocol='serial',
    command='serial_write_and_read',
    data='48454c500a',  # HELP в hex
    port='COM3',
    baud=115200
)

Ответ от GRBL:

[GRBL 1.1f, '$' for help]

AI подтверждает: "Связь установлена. GRBL 1.1f готов к работе."

Шаг 2. Мониторинг температуры шпинделя

У станка есть датчик температуры (например, DS18B20 на Arduino, подключённый к тому же ПК). AI пишет Python-скрипт, который запускается в sandbox через execute_python и читает данные с датчика через HTTP API Arduino (если Arduino имеет свой IP) или через тот же bridge (если датчик подключён к COM-порту).

Упростим: предположим, что температура передаётся через последовательный порт по запросу M105 (Marlin-команда). AI отправляет:

industrial_command(
    protocol='serial',
    command='serial_write_and_read',
    data='4d3130350a',  # M105 в hex
    port='COM3',
    baud=115200
)

Ответ:

ok T:45.2 /60.0 B:0.0 /0.0

AI парсит температуру (45.2°C) и сравнивает с порогом (60°C). Если превышение — отправляет команду на остановку (M5 для шпинделя, M0 для паузы программы).

Шаг 3. Отправка уведомления в Telegram

Если температура превышает порог или возникает ошибка (например, ALARM:1 — превышение лимита), AI отправляет сообщение в Telegram. Для этого он пишет Python-скрипт с requests:

import requests

token = "ВАШ_ТОКЕН_БОТА"
chat_id = "ВАШ_CHAT_ID"
message = "⚠️ Авария на ЧПУ: превышение температуры шпинделя (62°C). Станок остановлен."

url = f"https://api.telegram.org/bot{token}/sendMessage"
requests.post(url, json={"chat_id": chat_id, "text": message})

Этот код выполняется в sandbox через execute_python (у sandbox есть доступ к requests).

Шаг 4. Запуск по расписанию

AI использует встроенный планировщик ASI Biont. Пользователь пишет:

"Запускай фрезеровку каждый будний день в 9:00. Файл: case_v2.gcode на флешке в папке C:\gcode\"

AI не может напрямую читать файлы с ПК пользователя (bridge не передаёт файлы). Решение: пользователь загружает G-code в облачное хранилище (например, через HTTP API) или AI хранит G-code в памяти как строку. Второй вариант проще:

AI сохраняет G-код в sandbox как переменную и отправляет его построчно через serial_write_and_read. Пример:

gcode_lines = [
    "G21 ; установка мм",
    "G90 ; абсолютное позиционирование",
    "G0 X0 Y0 Z5 ; подъём инструмента",
    "M3 S10000 ; включение шпинделя",
    "G1 Z-1 F100 ; заглубление",
    "G1 X100 Y100 F500 ; фрезеровка",
    "M5 ; выключение шпинделя",
    "G0 Z10 ; подъём"
]

for line in gcode_lines:
    hex_data = line.encode('utf-8').hex() + '0a'  # + \n
    response = industrial_command(
        protocol='serial',
        command='serial_write_and_read',
        data=hex_data,
        port='COM3',
        baud=115200
    )
    if 'ok' not in response:
        # Ошибка — отправляем уведомление
        print(f"Ошибка на строке {line}: {response}")
        break

Важно: industrial_command — это вызов инструмента AI, а не Python-функция. В execute_python он недоступен. Поэтому AI использует его в рамках диалога: для каждой строки G-кода AI последовательно вызывает industrial_command.

4. Дополнительные сценарии автоматизации

Сценарий 1: Контроль износа инструмента

AI отслеживает количество отработанных часов шпинделя (суммирует время работы M3). Когда достигает 50 часов — отправляет уведомление "Замените фрезу".

# Логика в execute_python
import json

# Данные хранятся в sandbox (например, в переменной окружения)
work_hours = float(os.environ.get('SPINDLE_HOURS', 0))
if work_hours >= 50:
    requests.post(f"https://api.telegram.org/bot{token}/sendMessage",
                  json={"chat_id": chat_id, "text": "🔧 Замените фрезу: отработано 50 часов."})

Сценарий 2: Автоматическая коррекция подачи

Если AI замечает, что двигатели пропускают шаги (частые ошибки ALARM:2), он снижает скорость подачи на 20%:

# AI запоминает текущую подачу и корректирует
current_feed = 500  # мм/мин
if error_count > 3:
    new_feed = current_feed * 0.8
    industrial_command(protocol='serial', command='serial_write_and_read',
                       data='463230300a', port='COM3', baud=115200)  # F200

Сценарий 3: Управление через голосовые команды

Пользователь может сказать: "ASI Biont, запусти тестовый контур" — AI отправляет G-код для обводки контура 50x50 мм.

5. Почему это выгодно: AI вместо ручного кода

Обычная интеграция ЧПУ с Telegram-уведомлениями требует:
1. Написать Python-скрипт с pyserial для чтения температуры.
2. Настроить cron для запуска скрипта каждые 5 секунд.
3. Написать код отправки в Telegram через requests.
4. Настроить логику остановки при ошибке.
5. Развернуть скрипт на ПК (и поддерживать его работу 24/7).

С ASI Biont всё это делает AI. Пользователь просто описывает задачу на естественном языке, а AI генерирует и выполняет код интеграции. Для работы с COM-портами не нужно даже знать Python — достаточно запустить bridge.py один раз.

Ключевое преимущество: ASI Biont подключается к ЛЮБОМУ устройству через execute_python. AI сам пишет код интеграции под каждое устройство. Не нужно ждать, пока разработчики добавят поддержку нового оборудования — подключай что угодно прямо сейчас. Пользователь просто описывает в чате, к какому устройству подключиться и какие параметры (порт, IP, baud rate, API-ключ), и AI сам пишет код на Python с использованием pyserial, paramiko, paho-mqtt, pymodbus, aiohttp или opcua-asyncio. Всё подключение происходит через диалог в чате, никаких панелей управления и кнопок «добавить устройство» не требуется.

6. Практические выводы и рекомендации

Параметр Ручная интеграция Через ASI Biont
Время настройки 2-4 часа 5 минут (запуск bridge.py)
Необходимые навыки Python, pyserial, Telegram API Базовое знание ЧПУ
Гибкость Низкая (код нужно переписывать) Высокая (AI перестраивает логику по запросу)
Мониторинг 24/7 Требует отдельного сервера Встроен в облако ASI Biont
Уведомления Настройка вручную AI настраивает автоматически

Типичные ошибки при интеграции:
- Не указан baud rate (GRBL по умолчанию 115200, Marlin — 250000).
- Не отправлен \n в конце G-кода (GRBL требует \r\n или \n).
- Bridge не запущен на том же ПК, к которому подключён станок.
- Использование execute_python для записи в COM-порт (не работает — execute_python выполняется в облаке).

Заключение

Интеграция ЧПУ-станка на GRBL или Marlin с AI-агентом ASI Biont открывает новые возможности для автоматизации малого производства: запуск по расписанию, мониторинг температуры, уведомления в Telegram при авариях, автоматическая коррекция подачи — всё это без написания кода вручную. Bridge.py работает как надёжный шлюз между облачным AI и локальным COM-портом, а AI берёт на себя всю логику обработки данных.

Попробуйте интеграцию прямо сейчас: скачайте bridge.py из дашборда ASI Biont (asibiont.com), подключите ЧПУ через USB и опишите в чате, что нужно автоматизировать. AI сделает всё остальное — от написания кода до его выполнения.

Ссылки:
- Официальная документация GRBL: https://github.com/gnea/grbl/wiki
- Прошивка Marlin: https://marlinfw.org/
- Документация pyserial: https://pyserial.readthedocs.io/
- ASI Biont: https://asibiont.com

← Все статьи

Комментарии