Тепловидение "видит" мир: инфракрасные секреты, которых вы не знаете
15 августа 2025 г.Руководство по тепловизионным модулям 2025: низкая стоимость и быстрая интеграция для инженеров | Решения мини-тепловизионных модулей 384/640
30 сентября 2025 г.Этот драйвер предназначен для "модуля тепловизионной камеры "mini2" в оригинальном драйвере обозначаемого как rs300.
Некоторые основные характеристики
"mini2" — это тепловизионная камера, выпускаемая в нескольких разрешениях. Для измерения температуры требуется другой модуль или вариант.
Доступные разрешения:
- 256x192 - 25/50 Гц (25/50 Гц доступно через USB)
- 384x288 - 30/60 Гц (30/60 Гц доступно через USB)
- 640x512 - 30/60 Гц (60 Гц НЕ поддерживается через USB)
NETD: 40 мК
Способы вывода видео
Этот модуль может выводить два одновременных видеопотока. Один цифровой, один аналоговый.
USB 2.0
- Модуль 640 ограничен 30 кадрами в секунду через USB.
- Камера совместима с UVC и работает так же, как веб-камера, но элементы управления камерой не доступны. Для модуля 256 можно даже переключать частоту кадров с 25 до 50 кадров в секунду в стандартных приложениях камеры.
- Формат пикселей — YUYV422, но с помощью SDK его можно изменить на другой порядок, например UYVU.
- Для отправки команд на камеру через USB, таких как изменение яркости, калибровка затвора, смена цветовых карт, потребуется использовать предоставленный SDK. SDK предназначен для Windows и Linux.
MIPI
- Позволяет получить цифровые 60 кадров в секунду с модулем 640.
- Специальная печатная плата имеет 15-контактный разъем, совместимый с портом камеры MIPI CSI-2 Raspberry Pi 4B. Для подключения RPi 5, 0 и CM можно использовать переходной кабель с 15 на 22 контакта.
- Использует драйвер rs300 для подключения к Pi. Реализует команды камеры через I2C без необходимости в SDK или предварительно скомпилированных бинарных файлах. По возможности команды можно сделать совместимыми с V4L2 для простой интеграции.
CVBS
- Аналоговый выход можно настроить на NTSC или PAL.
- Может выводиться одновременно с USB или MIPI.
- Отображаются только цветовые карты White Hot и Black Hot. Пока что все остальные параметры, похоже, одинаково влияют на аналоговый видеопоток: яркость, контрастность, шумоподавление, цифровое улучшение деталей (DDE) и цифровой зум.
Установка
Предварительные требования
- Raspberry Pi с Raspbian/Raspberry Pi OS Bookworm (Bullseye не тестировалась)
- Установленные заголовки Linux
- Поддержка DKMS
Сборка и установка
Установите необходимые заголовки:
sudo apt install linux-headers dkms git
ИЗМЕНИТЕ ДРАЙВЕР ПЕРЕД СБОРКОЙ. Вскоре это будет улучшено, чтобы параметры можно было задавать без изменения кода драйвера
static int mode = 2; //0-640; 1-256; 2-384
static int fps = 60; //256: 25/50 кадров/с, 384/640: 30/60 кадров/с
Запустите сценарий установки:
git clone https://github.com/Kodrea/rs300-v4l2-driver.git
cd /rs300-v4l2-driver
# измените драйвер для выбора модуля
sudo nano rs300.c
chmod +x setup.sh
./setup.sh
В файле config.txt добавьте оверлей
sudo nano /boot/firmware/config.txt
Затем добавьте
camera_auto_detect=0
dtoverlay=rs300
Then reboot
sudo reboot
Usage
Viewing Device Information
The camera should now be linked to the Raspberry Pi's Unicam driver and available on /dev/video0 Get basic information about the Unicam bridge driver:
v4l2-ctl --list-devices
v4l2-ctl --all -d /dev/video0
The actual camera is registered as a sub device in the driver
v4l2-ctl -d /dev/v4l-subdev0 --list-ctrls
Testing Video Capture
Set the format resolution for the appropriate module
Mini2-256
v4l2-ctl -d /dev/video0 --set-fmt-video=width=256,height=192,pixelformat=YUYV
Mini2-384
v4l2-ctl -d /dev/video0 --set-fmt-video=width=384,height=288,pixelformat=YUYV
Mini2-640
v4l2-ctl -d /dev/video0 --set-fmt-video=width=640,height=512,pixelformat=YUYV
gstreamer
gstreamer and has been faster than ffmpeg for me first install this
sudo apt install gstreamer1.0-tools
set test-overlay=false to remove fps counter
Mini2-256
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=YUY2,width=256,height=192,framerate=50/1 ! videoconvert ! fpsdisplaysink video-sink=autovideosink text-overlay=true
Mini2-384
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=YUY2,width=384,height=288,framerate=60/1 ! videoconvert ! fpsdisplaysink video-sink=autovideosink text-overlay=true
Mini2-640
gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=YUY2,width=640,height=512,framerate=60/1 ! videoconvert ! fpsdisplaysink video-sink=autovideosink text-overlay=true
Camera Controls
use v4l2 controls
this triggers the ffc shutter calibration
v4l2-ctl -d /dev/v4l-subdev0 --set-ctrl=ffc_trigger=0
Change colormaps
v4l2-ctl -d /dev/v4l-subdev0 --set-ctrl=colormap=3
Common Issues and Solution
- Wrong resolution: Make sure to set the stream to your modules resolution. By default the Unicam driver will have it as 640x480
Troubleshooting
If experiencing issues:
- Check kernel messages:
dmesg | grep rs300 - In a seperate terminal:
dmesg wH - Verify I2C connection:
i2c-detect -y 1 - Check for device:
ls -la /dev/video* - I started getting a message that postinst wasn't running, but it's only needed for the first time or if changes to the device tree overlay are made
./setup.sh
sudo sh /usr/src/rs300-0.0.1/dkms.postinst
Various Other Commands I used for troubleshooting
TODO: Cleanup this section
cd rs300-v4l2-driver
chmod +x setup.sh dkms.postinst
Install DKMS if not already installed
sudo apt install linux-headers dkms git
Run the setup script
Check DKMS status and if module is loaded
dkms status
lsmod | grep rs300
modinfo rs300
check i2c devices
ls /dev/i2c*
i2cdetect -l
i2cdetect -y 10 # right now it's bus 10 for me
i2cdump -f -y 10 0x3c # i2c 10, 0x3c is your device address
check v4l2 devices
ls /dev/video*
v4l2-ctl --list-devices
v4l2-ctl -d /dev/video0 --all
# List supported formats
v4l2-ctl -d /dev/video0 --list-formats-ext
# List supported controls
v4l2-ctl -d /dev/video0 --list-ctrls
# Show current input/output
v4l2-ctl -d /dev/video0 --info
set v4l2 parameters manually; resolution, fps, etc
v4l2-ctl -d /dev/video0 --set-fmt-video width=256,height=192,pixelformat=YUYV
v4l2-ctl -d /dev/video0 --set-fmt-video=width=640,height=512,pixelformat=YUYV
v4l2-ctl --stream-mmap -d /dev/video0 -o test.yuv
ffplay -f v4l2 -input_format yuyv422 -video_size 256x192 -i /dev/video0
ffplay -f v4l2 -input_format yuyv422 -video_size 640x512 -i /dev/video0
Rebuild the module
cd rs300-v4l2-driver
./setup.sh
Check after rebuild and reboot
i2cdetect -l
i2cdetect -y 10
lsmod | grep rs300
dmesg | grep -i rs300
modinfo rs300
media-ctl -p
ls /dev/v4l-subdev*
v4l2-ctl --list-devices
v4l2-ctl -d /dev/video0 --all
v4l2-ctl -d /dev/video0 --list-ctrls
v4l2-ctl -d /dev/v4l-subdev0 --list-ctrls
v4l2-ctl -d /dev/video0 --list-formats-ext
vcgencmd get_camera
v4l2-ctl -d /dev/v4l-subdev0 --all
sudo cat /dev/kmsg | grep rs300
v4l2-ctl -d /dev/video0 --stream-mmap -o test.yuv
sudo dmesg -wH
ffplay -f video4linux2 -input_format yuyv422 -video_size 256x192 -i /dev/video0
ffplay -f video4linux2 -input_format yuyv422 -video_size 640x512 -i /dev/video0












