Тепловизор на ардуино mlx90916 скетч. Создание тепловизора на базе Arduino: пошаговая инструкция и применение

Как собрать бюджетный тепловизор на Arduino своими руками. Какие компоненты потребуются для сборки самодельного тепловизора. Как работает тепловизор на Arduino и MLX90614. Где можно применять самодельный тепловизор на практике.

Компоненты для сборки тепловизора на Arduino

Для создания бюджетного тепловизора на базе Arduino понадобятся следующие компоненты:

  • Микроконтроллер Arduino UNO
  • Инфракрасный датчик температуры MLX90614-BCI
  • Два сервопривода
  • Веб-камера
  • Лазерная указка
  • Два резистора на 4.7 кОм
  • Корпус и крепления для сервоприводов
  • Штатив или подставка

Ключевым элементом является датчик MLX90614-BCI с узким полем зрения. Он позволяет точечно измерять температуру объектов. Сервоприводы обеспечивают механическое сканирование пространства датчиком.

Принцип работы самодельного тепловизора

Тепловизор на Arduino работает по следующему принципу:

  1. Сервоприводы поворачивают датчик MLX90614 по заданной траектории
  2. Датчик последовательно измеряет температуру в разных точках
  3. Arduino собирает данные с датчика
  4. Специальное ПО на компьютере формирует тепловое изображение

Таким образом, происходит поточечное сканирование пространства с построением тепловой карты. Веб-камера и лазер помогают настроить область сканирования.


Пошаговая сборка тепловизора на Arduino

Процесс сборки тепловизора включает следующие этапы:

  1. Размещение платы Arduino в корпусе
  2. Крепление сервоприводов и поворотного механизма
  3. Подключение датчика MLX90614 к Arduino согласно схеме
  4. Монтаж веб-камеры и лазерной указки
  5. Сборка конструкции на штативе или подставке
  6. Загрузка скетча в Arduino
  7. Установка программного обеспечения на компьютер

Особое внимание следует уделить точной настройке положения датчика, камеры и лазера. Они должны быть направлены в одну точку для корректной работы.

Калибровка и настройка тепловизора

Перед использованием тепловизор необходимо откалибровать:

  • Задать координаты области сканирования с помощью лазерной указки
  • Выбрать разрешение получаемого теплового изображения
  • Настроить цветовую палитру для отображения температур
  • Провести тестовое сканирование и при необходимости скорректировать параметры

От качества калибровки зависит точность полученных термограмм. Рекомендуется периодически проверять настройки тепловизора.


Преимущества и недостатки самодельного тепловизора

Основные преимущества тепловизора на Arduino:

  • Низкая стоимость по сравнению с промышленными аналогами
  • Возможность самостоятельной сборки и модификации
  • Достаточная точность измерений для бытового применения

К недостаткам можно отнести:

  • Длительное время получения одного кадра (до 2 минут)
  • Невозможность съемки движущихся объектов
  • Ограниченное разрешение термограмм
  • Необходимость подключения к компьютеру

Однако для многих задач эти ограничения некритичны, а низкая цена компенсирует недостатки.

Области применения самодельного тепловизора

Несмотря на ограничения, тепловизор на Arduino может применяться во многих сферах:

  • Диагностика электрооборудования и поиск перегревов
  • Обнаружение утечек тепла в зданиях
  • Контроль температуры механизмов и устройств
  • Выявление источников возгорания
  • Образовательные и научные эксперименты

Для профессионального энергоаудита такой тепловизор не подходит из-за длительности съемки. Но для бытовых задач его возможностей вполне достаточно.


Перспективы развития проекта

Проект самодельного тепловизора на Arduino имеет потенциал для улучшения:

  • Использование более совершенных ИК-датчиков
  • Оптимизация алгоритмов сканирования
  • Разработка автономной версии без подключения к ПК
  • Создание мобильного приложения для управления
  • Интеграция с другими DIY-проектами

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

Часто задаваемые вопросы о самодельном тепловизоре

Какова точность измерений самодельного тепловизора на Arduino? Точность измерений в основном определяется характеристиками датчика MLX90614. При правильной калибровке погрешность составляет около ±2°C, что достаточно для большинства бытовых применений.

Сколько времени занимает получение одного кадра? Время сканирования зависит от выбранного разрешения изображения. Для режима 64×48 пикселей съемка занимает около 2 минут. Режим с меньшим разрешением работает быстрее, но дает менее детальную картинку.


Можно ли использовать тепловизор на улице? Использование на улице возможно, но требует защиты электроники от влаги и пыли. Также следует учитывать, что сильный ветер или солнце могут искажать результаты измерений.

Какое максимальное расстояние до объекта съемки? Эффективная дальность работы составляет около 1-2 метров. На большем расстоянии точность измерений существенно снижается из-за характеристик датчика MLX90614.

Можно ли модифицировать тепловизор для съемки движущихся объектов? Принцип работы данной конструкции не позволяет снимать движущиеся объекты. Для этого потребуется использовать матричный ИК-сенсор вместо точечного, что значительно усложнит и удорожит проект.


Тепловизор на платформе Arduino UNO / Хабр

Предисловие

Шел 6-й семестр обучения, перед нами (т.к. над проектом работали 3 человека) стала серьёзная задача — необходимо сделать аппаратный курсовой проект. Было много различных идей: автопилот для автомобиля, прибор ночного видения и др. Но выбор пал на тепловизор, так как он получался не сильно простым и не сильно затратным. Да и кто не мечтал о своем личном тепловизоре? В данной статье мы расскажем о том, как нам удалось собрать тепловизор с довольно неплохими характеристиками в домашних условиях.

Подготовка

Прежде всего, необходимо было определиться, какие модули нам были необходимы для создания недорогого тепловизора, но при этом обладающего приемлемыми характеристиками. В итоге, взвесив все «за» и «против», было решено построить тепловизор на основе сервокронштейна, образованного из двух сервоприводов, ИК-датчика, лазера для лучшего позиционирования сканируемой области, а также Arduino для управления сигналами устройства.

Определившись с нужными модулями, необходимо было это все где-то купить. Необходимый нам ИК-датчик оказался довольно редким и не самым дешевым. Но всё это нашлось в известном китайском интернет-магазине, оставалось только дождаться, пока придут посылки.

Разработка схемы

Для воплощения нашей задумки мы решили остановиться на Arduino UNO. Мы решили выбрать именно её, так как у нас уже был опыт работы с этой платформой и требовалась быстрота сборки устройства. На схеме в качестве подтягивающих резисторов R1 и R2 используются резисторы номиналом 4.7 кОм. В качестве ИК-датчика был выбран MLX90614 bci. В основном из-за того, что у него узкое поле зрения, а также из-за его легкости в эксплуатации. Также датчик достаточно компактный и мало весит, что облегчает работу сервоприводам, которые и так работали с небольшими заеданиями. Для лазера и сервокронштейна были выбраны первые приглянувшиеся, совместимые с arduino, модули. С лазером повезло (да и что могло быть не так с лазером), а сервоприводы, как уже упоминалось, пришли не очень хорошие — плохо реагировали на короткие передвижения, часто заедали. Пришлось раскручивать и смазывать, что немного улучшило ситуацию.

Сборка тепловизора

Со сборкой схемы проблем не возникло. После того, как схема была собрана и проверена на работоспособность, стало необходимо спрятать всё ненужное, дабы всё выглядело приемлимо и не было лишних вопросов. Было несколько вариантов, но так как лежал бесхозным кусок оргстекла, то выбор был очевиден. Поэтому мы решили изготовить корпус из оргстекла, в котором будут лежать все провода и плата, а наверху оставить только сервокронштейн с датчиками и лазером. Как мы считаем, получилось красиво и практично.

Процесс сборки представлял собой шлифовку оргстекла (очень долгую шлифовку, чтобы не видеть всё, что за ним находится). Также мы решили закрепить сервокронштейн на каркасе. После данных манипуляций весь каркас был просто посажен на клей.

Так выглядело наше устройство на пути к полной готовности:

Инфракрасный датчик был соединен с лазером и закреплен на сервокронштейне. Данная конструкция, несмотря на все недочеты, показала себя на хорошем уровне. Все модули, за исключением заедающих сервоприводов, выполняли возложенные на них функции. В результате у нас получилось вот такое компактное устройство:

Работа с тепловизором

Самым простым способом управлять устройством является управление с компьютера. Питание также осуществляется от компьютера. Датчик посылает данные измерений в com-порт. Поэтому была написана программа для подачи команд устройству и считывания данных с датчика.

Алгоритм работы тепловизора довольно прост:

  • Открываем com-порт arduino
  • Осуществляем позиционирование датчика. Для задания области сканирования устанавливаются 2 точки: bot — нижняя левая точка изображения, mid — центр изображения.
  • Запускаем сканирование (сканирование ведётся примерно 2 минуты при использовании режима «64х48 пикселей»)
  • Собираем полученные от датчика данные в массив
  • Формируем изображение

Интерфейс программы

Как можно видеть на скриншоте, интерфейс программы выполнен в минималистичном стиле — только всё самое необходимое для работы. Названия кнопок говорят сами за себя. При нажатии на определённый пиксель тепловой карты будет выведена соответствующая ему температура. Цвета для температуры выбираются относительно текущих результатов сканирования, т.е. самая высокая температура будет обозначена красным, а самая низкая — синим, пусть даже эти значения будут отличаться на 2-3 градуса.

Как можно проверить работоспособность тепловизора? Конечно же просканировав одного из его создателей! Как можно видеть из представленной выше тепловой карты, самым горячим местом является лоб – аж 33,42 ºС. Существуют определенные проблемы с “дальнобойностью” датчика – на расстоянии более чем в 50 см результаты имеют довольно большую погрешность. Но на близком расстоянии показатели температуры определяются очень точно.

Ниже можно увидеть ещё один пример работы устройства:

Как показывает сканирование, температура воды внутри стакана находится на уровне 38 ºС.

А вот и видео с демонстрацией работы тепловизора:

Для интересующихся представлены ссылки на исходный код прошивки и приложение:

Прошивка
Приложение

Итоги

У нас получилось устройство, которым можно сканировать небольшие статические предметы.

Но есть и минусы — оно совсем непригодно для больших предметов, а если предмет движется, то нет и малейшего шанса получить правильную картину. Однако несомненным плюсом этого устройства является его дешевизна. Все промышленные тепловизоры стоят несколько тысяч долларов, порой и несколько десятков тысяч. И для простого человека промышленный тепловизор совершенно бесполезен, побалуется неделю и положит его пылиться на полку. А для домашних экспериментов достаточно будет и нашего устройства, дешевого и простого.

Самодельный тепловизор на базе Arduino — ER-KA.RU

ka 889 Views Комментариев Arduino, Измерения, Своими руками, Тепловизор, Электроника

Не секрет что каждый из нас хоть раз но мечтал получить в свои руки настоящий тепловизор. Ведь это уникальный шанс взглянуть на мир вокруг совершенно «другими глазами», увидеть скрытое и возможно даже глубже познать суть некоторых явлений. И единственной преградой к этой мечте служит цена подобных устройств. Не смотря на весь прогресс, она остается непомерно высокой для простого смертного.
Однако подобно лучу света в непроглядном мраке безысходности на свет появилась разработка двух студентов из Германии. Их устройство на базе микроконтроллера Arduino является довольно простым в изготовлении и существует аж с 2010 года.
Создателями данного чуда являются Макс Риттер и Марк Коул из города Миндельхейм, что в Германии. Их проект принес им награду на научно-техническом молодежном форуме в 2010 году, и с тех самых пор в сети имеются исходники с подробным описанием конструкции.

Низкая стоимость устройства достигается благодаря использованию одного-единственного температурного датчика MLX90614, подобного тому, что используются в пирометрах и системы механической развертки изображения, состоящей из двух сервоприводов. Таким образом, датчик по сути обходит будущую картину, точка за точкой сканируя температуру. Само-собой, это выливается в долгое время получения изображения, что и является главным недостатком самодельного тепловизора. Но ведь если вспомнить о том, сколько мы сэкономили на цене, на это глаза сами-собой закрываются.

Итак, из компонентов для создания устройства, понадобится:

  • Старая веб-камера, разумеется, рабочая;
  • Микроконтроллер Arduino;
  • Сервоприводы, 2 штуки;
  • Датчик температуры MLX90614-BCI;
  • Китайская лазерная указка;
  • Корпуса для сервоприводов;
  • Любой штатив (оптимально).
  • Два резистора на 4.7кОм.

 

[sociallocker]

Веб-камера
Камера здесь будет являться источником исходной картинки а также своеобразным видоискателем для области сканирования. Подойдет практически любая дешевая вебка. Я нашел у себя в бардаке старую-добрую Logitech. Если же подходить к вопросу практично, чем меньше веб-камера по размерам, тем лучше. Поэтому огромный корпус моей старушки пришлось снять.

Сервоприводы и крепления
К этому моменту тоже можно подступиться с широким размахом. Нам понадобятся 2 сервопривода — один будет отвечать за движение по вертикали, второй по горизонтали соответственно. Учитывая, что на горизонтальном приводе держится и вертикальный и сама веб-камера, стоит взять более мощный. Хотя многие, уже сделавшие устройство спокойно пользуются одинаковыми маломощными.
Крепления для сервоприводов в оригинале называются «поворотно-наклонным механизмом» а у нас «Серво-кронштейном»
В сборе данный элемент конструкции выглядит примерно так:

Нижний привод крепится к штативу или другому корпусу/подставке туда же надо вставить и лазерную указку, к вертикальному сервоприводу приделывается веб-камера и датчик MLX90614 путем хитрых манипуляций с клеем или деталями от конструктора или например запчастями от старых электросчетчиков (как у меня).

Датчик температуры MLX90614-BCI
Самая сложная часть данной конструкции. Сложная в плане добычи. Найти его непросто (по крайней мере на отечественных сайтах) и он является самой дорогой частью конструкции. Сам я ждал его около двух месяцев, везли видимо из Китая. Подсказать где взять не смогу, ибо ту лавочку уже прикрыли. Автор проекта ссылается на Futureelectronics.
При выборе необходимо обратить особое внимание на последние буквы «BCI» в названии, что означает наличие у датчика насадки для обеспечения узкого поля зрения. Выглядит он так:

Сборка тепловизора

1. Для начала необходимо разместить плату Arduino в корпус с батарейным отсеком
2. При помощи суперклея или эпоксидки закрепите серводвигатель в пустом пространстве впереди Arduino.
3. Разместите второй серводвигатель в поворотное устройство и закрепите всю конструкцию на серводвигателе.
4. Теперь, необходимо подключить MLX90614 к Arduino. Для этого подсоедините Ground к GND, Vin к 3.3V, SDA к pin 4 и SCL к pin 5. Также, установите резистор 4.7 кОм от SDA к 3. 3V, а второй от SCL к 3.3V. Смотрите схему ниже.

5. Подключите Laser Card или лазерную указку. Лазер нужен для того, чтобы вы могли видеть, где в настоящий момент сканирует тепловизор.
6. После, необходимо установить вебкамеру и сориентировать ее точно с ИК датчиком и лазером, чтобы они были направлены в одну и ту же точку. На этом сборка тепловизора закончена.

Скетч для Arduino и программное обеспечение для работы с тепловизором можно скачать здесь:
Официальная страница проекта
Программное обеспечение (на JAVA)
Скетч для микроконтроллера
Также хочу обратить внимание, что авторы указывают на необходимость дополнительной настройки датчика при помощи специального скетча, что вроде как должно ускорить работу устройства. Однако в моем случае, датчик после конфигурации стал выдавать ложные значения температуры и я сделал откат.
После сборки всей схемы, ее можно поместить в корпус, и закрепить на штативе:

Небольшие пояснения:
В качестве корпуса для микроконтроллера взял пластиковую упаковку из-под автомобильного освежителя (на фото слева), он в свою очередь держится на штативе при помощи крепежа от учебного оптического прицела. В общем, строго выдержан принцип дешевизны и использования того, что было под рукой. Светится на фото фонарик, который был бонусом к лазерной указке и оказался весьма полезным при сканировании темных областей.

Процесс съемки
Зачем здесь нужен китайский лазер и как же происходит процесс сканирования легко понять на примере моего шикарного ковра:Не удивляйтесь, что ПО на русском, просто я уже некоторое время занимаюсь его доработкой под свои нужды, попутно изучая язык Java. К несчастью, пока моих знаний недостаточно для окончательного оформления готового продукта.

Итак, на картинке с веб-камеры есть две желтые точки и точка нашего лазера (снизу по центру). Вся калибровка состоит в том, чтобы выбрать координаты центра и левого нижнего угла будущей термограммы. В этом собственно и поможет лазерная указка:

Сегодняшнее ПО поддерживает всего два типа разрешения будущей картинки, в то время, как прошлая версия была богата на это дело, насчитывая шесть разных разрешений. Особенно было забавно получать сильно «пиксельные» картинки за 15 секунд. Думаю, разработчики осознали ненужность остальных режимов и убрали их, хотя программно они остались и могут быть активированы.

Результаты на десерт
Приведенные термограммы в различном разрешении.

Как греется нетбук:

Кот:

Старый счетчик:

Новый щит:

Окно:Мой друг в темной комнате перед компьютером:

Применение
Из-за большого времени сканирования, данный прибор не подходит для проведения энергетического аудита (по крайней мере, для профессионального применения), этот вопрос рассмотрен в этой Статье (Англ.).
Тем не менее, как мне кажется он мог бы стать отличным подспорьем для проверки на нагрев электрических соединений и силовых сборок. В моей практике (а я подрабатываю электриком) иногда использую этот тепловизор для оценки надежности соединений. Пирометр в данном случае проигрывает в наглядности.

Неудобства в работе связаны с жесткой привязкой прибора к компьютеру и необходимости всегда таскать нетбук.

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

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