Главная » Измерения
Призовой фонд
на ноябрь 2019 г.
1. Регулируемый паяльник 60 Вт
Сайт Паяльник
2. 500 руб
Сайт Паяльник
3. 200 руб.
От пользователей

Тепловизор своими руками на STM32

"А я все чаще замечаю,
Что меня как-будто кто-то подменил.
О морях и не мечтаю -
Тепловиз0р мне природу заменил."
   кот Матроскин

Что это такое ? Простой и дешевый тепловизор, который может изготовить любой радиолюбитель средней квалификации своими руками. В качестве сенсора применена матрица 8х8 элементов, которая позиционируется как датчик для систем охраны. Линейной интерполяцией с простейшей фильтрацией картинка растягивается до размера 57х57 точек. Угол обзора составляет 60 градусов, точность измерения температуры +-2.5 градуса, диапазон 0..+80 градусов. Скорость обновления 10 кадров в секунду. Кроме классического отображения тепловой картины градиентами цвета и яркости, прибор имеет дополнительные функциональные возможности: автоматический выбор пределов отображения температур с возможностью фиксации или выбора из предустановленных значений, "заморозка" отображаемой картинки, возможность сделать на экране копию отображаемой картинки, выбор из нескольких вариантов палитр для отображения температуры на картинке. Прибор питается от встроенного Li-Pol аккумулятора и имеет разъем microUSB для подключения зарядного устройства.

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

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

Функции кнопок:
- нажатие верхней останавливает/запускает обновление текущей картинки.
- удержание верхней копирует текущую картинку со шкалой градиента в текущей палитре и масштабом температур в нижнюю зону.
- нажатие нижней переключает по кругу типы шкал: автоматическое вычисление, фиксация текущей, фиксированная +40..+16 градусов, фиксированная +80..-5 градусов.
- удержание нижней включает/выключает прибор.
- удержание двух кнопок переключает варианты палитры.
Через несколько минут бездействия подсветка пригасает, при этом по нажатию на любую кнопку сначала произойдет восстановления полной яркости подсветки, а непосредственно действие кнопки произойдет только по следующему нажатию.

Схема тепловизора

Схемотехника. Прибор собран на 32-разрядном микроконтроллере с ARM архитектурой. TFT дисплей 320х240 с диагональю 2.4 дюйма подключен через 8-ми разрядную параллельную шину и имеет ключ для управления подсветкой ШИМ. Сенсор включен по схеме из даташита и опрашивается МК через шину I2C. Подсистема питания состоит из нескольких узлов. Контроллер заряда аккумулятора имеет светодиод, индицирующий процесс заряда. Кнопка управления питанием развязана диодами с МК так, что ей можно и включать устройство, и управлять МК. Преобразователь, повышающий напряжение на аккумуляторе до величины +5В, нужен для более полного использования емкости аккумулятора. Но он при применении линейного стабилизатора с малым перепадом между входом и выходом, дает не слишком большой прирост времени работы, поэтому преобразователь можно не устанавливать, заменив его перемычкой (5-6 ноги). Линейный стабилизатор понижает напряжение до +3.3В. Делитель для измерения напряжения на аккумуляторе включен после ключа, поэтому не разряжает аккумулятор в выключенном состоянии. Бузер с ключем обеспечивает отзвук при нажатии на кнопки.

Прошивка. МК тактируется от внутреннего генератора с умножителем с ФАПЧ (PLL) частотой 72 МГц. С периодом 100 мС происходит опрос сенсора, затем принятые данные нормируются, интерполируются, фильтруются, вычисляется масштаб шкалы, вычисляется цвет пикселей, и сформированная картинка выводится на дисплей. Каждый элемент из матрицы 57х57 на дисплее отображается четырьмя пикселями. Для ускорения работы, часть процесса обмена данными по I2C убрана в прерывания, а процесс вычислений разбит на этапы для организации подобия конвейера. С определенной периодичностью происходит опрос кнопок и измерение напряжения на аккумуляторе.

Используемый компилятор Keil uVision 4, прошивка написана с использованием библиотеки STM32F30x/31x DSP and Standard Peripherals Firmware Library V1.2.3. Прошивается МК через SWD, например программатором ST-LINK/V2, который присутствует на недорогих отладочных платах DISCOVERY. Прошивка и исходник прилагаются.

Конструкция. Конструктив выбирался по критериям максимальной простоты и дешевизны. На дне пластиковой коробки прорезается прямоугольная зона для дисплея 37х50 мм и два отверстия под толкатели кнопок диаметром 4 мм. Сбоку прорезается зона под USB разъем и отверстие диаметром 1 мм для светодиода заряда. На крышке срезается угол 18х20 мм напротив сенсора. В силу того, что сенсор достаточно глубоко утоплен вглубь корпуса, было решено ни чем не закрывать этот угол, к тому же любой материал сильно рассеивал излучение, что приводило к смазыванию картинки. Дисплей приклеен к печатной плате пористым двухсторонним скотчем толщиной 1 мм. Плата в корпусе размещается так, чтобы разъем USB был вставлен в прорезь в корпусе, которую нужно расположить на такой высоте, чтобы дисплей уперся в корпус и слегка сжал скотч. Со стороны кнопок плата упирается в гайку на винте М3х20 завинченном на передней панели. Аккумулятор тоже приклеен к печатной плате пористым двухсторонним скотчем. Разъем аккумулятора нужно припаять к плате слегка под углом, чтобы он не мешал закрыться задней крышке. В прикрепленном к статье архиве есть программа в G-кодах для резки корпуса на 3х-координатном станке, полная спецификация примененных компонентов, печатная плата в формате PCAD2006 и в виде картинки для ее изготовления по лазерно-утюговой технологии.

Компоненты. МК STM32F303CBT в корпусе LQFP-48. МЭМС сенсор серии Grid-EYE компании Panasonic AMG8833, цена на алиэкспресс менее 2к рублей. Дисплей TFT 2.4 дюйма 320х240@262k на контроллере ILI9341 с 37-выводным шлейфом. Названий у них много разных, я брал вот эти.
Корпус Sanhe 20-22 размером 92х58х23 мм. Бузер любой со встроенным генератором на 3-5В. Разъем MICROUSB KLS1-233-0-0-1-T (Micro USB 5S-B). Аккумулятор любой Li-Ion, подходящих размеров.

Перспективы. Можно добавить микросхему энергонезависимой памяти 24Cxx для долговременного хранения картинок. МК имеет на борту модуль USB, который можно использовать для выгрузки картинок или скриншотов на компьютер, а также для прошивки МК через загрузчик (DFU). Применение более серьезного сенсора не целесообразно, т.к. резко увеличивает цену, а также потребует применение более мощного МК. Можно подумать над подключением недорогой VGA-камеры, например ov7670, для совмещения картинки градиентов цвета с реальным изображением объектов, как в промышленных приборах. Если найдется кто, для продолжения проекта, буду только рад.

Прикрепленные файлы:

Теги:

Опубликована: Изменена: 19.12.2018 0 4
Я собрал 0 10
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.9 Проголосовало: 10 чел.

Комментарии (30) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0

[Автор]
Andrey_B #
Дополнение. 44 нога МК должна быть на земле, не смотря на то, что резистор 0R на ней и подписан "не ставить". Отрывать эту ногу (BOOT) нужно в случае использования загрузчика для прошивки.
Кстати МК STM32F103 тут тоже можно использовать, если исходник слегка подправить по периферийным модулям, если потребуется, ну и перекомпилить.
Ответить
0

[Автор]
Andrey_B #
Специально для Nem0, улучшаем повторяемость.

Способ прошить этот МК вообще без каких-либо программаторов или переходников.

1. Модифицируем плату:
- запаиваем кварц 8 МГц с двумя кондерами 22пФ на землю между 5 и 6 ногами МК.
- Запаиваем резистор 1.5к от +USB (1 нога разъема) к цепи +D (нога 33 МК, РА12).
- Подаем на 44 ногу МК (BOOT0) +3.3В.

2. Ставим пакет STSW-STM32080 DfuSe_Demo_V3_Setup.exe, брать тут:
https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/stsw-stm32080.html

3. Утилитой DfuFileMgr.exe из пакета конвертим .HEX в .DFU, см. скриншут.

4. Подключаем прибор к USB порту и зажимаем кнопку включения (и не отпускаем до окончания прошивки).

5. Если требуется ставим драйвер, который находится в папке с пакетом.

6. Утилитой DfuSeDemo.exe из пакета грузим в МК файл .DFU и прошиваем, на скриншуте показаны задействованные элементы.

7. Возвращаем землю на ногу 44 (BOOT0).
Отредактирован 28.12.2018 22:34
Прикрепленный файл: dfu.png
Ответить
0
Андрей #
А в проекте (прошивке) разве ничего править не нужно?
Ответить
0

[Автор]
Andrey_B #
Нет, только сконвертить в .DFU как на скиншуте.
Ответить
0
ASPtr #
День добрый!
Очень заинтересовал этот проект. Не мог бы уважаемый Автор поподробней рассказать про "переезд" на STM32F103? Думаю он у многих есть в виде "blue pill". А STM32F303CBT на али только от 10 штук.
Я старый ардуинщик и не знаю слов любви и про Keil uVision только слышал одним ухом. Что там надо изменить, какие файлы добавить в проект? Сенсор только заказал, а "таблетка" и экран нашлись в закормах. Хочу попробовать хоть экран пока запустить.
Возможно ув. Andrey_B найдет возможность сделать проект в Keil uVision на STM32F103 - для горемык вроде меня.
Ответить
0

[Автор]
Andrey_B #
Проект сделать недолго. При беглом сравнении уже есть отличия, I2C придется переписать, АЦП отличается. Естественно это все придется проверить. Аппаратно изменения незначительны (резистор на землю 1-2к с ноги PB2). Это все естественно надо будет проверить, нужен проц, аппаратная платформа, не готовый же прибор ломать... Keil не сложнее ардуино, если есть интерес, не упускайте возможность профессионального роста, перейти от игрушек на взрослый инструмент. Есть куча статей для начинающих, берите исходник и вперед. А я помогу, чем смогу.
Ответить
0
andro #
Получился как заводской! Хорошая и нужная конструкция. Как на счёт задействовать ЕЕПРОМ эстээмки?
Ответить
0
Евгений #
Ну вы хотя бы немного вопрос изучили, прежде чем глупость сморозить. Нет у stm eeprom. Можно писать прямо во флеш, но видимо у автора оставалось слишком мало места свободного.
Ответить
+1
andro #
Да, Вы правы, оговорился. Благодарю за подсказку!
Ответить
-1

[Автор]
Andrey_B #
Хочется конечно сенсор разрешением побольше. EEPROM самого МК тоже можно использовать, ресурса перезаписи в 10к (если правильно помню) должно хватить.
Ответить
0
andro #
А нельзя смастерить матрицу из четырёх таких сенсоров? Микроконтроллер осилит?
Ответить
+1

[Автор]
Andrey_B #
Если принять меры для оптимизации кода, скорее всего осилит, но это не целесообразно, т.к. это будет стоить около 8к рублей. А сенсор 32х24 MLX90640 можно купить уже за 5к, но к нему еще объектив потребуется. Есть вариант повысить разрешение например в 2 раза, но для этого нужно найти способ как-то механически поворачивать сенсор на полсегмена в две стороны, при этом конечно упадет частота кадров.
Ответить
0
BARS_ #
EEPROM самого МК тоже можно использовать
Ничего не путаете? Может все таки FLASH?
Ответить
0

[Автор]
Andrey_B #
Ну это вопрос терминологии, ведь память программ тоже электрически стираемая репрограммируемая. Честно говоря, я думал, что andro и имел ввиду флешпамять программ, просто так выразился. Понятно, что классического модуля памяти данных EEPROM в этом контроллере нет, и в статье указано, что ее можно при желании добавить отдельной микросхемой.
Ответить
0
vasili #
Andrey_B можно ли микросхемы №1, 2, 4 заменить одной лм1117-3.3 и питать от повер банка ? Микрухи какие то редкие ни где нету.
Ответить
0

[Автор]
Andrey_B #
Да, так можно. В этом случае можно не запаивать R10, C7, транзисторы VT1, VT2, диод VD1 и уменьшить количество фильтрующих конденсаторов по питанию. И поведение прошивки не должно потерять логичности.
Ответить
0
PowAr #
Красивая конструкция!
А можно подробнее про линейную интерполяцию изображения с матрицы? Что почитать?
Ответить
0

[Автор]
Andrey_B #
Применительно к данной теме можно глянуть вот эту апноту: http://ww1.microchip.com/downloads/en/AppNotes/AN2773-8-Bit-Thermal-Camera-00002773A.pdf Но реализация там мне не понравилась.
Ответить
0
SergeyK #
А можно использовать сенсор в виде модуля? Плату перерисовать под использование такого модуля!
Ответить
0
tolstyk #
Им можно увидеть греющийся конденсатор 0603?
Ответить
0

[Автор]
Andrey_B #
Если поднести прибор поближе вполне можно.
Ответить
0
олег #
Подскажить куда подключать VCC, а то оно подключено к одному контакту и непонятно?
Ответить
0

[Автор]
Andrey_B #
R15, резистор подсветки.
Ответить
0
Твоя Зайка #
Как вы припаивали шлейф дисплея?
Ответить
0

[Автор]
Andrey_B #
Шлейф залудить (ЛТИ-120 + провести жалом паяльника), нанести на контакты платы ЛТИ-120, совместить шлейф с контактами, касанием паяльника временно "присопливить" крайние контакты. Затем прижимая узкой отверткой контакт шлейфа к плате припаиваем по очереди последовательно все контакты. Перед совмещением контактов не забываем убрать ленту с двухстороннего скотча, который иногда бывает на шлейфе.
Ответить
0
Твоя Зайка #
Какой из выложенных архивов можно на jlcpcb.com отправлять для заказа печатной платы?
Ответить
0

[Автор]
Andrey_B #
Отправлять нужно гербера, тут их нет. Попробуйте отправить архив с файлом .pcb PCAD2006, скорее всего они сами из него вытащат гербер.
Ответить
0
Слава #
Спасибо за статью. Можно ли применять датчик как MLX90640? И какие нужно сделать действия
Ответить
0

[Автор]
Andrey_B #
В теории можно, хотя успеет ли контроллер - под вопросом. К этому датчику будет нужен объектив.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Мультиметр Mastech MS8268
Мультиметр Mastech MS8268
Набор начинающего радиолюбителя Набор для сборки - LED лампа
вверх