Структура системы

Введение

Robotic Ai Vision (RAiV) - это высокоинтегрированная стереокамера. RAiV способна выполнять 3D-измерения, выполнять 3D-автоматизацию и осуществлять 3D-контроль качества. RAiV предназначен для использования на заводах и в мастерских. Это руководство содержит информацию о том, как использовать RAiV и его функции.

Основные функции

RAiV разработан как гибкая многоцелевая система видеонаблюдения. Его можно использовать с промышленными роботами, системами автоматизации, беспилотными наземными транспортными средствами и другими приложениями для 3D-съемки. В результате RAiV имеет различные интерфейсы передачи данных, такие как GigE, WiFi6, CanBus, RS-485, и сигнальные интерфейсы, такие как PWM и ввод-вывод общего назначения.

Расположение электрических и механических разъемов можно увидеть на изображении ниже:

Общий обзор RAiV

Конвейер передачи данных

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

Пользовательский код на python выполняется непрерывно. Код может получать полученные IMU-сэмплы, стереоизображения и выходные данные модели нейронной сети в любое время. RAiV имеет следующий конвейер передачи данных:

RAiV Data Pipeline

Для получения дополнительной информации, пожалуйста, ознакомьтесь со страницей технических подробностей в Robotic Ai Vision (RAiV) и нашем блоге

Подключение

Для настройки, пожалуйста, подготовьте следующие элементы:

  • RAiV
  • Компьютер с проводной сетью и веб-браузером.
  • Кабель Ethernet
  • Источник питания 12 или 24 В постоянного тока 2 А
  1. Установите подключение компьютера к проводной сети в соответствии с параметрами, приведенными ниже:
  2. IP 192.168.10.2
    Netmask 255.255.255.0
    Gateway 192.168.10.1
  3. Подключите компьютер напрямую к RAiV
  4. Открыть веб-интерфейс RAiV:
  5. http://192.168.10.55

    Предупреждение

    Приведенные здесь инструкции предназначены для устройства с настройками по умолчанию.

    Чтобы загрузить настройки по умолчанию в RAiV, нажмите кнопку "Сброс".&нажмите кнопку, которая находится на задней панели устройства, примерно на 3 секунды (пока не замигают синий и оранжевый индикаторы). Затем отпустите кнопку сброса и дождитесь перезагрузки устройства.

Макеты веб-интерфейса

Существует два разных макета веб-интерфейса для администратора и пользователя.

Веб-макет администратора

В веб-интерфейсе администратора есть одна главная панель. Администратор может использовать кнопки на этой панели для навигации по настройкам.

  1. Кнопка, установленная для выбора отображения панели

Веб-макет пользователя

В веб-интерфейсе пользователя пять панелей

  1. Панель команд
  2. Пользователь может использовать кнопки на этой панели, чтобы выбрать нужную опцию и отобразить ее настройки на панели параметров.

  3. Панель параметров
  4. Параметры выбранной опции отображаются здесь с помощью соответствующих кнопок.

  5. Панель списка изображений
  6. На этой панели отображаются изображения, сохраненные в памяти устройства. Пользователь может либо использовать кнопку "Захватить кадр", либо кнопку "Собрать образцы", чтобы сохранить изображения в памяти

    Изображения здесь можно удалить, загрузить или отобразить в "Экранной панели", нажав на них

    Все изображения здесь также можно удалить или загрузить

  7. Экранная панель
  8. Эта область используется для отображения:

    • Изображения, выбранного на панели "Список изображений"
    • Изображения, полученного с помощью кнопки моментального снимка или
    • Вывода изображения в реальном времени поток
  9. Панель потоковой передачи и работоспособности
  10. Эта панель используется для запуска/остановки прямой трансляции h264, отображения отчета о работоспособности и индикаторов состояния системы

Доступ/пароль

Нажмите на кнопку "ДОСТУП/ПАРОЛЬ", чтобы изменить имя пользователя и пароль администратора.

После изменения имени пользователя и/или пароля администратора нажмите кнопку "Сохранить" пуговица.

Нажмите на кнопку "СЕТЬ", чтобы изменить параметры сети и включить/выключить интерфейс Wi-Fi

После изменения настроек сети нажмите кнопку "Сохранить".

Дата/время

Нажмите на кнопку "ДАТА/ВРЕМЯ", чтобы изменить настройки даты и времени.

В текстовых полях отображается текущая дата и время. Вы можете либо:

  • установить дату/время вручную
  • используйте кнопку "ПОЛУЧИТЬ ДАТУ/ВРЕМЯ", чтобы задать дату и время компьютера в полях

После изменения даты и времени нажмите кнопку "Сохранить".

Настройки камеры

Нажмите кнопку "Настройки камеры" на панели команд, чтобы открыть панель параметров "Настройки камеры".

Вы можете изменить "экспозицию". и "увеличьте" значения, используя ползунки или редактируя текстовые значения под ползунками.

После изменения настроек камеры, чтобы сохранить изменения, нажмите на "дискету" .

Параметр Python

Вы можете использовать код на python для установки значений экспозиции и усиления или для реализации функции автоматической регулировки усиления экспозиции

Список изображений

Панель "Список изображений" используется для захвата, загрузки и удаления кадров.

Панель имеет две вкладки. В RAiV можно использовать только панель "Изображения поездов". На панели "Список изображений" расположены следующие кнопки:

  • Захват кадра: Эта кнопка используется для захвата пары стереоизображений. Захваченные изображения добавляются в список изображений. Пользователь может отобразить желаемое захваченное изображение на панели "экран", щелкнув по его миниатюре в списке.
  • Удалить изображение: Эта кнопка используется для удаления изображения. Щелкните на миниатюре изображения, которое нужно удалить, в списке изображений и нажмите эту кнопку.
  • Загрузить изображение: Эта кнопка используется для загрузки изображения. Щелкните на миниатюре загружаемого изображения в списке изображений и нажмите эту кнопку. Изображение загружается браузером.
  • Загрузить все изображения: Эта кнопка используется для загрузки всех изображений из списка изображений в виде файла "zip". Просто нажмите на эту кнопку и дождитесь загрузки zip-файла.
  • Использование оперативной памяти

    Изображения хранятся в памяти в несжатом формате BMP. Размер каждого изображения составляет приблизительно 6,2 МБ. Для коллекции из 75 пар стереоизображений (150 изображений) размер архивированного файла составит около 900 МБ. Поскольку в процессе загрузки zip-файл сохраняется в оперативной памяти компьютера, на загружающем компьютере должно быть достаточно оперативной памяти и места для подкачки.

  • Удалить все изображения: Эта кнопка используется для удаления всех изображений из списка изображений. После нажатия этой кнопки отображается диалоговое окно с предупреждением, в котором требуется подтверждение пользователя, прежде чем удалять все изображения.

Моментальный снимок

При нажатии кнопки моментального снимка на панели команд создается пара стереоизображений без сохранения их на диск.

Использование

Кнопка моментального снимка в основном используется для:

  • Проверка ориентация камеры
  • Проверка кода пользователя на python. Потому что при использовании snapshot активируется весь конвейер обработки данных изображения и вводится пользовательский код

Прямая трансляция

RAiV имеет встроенный аппаратный кодировщик H264. С помощью аппаратного кодера h264 моно- или стереоизображения могут передаваться в браузер в потоковом режиме.

При нажатии кнопки "live" на панели "потоковая передача и работоспособность" создается прямая трансляция в формате h264, и браузер отображает захваченные моно- или стереоизображения без каких-либо изменений. сохранение их на диск.

Использование

Кнопка "Жить" в основном используется для:

  • Проверка ориентации камеры
  • Проверка кода пользователя на python. Потому что, как и в случае с моментальным снимком в live, активируется весь конвейер передачи данных изображения и код пользователя подается непрерывно.

Параметр Python

Потоковая передача в формате live h264 также может быть включена или отключена с помощью кода пользователя на python. Прямая трансляция использует протокол websocket для потоковой передачи, в результате чего закодированный поток может быть получен любым устройством /программой, поддерживающей websocket.

Настройки искусственного интеллекта

Нажмите кнопку "Настройки искусственного интеллекта" на панели команд, чтобы открыть панель параметров "Настройки искусственного интеллекта".

Панель параметров "Настройки искусственного интеллекта". показывает:

  • Имя файла модели искусственного интеллекта
  • Дата загрузки модели искусственного интеллекта
  • Размер файла модели искусственного интеллекта
  • <сильный>статус модели искусственного интеллекта
  • <сильный>процесс искусственного интеллекта модели. Время (мс) (если доступно)

Панель параметров "Настройки искусственного интеллекта" состоит из трех кнопок. Эти кнопки используются для удаления, загрузки и повторной загрузки модели искусственного интеллекта.

Тип модели

RAiV основан на "TensorFlow Lite". В результате этого RAiV принимает только модели tflite.

Кроме того, можно использовать устройство Edge TPU от Google, если модель tflite была:

  • скомпилировано с помощью edgetpu_compiler <your_model>.tflite
  • или экспортирован с помощью <YOLO>.export(format="edgetpu")

Чтобы использовать модель искусственного интеллекта, пользователь должен освободить это можно сделать, нажав кнопку .

Пользователь может отменить загрузку загруженной модели искусственного интеллекта, нажав .

Настройки ввода-вывода

Нажмите на кнопку "Настройки ввода-вывода" на панели команд, чтобы открыть панель параметров "Настройки ввода-вывода".

RAiV позволяет управлять python или контролируемый по времени и автоматизированный отклик на входных и выходных выводах.

Если триггер вывода ввода-вывода определен как "python". Код пользователя на python может получить доступ к pin-коду и использовать его ввод или управлять его выводом.

Если Ввод #1 определен как "захват", получение изображения запускается с помощью ввода #1. Такая конфигурация полезна в высокоскоростных средах, где внешний датчик может выдавать сигнал для начала съемки вместо непрерывного получения изображения.

Если <кодовый>выход #1 или <кодовый>выход #2 определен как <сильный> "Вход #1", выходные контакты активируются сигналом входа #1. без какого-либо вмешательства пользователя. Кроме того, можно настроить задержку и длительность выходных сигналов, установив значение "Задержка (мс)" или "Длительность (мс)" соответственно.

После изменения настроек камеры, чтобы сохранить изменения, нажмите кнопку кнопка "гибкий диск" .

В дополнение к цифровым выводам ввода-вывода RAiV также имеет два вывода PWM. Доступ к этим выводам и управление ими возможны только с помощью кода пользователя на python

Настройки Python

Нажмите на кнопку "Настройки Python" на панели команд, чтобы открыть панель параметров "Настройки Python".

RAiV может запускать пользовательские коды python в изолированной среде. Панель параметров "Настройки Python" используется для:

  • Проверки состояния пользовательского кода на python
  • Настройка интервала подачи данных пользовательского кода на python (мс)
  • Включение или отключение выполнения пользовательского кода на python путем нажатия
  • Получение консольного вывода пользовательского кода на python.

Консольный вывод

Консольный вывод включает <код пользователя>вызов функции print(), вывод интерпретаторов python и проверка RAiV в песочнице.

Управление файлами Python

Управление файлами python пользователя осуществляется в панели параметров развертывания Python

Сбор образцов

Нажмите на кнопку "Настройки Python" на панели команд и откройте панель параметров "Настройки Python".

Используется для сбора образцов для записи изображений во внутреннюю память устройства для загрузки и внешней автономной обработки, такой как обучение модели искусственного интеллекта или разработка кода на python.

Чтобы начать сбор образцов, необходимо установить флажок для сбора образцов. После установки флажка пользователь может запускать и останавливать сбор образцов с помощью кнопок и .

Процесс записи

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

Если загружена и выпущена модель искусственного интеллекта, вывод модели искусственного интеллекта также записывается с помощью эти образы.

Просмотр образцов изображений

После завершения сбора образцов на панели Список изображений отображаются собранные образцы изображений.

Собранные образцы изображений и выходные данные модели искусственного интеллекта можно загрузить, нажав кнопку .

Собранные образцы изображений и выходных данных модели искусственного интеллекта можно удалить, нажав кнопку . Эта кнопка удаляет только собранные образцы, она не влияет на изображения, снятые с помощью Capture Frame.

Развертывание Python

Нажмите на кнопку "Развертывание Python" на панели команд, чтобы открыть панель параметров "Развертывание Python".

На панели развертывания Python отображаются загруженные файлы Python. имя файла, размер файла и дата загрузки.

На панели развертывания Python есть следующие кнопки:

  • Загрузить файл Python: Эта кнопка используется для загрузки одного файла на python.
  • Загрузить файл на Python: Эта кнопка используется для загрузки файла на python. Выберите файл для загрузки в списке загруженных файлов на python и нажмите эту кнопку. Файл python загружается браузером.
  • Загрузить все файлы Python: Эта кнопка используется для загрузки всех загруженных файлов python в виде файла "zip". Просто нажмите на эту кнопку и дождитесь загрузки zip-файла.
  • Удалить файл на Python: Эта кнопка используется для удаления файла на python. Выберите файл, который нужно удалить, в списке загруженных файлов python и нажмите эту кнопку.
  • Удалить все файлы Python: Эта кнопка используется для удаления всех загруженных файлов python. После нажатия этой кнопки отображается диалоговое окно с предупреждением, в котором требуется подтверждение пользователя перед удалением всех файлов python.

Отчет о состоянии

Для диагностических целей RAiV может генерировать Отчет о состоянии здоровья. Отчет о состоянии здоровья можно создать, щелкнув значок справа от панели "Потоковая передача и состояние здоровья".

Отчет о состоянии здоровья включает в себя:

  • Настройки камеры
  • Параметры искусственного интеллекта
  • Настройки ввода-вывода
  • Настройки Python
  • Список загруженных файлов python
  • Список захваченных изображений
  • Состояние системы

Системный монитор

В диагностических целях RAiV может отображать текущее состояние системы . Состояние системы можно просмотреть, щелкнув по значку справа на панели потоковой передачи и работоспособности.

Состояние системы включает в себя:

  • Процент загрузки процессора
  • Процент использования оперативной памяти
  • Процент использования диска
  • Температура процессора
  • Температура IMU

qCU_Print: перехватчик для стандартного вывода

Служебный модуль Python для настройки последовательного порта "USB Debug" и перенаправления стандартного вывода на порт USB Debug

qcu_print_enable Жизненный цикл

Позволяет выполнять двойную печать как на стандартный вывод, так и на последовательный порт USB Debug. Это позволяет удаленно записывать стандартные инструкции по печати с помощью порта USB для отладки на задней панели RAiV.

def qcu_print_enable(port='<optional>')

Параметры

Имя Тип Описание
port str Необязательно - путь к устройству для последовательного порта USB для отладки.

Пример

import qCU_Serial
# Enable output to serial
qCU_Serial.qcu_print_enable()
print("Hello Serial") # Appears on screen and serial

qcu_print_disable Жизненный цикл

Отключает двойную печать как на стандартный вывод, так и на последовательный порт USB для отладки, и восстанавливает нормальную функцию печати (вывод только в стандартный вывод).

def qcu_print_disable()

Пример

import qCU_Serial
qCU_Serial.qcu_print_disable()
print("Back to normal")

qCU_Net: Клиент и сервер TCP

Сетевой модуль на Python для передачи данных в кодировке JSON через сокеты TCP/IP. Включает клиентские и серверные функции с заголовком с префиксом длины и протоколом полезной нагрузки.

send_data_to_server Клиент

Отправляет полезную нагрузку в кодировке JSON на сервер по Ethernet/TCP.

def send_data_to_server(host, port, json_payload)

Параметры

Имя Тип Описание
host str IP-адрес сервера или имя хоста.
port int Серверномер порта.
json_payload dict Словарь в кодировке JSON, который должен быть отправлен.

Пример

import qCU_Net
data = {"cmd": "start", "val": 100}
qCU_Net.send_data_to_server("127.0.0.1", 5000, data)

start_tcp_server Сервер

Запускает TCP-сервер, который получает сообщения в формате JSON с заголовком с префиксом длины и полезной нагрузкой. Он работает в бесконечном цикле и принимает соединения последовательно.

def start_tcp_server(host='localhost', port=12345, json_handler=None)

Параметры

Имя Тип Описание
host str Адрес для привязки (по умолчанию: 'localhost').
port int Порт для прослушивания (по умолчанию: 12345).
json_handler callable Функция обратного вызова: <код>обработчик(client_socket, json_payload, client_address). Если нет, выводит на консоль.

Пример

import qCU_Net

# Sample implementation of a json payload handler 
def sample_json_handler(client_socket, json_payload, client_address):
    print(f"Custom handler called for client {client_address}")
    print(f"Received payload: {json_payload}")


# Start the TCP server with sample json handler
qCU_Net.start_tcp_server(host='192.168.10.55', port=12345, json_handler=sample_json_handler)

send_response_to_client Сервер

Отправляет ответ в кодировке JSON подключенному клиенту через существующий сокет. Используйте это в вашем json_handler для ответа

def send_response_to_client(client_socket, json_payload)

Параметры

Имя Тип Описание
client_socket socket.socket Объект сокета подключенного клиента.
json_payload dict Словарь в кодировке JSON, который должен быть отправлен

Возвращает

Тип Описание
bool True в случае успешного выполнения, False в противном случае

Пример

# Sample implementation of a json payload handler 
def sample_json_handler(client_socket, json_payload, client_address):
    print(f"Custom handler called for client {client_address}")
    print(f"Received payload: {json_payload}")
    
    # Define payload in json format
    payload = {
        "status": 1
    }
    
    # Send payload to client
    qCU_Net.send_response_to_client(client_socket, payload);

qCU_Data: Сбор данных

Интерфейсный модуль на Python для доступа к буферам общей памяти, содержащим кадры стереокамеры, выходные данные модели искусственного интеллекта и данные IMU. Этот класс предоставляет методы для инициализации интерфейса памяти, извлечения кадра, выходных данных искусственного интеллекта и IMU и получения параметров калибровки стереокамеры.

getMemoryConfiguration Конфигурация

Возвращает конфигурацию памяти в виде словаря.

def getMemoryConfiguration(self)

Возвращает

Тип Описание
dict Конфигурация, содержащая размеры кадра, BPP и размеры буфера

load_calibration Конфигурация

Загружает данные стереокалибровки из файла YAML.

def load_calibration(self, calib_file='<optional>')

Параметры

Имя Тип Описание
calib_file str Необязательный путь к файлу YAML для стереокалибровки.

Возвращает

Тип Описание
list Загружены структуры данных калибровки.

load_rectification Конфигурация

Загружает карты корректировки из файла NPZ.

def load_rectification(self, recti_file='<optional>')

Параметры

Имя Тип Описание
recti_file str Необязательно - путь к NPZ-файлу карт исправления.

Возвращает

Тип Описание
list Загружены массивы карт исправления.

init Жизненный цикл

Инициализировать интерфейс с общей памятью.

def init(self)

Возвращает

Тип Описание
bool True в случае успеха, False в противном случае.

isInitialized Состояние

Проверьте, был ли инициализирован интерфейс с общей памятью.

def isInitialized(self)

Возвращает

Тип Описание
bool True, если инициализирован, в противном случае False

getDataFrame Данные

Проверяет индексы и возвращает последний кадр, если он доступен.

def getDataFrame(self)

Возвращает

Тип Описание
tuple данные кадра - это числовой массив (2, высота, ширина, bpp) или нет.

Raises

RuntimeError: Если общая память не инициализирована.

getDataFrameImu Данные

Проверяет индексы и возвращает фрейм и данные IMU фрейма, если доступны новые данные.

def getDataFrameImu(self)

Возвращает

Тип Описание
tuple

(frame_data, frame_imu_data):

  • frame_data (int): числовой массив (2, высота, ширина, bpp) или нет
  • frame_imu_data (dict): Словарь, содержащий измерения IMU со следующими ключами:
    • 'accel_x', 'accel_y', 'accel_z' (float): Последние компоненты линейного ускорения в g (гравитационных единицах)
    • 'gyro_x', 'gyro_y', 'gyro_z' (float): Накопленные компоненты угловой скорости в <сильных> °/с (градусах в секунду)
    • 'temp' (float): Температура датчика в <сильных>°C
    • 'timestamp' (float): Временная метка получения образца в <сильных>секундах (представление с плавающей запятой)
    • 'isValid' (bool): Достоверность данных IMU

Raises

RuntimeError: Если общая память не инициализирована

getDataRawImu Данные

Получение последних необработанных данных IMU из кольцевого буфера

def getDataRawImu(self)

Возвращает

Тип Описание
tuple

(imu_data, current_imu_index):

  • imu_data (dict): Словарь, содержащий измерения IMU со следующими ключами:
    • 'accel_x', 'accel_y', 'accel_z' (float): Компоненты линейного ускорения в g (гравитационные единицы)
    • 'gyro_x', 'gyro_y', 'gyro_z' (float): Компоненты угловой скорости в <сильных>°/с (градусах в секунду)
    • 'temp' (float): Температура датчика в <сильных>°C
    • 'fsyncAgo' (int): Время, прошедшее с момента последнего импульса синхронизации в микросекунды
    • 'timestamp' (float): Временная метка сбора выборки в секундах (представление с плавающей запятой)
  • current_imu_index (int): Монотонно увеличивающийся индекс, идентифицирующий текущую выборку IMU в последовательности сбора

Raises

RuntimeError: Если общая память используется не инициализирован.

getDataAi Данные

Извлекает данные, обработанные искусственным интеллектом.

def getDataAi(self, timeout=5)

Параметры

Имя Тип Описание
timeout int Время ожидания данных в секундах

Возвращает

Тип Описание
dict Словарь, содержащий результаты обработки ИИ со следующими ключами:
  • 'data' (numpy.ndarray or similar): Обработанные выходные данные ИИ (например, результаты логического вывода, векторы признаков или предсказания модели)
  • 'header' (dict or structured object): Метаданные/информация заголовка, связанная с выводом ИИ, включая время, последовательность числа или параметры обработки
  • 'input_frame_right' (numpy.ndarray or buffer): Правый кадр камеры, обработанный моделью искусственного интеллекта
  • 'input_frame_left' (numpy.ndarray or buffer): Левый кадр камеры, обработанный моделью искусственного интеллекта
  • 'success' (bool): Логический флаг, указывающий, успешно ли завершена обработка ИИ (<код>True для успешного выполнения, <код>False для сбоя)

forceFunctionStop Внутреннее

Вызовите это из другого потока, чтобы отменить блокировку вызовов сбора данных ИИ.

def forceFunctionStop(self)

cleanup Жизненный цикл

Очистите ресурсы общей памяти. (Примечание: сама по себе общая память не очищается Python).

def cleanup(self)

qCU_Stream: Потоковая передача H.264

Служебный модуль на Python для включения и выключения аппаратного кодировщика H.264 и настройки его режима (моно или стерео).

setEncoderStatus Управление

Настройка состояния и режима аппаратного кодировщика H.264

def setEncoderStatus(isStart, isStereo)

Параметры

Имя Тип Описание
isStart bool Флаг, указывающий, следует ли запускать или останавливать кодировщик.
isStereo bool Флаг, указывающий, является ли режим стерео (True) или моно (False).

Возвращает

Тип Описание
int 0 в случае успеха, -1 в случае ошибки

qCU_CCtrl: Управление камерой

Интерфейсный модуль на Python для управления аппаратными параметрами камеры, такими как усиление и время экспозиции. Взаимодействует с базовым драйвером камеры для динамической настройки параметров.

init Жизненный цикл

Инициализирует интерфейс управления камерой.

def init(self)

terminate Жизненный цикл

Завершает работу интерфейса управления камерой.

def terminate(self)

get_cam_ctrl_ranges Конфигурация

Извлекает допустимые минимальные и максимальные диапазоны для управления камерой, такие как экспозиция и усиление

def get_cam_ctrl_ranges(self)

Возвращает

Тип Описание
tuple

(expo_min, expo_max, gain_min, gain_max)

  • expo_min (int): Минимально допустимое значение времени экспозиции
  • expo_max (int): Максимально допустимое значение времени экспозиции
  • gain_min (int): Минимально допустимое значение усиления
  • gain_max (int): Максимально допустимое значение усиления

Эти значения определяют допустимый рабочий диапазон для настроек экспозиции камеры и усиления, которые можно настроить с помощью драйвера датчика.

set_gain Управление

Установите усиление камеры.

def set_gain(self, gain)

Параметры

Имя Тип Описание
gain int Установить значение усиления

Возвращает

Тип Описание
int 0 означает успех.

set_exposure Управление

Установить экспозицию камеры

def set_exposure(self, exposure)

Параметры

Имя Тип Описание
exposure int Установить значение экспозиции

Возвращает

Тип Описание
int 0 означает успех.

set_expo_gain Управление

Установите экспозицию и усиление одновременно

def set_expo_gain(self, exposure, gain)

Параметры

Имя Тип Описание
exposure int Установите значение экспозиции
gain int Установите значение усиления

Возвращает

Тип Описание
int 0 означает успех.

get_expo_gain Данные

Получить текущие значения экспозиции и усиления камеры

def get_expo_gain(self)

Возвращает

Тип Описание
tuple

(exposure, gain, return_code)

  • exposure (int): Текущее значение экспозиции камеры
  • gain (int): Текущее значение усиления камеры
  • return_code (int): 0 означает успех.

qCU_PinBus: GPIO & PWM

Интерфейсный модуль Python для аппаратного обеспечения, позволяющий управлять выводами GPIO (ввода/вывода общего назначения) и сигналами ШИМ (широтно-импульсной модуляции).

gpin_read Аппаратное обеспечение

Считывает цифровое значение с вывода общего назначения (GPIN).

def gpin_read(pin)

Параметры

Имя Тип Описание
pin int Номер pin-кода GPIN для считывания.

Возвращает

Тип Описание
int Цифровое значение, считываемое с pin-кода (0 или 1).

gpout_write Аппаратное обеспечение

Записать цифровое значение в pin-код GPOUT.

def gpout_write(pin, value)

Параметры

Имя Тип Описание
pin int Номер pin-кода GPOUT для записи.
value bool Логическое значение для записи (True для высокого значения, False для низкого).

Возвращает

Тип Описание
int 0 означает успех.

pwm_write Аппаратное обеспечение

Настройка ШИМ-сигнала на определенном выводе.

def pwm_write(pin, periodMs, dutyMs)

Параметры

Имя Тип Описание
pin int Номер вывода для вывода ШИМ-сигнала.
periodMs int Период сигнала в миллисекундах.
dutyMs int Активная длительность (рабочий цикл) сигнала в миллисекундах.

Возвращает

Тип Описание
int 0 означает успех.

qCU_Uart: UART Wrapper

Документация будет добавлена позднее

qCU_RS485: RS-485 Wrapper

Документация будет добавлена позднее

qCU_ModbusRTU: RTU Helper

Документация будет добавлена позднее

qCU_CAN: CanBus Wrapper

Документация будет добавлена позднее