Курбас-256: Інтеграція камери

[V.2.0] Інструкція з інтеграції камери
Написано Andrii
Оновлено 1 місяць тому

Загальні відомості

  • Роздільна здатність: 256 x 192 пікселів

  • Сигнал: аналоговий CVBS, USB

  • Живлення: 5-9 вольт

  • Кут огляду: 50° (горизонтальний), 37.2° (вертикальний)

  • Піксель: 12 мкм

  • Діапазон хвиль: 8-14 мкм

  • Температурний діапазон використання: -20°C до +60°C

Можливості інтеграції камери з польотним контролером

Тепловізійна камера підтримує підключення до польотного контролера через UART і сумісна з протоколом Mavlink для отримання AUX-команд.
Це дозволяє налаштовувати параметри камери безпосередньо з пульта управління пілота. Підтримуються такі параметри для керування:

  • Перемикання профілів роботи камери

  • Автоматичне або ручне керування затвором

  • Яскравість зображення

  • Контрастність зображення

Застосування камери тут: ​​ Курбас-256: Інструкція з використання

Схема підключення

переконайтеся що наданий шлейф відповідає розпіновці як на зображенні


  1. чорний: земля
  2. червоний: +5 вольт
  3. зелений: USB P
  4. білий: USB N
  5. синій: на TX
  6. білий: на RX
  7. жовтий: TV OUT аналоговий вихід на CAM в FC

Схема підключення до літника на прикладі Vyriy:

Налаштування відповідного порту UART

Щоб налаштувати підключення між польотним контролером і камерою, необхідно активувати Mavlink для відповідного UART на польотному контролері

Налаштування каналів

Щоб налаштувати відповідність каналів, тобто визначити, яка функція буде прив’язана до конкретного перемикача, можна скористатися Betaflight Configurator.

Введіть наступну команду для налаштування мосту між CLI-інтерфейсом і камерою:

serialpassthrough X 115200  

Де X – це номер UART, до якого підключена камера. 

Для прикладу якщо налаштований на 3 UART прописуємо -1

serialpassthrough 2 115200 

Зверніть увагу, що на деяких польотних контролерах номер UART, вказаний на платі, може не відповідати тому, який потрібно вказувати у цій команді. Тому спочатку ознайомтеся з документацією до польотного контролера або визначте номер експериментально.

Якщо у вас не піднявся mavlink?

У версій Betaflight починаючи з версії 4.4 вимкнена mavlink телеметрія, це не розповсюджується на MilBeta, Crashdetect, Karma BF, iNav, щоб змінити це налаштування під час прошивки вкажіть TELEMETRY_MAVLINK в CUSTOM DEFINES під час прошивки

 

Фічі камери

profile

Перемикання між перед налаштованими профілями

Приклад:

set aux profile 6 1000 2000

image_contrast

Управління контрастністю камери

Приклад:

set aux image_contrast 4 1000 2000

image_brightness - управління яскравістю камери.

Приклад:

set aux image_brightness 5 1000 2000

shutter_off

Вимкнення автоматичного спрацювання шторки, типово 45с

Приклад:

set aux shutter_off 7 1400 2000

Перевизначення каналу керування камерою (set aux)

Для Betaflghth у вашому розпорядженню перші 8 каналів, для iNav/Artupilit такі обмеження відсутні. Типово керування каналами налаштовано на 7 канал, або 3 aux, якщо потрібно налаштувати на інший канал слідуйте наступним крокам:

  1. увімкніть монітор та апаратуру

  2. приєднайте борт до betaflight через кабель

  3. заживіть борт через батарею

  4. дочекайтеся коли камера завантажиться

  5. перейдіть у вкладку CLI в програмі Betaflight

  6. переводимо камеру в режим маршрутизації через команду в CLI де 2 це номер uart до якого припаяні керування камери -1 для Karma/Speedybee, в прикладі UART 3
    serialpassthrough 2 115200

  7. наступна команда перехід в CLI режим
    switch to cli mode

  8. перевизначаємо канал який слухатиме камера для керування профілями де 6 це номер каналу -1, в прикладі 7 канал
    set aux profile 6 1000 2000

  9. виходимо з CLI, від'єднуємо USB, вимикаємо живлення

Щоб польотний контролер на Betaflight перейшов із режиму serialpassthrough у стандартний режим, його необхідно перезавантажити, відключивши від живлення та USB.

Монтаж камери на борт

В теці  Курбас Маунт ви знайдете 3 версії кріплення камери на борт, камера кріпиться болтом M3x30 та контргайкою М3 або для фіксації нанести фіксатор різьби на гайку без фіксатора. Орієнтуйтеся на те що шлейф приєднується в нижній частині камери.  

Робота з USB інтерфейсом

  1. Під'єднайте камеру до USB (живлення також можна брати з USB)

  2. Система розпізнає її як мережевий інтерфейс з IP-адресою 10.0.0.2, маскою підмережі 255.0.0.0 та шлюзом 10.0.0.1. Переконайтеся, що в налаштуваннях мережі ці параметри встановлено саме так.


    Залежно від операційної системи спосіб введення чи перевірки цих даних може відрізнятися, однак необхідно вказати саме ці значення.

  3. Після того як усе буде під’єднано й мережу налаштовано, камера надсилатиме UDP-пакети з кадрами на порт 5000.

Кожен байт - це піксель, тобто всього приходить 256 * 192 = 49,152 байта на кадр в одному upd пакеті. Ніякого стиснення. Це не RTP, а звичайний буфер по UDP

Щоб швидко побачити картинку, цей буфер можна зберегти в файл, і потім конвертувати в картинку:

ffmpeg -f rawvideo -pixel_format y8 -video_size 512x192 -i image.raw -frames:v 1 -vf "format=gray" image.bmp

або скористайтеся Python прикладом коду для отримання відео

import socket

import cv2

import numpy as np

udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

udp_socket.bind(('0.0.0.0', 5000))

print("Listening on UDP port 5000...")

while True:

   data, _ = udp_socket.recvfrom(65536)

   if len(data) == 256 * 192:

       frame = np.frombuffer(data, dtype=np.uint8).reshape((192, 256))

       frame_resized = cv2.resize(frame, (720, 576), interpolation=cv2.INTER_LINEAR)

       cv2.imshow("Y8 Video", frame_resized)

       if cv2.waitKey(1) == 27:

           break

cv2.destroyAllWindows()

Чи була наша стаття корисною?