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

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


Список используемых элементов:
Модуль датчика температуры MLX90614ESF-DCI или MLX90614ESF-BCI:
futureelectronics.com 66.60$ (DCI версия) или digikey.com 73.00$ (BCI версия)
Arduino UNO (или аналог) - 30$
Корпус с батарейным отсеком для Arduino - 6.5$
Серво двигатель (средний) - 11$
Серво двигатель (большой) - 13$
Модуль Laser Card - 8$ (можно заменить лазерной указкой)
Вебкамера Microsoft LifeCam VX-700
Поворотное устройство (2 координаты) Lynxmotion Pan and Tilt Kit:
Robotshop.com 9.95$ или lynxmotion.com 9.95$
Датчик MLX90614

MLX90614 - инфракрасный термометр в корпусе TO-39. Даташит PDF.
Данные с датчика могут быть считаны при помощи шины SMBus или ШИМ. В нашем случае используется датчик с индексом
DCI или BCI. Питание 3В. Индекс I обозначает тип форм-фактора, I - с насадкой для обеспечения узкого поля зрения в 5° (см. рисунок выше).

Сборка тепловизора
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
Скачать скетч для конфигурирования датчика. После заливки данного скетча в Arduino, откройте Serial Monitor и нажмите клавишу. Программа изменит настройки EEPROM датчика. Это требуется сделать только один раз. После того, как увидите надпись "Finish" отсоедините Arduino от ПК и присоедините его снова.
Скачать главный рабочий скетч Arduino.
Дополнительно, понадобится библиотека I2CMaster.
Программное обеспечение для компьютера
ПО для компьютера написано на JAVA, поэтому вам понадобится Java Runtime Environement. ПО работает под Windows, Linux или Mac OSX в 32-bit & 64-bit. Однако, если запускается по Windows 64, то лучше установить 32-битную версию JAVA. Скачать.
Скачать все одним архивом (7 МБайт).
Оригинал статьи на английском языке (перевод Колтыков А.В. для сайта cxem.net)
|
Petrotator 2012-05-15 13:32:49 1. Скажите, какое время считывания с датчика? 2. Вы не рассматривали вариант установки перед датчиком ИК линзы? [Ответить] [Ответить с цитатой] |
|
Neit 2012-05-17 15:41:51 1. Время считывания зависит от программного обеспечения. В данной статье указана ссылка на ПО, которое позволяет использовать время: 3мин, 1,5 мин, 46 сек и 12 сек. Соответственно, чем меньше время сканирования, тем хуже разрешение картинки. Однако автор давно уже сделал новое ПО, поддерживающее только время 6 мин и 1,5 мин. К несчастью мой аппарат с ним работать не хочет. Сам копаюсь в исходниках, попутно изучая Java, чтобы сделать нормальное ПО. Пока результат не очень. 2. Даже не знал, что такие бывают (мне стыдно )Весьма вероятно, что она поможет увеличить оптическое разрешение, но с настройкой фокуса будут проблемы. [Ответить] [Ответить с цитатой] |
|
Neit 2012-03-19 00:42:43 С диском Нипкова очень интересная идея! Однако не пострадает ли разрешение изображения? Насчет проводки могу сказать, что в большинстве случаев она греется в местах соединения: распайках, узлах, скрутках и.т.п., поэтому обычно проверять провод внутри стен нет надобности - в ближайшей распайке все видно. А на вопрос ответ да - если греется, это будет видно. В остальных случаях провод надо искать металлоискателями, трассировщиками и индикаторами. [Ответить] [Ответить с цитатой] |
|
Иван 2012-03-17 11:24:48 А им можно будет увидеть проводку в стене? [Ответить] [Ответить с цитатой] |
|
Владимир 2012-03-13 10:49:39 А зачем так сложно? Не проще было бы через диск Нипкова? Диск + стабильные обороты + и один датчик. И никаких сервов. Развёртывание сигнала в картинку было бы элементарным программным кодом. [Ответить] [Ответить с цитатой] |
|
D 2012-02-16 06:59:34 Как вернуть оригинальный EERPOM датчика? [Ответить] [Ответить с цитатой] |
|
Neit 2012-02-20 02:15:02 Придется читать даташит, потом писать программку подобную той, что сделал автор. Я тоже интересуюсь этой проблемой, после перепрошивки датчик сильно врет. К сожалению с программированием не дружу и ничего путного пока сделать не могу. [Ответить] [Ответить с цитатой] |
|
D 2012-02-21 12:26:16 Считал перед залитием нового EERPOM оригинальные значения, вот для возврата к оригиналу (у моего такие значения были) http://dl.dropbox.com/u/43215472/Thermocam_EEPROM_original.txt Вот для считывания. http://dl.dropbox.com/u/43215472/Thermocam_EEPROM_read.txt Если у Вас другие значения то просто так их подставлять нельзя. Сначала нужно их перевести в HEX. Например оригинальные значения фильтра получились 40404. Переводим в HEX = 9DD4. Смотрим код для заливки, там где фильтр, подставляем свои значения, только с конца: i2c_write(0x25); //Register Address to write to i2c_write(0xD4); //New filter settings (B374) 9FB0 i2c_write(0x9D); i2c_write(0x18); //Send PEC Теперь нужно найти FEC Переходим на http://smbus.org/faq/crc8Applet.htm и вводим 25D49D Получаем B7 дописываем и получаем: i2c_write(0x25); //Register Address to write to i2c_write(0xD4); //New filter settings (B374) 9FB0 i2c_write(0x9D); i2c_write(0xB7); //Send PEC Оригинальные значения моего датчика были: фильтра 9FB0 Макстмальная температура 9993 Минимальная 62E3 [Ответить] [Ответить с цитатой] |
|
Neit 2012-02-22 00:22:35 Спасибо огромное! У меня такие же начальные настройки. Больше с температурой не обманывает. Неплохо было бы в статью добавить указание на то, что датчик не всегда надо перешивать. А то кто-нибудь еще наступит на эти грабли. [Ответить] [Ответить с цитатой] |
|
Neit 2012-02-06 22:44:57 Я собрал этот проект, все детали нашел в рунете, никакой заграницы. Для профессионального использования ему еще далековато. Та самая "дальность" стрельбы оставляет желать лучшего, максимум пара метров. Это зависит от датчика, у меня MLX90614BCI. Хочу прикрутить вместо него пирометр с большим оптическим разрешением, что позволит увеличить расстояние измерения. [Ответить] [Ответить с цитатой] |
|
demoon 2012-01-28 19:04:32 Меня интересует какова дальность "стрельбы" данного тепловизора? Хочу на вооружение служб ЖКХ. Для выявления теплопотерь в стенах девятиэтажных домов (фоткаешь зимой снаружи всю стену - получаешь карту "слабых мест" теплоизоляции дома) [Ответить] [Ответить с цитатой] |
|
andry 2011-09-25 11:52:43 Проект интересный, только вот корпуса, поворотники и т.п. можно изготовить самому, а вот где эти датчики искать у нас? [Ответить] [Ответить с цитатой] |
|
Black27512 2011-09-29 23:06:42 В качестве датчика можно купить пирометр и вытягивать из него инфу о температуре... [Ответить] [Ответить с цитатой] |
|
Роман 2011-09-30 08:00:24 Не вижу проблемы покупать за рубежом. Во первых есть eBay, во вторых многие зарубежные интернет-магазины доставляют в Россию, в третьих есть посредники. Я последние 2 года покупаю только за рубежом. Даже с доставкой и посредниками выходит все в 2 раза дешевле чем у нас. Про ассортимент там и здесь промолчу. [Ответить] [Ответить с цитатой] |
Пришли свой проект и получи от 100 до 700 руб гонорара за него
Участвуй в новом конкурсе для радиолюбителей с 3 призами: цифровой осциллограф, USB-осциллограф и мультиметр