Репозиторій містить набір утиліт для віддаленої взаємодії з камерою на основі RaspberryPi
SBC\Камера | Camera module 3 | Camera module 2 |
---|---|---|
RPi5 | ✅ | ❓ |
RPi4 | ✅ | ❌ |
Для того щоб збілдити потрібну програму, виконується команда
make -C {dir name}
де dir name це назва директорії з програмою.
Наприклад:
make -C servo_cam
Важливо - у сервера завжди має бути публічна IP адреса.
Робота данного набору програм заснована на техніці реверсивного підключення.
- Навіщо? - Щоб мати можливість керувати віддаленим девайсом навіть якщо у нього приватний IP.
- Чому саме реверсивне підключення? - Тому-що хост з публічним IP не може підключитися до хосту з приватним IP. Але хост з приватним IP може підключитися до хосту з публічним айпі. Тому саме девайс з підключається до клієнта, тому-що може бути необхідність розмістити девайс будь де і може не бути можливості надати девайсу публічний статичний IP, до якого клієнт завжди зможе підключитися. З іншого боку, сервер зобов'язаний мати публічний статичний IP, який буде прописаний у конфігурації девайсу як дефолтний - до якого девайс буде підключатися при запуску прошивки, або при подачі живлення.
В даному випадку сервер використовується як проміжна ланка для встановлення прямого підключення між клієнтом та девайсом для подальшого спілкування між ними.
В даному випадку сервер використовується як проксі для непрямого спілкування між клієнтом та девайсом.
Програма надає можливість отримувати відео з камери, підключеної до RPi, та керувати положенням камери двома сервоприводами. Для роботи також потрібні клієнт та сервер з білим айпі.
Назва | Посилання |
---|---|
wiringPi | link |
libconfuse | |
Клієнт та сервер | link |
servo_cam/camera.py |
має бути скопійований у /etc/servo_cam/camera.py |
Назва опції | Опис | Обов'язкова наявність |
---|---|---|
ip_addr | IP адреса дефолтного сервера, до якого підключається програма після запуску |
так |
port | Порт дефолтного сервера | так |
name | Ідентифікатор - ім'я, яке камера повідомляє серверу після підключення. З цим іменем клієнт звертається до сервера з командою підключення камери. |
так |
Програма, що запускає камеру.
Може бути використана напряму для стріму JPEG кадрів по UDP
camera.py --ip [target ip] --port [target port]
З простору С-коду запускається так само після створення дочірнього процесу системним викликом fork
.
Назва | Посилання |
---|---|
picamera2 | link |