Как подключить OpenMV (OV2640) к AI-агенту ASI Biont: автоматизация контроля качества на конвейере

Ручной контроль качества на производстве — это дорого, медленно и субъективно. Оператор устаёт, пропускает дефекты, а каждая ошибка оборачивается рекламациями и потерями. Решение — интеграция камеры компьютерного зрения OpenMV (с сенсором OV2640) с AI-агентом ASI Biont. В этой статье разберём, как за пару минут настроить автоматическую детекцию брака на конвейере, отправлять фото дефектных деталей в Telegram и сократить трудозатраты на 80%.

Что такое OpenMV и зачем подключать его к AI-агенту?

OpenMV — это микроконтроллерная платформа для компьютерного зрения на базе STM32 и камеры OV2640 (2 Мп, 1600×1200). Она умеет распознавать цвета, линии, QR-коды, лица и простые объекты прямо на борту — без мощного ПК. Но сама по себе камера не может отправить уведомление в Telegram, записать брак в базу данных или динамически менять порог детекции под новую партию деталей. ASI Biont добавляет этот «мозг»: AI-агент подключается к OpenMV через COM-порт (UART), читает результаты распознавания, принимает решения и связывается с внешними сервисами.

Какой способ подключения используется и почему?

OpenMV общается с внешним миром через UART (TTL-уровни, 3.3V). Для подключения к ASI Biont используем Hardware Bridge — приложение bridge.py, которое пользователь запускает на своём ПК (Windows/Linux/macOS). Bridge соединяется с ASI Biont через WebSocket (единственный канал связи) и обеспечивает доступ к локальным COM-портам. AI-агент отправляет команды через industrial_command tool с протоколом serial://, bridge пишет данные в порт и читает ответ.

Почему именно bridge, а не execute_python? Потому что execute_python выполняется в облаке (Railway) и не имеет доступа к USB-портам вашего компьютера. Bridge — это безопасный прокси: он не открывает HTTP-сервер на localhost, а только соединяется с облаком по WebSocket.

Пошаговый сценарий: контроль качества на конвейере

Шаг 1. Скачиваем и запускаем bridge

В дашборде ASI Biont (Devices → Create API Key) создаём ключ и скачиваем bridge.py. Устанавливаем зависимости:

pip install pyserial requests websockets

Запускаем bridge, указав токен и порт, к которому подключена OpenMV:

python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200

Шаг 2. Прошиваем OpenMV

Загружаем на OpenMV скетч, который детектирует красные дефекты (например, царапины на красной детали) и отправляет результат в UART:

import sensor, image, time

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time=2000)

red_threshold = (30, 100, 15, 127, 15, 127)  # LAB

while True:
    img = sensor.snapshot()
    blobs = img.find_blobs([red_threshold], pixels_threshold=200)
    if blobs:
        print("DEFECT_DETECTED:{}".format(len(blobs)))
        img.draw_rectangle(blobs[0].rect())
        img.save("/tmp/defect.jpg")
    else:
        print("OK")
    time.sleep(1)

Шаг 3. Настраиваем AI-агента в чате

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

Подключись к OpenMV через bridge на COM3, скорость 115200. Камера присылает строки "OK" (нет брака) или "DEFECT_DETECTED:X". Если пришёл дефект — сфотографируй деталь через OpenMV (команда "CAPTURE"), получи изображение и отправь в Telegram группу @my_factory_alerts с текстом "Обнаружен брак: X дефектов". Если подряд 3 OK — ничего не делай.

AI-агент сам генерирует и выполняет код интеграции. Пример того, что происходит «под капотом»:

# Этот код пишет и выполняет AI в sandbox
import requests
import time

# Функция для отправки команды через bridge (вызов industrial_command)
# В реальности это tool call, но для наглядности показываем логику
def send_command(cmd):
    # AI использует industrial_command(protocol='serial', command='serial_write_and_read', data=cmd)
    pass  # упрощение

def capture_image():
    # AI отправляет команду "CAPTURE" через bridge
    # bridge читает байты из COM-порта и возвращает hex-строку с JPEG
    response = industrial_command(protocol='serial', command='serial_write_and_read', data='434150545552450a')  # "CAPTURE\n"
    return bytes.fromhex(response)

ok_count = 0
while True:
    line = send_command('')  # просто читаем строку
    if 'DEFECT_DETECTED' in line:
        ok_count = 0
        count = line.split(':')[1]
        img_data = capture_image()
        # Отправляем в Telegram
        files = {'photo': ('defect.jpg', img_data, 'image/jpeg')}
        requests.post(
            f"https://api.telegram.org/bot{TOKEN}/sendPhoto",
            data={'chat_id': '@my_factory_alerts', 'caption': f'Обнаружен брак: {count} дефектов'},
            files=files
        )
    else:
        ok_count += 1
    time.sleep(0.5)

Важно: Этот код выполняется в sandbox ASI Biont (таймаут 30 секунд, поэтому реальный скрипт AI запускает как долгоживущий процесс через отдельный механизм, но для статьи упрощаем).

Шаг 4. Результат

  • Брак детектируется за 1–2 секунды (против 10–15 секунд при ручном осмотре).
  • Фото дефекта сразу уходит в Telegram-группу начальника смены.
  • AI может вести статистику: сколько брака за смену, какой оператор допустил, какая партия.
  • Трудозатраты на контроль снижаются на 80% — один AI-агент заменяет трёх контролёров.

Почему это выгодно?

Вам не нужно писать сложный код интеграции, разбираться в протоколах или ждать обновлений от разработчиков. Просто опишите задачу в чате — AI сам подберёт способ подключения (в данном случае COM-порт через bridge), сгенерирует Python-скрипт с pyserial, requests и telebot-логикой, и запустит его. Если завтра вы захотите добавить вторую камеру — просто напишите «подключи ещё одну OpenMV на COM5 и суммируй дефекты с обеих».

Заключение

OpenMV + ASI Biont — это готовое решение для автоматизации контроля качества на малом и среднем производстве. Минимум железа (камера за $50 + любой ПК), максимум гибкости: AI-агент управляет детекцией, уведомлениями, аналитикой. Попробуйте сами: создайте API-ключ в дашборде ASI Biont, скачайте bridge, подключите OpenMV и напишите в чат «настрой контроль качества». Вся интеграция займёт меньше часа.

← Все статьи

Комментарии