Лептон-Pythonista-MicroPython
Целью этого проекта является потоковая передача теплового видео с камеры FLIR Lepton на Iphone. Видеопоток извлекается ESP32 через VoSPI Lepton, а затем EPS32 отправляет видео на Iphone через Wi-Fi/UDP (маршрутизатор не требуется). Первая программа написана на Micropython для ESP32. Он устанавливает конфигурацию Lepton через CCI, получает видеоданные от Lepton и отправляет их на Iphone без какой-либо обработки. Вторая программа написана на Pythonista для Iphone. Он обрабатывает полученные данные и отображает изображения/видео. Программа позволяет пользователю выбирать режим: 1) AGC (8-битная шкала серого) 2) RAD/T Linear, RGB. Во втором режиме пользователь может узнать температуру, коснувшись экрана. ВНИМАНИЕ: программа не предполагает никакой калибровки Лептона. Пользователь может масштабировать изображение, делать скриншоты и записывать видео (для этого три кнопки внизу экрана).
Аппаратное обеспечение
- Айфон (8)
- ESP32 Wroom DevKit (от uPesy)
- соединительные кабели + макетная плата
- Лептон 3,5
- Коммутационная плата V2.0
Подготовка
- в boot.py настройте пароль и ssid
- в main.py: установите TIMEOUT, потоковая передача будет продолжаться в течение времени, указанного в TIMEOUT. Если вы хотите, чтобы цикл выполнялся вечно, замените длительность в цикле while на true.
- кабели согласно электрической схеме платы Lepton Breakout V2.0 и https://lepton.flir.com/getting-started/raspberry-pi-lepton/ + заземление MOSI
Использование
- включите ESP32, через 5 с синий светодиод будет мигать с частотой 1 Гц, это означает, что ESP32 ожидает выбора режима, поступающего из программы Pythonista
- в Iphone перейдите на панель конфигурации Wi-Fi и выберите соответствующую точку доступа Wi-Fi (которую вы указали в пункте 1) в разделе «Подготовка» выше). Убедитесь, что логотип Wi-Fi появился на экране Iphone.
- запустите программу Pythonista, выберите режим, синий светодиод ESP32 будет мигать быстрее (10 Гц) до завершения инициализации
- после завершения инициализации светодиод остается неподвижным, видео появляется на Iphone через две секунды после
- пользователь может увеличить масштаб (1, 1,5, 2, 2,5, 3, на всю ширину), сделать снимок экрана (файлы называются скриншотом0X.jpg, предыдущие файлы удаляются)
- пользователь может записывать видео. Файлы называются vid0X.mp4, начиная с X=0. Если vid00.mp4 уже существует, запись невозможна (невозможно перезаписать vid00.mp4), но это можно обойти, снова нажав кнопку записи (= увеличит файл имя)
- в режиме RAD (RGB) пользователь может узнать температуру, коснувшись экрана
- Верхний экран: Bad CRC: информация о качестве связи, обычно около 20-25%. qsize :размер очереди, разделяемой между потоком, который получает данные, и тем, который их обрабатывает, если все в порядке, qsize должен быть не более 2 (=обработка быстрее, чем получение данных). fps: кадров в секунду должно быть 9 (по крайней мере за пределами США, возможно, в США может быть 27?). T (только в режиме RAD): температура, полученная после прикосновения к экрану (при прикосновении к экрану появляется белая точка, см. пример видео)
- RGB: используемую палитру можно найти в папке «Pythonista», программа адаптирует цветовой диапазон к текущему температурному диапазону сцены.
- Продолжительность потоковой передачи: см. примечание в пункте 2) выше в разделе «Подготовка».
- во время потоковой передачи видео пользователь может остановить программу Pythonista и запустить ее снова, но пользователю необходимо выбрать тот же режим, который был указан изначально (изменить режим во время потоковой передачи невозможно). Примечание. В этом контексте вид появляется через 4/5 с после выбора режима. Если пользователь хочет переключиться в другой режим, ESP32 необходимо перезагрузить (затем синий светодиод начнет мигать с частотой 1 Гц и т. д.).