Делаем небюджетный тепловизор своими руками
Кто из посмотревших фильм «Хищник» не мечтал обладать термальным зрением как инопланетный охотник? В наше время это не сложно, но достаточно дорого: не каждый может позволить себе купить тепловизор, хотя в последнее десятилетие, с развитием технологий, они стали гораздо доступнее. Одним из многих проектов на ардуино, которым я был очарован и вовлечен в удивительный мир микроконтроллеров, был как раз тепловизор, если его можно так назвать. Устройство на основе однопиксельного бесконтактного датчика температуры и системы механической развертки хотя меня и сильно впечатлило, но я так и не повторил его, так как, честно сказать, скорость его работы совсем не впечатляла. К слову сказать, датчик 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 его вполне можно использовать для множества целей:
— поиск утечек тепла в доме, при утеплении лоджии проверено на личном опыте;
— поиск греющихся элементов на плате, конечно самые мелкие детали будут неразличимы, но тем не менее такой инструмент может быть полезен;
— контроль присутствия людей, там где нет возможности использовать видеокамеру, человека можно заметить с расстояния порядка 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$, но опять же из-за пандемии этим обещаниям не суждено было сбыться. Надеюсь в будущем ситуация улучшится.
- Часовой механизм Слава 1600 17 камней, репассаж или "О том, что было вначале".
- Стабилизированный блок питания для УМЗЧ
- МОДЕЛИН - ВЕЧНЫЙ ПЛАСТИЛИН. Лепим новогодние игрушки и не только
- Ностальгическая игрушка из детства
- Очень простой способ меднения предметов (часть 2 - гальванопластика для начинающих)
- Калибр Слава 1809 16 камней. Премилый малыш.
- Большой чёрный Амфитон-А1-01
- Спортивное табло
- Ремонт сварочника Ресанта САИ190К
- Сравнение калибров Слава 2428 или "Нефункциональные камни, ау!"
![Делаем небюджетный тепловизор своими руками Делаем небюджетный тепловизор своими руками](http://problem-info.ru/wp-content/uploads/2020/12/3-bigTopImage_2020_12_18_23_46_23-75x75.jpg)
![Делаем небюджетный тепловизор своими руками Делаем небюджетный тепловизор своими руками](http://problem-info.ru/wp-content/uploads/2020/12/cyberpunk2-bigTopImage-75x75.jpg)