Как превратить текстовый чат в пульт управления роботом: интеграция сервоприводов PCA9685 с AI-агентом ASI Biont

Введение

Робототехника прочно вошла в нашу жизнь: от промышленных манипуляторов на заводах до образовательных наборов и домашних проектов. Однако управление даже простыми сервоприводами часто требует написания кода, настройки протоколов и постоянного контроля. А если нужно изменить угол поворота или запустить новую последовательность движений удалённо? Приходится заново открывать IDE, компилировать скетч или писать REST-клиент. Это замедляет итерации и ограничивает гибкость.

AI-агент ASI Biont решает эту проблему кардинально: вы просто описываете в чате, что нужно сделать, и агент сам генерирует код интеграции, подключается к вашему оборудованию и выполняет задачу. В этой статье мы разберём, как подключить популярный драйвер сервоприводов PCA9685 (на базе I2C) к ASI Biont тремя разными способами: через SSH на Raspberry Pi, через COM-порт с Arduino и через MQTT на ESP32. В каждом случае вы получите готовый сценарий, пример кода и пошаговую инструкцию.

Что такое PCA9685 и зачем его подключать к AI?

PCA9685 — это 16-канальный ШИМ-контроллер с интерфейсом I2C, который позволяет управлять до 16 сервоприводами одновременно, используя всего два провода (SDA, SCL) и питание. Он широко применяется в роботах-манипуляторах, шагающих платформах, системах автоматизации и аниматронике. Без AI настройка углов и временных задержек требует ручного программирования микроконтроллера. С ASI Biont вы можете:

  • Задавать углы поворота голосом или текстом.
  • Создавать сложные хореографии движений одной фразой.
  • Автоматизировать процессы, например, сортировку деталей по цвету на конвейере.
  • Управлять роботом из любой точки мира через чат.

Как ASI Biont подключается к устройствам?

ASI Biont работает в облаке, поэтому для связи с локальным оборудованием использует один из прокси-каналов:

Способ Когда применять Типичное оборудование
SSH (через paramiko) Устройство имеет сетевой доступ и SSH-сервер Raspberry Pi, Orange Pi, серверы
COM-порт (через Hardware Bridge) Устройство подключено по USB/RS-232/RS-485 к ПК Arduino, ESP32 (в режиме USB-Serial), PLC
MQTT (через paho-mqtt) Устройство подписано на MQTT-брокер ESP32, умные розетки, датчики
execute_python (универсальный) Прямой запуск Python-скрипта в облаке Любое устройство, доступное через библиотеки (HTTP, Modbus, OPC UA и др.)

Выбор способа зависит от вашего сценария. Рассмотрим три конкретных примера подключения PCA9685.

Сценарий 1: Raspberry Pi + PCA9685 (SSH)

Это классическая связка для прототипов: на Raspberry Pi установлена библиотека Adafruit CircuitPython ServoKit, которая через I2C управляет PCA9685. ASI Biont подключается по SSH, выполняет Python-скрипт и устанавливает нужный угол.

Что нужно сделать в чате

Пользователь: «Подключись по SSH к Raspberry Pi (192.168.1.100, логин pi, пароль raspberry) и поверни сервопривод на канале 0 в 90 градусов. Библиотека ServoKit уже установлена.»

Код, который сгенерирует AI

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.1.100', username='pi', password='raspberry')

# Скрипт, который выполнится на Raspberry Pi
command = """
from adafruit_servokit import ServoKit
import board
kit = ServoKit(channels=16)
kit.servo[0].angle = 90
print("Servo 0 set to 90 degrees")
"""

stdin, stdout, stderr = ssh.exec_command(f"python3 -c '{command}'")
print(stdout.read().decode())
print(stderr.read().decode())
ssh.close()

Этот код выполняется в sandbox ASI Biont (через execute_python). AI видит вывод и подтверждает успех.

Что происходит на стороне Raspberry Pi

Процесс:
1. Пользователь заранее установил зависимости на Raspberry: pip3 install adafruit-circuitpython-servokit.
2. PCA9685 подключён по I2C к контактам SDA (GPIO2) и SCL (GPIO3) с питанием 5 В.
3. AI создаёт SSH-соединение, отправляет скрипт и получает результат.

Результат: сервопривод сразу поворачивается на 90°. Никакого ручного копирования файлов или конфигурации.

Сценарий 2: Arduino + PCA9685 (COM-порт через Hardware Bridge)

Arduino — идеальный контроллер для простых задач, но он не имеет встроенного Wi-Fi. Управлять им удалённо можно через USB-COM порт. Для этого ASI Biont использует Hardware Bridge — небольшое приложение bridge.py, которое запускается на вашем ПК и связывает облако с локальным COM-портом.

Подготовка

  1. Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key).
  2. Запустите bridge: python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --baud 115200.
  3. Загрузите в Arduino прошивку, которая обрабатывает команды вида S<канал>:<угол>\n. Пример прошивки:
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

void setup() {
  Serial.begin(115200);
  pwm.begin();
  pwm.setPWMFreq(60);
}

void loop() {
  if (Serial.available()) {
    String cmd = Serial.readStringUntil('\n');
    if (cmd.startsWith("S")) {
      int colon = cmd.indexOf(':');
      int channel = cmd.substring(1, colon).toInt();
      int angle = cmd.substring(colon + 1).toInt();
      int pulse = map(angle, 0, 180, 150, 600);
      pwm.setPWM(channel, 0, pulse);
      Serial.println("OK");
    }
  }
}

Команда от AI

Пользователь пишет в чате: «Отправь на COM3 команду S0:90, чтобы повернуть сервопривод на 90 градусов». AI формирует вызов инструмента:

industrial_command(protocol='serial', command='serial_write_and_read', params={'port': 'COM3', 'baud': 115200, 'data': '53303a39300a'})

Здесь 53303a39300a — hex-представление строки S0:90\n. Bridge получает команду через WebSocket, пишет в COM-порт и мгновенно читает ответ („OK“).

Преимущество: вся логика на стороне AI — он сам решает, какую строку и в каком формате отправить. Пользователю не нужно программировать Arduino дополнительно.

Сценарий 3: ESP32 + PCA9685 (MQTT)

ESP32 с Wi-Fi — популярный выбор для IoT. Он может подписаться на MQTT-топик и управлять сервоприводами по командам из облака. ASI Biont напрямую публикует сообщения в MQTT-брокер.

Прошивка ESP32 (Arduino-ide)

#include <WiFi.h>
#include <PubSubClient.h>
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

const char* ssid = "ваш_ssid";
const char* password = "ваш_пароль";
const char* mqtt_server = "broker.hivemq.com";

WiFiClient espClient;
PubSubClient client(espClient);
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

void callback(char* topic, byte* message, unsigned int length) {
  String msg = String((char*)message).substring(0, length);
  // ожидаем JSON вида {"channel":0,"angle":90}
  int ch = 0, ang = 90;
  // упрощённый парсинг (в реальности используйте ArduinoJson)
  if (msg.indexOf("channel":) != -1) {
    int chPos = msg.indexOf("channel":) + 9;
    int chEnd = msg.indexOf(',', chPos);
    ch = msg.substring(chPos, chEnd).toInt();
    int angPos = msg.indexOf("angle":) + 7;
    int angEnd = msg.indexOf('}', angPos);
    ang = msg.substring(angPos, angEnd).toInt();
  }
  int pulse = map(ang, 0, 180, 150, 600);
  pwm.setPWM(ch, 0, pulse);
}

void setup() {
  Serial.begin(115200);
  pwm.begin();
  pwm.setPWMFreq(60);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) delay(500);
  client.setServer(mqtt_server, 1883);
  client.setCallback(callback);
  client.connect("ESP32_Servo");
  client.subscribe("servo/command");
}

void loop() {
  client.loop();
}

Команда от AI через execute_python

Пользователь: «Опубликуй в MQTT (брокер broker.hivemq.com, топик servo/command) команду повернуть серво 0 на 90 градусов». AI генерирует и выполняет такой скрипт:

import paho.mqtt.client as mqtt
import json

client = mqtt.Client()
client.connect("broker.hivemq.com", 1883, 60)
msg = json.dumps({"channel": 0, "angle": 90})
client.publish("servo/command", msg)
client.disconnect()
print("Command published")

ESP32 получает сообщение, парсит JSON и устанавливает угол. Весь цикл занимает доли секунды.

Универсальность execute_python

Во всех трёх сценариях AI использует механизм execute_python — песочницу, где выполняются скрипты со всеми необходимыми библиотеками (pyserial, paramiko, paho-mqtt, aiohttp, pymodbus и т.д.). Это значит, что вы не ограничены предустановленными драйверами: ASI Biont может подключиться к любому устройству, если для него есть Python-библиотека. Просто опишите в чате:

«Подключись к моему контроллеру через Modbus TCP по адресу 192.168.1.10:502, прочитай регистр 100 и запиши туда значение 42.»

AI сам напишет код с pymodbus, выполнит его и вернёт результат. Никаких панелей управления или кнопок — только диалог.

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

  1. Скорость разработки. Не нужно писать код вручную — AI делает это за секунды. По нашим наблюдениям, время настройки типового сценария с сервоприводами сокращается в несколько раз.
  2. Удалённое управление. Вы можете менять углы и последовательности движений из любой точки мира, просто отправляя сообщения в чат.
  3. Гибкость. Легко комбинировать сервоприводы с датчиками, камерами и другими устройствами. Например, AI может анализировать видео с камеры и на основе распознавания объектов управлять роборукой.
  4. Отсутствие vendor lock-in. ASI Biont не привязан к конкретному производителю — он работает с любым оборудованием, которое имеет стандартный интерфейс (UART, I2C, SPI, Ethernet, Wi-Fi).

Заключение

Интеграция сервоприводов PCA9685 с AI-агентом ASI Biont открывает простой и элегантный способ управлять робототехникой. Вы больше не пишете код вручную — достаточно описать задачу на естественном языке. Хотите повернуть камеру на 30 градусов? Скажите об этом в чате. Нужно запустить сложную последовательность сортировки деталей? Опишите условия, и AI сгенерирует всю логику.

Попробуйте сами! Перейдите на asibiont.com, создайте API-ключ, скачайте bridge.py или подключите свой Raspberry Pi по SSH, и начните управлять роботами с помощью текста и голоса.

← Все статьи

Комментарии

Читайте также

Красная команда и безопасность приложений: развивайте реальные навыки атаки с помощью обучения на основе ИИ на asibiont.com

27 июля 2026

10 перспективных российских стартапов июня 2026: обзор трендов по версии ProductRadar

27 июля 2026

Мозговые волны — следующий прорыв в физическом ИИ? Разбираем vibe coding и нейроинтерфейсы 2026

27 июля 2026

Как ИИ-агент ASI Biont преобразует данные экологических датчиков в практические идеи (интеграция без кода)

27 июля 2026

5 распространённых ловушек Vibe-кодинга и как FutureX помогает их обойти

27 июля 2026

Как вывести сайт в топ Яндекса: обзор курса «SEO и продвижение сайтов» с AI-персонализацией Asibiont

27 июля 2026

14 промтов для Terraform и IaC: от модулей до multi-cloud

27 июля 2026

Полное руководство по подготовке к OSCP (PEN-200) с AI-обучением на Asibiont

27 июля 2026

Mobile Security — безопасность мобильных приложений (iOS и Android): практический курс с AI-обучением на Asibiont

27 июля 2026