RSS блога
Подписка
Делаем небюджетный тепловизор своими руками
Кто из посмотревших фильм «Хищник» не мечтал обладать термальным зрением как инопланетный охотник? В наше время это не сложно, но достаточно дорого: не каждый может позволить себе купить тепловизор, хотя в последнее десятилетие, с развитием технологий, они стали гораздо доступнее. Одним из многих проектов на ардуино, которым я был очарован и вовлечен в удивительный мир микроконтроллеров, был как раз тепловизор, если его можно так назвать. Устройство на основе однопиксельного бесконтактного датчика температуры и системы механической развертки хотя меня и сильно впечатлило, но я так и не повторил его, так как, честно сказать, скорость его работы совсем не впечатляла. К слову сказать, датчик 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$, но опять же из-за пандемии этим обещаниям не суждено было сбыться. Надеюсь в будущем ситуация улучшится.
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, упрощающий интеграцию
Отдельно датчик можно
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:
— Мобильный тепловизор для андроид.
— Радиоуправляемый робот с термальным зрением.
— Камера наблюдения с режимом термальной съемки.
— Тепловизор с детектором лиц на базе kendryte k210.
— Шлем виртуальной реальности или очки с термокамерой.
P.S.
Ссылки
Скетч для Arduino IDE
Реализация интерполяции по Гауссу
Пример генерации файла *bmp на ESP32
P.S.S.
В следствие пандемии коронавируса цены на сенсор MLX90640 взлетели в несколько раз. На Aliexpress можно найти модуль примерно за 200$. В конце 2019 г. компания Sipeed обещала выпустить в скором времени модуль термокамеры с разрешением 32*32 на базе сенсора от Heimann за ~ 50$, но опять же из-за пандемии этим обещаниям не суждено было сбыться. Надеюсь в будущем ситуация улучшится.
Самые обсуждаемые обзоры
+69 |
1569
50
|
+43 |
2896
68
|
+88 |
6329
39
|
за 200$ кмк можно купить готовое устройство.
глянул видос на сайте, будто в DOOM 2 или другой шутер играешь)
Примеры фото:
Использую для ремонта (не всегда, но находит применение), на последнем фото плата NanoVNA видно что греется процессор, диод на входе, и генератор
?
MLX90640 брал, конечно, по докризисным ценам. Контроллер — ESP32. Корпус на 3D принтере.
эта маленькая квадратная 10 ногая? Обычно CH340 в другом корпусе. Cам STM32 тут не вараинт — там нет usb.
Далее, драйвера.
Чип CH340 дремучий, под 10ку драйверов офицально быть не должно, там отдельные приключения бывают чтоб их поставить. Что там 7ка найдет — вообще не понятно. И винда не линукс — я бы не очень верил в драйвера, которые она находит. Но раз она показала com порт значит она какие то драйвера таки нашла.
А вот уже на этом компорте она нашла трекбол — на самом деле она помогла получить какойнить ответ от stm32 и ошибочно его признать за трэкбол — такии истории бывали.
Более того — в теории может занять этот порт для себя и он будет недоступен.
Если эта странная микруха сдохла — com порт больше не появиться в системе.
А проверить то com порт несложно, либо осциллографом, либо закоротить tx на rx и в терминалке лицезреть символьное эхо.
И еще цепи питания надо проверить.
Можно использовать свою платку usb — uart, но опять же CH340 надо отпаять так как она будет своими сигналами помехи создавать.
Ну а корочением reset был приведжен в безраличное соcтояние контроллер stm32. Чтобы найти этот пин достаточно было скачать даташит на STM32F301K6 и отследить дорожку. Там еще контакты не подписанные — возможно для прошивки.
Я, наверное, неправильно выразился, я имел ввиду встроенный USB-UART, хотя при покупке по описанию товара я думал, что плата определится как USB-устройство.
Именно это мне и было нужно, что бы самостоятельно управлять сенсором.
Именно так я и сделал.
2. С семейством ESP это сделать не удастся из за конфликта пинов.
3. А вот с OpenMV вполне работает, ибо там есть поддержка MLX и готовые примеры.
4. У Kendryte кривой I2C и MLX не подхватывается.
2 — у ESP и быстродействия не хватит для обработки термограммы и видео, разве что видео тоже будет 32х24 :).
У kendryte есть пример работы с аналогичным модулем на MLX90640 по UART, но к сожалению модуль отличается от моего и у них разные протоколы, поэтому не получилось проверить этот пример.
изображения совпадают. Судите сами. Ну и MLX с 55 градусным полем взять можно.
Ну, согласен, качество хреновенькое, совмещения с обычной картинкой нет, но вот для всякого быстренько посмотреть где что сильно греется, а не пальцем тыкать — оно вполне пригодно за свою-то цену.
Да, может совмещение бы не помешало с эстетической точки зрения, но на практическое использование оно не влияет.
Проект с большИм дисплеем.
Сделал тепловизор сначала на AMG8833, потом раззорился на MLX90640.
Схема здесь: forum.easyelectronics.ru/viewtopic.php?f=16&t=35969
Сенсор опрашивал микроконтроллером STM32F103CB, отображал на андроид смартфоне(планшете).
С наложением картинки от видеокамеры.
Программки писал сам :), правда, на основе примеров от адафруктов.
Да, искать греющуюся микросхему на плате и тепловые аномалии так гораздо удобнее.
Здесь: www.youtube.com/playlist?list=PLsrCW-R5z-XtUQLkNb1LJ0M1bI5LFiNrK несколько моих видеороликов
Если не оформить, поймут лишь те кто и сам такое напишет. :) И они вряд-ли будут вникать.
***
Если интересно, могу показать что внутри его. Хотя в сети полно разборов. Ищется по DANIU Portable HY-18 MLX90640
Обзор от NICKBEL
Битую смд керамику мелкую видно
Удобнее с контентом работать. можно передать соседу попользоваться. маленький экран планшетом превращается в большой.
Есть софт для ББ, хоть на ноут хоть на стационарник цепляй. При ремонте рядом повесил и исследуй.
У нас только один «отечественный производитель» оптико-электронных систем видеонаблюдения не рекомендует «направлять на солнце», а днем даже закрывать крышкой. Но все только в устной форме, наши просьбы написать письменно (т.к. несет гарантийные обязательства) остались без ответа.
Есть много факторов от которых появляются битые пиксели, в последние годы — это применение дешевых китайских матриц (я подразумеваю, оптические системы видеонаблюдения).
там даже приложение было для подготовки отчетов по обследованию объектов. Знакомый инженер пользовался при выезде к заказчику на обследование электроустановок. Говорил, что отчет принимается как документ, типа там тепловизор сертифицирован для этого