Оглавление:
- Запасы
- Шаг 1. Разборка
- Шаг 2: Подключение
- Шаг 3: Модификации кейса
- Шаг 4: мощность
- Шаг 5: Настройка программного обеспечения тепловизора
- Шаг 6: Настройка программного обеспечения ЖК-экрана
- Шаг 7: настройки кода
- Шаг 8: Завершение корректировки
- Шаг 9: Сборка
- Шаг 10: время температурных испытаний
Видео: 1979 г. Тепловизор Apollo Pi: 10 шагов (с фотографиями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
Этот старинный микроволновый детектор Apollo теперь имеет новое блестящее назначение - тепловизионная камера, работающая от Raspberry Pi Zero с датчиком тепловизора Adafruit, измеряющим температуру и отображающим результаты в режиме реального времени на ярком 1,3-дюймовом TFT-дисплее.
Он имеет предустановленный и динамический режимы - в первом цвета, отображаемые на экране, основаны на жестко заданных пороговых значениях температуры, а во втором цветовой диапазон можно настроить с помощью ползунков температуры на панели инструментов Adafruit.io. отображает любые загруженные устройством снимки, сделанные с помощью исходной кнопки большого пальца на рукоятке.
Вся система питается от тонкой цилиндрической аккумуляторной батареи USB, скрытой в рукоятке, которую можно легко перезарядить, сняв носовой обтекатель и подключив кабель USB.
Всего три скрипта Python управляют логикой меню, сенсором и интеграцией Adafruit.io, а отображение обрабатывается PyGame.
Работа над этим проектом действительно помогла мне сохранить позитивный настрой во время изоляции, и, когда у нас появилось дополнительное время, мы с детьми нашли много интересных вещей в доме, на которые можно указать!
Взгляните на Apollo Pi в действии на видео на YouTube, если вы не видите встроенную версию выше, по адресу
Запасы
СВЧ-монитор Apollo
Малина Pi Zero W
Тепловизор Adafruit AMG8833 Breakout
1,3-дюймовый экран Adafruit Mini PiTFT
Соединительные кабели
Вибрационный диск 3v
Внешний аккумулятор USB
Шаг 1. Разборка
Прошлым летом я купил Apollo Monitor на распродаже из-за его уникального внешнего вида, а не чего-либо еще - что так же хорошо, как и в лучшие дни! Цепи внутри были незавершенными, и все это было покрыто грязью клея - историческая попытка его отремонтировать.
Первоначально он должен был использоваться для проверки наличия микроволнового излучения, предположительно в какой-то промышленной установке, учитывая его дизайн и редкость микроволновых печей в то время, хотя я не мог узнать о нем больше. Одно я знал точно: это будет идеальный дом для тепловизора.
Как только я оторвал конический «нос», он буквально развалился, а приклеенный аналоговый измеритель и прямоугольная кнопка легко снялись. Я сохранил кнопку, она была совершенно функциональной и имела действительно странную форму, так что я изо всех сил пытался вставить замену в то же отверстие.
Шаг 2: Подключение
Прежде чем обрезать корпус, чтобы все было подогнано, я сначала хотел убедиться, что знаю, как детали будут соединяться вместе, поэтому я решил подключить датчик и экран. С датчиком все в порядке, для его подключения к Raspberry Pi потребовалось всего четыре перемычки.
Экран был немного сложнее, распиновка показывала, что мне нужно подключить 13 перемычек - очевидно, он предназначен для установки непосредственно на Pi, так что винить в этом можно было только себя. Я решил добавить кусок женского заголовка между экраном и подключениями Pi, чтобы я мог легко снять экран и подключить его. Это была отличная идея, и я очень внимательно следил за схемой распиновки, чтобы подключить заголовок к Pi.
Затем я припаял несколько новых перемычек к исходной кнопке, чтобы ее можно было подключить к GPIO и использовать для получения снимков тепловизионного изображения. Наконец, я припаял небольшой вибрирующий диск прямо к контактам GPIO, чтобы обеспечить некоторую тактильную обратную связь при нажатии кнопок.
Шаг 3: Модификации кейса
Одна из вещей, которая воскресила Apollo Monitor из моего поля «to do», - это отверстие для дисплея в верхней части - это был примерно тот размер, который мне нужен для маленького экрана Adafruit. Грубо. Чтобы расширить отверстие до нужного размера, потребовался час или около того, но, к счастью, мне удалось не разрушить корпус в процессе.
Я также отрезал части внутренних частей, которые первоначально удерживали батарею PP3, и вырезал несколько переборок внутри рукоятки, чтобы освободить место для батарейного блока, используя вращающийся инструмент.
Наконец, я просверлил несколько больших отверстий, чтобы кабели для датчика и зарядного кабеля могли выходить из «носа» и соединяться с остальными цепями.
Шаг 4: мощность
Для этого проекта я решил не использовать LiPo аккумулятор и адаптер / зарядное устройство, так как в корпусе было больше места. Вместо этого я решил использовать стандартный внешний аккумулятор USB. Я хотел получить тонкий цилиндрический, чтобы поместиться в ручку, поэтому искал самый дешевый и самый тонкий, который я мог найти на Amazon. Тот, который прибыл, с его дрянным светодиодным фонариком и дизайном с искусственной батареей, был самым тонким, что я мог найти, но распаковав его, я понял, что он все еще слишком толст, чтобы поместиться в ручке. Потом я понял, что он развалился - верх открутился, и обнаженный аккумулятор внутри выскользнул, аккуратно сэкономив мне 3 мм, которые мне понадобились, чтобы поместить его внутри ручки, что в результате!
Затем я взял короткий кабель Micro USB, снял часть изоляции, отрезал положительный кабель и припаял красивую квадратную кнопку с защелкой, чтобы можно было контролировать питание, не отсоединяя аккумулятор. Эта кнопка прекрасно вписывалась в то, что изначально было крышкой аккумуляторного отсека, и была довольно близка к оригинальной на верхней части корпуса. Теперь, когда я знал, что все подойдет, пора было все заработать!
Шаг 5: Настройка программного обеспечения тепловизора
Сам по себе термодатчик представляет собой тепловизор Adafruit AMG8833IR Thermal Camera Breakout, в котором для создания теплового изображения используется матрица датчиков 8x8. Он работает с Arduino и Raspberry Pi, но самым большим преимуществом использования Pi является то, что программное обеспечение может использовать модуль scipy python для выполнения бикубической интерполяции захваченных данных, делая их похожими на изображение 32x32, аккуратно!
Настройка датчика довольно проста, но есть некоторые препятствия, через которые нужно прыгнуть, вот что у меня сработало:
Включите I2C и SPI на Raspberry Pi (Конфигурация Raspberry Pi> Интерфейсы)
Установите библиотеку Blinka CircuitPython:
pip3 установить adafruit-blinka
Затем установите библиотеку датчиков AMG8XX:
sudo pip3 install adafruit-circuitpython-amg88xx #
Выключите Pi и подключите датчик - к счастью, всего 4 провода!
Затем установите модули scipy, pygame и color:
sudo apt-get install -y python-scipy python-pygamesudo pip3 цвет установки
На этом этапе мой код выдал scipy ошибку, поэтому я переустановил его с помощью:
Sudo Pip3 установить scipy
Затем я получил сообщение об ошибке: ImportError: libf77blas.so.3: невозможно открыть файл общих объектов: нет такого файла или каталога
Это было решено установкой:
sudo apt-get install python-dev libatlas-base-dev
С этого момента примерный код работал нормально, скрипт запускался с консоли, а не с Тонни:
sudo python3 /home/pi/FeverChill/cam.py
Это заставило сенсорный дисплей отображаться на экране в окне pygame, и после некоторых настроек пороговых значений цвета / температуры я был загипнотизирован тепловым изображением моего лица.
Шаг 6: Настройка программного обеспечения ЖК-экрана
Было действительно хорошо заставить датчик работать, но теперь мне нужно было, чтобы он отображался на маленьком экране. Я использовал экран Adafruit Mini PiTFT 1,3 дюйма 240x240 - в основном потому, что его разрешение и форма были как раз подходящими для тепловизионной камеры, а также он был подходящего размера, чтобы поместиться в корпусе, и предлагал две кнопки, подключенные к GPIO, которые мне были нужны.
Инструкции Adafruit предлагали здесь два варианта: простой и сложный - после экспериментов я понял, что мне нужно использовать жесткий способ, потому что датчик требует прямого доступа к фреймбуферу. Следуя пошаговым инструкциям, я был в порядке, пока не задал вопрос «Хотите, чтобы консоль появилась?» - изначально я выбрал «Нет», но должен был сказать «Да». Это было немного болезненно, так как это означало, что мне пришлось повторить процесс, но это заставило меня понять, что после того, как Pi настроен для отображения консоли на TFT, он больше не будет отображать рабочий стол через HDMI (по крайней мере, это был мой опыт).
Тем не менее, как только установка была завершена, при перезагрузке крошечный экран отображал миниатюрную версию обычного процесса запуска Pi, и когда я запускал пример сценария тепловизионной камеры, окно pygame отображало тепловое изображение на маленьком экране - очень приятно!
Шаг 7: настройки кода
Образец кода работал нормально, но я хотел, чтобы он делал немного больше, поэтому приступил к настройке скриптов на свой вкус. Я начал с создания сценария меню, который загружался бы при запуске и эффективно использовал две кнопки, встроенные в дисплейную доску.
menu.py
Во-первых, я нашел в сети Python, который с помощью PyGame отображал красивый эффект анимированного меню на маленьком экране. Прелесть этого сценария заключается в том, что он анимирует все изображения в заданной папке, поэтому будет легко изменить анимацию на более позднем этапе (например, чтобы сопоставить цвета анимации с конкретным случаем). Я установил сценарий меню таким образом, чтобы нажатие одной из кнопок останавливало анимацию и открывало fever.py или chill.py, сценарии для отображения сенсорного дисплея. С этой работой я установил сценарий для запуска при запуске - обычно я делаю это, редактируя / etc / xdg / lxsession / LXDE-pi / autostart, но поскольку этот метод зависит от загрузки рабочего стола, на этот раз мне понадобился другой вариант.
Итак, сначала я отредактировал файл rc.local …
sudo nano /etc/rc.local
… Затем добавил следующее чуть выше линии выхода…
sudo /home/pi/FeverChill/menu.py &
… Предварительно убедившись, что скрипт menu.py имеет следующее на самом верху…
#! / usr / bin / env python3
… А также после установки menu.py в качестве исполняемого скрипта, набрав:
chmod + x /home/pi/FeverChill/menu.py
в терминал.
fever.py (предустановка)
Для сценария Preset я сначала установил пороги цвета / температуры, установив нижний (синий) на 16 и верхний (красный) на 37,8. Теоретически лицо человека по-прежнему будет зеленым, но оно будет светиться красным, если температура будет на уровне 37,8 градуса или выше. В Интернете есть много исследований по измерению температуры тела с помощью различных методов, но, поскольку разница датчика составляет +/- 2,5 градуса, я решил просто придерживаться наиболее широко распространенного диапазона "лихорадки" - это достаточно легко изменить с помощью ssh. впоследствии.
Затем я установил две экранные кнопки, чтобы закрыть текущий скрипт и открыть menu.py. Я также хотел найти способ захвата и экспорта изображения камеры и, найдя правильную команду PyGame
pygame.image.save (lcd, "therm.jpg")
Я установил его на запуск при нажатии кнопки «большой палец» - той, которую вы изначально использовали для снятия показаний микроволн. Это позаботилось о захвате изображения, затем я добавил несколько строк Python, чтобы изображение сразу же загружалось на панель управления Adafruit IO после захвата, чтобы его можно было просматривать на других устройствах и легко загружать. С быстрым «сохранить как» скрипт предустановки был завершен.
chill.py (динамический)
Тепловизор - это больше, чем просто поиск определенных температур, и я хотел, чтобы сценарий Dynamic был гибким, чтобы можно было легко регулировать верхний и нижний пороги цвета. Я не хотел добавлять на устройство дополнительные кнопки и усложнять навигацию, поэтому решил использовать ползунки на панели инструментов Adafruit.io.
У меня уже была основная часть кода Adafruit в скрипте Preset, поэтому мне просто пришлось добавить несколько дополнительных строк, чтобы текущие значения ползунка с панели инструментов были извлечены при запуске и установлены в качестве значений по умолчанию для отображения.
Код, который я использовал, доступен на GitHub, для его повторного использования вам просто нужно загрузить папку FeverChill в папку / pi / на вашем Pi и ввести свои учетные данные Adafruit.io и имена каналов в сценариях, как только вы отобразите & датчик настроены.
Когда скрипты работали нормально, пришло время перейти к чему-то более запутанному!
Шаг 8: Завершение корректировки
Первоначально этот проект предназначался для того, чтобы быстро отвлечься от использования термодатчика для чего-то еще, но с текущими событиями я обнаружил, что меня все больше втягивает в него, и крошечные дополнительные детали, которые растягивают его и усложняют.
С корпусом Apollo Monitor было довольно приятно работать, его легко резать и шлифовать, но чтобы закончить его красиво, я хотел спрятать некоторые видимые печатные платы за нарисованными «масками». На их изготовление из кусков пластикового мусора ушло много времени, но это была приятная работа. Сначала я сделал маленькую, которая закрывала бы плату экрана, но оставляла микровыключатели видимыми. Затем я сделал один для термодатчика, чтобы вы не увидели голую электронику, если заглянули в «деловой конец».
Я выбрал цветовую схему за пару дней до того, как в Великобритании был введен карантин, и мне посчастливилось найти нужные цвета в ближайшем хозяйственном магазине. Поскольку корпус так красиво разделен на две части, была предложена двухцветная цветовая схема, которую я затем распространил на «носовой обтекатель» и крышку сенсора. Рисовать было очень весело, в первый теплый день года, хотя это означало рисовать, пока в сарае шевелились и бродили осы. Раньше я не использовал малярный скотч с аэрозольной краской, но я действительно доволен полученными двухцветными деталями.
Изучая уроки предыдущих сборок, я оставил окрашенные детали затвердеть в течение хорошей недели перед попыткой сборки, а тем временем начал собирать видео.
Шаг 9: Сборка
Каждый раз, когда я работаю над проектом, мне нравится добираться до стадии, когда все готово к сборке, как самодельный модельный комплект. Нет никаких гарантий, что все это будет соответствовать друг другу, и инструкции существуют только в моей голове, но это моя любимая часть любой сборки.
На этот раз все прошло очень гладко - в основном потому, что у меня было дополнительное время, чтобы потратить на мелкие детали и убедиться, что все в порядке. Сначала я приклеил экран к корпусу горячим способом, а затем добавил кнопку «захвата» - это были единственные детали, подключенные к верхней части корпуса, так что это было хорошее легкое начало.
Затем я слегка приклеил аккумуляторную батарею к рукоятке и вставил Pi с кронштейном в корпус. После этого сенсор камеры был аккуратно вклеен в носовой обтекатель, выключатель питания прикручен к крышке аккумуляторного отсека и все подключено.
Я использовал соединительные кабели для всех соединений, но, чтобы быть предельно осторожным, я приклеил их на место горячим клеем на случай любого движения во время окончательного сдавливания двух половин. На самом деле это было просто немного хлюпать, но не трескаться, поэтому, как только две половинки были плотно прижаты друг к другу, я вставил носовой обтекатель и закрепил болт через рукоятку - единственные две вещи, скрепляющие всю сборку вместе.
В первый раз это не сработало, мне удалось отключить экран во время первого сквишатона, но после нескольких стратегических изгибов кабеля все закончилось благополучно во второй раз. Пора указать на вещи!
Шаг 10: время температурных испытаний
Дополнительное время дома действительно помогло мне сосредоточиться (одержать?) Больше, чем обычно, на мелких деталях этого проекта, и это определенно способствовало более чистому завершению и меньшему количеству сюрпризов во время сборки, а также помогло сохранить мое душевное благополучие. прямой и узкий. Первоначальный план сенсора был совершенно другим, поэтому я очень доволен конечным результатом - медленной и удовлетворительной сборкой.
Apollo Pi также отлично смотрится на полке проекта и, безусловно, является забавным и полезным инструментом, мы не можем перестать указывать на него! В идеальном мире это было бы немного более высокое разрешение, и мне нужно найти способ «перевернуть» дисплей, как он сейчас отображается, но это мелочи.
Спасибо за чтение и будьте в безопасности.
Все мои другие проекты Old Tech, New Spec находятся на Instructables по адресу
Более подробная информация на сайте https://bit.ly/OldTechNewSpec. и я в Твиттере @OldTechNewSpec.
Рекомендуемые:
Педальный пульт дистанционного управления затвором + триггер: 6 шагов (с фотографиями)
Педальный пульт дистанционного управления затвором + триггер: этот педальный пульт идеально подходит для аниматоров остановки, фотоархивистов, блоггеров и профессионалов, которые не могут постоянно дотянуться до кнопки спуска затвора своей камеры или которым нужно быстро работать на столе с установленной камерой высокие накладные расходы. Обновление за декабрь 2020 г .: E
Ночной свет в ванной: 5 шагов (с фотографиями)
Середина ночи Освещение для ванной комнаты: некоторые из нас испытывают потребность использовать ванную комнату посреди ночи. Если вы включите свет, вы можете потерять ночное зрение. Белый или синий свет заставляет вас терять гормон сна, мелатонин, что затрудняет повторное засыпание. Так
Камера высокого качества Merlin Pi 1979 года: 7 шагов (с фотографиями)
Камера высокого качества Merlin Pi 1979 года: эта сломанная старая портативная игра Merlin теперь представляет собой тактильный практичный футляр для камеры высокого качества Raspberry Pi. Сменный объектив камеры выглядывает из-за того, что было крышкой аккумуляторного отсека сзади, а на передней матрица кнопок переделана
Тепловизор AMG8833 (Raspberry Pi): 4 шага
Тепловизионная камера AMG8833 (Raspberry Pi): базовое руководство по настройке ИК-камеры (AMG833) с Raspberry Pi
ИК-тепловизор: 16 ступеней
ИК-тепловизор. Вы когда-нибудь смотрели научно-фантастический фильм или боевик, где персонажи входят в черную комнату и включают свое «тепловое зрение»? Или вы когда-нибудь играли в Metroid Prime и помните тепловизор, который был у главного героя? Ну