Из этой статьи вы узнаете, как можно собрать тепловизор. В качестве корпуса для него мастер использует старый микроволновый прибор для измерения СВЧ излучения Apollo. Получившийся прибор теперь имеет новое назначение в качестве тепловой камеры, работающей на Raspberry Pi Zero с тепловым датчиком Adafruit AMG8833, измеряющим температуру и отображающим результаты в реальном времени на 1,3-дюймовом TFT-дисплее.
Прибор имеет режим «Предустановка» и «Динамический». В первом режиме цвета, отображаемые на экране, основаны на жестко заданных температурных порогах, а во втором цветовой диапазон можно регулировать с помощью ползунков температуры на панели управления Adafruit.io. Панель также мгновенно отображает любые снимки, снятые устройством, которые были захвачены с помощью кнопки установленной на ручке.
Вся система работает от USB-аккумулятора, спрятанного в рукоятке, который можно легко зарядить, отсоединив носовой обтекатель и подключив USB-кабель.
Инструменты и материалы:
-Датчик СВЧ излучения;
-Raspberry Pi Zero W;
-Датчик AMG8833;
-Экран Adafruit Mini PiTFT 1,3 ";
-Соединительные кабели;
-Вибродатчик 3В;
-АКБ;
-Паяльные принадлежности;
-Напильник;
-Дрель;
-Отвертка;
-Краска;
-Клей;
Шаг первый: разборка датчика
Этот старый прибор 1975 года выпуска мастер приобрел на барахолке. По видимому его использовали на каком-то промышленном предприятии. Прибор был не рабочий и привлек внимания мастера своим необычным видом.
Для использования его в своей самоделке мастер разбирает корпус прибора и демонтирует электронику.
Окно расширяет для установки экрана.
Шаг второй: монтаж
Дальше мастер собирает электронную часть.
Подключает к Расберри тепловой датчик, экран и вибродатчик.
Шаг третий: батарея
Мастер разобрал повербанк и извлек батарею с контроллером. Батарея будет установлена в ручку. Так же в ручку устанавливается кнопка включения прибора. Для зарядки батареи мастер подключил отдельный провод с USB-разъемом.
Шаг четвертый: настройка и код
Сам термодатчик Adafruit AMG8833IR Thermal Camera Breakout, использует массив датчиков 8x8 для создания теплового изображения. Он работает с Arduino и Raspberry Pi, но наибольшим преимуществом использования Pi является то, что программное обеспечение может использовать модуль Python Scipy для выполнения бикубической интерполяции захваченных данных.
Дальше мастер объясняет, как настроить датчик и как обойти ошибки.
Включите I2C и SPI на Raspberry Pi (Конфигурация Raspberry Pi> Интерфейсы)
Установите библиотеку Blinka CircuitPython:
pip3 install adafruit-blinka
Затем установите библиотеку датчиков AMG8XX:
sudo pip3 install adafruit-circuitpython-amg88xx#
Выключите Pi и подключите датчик.
Далее установите модули scipy, pygame и color:
sudo apt-get install -y python-scipy python-pygame
sudo pip3 install colour
В этот момент код выдал ошибку scipy, и мастер переустановил его:
Sudo Pip3 install scipy
Снова выскакивает ошибка: ImportError: libf77blas.so.3: (не могу открыть файл общего объекта: нет такого файла или каталога).
Ошибка решена установкой:
sudo apt-get install python-dev libatlas-base-dev
С тех пор код работал нормально, запуская скрипт из консоли:
sudo python3 /home/pi/FeverChill/cam.py
Дальше мастер настраивает экран. Здесь процесс настройки стандартный, нужно просто выбирать в меню нужные варианты настройки.
Как уже говорилось, все работало нормально, но мастер хотел прописать пользовательские настройки. он начал с создания сценария Menu, который загружался бы при запуске.
Он нашел несколько готовых сценариев, которые бы отображали хороший анимированный эффект меню на маленьком экране, используя PyGame. Прелесть этого скрипта в том, что он анимирует все изображения в заданной папке, поэтому можно легко изменить анимацию на более позднем этапе (например, чтобы подобрать цвета анимации). Мастер установил сценарий меню таким образом, чтобы нажатие одной из кнопок остановило анимацию и открыло сценарии fever.py или chill.py для отображения меню датчика.
Отредактировал файл rc.local ...
sudo nano /etc/rc.local
добавил
sudo /home/pi/FeverChill/menu.py &
скрипт menu.py в верху должен быть такой:
#!/usr/bin/env python3
chmod +x /home/pi/FeverChill/menu.py
Для скрипта Preset мастер сначала установил пороги цвета / температуры, установив нижний (синий) на 16, а верхний (красный) на 37,8. Теоретически, по-прежнему показывает лицо человека зеленым, но светится красным, если температура была на уровне или выше 37,8 градусов. В интернете много статей о том, как измерять температуру тела разными способами. С отклонением датчика +/- 2,5 градуса мастер решил просто придерживаться наиболее распространенного диапазона. Настройки достаточно легко изменить в дальнейшем.
Затем мастер нажимает две кнопки, чтобы закрыть текущий скрипт и открыть menu.py.
Мастер также хотел найти способ захвата и экспорта изображения с камеры, и установил команду PyGame
pygame.image.save(lcd, "thermal.jpg") Эта операция включается при нажатии кнопки на ручке.
Еще мастер хотел, чтобы скрипт Dynamic был гибким, чтобы можно было легко регулировать верхний и нижний цветовые пороги, но при этом не добавлять дополнительные кнопки на устройство. Поэтому он решил использовать ползунки на панели управления Adafruit.io.
Код с этими настройками можно скачать здесь.
Шаг пятый: покраска
Дальше мастер покрасит детали корпуса.
Шаг шестой: сборка
После высыхания краски мастер собирает устройство. При установке электроники использует двусторонний скотч и винты.
Все готово. По словам мастер — это устройство было сделано в условиях самоизоляции, совместно с внуком и его сборка помогла скоротать время и приобрести новый опыт.
Весь процесс по сборке устройства можно посмотреть на видео ниже.
Источник (Source)
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.