"А я все чаще замечаю,
Что меня как-будто кто-то подменил.
О морях и не мечтаю -
Тепловиз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, для совмещения картинки градиентов цвета с реальным изображением объектов, как в промышленных приборах. Если найдется кто, для продолжения проекта, буду только рад.
Прикрепленные файлы:
- Teplovisor_r04.hex (96 Кб)
- Teplovisor_r0_Sch.pdf (90 Кб)
- Teplovisor_r0_PCAD2006.zip (54 Кб)
- Teplovisor_r0_LaserPCB.pdf (197 Кб)
- Spec_CNC.zip (1 Кб)
- Source_Teplovisor_r04.ZIP (340 Кб)
Комментарии (39)
|
Я собрал (0) |
Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
Кстати МК STM32F103 тут тоже можно использовать, если исходник слегка подправить по периферийным модулям, если потребуется, ну и перекомпилить.
[Автор]
Способ прошить этот МК вообще без каких-либо программаторов или переходников.
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).
[Автор]
Очень заинтересовал этот проект. Не мог бы уважаемый Автор поподробней рассказать про "переезд" на STM32F103? Думаю он у многих есть в виде "blue pill". А STM32F303CBT на али только от 10 штук.
Я старый ардуинщик
и не знаю слов любвии про Keil uVision только слышал одним ухом. Что там надо изменить, какие файлы добавить в проект? Сенсор только заказал, а "таблетка" и экран нашлись в закормах. Хочу попробовать хоть экран пока запустить.Возможно ув. Andrey_B найдет возможность сделать проект в Keil uVision на STM32F103 - для горемык вроде меня.
[Автор]
Сделал ваш аппарат, но он показывает зеркально и перевернутым
Как исправить?
Плату перерисовал в LAY, использовал дисплей на шилде для ардуино УНО. Дисплей 2.4" 8 бит. Ноги дисплея подключил согласно схемы, изображение и параметры температуры есть, кнопки работают согласно описания, но изображение перевернуто по-вертикали и по-горизонтали.
Возможно ли программно исправить?
[Автор]
[Автор]
[Автор]
[Автор]
А можно подробнее про линейную интерполяцию изображения с матрицы? Что почитать?
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
Даже матрица 32х32 не дает такого разрешения что бы рассмотреть греющуюся деталь на плате в СМДшном исполнении
[Автор]
[Автор]