Товары из Китая

Делаем небюджетный тепловизор своими руками


Делаем небюджетный тепловизор своими руками

Кто из посмотревших фильм «Хищник» не мечтал обладать термальным зрением как инопланетный охотник? В наше время это не сложно, но достаточно дорого: не каждый может позволить себе купить тепловизор, хотя в последнее десятилетие, с развитием технологий, они стали гораздо доступнее. Одним из многих проектов на ардуино, которым я был очарован и вовлечен в удивительный мир микроконтроллеров, был как раз тепловизор, если его можно так назвать. Устройство на основе однопиксельного бесконтактного датчика температуры и системы механической развертки хотя меня и сильно впечатлило, но я так и не повторил его, так как, честно сказать, скорость его работы совсем не впечатляла. К слову сказать, датчик MLX90614, использованный в том проекте, достаточно дорогой (по стоимости за пиксель) по сравнению с теми, речь о которых пойдет дальше.

Disclaimer

Топик должен был называться «делаем бюджетный тепловизор», но за то время, пока у меня не доходили до него руки, ситуация изменилась и он стал весьма небюджетным. О текущих ценах на комплектующие в конце статьи.

Тема тепловизоров меня захватила и я всегда с интересом следил за новостями в этой области электроники. Очевидно, чтобы не использовать систему механической развертки нужен датчик большего разрешения, я составил для себя список таких датчиков, но многие из них были недоступны для покупки. Еще недавно на просторах интернета можно было встретить истории, что продавец отказывался отправлять подобные датчики в нашу страну, считая их устройством двойного назначения. Когда же в свободной продаже на aliexpress появился модуль с датчиком AMG8833, а в сети появились проекты с его использованием, я не смог противостоять желанию получить его, хотя стоимость и превышала почти вдвое ежемесячный лимит, отведенный мною на покупки. Датчик был приобретен за 37$ (сейчас его можно купить за 28$). Конечно разрешение у сенсора очень низкое для какого бы то ни было практического использования в качестве тепловизора, но его достаточно, чтобы получить массу восторга, впервые взглянув на мир «глазами хищника».

«селфи» снятое на AMG8833

Делаем небюджетный тепловизор своими руками

Вдоволь поэкспериментировав с AMG8833, я отложил его для будущего использования и стал думать о большем. Ведь все на том же aliexpress в продаже появились модули на базе сенсора MLX90640 с разрешением 32*24 и ценой в 60-70$. С таким разрешением возможно использовать его для каких то практических целей, ну и конечно поиграть серьезнее.

Особенности MLX90640:

— Диапазон рабочих температур от -40 до 85 ° C, позволяет использовать в сложных промышленных условиях

— Может измерять температуру объекта от -40 до 300 ° C

— Типичная точность измерения температуры целевого объекта 1 °, точность по всей шкале измерения

— NETD всего 0,1K RMS при частоте обновления 1 Гц

— Не требуется повторная калибровка для конкретных температурных требований, что обеспечивает большее удобство и снижает эксплуатационные расходы

— Два варианта поля зрения (FoV): стандартное (MLX90640BAB) 55 ° x35 ° и широкоугольное (MLX90640BAA) 110 ° x75 ° Матрица с широкоугольным полем зрения обладает меньшим шумом и большей точностью измерения.

— 4-контактный корпус TO39 с необходимой оптикой

— Цифровой интерфейс, совместимый с I²C, упрощающий интеграцию

Отдельно датчик можно было приобрести примерно за 55-60$ в зависимости от версии. Но мне интереснее модули с обвязкой. Есть несколько вариантов таких модулей:

1. Модули, включающие сам сенсор и его обвязку для питания и работы с микроконтроллером по шине I2C.

Делаем небюджетный тепловизор своими руками

Делаем небюджетный тепловизор своими руками

2. Модули для платформы M5STACK/M5STICK, такие модули содержат необходимую обвязку для питания сенсора и работы с микроконтроллером по шине I2C.

Делаем небюджетный тепловизор своими руками

3. Модули с микроконтроллером, реализующим UART интерфейс. Для работы с таким модулем можно обойтись без внешнего микроконтроллера, подключив его к ПК через USB-UART конвертер, я встречал 2 варианта таких модулей. Программное обеспечение для ПК позволяет визуализировать исходное тепловое изображение с сенсора или с программной интерполяцией.

Делаем небюджетный тепловизор своими руками

4. Следующим вариантом развития модулей с микроконтроллером являются модули, в которых реализован USB интерфейс и которые можно напрямую подключать к ПК, при этом сохранен UART интерфейс и доступна шина I2C самого сенсора. Для доступа к сенсору по I2C нужно замкнуть конденсатор сброса (который еще нужно найти).

Делаем небюджетный тепловизор своими руками

5. Наконец последним вариантом является модуль Red Eye Camera, в котором также реализован USB интерфейс, но, насколько я понял, нет возможности получить сырые данные с сенсора по I2C, при этом доступен UART. Судя по картинкам на странице товара для данного модуля есть ПО для Android.

Делаем небюджетный тепловизор своими руками

Мне хотелось иметь возможность для взаимодействия с сенсором по I2C, поэтому я выбрал модуль под номером 4, в котором есть эта возможность, а также реализован USB интерфейс. Со всевозможными скидками на распродаже 11.11.2019 г. этот модуль был приобретен за 54,31$.

Такой довольно дорогой модуль поставлялся в упаковке без какой бы то ни было защиты, к счастью не пострадал. Размеры модуля 28*15 мм.

К сожалению, не удалось найти никакой другой информации о данном модуле кроме представленной на странице товара: ни схемы, ни ПО. На модуле указано его название, версия и дата — «mlx_module v3.1.0 20190608. Но поиск по данному обозначению не дал никаких результатов. У всех продавцов одни и те же фото и описание товара.

Я не терял надежды, что драйвера под Windows найдутся автоматически, но чуда не произошло. При подключении в диспетчере устройств появилось новое неизвестное устройство с com-портом, после поиска драйверов оно было идентифицировано как трекбол, но драйвера не были правильно установлены. При этом в системе еще появляется com-порт. Я попытался использовать ПО от аналогичного модуля без usb, но безрезультатно: видимо протоколы обмена данными через UART у этих модулей отличаются. При последующих подключениях оно вообще не обнаруживалось.

Остался второй вариант использования данного модуля – подключение непосредственно к сенсору по шине I2C. Для этого, согласно информации на странице товара, необходимо замкнуть конденсатор сброса. Осталось найти его на плате среди десятка конденсаторов.

На плате установлены следующие компоненты:

— микроконтроллер STM32F301K6;

— USB-UART конвертер CH340;

— стабилизатор напряжения;

— кварцевый резонатор;

— резисторы и конденсаторы.

Вид сверху.

Делаем небюджетный тепловизор своими руками

Вид снизу.

Делаем небюджетный тепловизор своими руками

Чтобы найти нужный конденсатор, пришлось изучить даташит на микроконтроллер STM32F301K6 и прозвонить саму плату. Конденсатор, подключенный к пину reset микроконтроллера STM32, выделен на фотографии красным. Потребовалась довольно тонкая работа, чтобы замкнуть его с помощью кусочка провода МГТФ.

Делаем небюджетный тепловизор своими руками

Я проверил несколько примеров работы сенсора с ESP32. Для итоговой реализации я использовал в качестве управляющей платформы TTGO T-Watch, о которой можно узнать из моих обзоров: раз, два. Для подключения сенсора к T-Watch я использовал прото-шилд для Wemos D1 mini и угловые штырьковые гребенки. Получилось довольно компактно, конечно, корпус бы не помешал. Взяв за основу данный проект, я переделал его под TTGO T-Watch, а также добавил интерполяцию и возможность сохранения фотографий на microSD.

Пример сохраненных фото с «тепловизора».

Делаем небюджетный тепловизор своими руками

Делаем небюджетный тепловизор своими руками

Ещё несколько примеров фотографий

Делаем небюджетный тепловизор своими руками

Делаем небюджетный тепловизор своими руками

Делаем небюджетный тепловизор своими руками

Делаем небюджетный тепловизор своими руками

Фотографии сделаны до реализации интерполяции в разрешении 32*24 пикселей. А на видео уже пример работы с интерполяцией, с разрешением 64*48. Частота кадров составляет всего 4 кадра в секунду она зависит от частоты опроса датчика и задается программно, частоту можно увеличить до 32 при этом увеличится погрешность измерений.

Дополнительная информация
Я так же проверил работу сенсора MLX90640 c OpenMV

Несмотря на столь небольшое разрешение сенсора MLX90640 его вполне можно использовать для множества целей:

— поиск утечек тепла в доме, при утеплении лоджии проверено на личном опыте;

— поиск греющихся элементов на плате, конечно самые мелкие детали будут неразличимы, но тем не менее такой инструмент может быть полезен;

— контроль присутствия людей, там где нет возможности использовать видеокамеру, человека можно заметить с расстояния порядка 10 м;

— пожарная безопасность;

Функции и улучшения, которые я хотел бы добавить к «тепловизору»:

— переделать проект под большой дисплей с тачскрином;

— добавить поддержку LVGL и сделать красивый дизайн с меню;

— увеличить разрешение сохраняемых изображений;

— добавить возможность потоковой трансляции изображения по Wi-Fi.

Я хочу также реализовать следующие проекты на основе сенсора MLX9040:

— Мобильный тепловизор на основе ESP32.

— Мобильный тепловизор для андроид.

— Радиоуправляемый робот с термальным зрением.

— Камера наблюдения с режимом термальной съемки.

— Тепловизор с детектором лиц на базе kendryte k210.

— Шлем виртуальной реальности или очки с термокамерой.

P.S.

Ссылки

Скетч для Arduino IDE

Реализация интерполяции по Гауссу

Пример генерации файла *bmp на ESP32

P.S.S.

В следствие пандемии коронавируса цены на сенсор MLX90640 взлетели в несколько раз. На Aliexpress можно найти модуль примерно за 200$. В конце 2019 г. компания Sipeed обещала выпустить в скором времени модуль термокамеры с разрешением 32*32 на базе сенсора от Heimann за ~ 50$, но опять же из-за пандемии этим обещаниям не суждено было сбыться. Надеюсь в будущем ситуация улучшится.


СМОТРИ ТАКЖЕ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *