Введение
IMU (Inertial Measurement Unit) на базе MPU6050 — это один из самых популярных датчиков в робототехнике. Он измеряет ускорение по трём осям (акселерометр) и угловую скорость (гироскоп), позволяя определять ориентацию объекта в пространстве. Без AI-агента данные с такого сенсора обычно обрабатываются вручную: вы пишете код на Arduino или Raspberry Pi, настраиваете фильтры (например, комплементарный или Kalman), и вручную прописываете логику реакции на жесты. Это занимает часы, а иногда и дни.
ASI Biont меняет подход: вы просто описываете в чате, что хотите подключить MPU6050 к AI-агенту, передаёте параметры подключения (COM-порт, baud rate, или IP-адрес для MQTT), и AI сам пишет код интеграции, настраивает триггеры на жесты (наклон, встряхивание, вращение) и автоматизирует реакции — от управления сервоприводами до отправки уведомлений. В этой статье мы разберём конкретный сценарий: подключение MPU6050 через COM-порт к Hardware Bridge ASI Biont, считывание данных об ориентации и ускорении, и настройка автоматического отключения двигателя робота при опрокидывании.
Почему именно COM-порт и Hardware Bridge?
ASI Biont поддерживает несколько способов подключения к устройствам (MQTT, HTTP API, SSH, Modbus и другие), но для MPU6050, который чаще всего используется с микроконтроллерами (Arduino, ESP32, STM32), оптимальный вариант — COM-порт через Hardware Bridge.
Hardware Bridge — это приложение bridge.py, которое пользователь запускает на своём ПК (Windows, Linux, macOS). Bridge подключается к ASI Biont через WebSocket (единственный канал связи) и предоставляет AI-агенту доступ к локальным COM-портам. AI отправляет команды через industrial_command с протоколом serial://, bridge принимает их, отправляет данные в порт через pyserial и возвращает ответ.
Почему не MQTT? MQTT требует, чтобы микроконтроллер сам подключался к брокеру и публиковал данные. Это возможно (ESP32 с Wi-Fi), но для простых Arduino без сетевого модуля COM-порт — единственный вариант. Кроме того, COM-порт даёт низкую задержку (единицы миллисекунд) и не зависит от сети.
Как подключить MPU6050 к ASI Biont: пошаговый сценарий
Шаг 1. Подготовка устройства
Схема подключения MPU6050 к Arduino Nano:
| Пин MPU6050 | Пин Arduino |
|---|---|
| VCC | 5V |
| GND | GND |
| SCL | A5 (SCL) |
| SDA | A4 (SDA) |
Загрузите на Arduino скетч, который считывает данные с MPU6050 и выводит их в COM-порт в формате JSON. Пример скетча (используется библиотека Adafruit_MPU6050):
#include <Adafruit_MPU6050.h>
#include <Wire.h>
Adafruit_MPU6050 mpu;
void setup() {
Serial.begin(115200);
if (!mpu.begin()) {
Serial.println("{\\"error\\":\\"MPU6050 not found\\"}");
while (1);
}
mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
mpu.setGyroRange(MPU6050_RANGE_500_DEG);
}
void loop() {
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
Serial.print("{\\"accel\\":{\\"x\\":");
Serial.print(a.acceleration.x);
Serial.print(",\\"y\\":");
Serial.print(a.acceleration.y);
Serial.print(",\\"z\\":");
Serial.print(a.acceleration.z);
Serial.print("},\\"gyro\\":{\\"x\\":");
Serial.print(g.gyro.x);
Serial.print(",\\"y\\":");
Serial.print(g.gyro.y);
Serial.print(",\\"z\\":");
Serial.print(g.gyro.z);
Serial.println("}}");
delay(100);
}
Шаг 2. Запуск Hardware Bridge
Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge). Установите зависимости:
pip install pyserial requests websockets
Запустите bridge с указанием токена API и COM-порта:
python bridge.py --token=YOUR_API_TOKEN --ports=COM3 --baud=115200 --rate=10
--token— ваш API-ключ из дашборда--ports— список портов (для Windows: COM3, для Linux: /dev/ttyUSB0)--baud— скорость (должна совпадать с настройкой в скетче)--rate— лимит запросов в секунду (10 — достаточно)
Bridge подключится к ASI Biont через WebSocket и начнёт слушать команды.
Шаг 3. Подключение в чате с AI-агентом
Теперь откройте чат с ASI Biont и опишите задачу. Например:
«Подключись к MPU6050 через COM3 на скорости 115200. Читай данные каждые 100 мс. Если ускорение по оси Z падает ниже 4 м/с² — значит робот опрокинулся. В этом случае отправь команду на Arduino:
Комментарии