В мире промышленной автоматизации и робототехники компьютерное зрение становится ключевым сенсором. Камеры на базе микроконтроллеров — например, OpenMV Cam (с сенсором OV2640) — позволяют распознавать объекты, QR-коды, лица и движение без громоздких вычислительных систем. Однако извлечь максимум пользы из таких устройств можно только при их интеграции с мощным AI-агентом, способным анализировать визуальные данные, принимать решения и управлять исполнительными механизмами.
ASI Biont — это AI-агент, который подключается к любому оборудованию через диалог в чате. Вам не нужно писать сложный код или настраивать панели управления. Просто опишите задачу, укажите параметры подключения, и AI сам создаст код интеграции. В этой статье мы разберём, как подключить камеру OpenMV (OV2640) к ASI Biont, настроить детекцию объектов и автоматизировать реакции на визуальные события.
1. Что такое OpenMV Cam и OV2640?
OpenMV Cam — это микроконтроллерная плата с камерой, предназначенная для задач компьютерного зрения. Она работает на базе микроконтроллера STM32 (ARM Cortex-M) с частотой до 480 МГц и оснащена сенсором OV2640 (2 Мп, 1600×1200). Плата программируется на MicroPython, что упрощает разработку алгоритмов обработки изображений. OpenMV поддерживает библиотеки для распознавания лиц, цветовых шаблонов, линий, QR-кодов и многого другого.
Зачем подключать OpenMV к AI-агенту? Встроенный процессор OpenMV позволяет выполнять базовую обработку изображений на борту (edge computing), но сложные модели глубокого обучения, анализ последовательности событий, интеграция с бизнес-логикой или облачными сервисами — это задачи для внешнего AI. ASI Biont берёт на себя роль «мозга», который получает данные с камеры и принимает решения.
2. Выбор способа подключения: SSH + execute_python
Для интеграции OpenMV Cam с ASI Biont оптимальным способом является подключение через SSH. OpenMV работает под управлением MicroPython, но сама плата не имеет встроенного SSH-сервера. Однако вы можете запустить на компьютере или одноплатнике (например, Raspberry Pi) скрипт-мост, который будет опрашивать OpenMV по UART (COM-порт) или через USB-последовательный порт, а затем передавать данные в ASI Biont по MQTT или напрямую через execute_python.
В нашем сценарии мы используем подход:
- На Raspberry Pi (или ПК с Linux) запускается Python-скрипт, который читает данные с OpenMV через последовательный порт (USB-to-UART).
- ASI Biont подключается к Raspberry Pi по SSH (через paramiko) и управляет этим скриптом: запускает, останавливает, получает результаты.
- Для отправки команд на OpenMV AI использует industrial_command с протоколом serial:// через Hardware Bridge, если нужно напрямую писать в COM-порт.
Почему именно SSH? Это надёжный и безопасный способ удалённого управления, который поддерживается ASI Biont из коробки. Вам не нужно устанавливать дополнительное ПО на сервер — всё выполняется в sandbox-окружении ASI Biont.
3. Конкретный сценарий: детекция QR-кода и управление реле
Представьте задачу: на конвейере камера OpenMV считывает QR-код с детали. Если код валидный, AI-агент даёт команду на включение исполнительного механизма (например, реле, которое запускает двигатель). Если код не распознан — отправляется уведомление в Telegram оператору.
Шаг 1. Настройка OpenMV Cam
На OpenMV загружается скрипт, который делает снимок, детектирует QR-код и отправляет результат в последовательный порт (UART) в формате JSON. Пример кода на MicroPython для OpenMV:
import sensor, image, time, ustruct
from pyb import UART
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(10)
sensor.set_auto_gain(False)
sensor.set_auto_whitebal(False)
uart = UART(3, 115200) # UART3 на пинах P4(TX) и P5(RX)
while True:
img = sensor.snapshot()
codes = img.find_qrcodes()
if codes:
data = codes[0].payload()
msg = '{"qr":"' + data + '","x":' + str(codes[0].x()) + ',"y":' + str(codes[0].y()) + '}'
uart.write(msg + '\n')
print("QR detected:", data)
else:
uart.write('{"qr":null}\n')
time.sleep(100)
Шаг 2. Запуск bridge на Raspberry Pi
На Raspberry Pi, к которому подключена OpenMV, запускаем bridge.py, который передаёт данные из COM-порта в ASI Biont. Пользователь выполняет команду в терминале Raspberry Pi:
python bridge.py --token=ВАШ_ТОКЕН --ports=/dev/ttyACM0 --default-baud=115200
После этого bridge подключается к облаку ASI Biont через HTTP long polling и готов принимать команды.
Шаг 3. Описание задачи в чате с ASI Biont
Пользователь пишет в чате ASI Biont:
«Подключись к моему Raspberry Pi по SSH (IP: 192.168.1.100, логин: pi, пароль: raspberry). Запусти скрипт, который читает данные из COM-порта /dev/ttyACM0 (baud 115200) с камеры OpenMV. Данные приходят в JSON с полем qr. Если qr не пустой и равен 'VALID123', отправь команду на Hardware Bridge: включи реле на COM3 (протокол serial, команда 'RELAY_ON'). Если qr пустой или другой — отправь уведомление в Telegram на мой чат ID @my_chat_id через Telegram Bot API (токен: ...).»
ASI Biont генерирует и выполняет Python-скрипт внутри sandbox:
import json
import asyncio
import paramiko
import paho.mqtt.client as mqtt
# Параметры подключения
SSH_HOST = '192.168.1.100'
SSH_USER = 'pi'
SSH_PASS = 'raspberry'
SERIAL_PORT = '/dev/ttyACM0'
BAUD = 115200
TELEGRAM_TOKEN = 'ваш_токен'
CHAT_ID = '@my_chat_id'
def send_telegram(text):
import requests
url = f'https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage'
requests.post(url, json={'chat_id': CHAT_ID, 'text': text})
async def main():
# Подключаемся по SSH
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(SSH_HOST, username=SSH_USER, password=SSH_PASS)
# Запускаем команду чтения последовательного порта (cat)
# На Raspberry Pi OpenMV может быть доступен как /dev/ttyACM0
# Используем screen или cat для чтения
stdin, stdout, stderr = client.exec_command(f'cat {SERIAL_PORT}')
# Читаем строки в цикле (с таймаутом 30 секунд, поэтому используем async)
# На практике лучше запустить фоновый процесс
# Здесь показан упрощённый вариант
for line in stdout:
try:
data = json.loads(line.strip())
qr = data.get('qr')
if qr and qr == 'VALID123':
# Отправляем команду на Hardware Bridge через industrial_command
# В реальном скрипте используем tool call: industrial_command(protocol='serial', command='RELAY_ON')
# Для примера - вызов через MQTT
print('QR валидный, включаем реле')
# Здесь должен быть код публикации в MQTT или вызов industrial_command
# industrial_command(protocol='serial://', command='RELAY_ON', port='COM3', baud=9600)
else:
send_telegram(f'Невалидный QR: {qr}')
except:
pass
asyncio.run(main())
Важно: В реальном сценарии AI использует tool call industrial_command для отправки команды на реле. Вызов выглядит так: industrial_command(protocol='serial://', command='RELAY_ON', port='COM3', baud=9600). Приведённый выше код — иллюстрация логики.
Шаг 4. Результат
AI-агент ASI Biont автоматически:
- Подключается к Raspberry Pi по SSH.
- Читает данные с OpenMV через последовательный порт.
- Анализирует QR-код.
- Принимает решение: включить реле или отправить уведомление.
- Всё это без написания кода вручную — пользователь только описал задачу.
4. Альтернативные сценарии с OpenMV и ASI Biont
| Сценарий | Действие на OpenMV | Действие AI-агента |
|---|---|---|
| Детекция движения | Отправляет координаты движущегося объекта | Включает запись видео, отправляет снимок в Telegram |
| Распознавание лиц | Отправляет ID лица (если обучено) | Сверяет с базой, открывает дверь (через Modbus/TCP на контроллер) |
| Считывание штрих-кода | Отправляет код товара | Обновляет складскую систему (через HTTP API к ERP) |
| Цветовая сортировка | Отправляет цвет (R/G/B) | Управляет сервоприводом (через COM-порт) для сортировки |
5. Почему это выгодно?
Традиционная интеграция компьютерного зрения с промышленной автоматизацией требует:
- Написания кода на стороне камеры (MicroPython).
- Разработки middleware для передачи данных.
- Настройки серверной логики и уведомлений.
- Тестирования и отладки.
С ASI Biont весь этот процесс занимает минуты. Вы просто описываете задачу на естественном языке, а AI генерирует и выполняет код. Это особенно ценно для:
- Быстрого прототипирования.
- Небольших производств, где нет штатного программиста.
- Образовательных проектов и робототехнических стартапов.
6. Как начать?
- Зарегистрируйтесь на asibiont.com.
- Подготовьте OpenMV Cam со скриптом детекции (можно взять пример выше).
- Подключите OpenMV к Raspberry Pi или ПК через USB.
- Запустите bridge.py на этом компьютере (инструкция в документации).
- Откройте чат с ASI Biont и опишите свою задачу — AI сделает всё остальное.
Не требуется изучать десятки протоколов или ждать обновлений — подключайте любые устройства уже сегодня.
Заключение
Интеграция компьютерного зрения на OpenMV с AI-агентом ASI Biont открывает безграничные возможности для автоматизации. Вы получаете мощный инструмент, который сам пишет код, управляет устройствами и анализирует визуальные данные в реальном времени. Попробуйте сами — опишите свою задачу в чате ASI Biont на asibiont.com и убедитесь, насколько это просто и эффективно.
Комментарии