Введение
ЧПУ-станки с открытыми прошивками GRBL и Marlin стали стандартом для домашних мастерских и малого производства. Однако управление ими часто остаётся локальным: вы загружаете G-код через USB-кабель, запускаете фрезеровку с ПК и следите за процессом вручную. А что, если ваш станок можно контролировать из любой точки мира, отдавать команды голосом через Telegram или автоматически останавливать шпиндель при перегреве? AI-агент ASI Biont решает эту задачу без единой строки кода с вашей стороны.
В этой статье мы разберём практический сценарий: подключение ЧПУ с прошивкой GRBL к ASI Biont через COM-порт с помощью Hardware Bridge, мониторинг состояния шпинделя (температура, обороты), автоматическая пауза при выходе за пределы нормы и запуск фрезеровки по голосовой команде через Telegram. Вы увидите, как AI самостоятельно пишет код интеграции, а вам остаётся только описать задачу в чате.
1. Почему GRBL и Marlin?
GRBL — одна из самых популярных прошивок для Arduino-совместимых контроллеров ЧПУ. Она поддерживает до 6 осей, управление шпинделем, охлаждением и считывает сигналы с концевых выключателей. Marlin, изначально созданная для 3D-принтеров, также используется в фрезерных станках, лазерных граверах и плоттерах. Обе прошивки работают через последовательный порт (UART), принимая G-код и возвращая статус в реальном времени.
Подключение к AI-агенту открывает возможности:
* Удалённый запуск и остановка фрезеровки.
* Мониторинг температуры шпинделя и тока драйвера.
* Автоматическая пауза при затуплении фрезы (анализ акустического сигнала).
* Уведомления в Telegram о завершении задания.
* Голосовые команды: «ASI, запусти фрезеровку детали».
2. Способ подключения: COM-порт через Hardware Bridge
ASI Biont подключается к ЧПУ через COM-порт (RS-232/USB) с помощью Hardware Bridge — небольшой программы bridge.py, которая запускается на вашем ПК. Почему именно этот способ?
- GRBL и Marlin не имеют сетевого стека. Они общаются только через UART/USB. Для удалённого доступа нужен промежуточный хост (ПК или Raspberry Pi).
- Bridge обеспечивает двустороннюю связь. AI отправляет G-код в порт и сразу читает ответ (статус, ошибки, позицию).
- Безопасность. Bridge подключается к облаку ASI Biont через WebSocket с токеном — никаких открытых портов.
Схема подключения:
1. ПК (Windows/Linux/macOS) → USB → Arduino (GRBL) → Шпиндель, драйверы.
2. На ПК запущен bridge.py, который соединяется с ASI Biont по WebSocket.
3. AI в чате отправляет команды через инструмент industrial_command с протоколом serial://.
Пошаговая настройка:
Шаг 1. Подключите Arduino с прошивкой GRBL к ПК через USB. Определите номер порта (COM3 на Windows, /dev/ttyUSB0 на Linux).
Шаг 2. Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge). Установите зависимости:
pip install pyserial requests websockets
Шаг 3. Запустите bridge с параметрами:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200
Bridge откроет COM3 на скорости 115200 бод и установит WebSocket-соединение с облаком.
Шаг 4. В чате ASI Biont напишите:
«Подключись к ЧПУ на COM3, скорость 115200. Вышли текущие координаты»
AI выполнит вызов:
industrial_command(
protocol='serial',
command='serial_write_and_read',
data='3f0d' # '?' + \r в hex — запрос статуса GRBL
)
И вернёт ответ: <Run,MPos:10.0,20.0,0.0,WPos:5.0,10.0,0.0>.
3. Конкретный сценарий: когнитивный мониторинг шпинделя
Представим, что у вас есть ЧПУ-станок для фрезеровки алюминия. Шпиндель — серводвигатель с аналоговым выходом температуры (0–5 В). Вы подключаете датчик к аналоговому пину Arduino и прошиваете GRBL для отправки значения по команде $T.
Задача: AI каждые 10 секунд запрашивает температуру. Если она превышает 60 °C, AI отправляет команду паузы (! — feed hold в GRBL) и уведомление в Telegram.
Как AI пишет код:
Пользователь говорит в чате:
«Создай скрипт, который будет каждые 10 секунд читать температуру с ЧПУ по команде $T, и если больше 60 — ставь на паузу и отправляй мне в Telegram сообщение»
AI генерирует и выполняет в execute_python следующий код:
import time
import requests
# Параметры
telegram_token = "ВАШ_ТОКЕН"
chat_id = "123456789"
def send_telegram(text):
url = f"https://api.telegram.org/bot{telegram_token}/sendMessage"
requests.post(url, json={"chat_id": chat_id, "text": text})
def check_temperature():
# Отправляем команду $T через bridge
# industrial_command не доступен из execute_python, поэтому используем HTTP-запрос к bridge? НЕТ!
# Правильный путь: AI сам вызывает industrial_command из чата, но для автоматизации пишет скрипт,
# который использует WebSocket-соединение внутри bridge. Однако bridge не имеет HTTP API.
# Решение: AI создаёт второй скрипт, который запускается на ПК пользователя через SSH или как часть bridge.
# Упрощённо: AI предлагает пользователю установить скрипт на ПК.
pass
Важное уточнение: Так как execute_python выполняется в облаке и не имеет доступа к COM-порту, AI не может напрямую опрашивать ЧПУ из sandbox. Вместо этого AI предлагает два решения:
- Использовать bridge в режиме автоматизации. AI генерирует Python-скрипт, который пользователь запускает на своём ПК рядом с bridge.py. Скрипт подключается к bridge через локальный WebSocket (bridge не имеет HTTP API, но может быть расширен).
- Использовать SSH. Если ПК с ЧПУ доступен по SSH, AI подключается через paramiko и запускает скрипт мониторинга на самом ПК.
Пример для SSH:
Пользователь даёт AI IP, логин и пароль ПК:
«Подключись по SSH к 192.168.1.100, логин user, пароль pass. Напиши скрипт, который каждые 10 секунд читает температуру с COM3 и шлёт мне в Telegram»
AI пишет и выполняет:
import paramiko
import time
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.1.100', username='user', password='pass')
def read_temperature():
stdin, stdout, stderr = ssh.exec_command("python3 -c \"
import serial
ser = serial.Serial('COM3', 115200)
ser.write(b'$T\\r')
response = ser.readline().decode().strip()
print(response)
ser.close()
\"")
return stdout.read().decode().strip()
while True:
temp = read_temperature()
if temp and float(temp) > 60:
# Отправляем паузу
ssh.exec_command("python3 -c \"
import serial
ser = serial.Serial('COM3', 115200)
ser.write(b'!')
ser.close()
\"")
send_telegram("Температура шпинделя {}°C, станок на паузе".format(temp))
time.sleep(10)
После 30 секунд sandbox остановит скрипт, поэтому AI предлагает пользователю запустить его на самом ПК через systemd или планировщик.
4. Альтернативный сценарий: голосовое управление через Telegram
Пользователь пишет:
«Сделай так, чтобы я мог сказать в Telegram "запусти фрезеровку детали", и станок начал работу»
AI создаёт Telegram-бота (через requests к api.telegram.org), который слушает команды. При получении сообщения «запусти фрезеровку» AI вызывает industrial_command для отправки G-кода на ЧПУ:
industrial_command(
protocol='serial',
command='serial_write_and_read',
data='4731300a' # 'G10' + \n — запуск программы
)
Результат: вы говорите в Telegram «запусти фрезеровку», AI отправляет G-код на станок, и фреза начинает движение.
5. Почему это выгодно?
| Традиционный подход | С ASI Biont |
|---|---|
| Писать код интеграции вручную (Python, Serial, Telegram API) | AI пишет код за секунды по вашему описанию |
| Мониторинг через UART-терминал | Автоматические уведомления и логи в облаке |
| Только локальное управление | Удалённое управление из любой точки мира |
| Нет возможности голосовых команд | Интеграция с Telegram, голосовой ввод |
6. Заключение
Подключение ЧПУ-станка с GRBL или Marlin к AI-агенту ASI Biont превращает обычный фрезерный станок в умное устройство с удалённым управлением, автоматическим мониторингом и голосовыми командами. Вам не нужно писать ни строчки кода — достаточно описать задачу в чате, и AI самостоятельно создаст и выполнит интеграцию.
Попробуйте сами: перейдите на asibiont.com, скачайте bridge, подключите свой станок и дайте первую команду — «Вышли текущие координаты».
Комментарии