Примітка: камера наразі підтверджено працює з Raspberry Pi 5, Raspberry Pi Zero 2 W та Orange Pi 5.
Загальна схема підключення
- Припаяйте USB-кабель до комплектного проводу камери за схемою:
Камера USB Сигнал Червоний Червоний Power Positive Чорний Чорний Power Negative Зелений Зелений USB_2.0_DP Білий Білий USB_2.0_DM - Вставте кабель у конектор USB на платі
- Перевірте камеру в консолі
- Встановіть інструменти для перевірки камери
sudo apt update && sudo apt install -y v4l-utils ffmpeg
- Переконатись, що камера визначилась. Введіть команду і у виводі знайдіть блок, у назві якого в дужках є префікс usb-… — це ваша підключена USB-камера, а перший рядок під ним (зазвичай /dev/video0) указує на відеопотік, який слід використовувати; якщо такого блоку немає, система не розпізнала камеру й потрібно перевірити кабель, живлення або спробувати перепід’єднання
v4l2-ctl --list-device
- Перевірте зображення камери
ffplay -f v4l2 -video_size 640x512 -i /dev/video0
Перевірка камери через Python + OpenCV (додаткова перевірка)
- Встановіть інструменти для перевірки камери
sudo apt update
sudo apt install -y python3-opencv python3-numpy v4l-utils
- Переконатись, що камера визначилась. Введіть команду і у виводі знайдіть блок, у назві якого в дужках є префікс usb-… — це ваша підключена USB-камера, а перший рядок під ним (зазвичай /dev/video0) указує на відеопотік, який слід використовувати; якщо такого блоку немає, система не розпізнала камеру й потрібно перевірити кабель, живлення або спробувати перепід’єднання
v4l2-ctl --list-devices
- Перейдіть у домашню папку
cd ~
- Створіть файл
nano test.py
- Скопіюйте й вставте код:
import cv2
import time
DEVICE = "/dev/video0" # замініть, якщо іншій нод
WIDTH, HEIGHT = 640, 512
cap = cv2.VideoCapture(DEVICE, cv2.CAP_V4L2)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, WIDTH)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, HEIGHT)
if not cap.isOpened():
raise IOError(f"Не вдалося відкрити {DEVICE}")
print("Натисніть 'q' для виходу")
t0, frames = time.time(), 0
while True:
ret, frame = cap.read()
if not ret:
print("Кадр не зчитано"); break
cv2.imshow("UVC 640×512", frame)
frames += 1
if cv2.waitKey(1) & 0xFF == ord('q'):
break
print(f"Середній FPS: {frames / (time.time() - t0):.1f}")
cap.release()
cv2.destroyAllWindows()
- Збережіть код → Ctrl + O, Enter, вийдіть → Ctrl + X.
- Запустіть файл
python3 test.py