Съдържание:

1979 Термокамера Apollo Pi: 10 стъпки (със снимки)
1979 Термокамера Apollo Pi: 10 стъпки (със снимки)

Видео: 1979 Термокамера Apollo Pi: 10 стъпки (със снимки)

Видео: 1979 Термокамера Apollo Pi: 10 стъпки (със снимки)
Видео: Волшебные колёса от НАСА [Veritasium] 2024, Ноември
Anonim
Image
Image
1979 Термокамера Аполо Пи
1979 Термокамера Аполо Пи
1979 Термокамера Аполо Пи
1979 Термокамера Аполо Пи

Този ретро микровълнов детектор Apollo вече има лъскаво ново предназначение като термична камера, захранвана от Raspberry Pi Zero със сензор за термокамера Adafruit, който измерва температурите, показвайки резултатите в реално време на ярък 1,3-инчов TFT дисплей.

Той има предварително зададен и динамичен режим - в първия цветовете, показани на екрана, се основават на твърдо кодирани температурни прагове, а във втория цветовият диапазон може да се регулира с помощта на температурни плъзгачи на таблото за управление на Adafruit.io. показва всички качени снимки, качени от устройството, които са заснети с помощта на оригиналния бутон за палец на ръкохватката.

Цялата система се захранва от тънка, цилиндрична USB батерия, скрита в ръкохватката, която може лесно да се презареди, като изскочи конуса на носа и включи USB кабел.

Само три скрипта на Python контролират логиката на менюто, сензора и интеграцията на Adafruit.io, като дисплеят се управлява от PyGame.

Работата по този проект наистина ми помогна да се запазя позитивна по време на заключването, а с допълнителното време, с което разполагаме, децата и аз открихме много интересни неща из къщата, за да го насочим!

Разгледайте Apollo Pi в действие във видеоклипа в YouTube, в случай че не можете да видите вградената версия по -горе, тя е на

Консумативи

Apollo микровълнов монитор

Raspberry Pi Zero W

Adafruit AMG8833 Термокамера

Adafruit Mini PiTFT 1.3 екран

Кабелни кабели

3v вибриращ диск

USB захранваща банка

Стъпка 1: Откъсване

Свалям
Свалям
Свалям
Свалям
Свалям
Свалям

Взех Apollo Monitor на втора употреба миналото лято, за уникалния му вид, а не за всичко друго - което е също толкова добре, колкото определено беше виждал по -добри дни! Вътрешните вериги бяха непълни и цялото беше покрито с каша лепило, исторически опит да се поправи.

Първоначално той би бил използван за проверка на наличието на микровълнова радиация, вероятно в някаква промишлена среда, като се има предвид нейният дизайн и рядкостта на микровълновите фурни по онова време, въпреки че не можах да разбера много повече за това. Едно нещо, което знаех, би било идеалният дом за термокамера.

Веднага щом изскочих от конусовидния „нос“, останалата част от него буквално се разпадна, а залепеният аналогов метър и правоъгълният бутон бяха лесно отстранени. Запазих копчето, той беше напълно функционален и наистина странна форма, така че щях да се мъча да вкарам замяна в същия отвор.

Стъпка 2: Окабеляване

Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации

Преди да подрязвам кутията, за да направя всичко подходящо, първо исках да се уверя, че знам как ще се съчетаят частите, затова се насочих към свързването на сензора и екрана. Самият сензор беше добре, бяха необходими само четири кабела за свързване към Raspberry Pi.

Екранът беше малко по -сложен, диаграмата на извеждане показваше, че ще трябва да свържа 13 джъмперни проводника - очевидно той е проектиран да седи директно върху Pi, така че само аз трябваше да виня наистина. Реших да добавя парче женска заглавка между екрана и връзките Pi, така че да мога да сваля екрана и да го свържа лесно. Това беше чудесна идея и аз много внимателно следвах схемата на разпределение, за да свържа заглавката към Pi.

След това запоях няколко свежи кабела на джъмпера към оригиналния бутон, така че да може да бъде свързан към GPIO и да се използва за заснемане на термични снимки. Накрая запоявах малък вибриращ диск директно към щифтовете GPIO, за да осигуря някаква тактилна обратна връзка за натискането на бутоните.

Стъпка 3: Режими на случая

Модове на калъфи
Модове на калъфи
Модове на калъфи
Модове на калъфи

Едно от нещата, които възкресиха монитора на Аполо от кутията ми за „вършене“, беше дупката за показване в горната част - това беше приблизително размерът, от който се нуждаех за малкия екран Adafruit. Приблизително. Отне около час с файл, за да се разшири дупката до точния размер, но за щастие успях да не унищожа случая в процеса.

Отрязах и части от вътрешностите, които първоначално държаха батерия PP3, и изрязах някои прегради вътре в ръкохватката, за да освободя място за батерията, с помощта на въртящ се инструмент.

Накрая пробих няколко големи дупки, така че кабелите за сензора и кабела за зареждане да могат да си проправят път от „носа“, за да се съединят с останалите вериги.

Стъпка 4: Захранване

Мощност
Мощност
Мощност
Мощност
Мощност
Мощност
Мощност
Мощност

За този проект реших да не използвам LiPo батерия и адаптер/зарядно устройство, тъй като имаше повече място в кутията. Реших вместо това да използвам стандартна USB захранваща банка. Исках да взема тънък цилиндричен, който да се побере вътре в дръжката, затова потърсих най -евтиния и тънък, който можех да намеря в Amazon. Този, който пристигна, със сирене с LED факел и стил на изкуствена батерия, беше най-тънкият, който можах да намеря, но когато го разопаковах, разбрах, че все още е твърде дебел, за да се побере в дръжката. Тогава разбрах, че се е разпаднал - горната страна се развинтва, а голата батерия отвътре се изплъзва, което ми спестява добре 3 мм, от които се нуждаех, за да я вкарам в дръжката, какъв резултат!

След това взех къс Micro USB кабел, свалих част от изолацията, отрязах положителния кабел и запоех в прекрасен квадратен бутон за затваряне, така че захранването да може да се контролира, без да се налага да изключвате батерията. Този бутон се вписваше добре в първоначалния капак на батерията и беше доста близо до оригиналния в горната част на кутията. Сега, когато знаех, че всичко ще се побере, беше време всичко да работи!

Стъпка 5: Настройка на софтуера за термокамера

Настройка на софтуера за термокамера
Настройка на софтуера за термокамера

Самият термичен сензор е Adapruit 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 инсталирайте adafruit-circuitpython-amg88xx#

Изключете Pi и свържете сензора - само 4 проводника за щастие!

След това инсталирайте модулите scipy, pygame и цвят:

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

Оттогава примерният код работи добре, изпълнявайки скрипта от конзолата, а не от Thonny:

sudo python3 /home/pi/FeverChill/cam.py

Това накара сензорния дисплей да се покаже на екрана в прозорец на игра и след няколко корекции на праговете за цвят/температура бях хипнотизиран от топлинно изображение на лицето ми.

Стъпка 6: Настройка на софтуера на LCD екрана

Настройка на софтуера на LCD екрана
Настройка на софтуера на LCD екрана
Настройка на софтуера на LCD екрана
Настройка на софтуера на LCD екрана

Беше наистина добре да накарам сензора да работи, но сега имах нужда да го покажа на малкия екран. Екранът, който използвах, е Adafruit Mini PiTFT 1.3 240x240 - главно защото неговата разделителна способност и форма бяха точно подходящи за термокамерата, също така беше с правилния размер, за да се побере в кутията и предлагаше двата бутона, свързани с GPIO, от които се нуждаех.

Инструкциите на Adafruit предлагат две възможности тук: лесен и труден начин - след експериментирането осъзнах, че трябва да използвам трудния начин, тъй като сензорът изисква директен достъп до рамковия буфер. Следвайки инструкциите стъпка по стъпка, бях добре, докато не ударих въпроса „Искате ли да се появи конзолата“- първоначално избрах Не, но трябваше да кажа Да. Това беше малко болка, тъй като означаваше, че трябва да повторя процеса, но ме накара да разбера, че след като Pi е настроен да показва конзолата на TFT, той вече няма да показва работния плот чрез HDMI (поне това беше моят опит)

И все пак, след като настройката приключи, при рестартирането малкият екран показа миниатюрна версия на обичайния процес на стартиране на Pi и когато изпълних примерния скрипт за термокамера, прозорецът на играта показа топлинното изображение на малкия екран - много задоволително!

Стъпка 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 (предварително зададено)

За предварително зададения скрипт първо зададох праговете за цвят / температура, като зададох долния (син) на 16 и горния (червен) на 37,8. Теоретично това все още ще показва лицето на човек в зелено, но ще свети в червено, ако температурата е на или над 37,8 градуса. Има много проучвания онлайн за вземане на проби от телесната температура чрез различни методи, но тъй като отклонението на сензора е +/- 2,5 градуса, реших просто да се придържам към най -широко приетия диапазон на "треска" - това е достатъчно лесно да се промени чрез ssh по-късна дата.

След това зададох двата бутона на екрана, за да затворя текущия скрипт и да отворя menu.py. Исках също да намеря начин за заснемане и експортиране на изображението на камерата и след като намерих правилната команда PyGame

pygame.image.save (lcd, "thermo.jpg")

Зададох това да се изпълнява при натискане на бутона „палец“- този, който първоначално бихте използвали за отчитане на микровълнова печка. Това се погрижи за заснемането на изображението, след това добавих в някои редове на Python, така че изображението веднага да бъде качено в таблото за управление на входа на Adafruit, след като бъде заснето, така че да може да се гледа на други устройства и лесно да се изтегля. С бързото „запазване като“завърши предварително зададеният скрипт.

chill.py (динамично)

Термичната камера има нещо повече от търсене на конкретни температури и исках динамичният скрипт да бъде гъвкав, така че горният и долният праг на цветовете да могат лесно да се регулират. Не исках да добавям допълнителни бутони към устройството и да усложнявам навигацията, затова избрах да използвам плъзгачи на таблото за управление на Adafruit.io.

Вече имах по -голямата част от кода на Adafruit в скрипта Preset, така че просто трябваше да добавя някои допълнителни редове, така че текущите стойности на плъзгача от таблото за управление да бъдат извлечени при стартиране и зададени като стойности по подразбиране на дисплея.

Кодът, който използвах, е наличен в GitHub, за да го използвате повторно, просто трябва да изтеглите папката FeverChill в папката / pi / на вашия Pi и да въведете вашите идентификационни данни и имена на емисии в скриптовете, след като дисплеят ви & сензора е настроен.

Тъй като скриптовете работеха добре, беше време да преминем към нещо по -меко!

Стъпка 8: Завършване на докосванията

Завършване на докосвания
Завършване на докосвания
Завършване на докосвания
Завършване на докосвания
Завършване на докосвания
Завършване на докосвания

Първоначално този проект е имал за цел бързо да отвлече вниманието от използването на термичния сензор за нещо друго, но с текущите събития се оказах все по -привлечен от него и малките допълнителни подробности, които биха го разтеглили и биха го направили по -голямо предизвикателство.

Калъфът на Apollo Monitor беше доста приятен за работа, лесен за рязане и шлайфане, но за да го завърша добре, исках да пъхна някои от видимите платки зад боядисани „маски“. Това отнемаше години, изрязвайки ги от парчета отпадъчна пластмаса на ръка, но работата беше задоволителна. Първо направих малка, която да прикрива екранната платка, но да остави микропревключвателите видими. След това направих такъв за термичния сензор, така че да не виждате гола електроника, ако погледнете надолу „бизнес края“.

Реших за цветовата схема няколко дни преди Великобритания да влезе в блокиране и имах късмета да намеря желаните от мен цветове в близкия магазин за хардуер. Тъй като калъфът се раздели толкова добре на половинки, беше предложена двуцветна цветова схема и след това разширих това до "конуса на носа" и капака на сензора. Картината беше много забавна, първият топъл ден в годината, макар че това означаваше да рисува, докато осите в бараката се разбъркваха и мелеха. Досега не съм използвал маскираща лента със спрей боя, но съм наистина доволен от това как се получиха получените двуцветни парчета.

Научавайки уроците от предишни компилации, оставих боядисаните части да се втвърдят за добра седмица, преди да се опитам да сглобя, и междувременно започнах да сглобявам видеото.

Стъпка 9: Монтаж

Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж

Винаги, когато работя по проект, обичам да стигам до етапа, когато всичко е подредено, готово за сглобяване като самостоятелно изработен модел комплект. Няма гаранции, че всичко ще съвпадне и инструкциите съществуват само в главата ми, но това е любимата ми част от всяка конструкция.

Този път всичко мина много гладко - най -вече защото имах допълнително време да отделя за малките детайли и да се уверя, че всичко е точно така. Първо залепих екрана горещо в кутията, след което добавих бутона „улавяне“- това бяха единствените части, свързани към горната част на кутията, така че беше хубав лесен старт.

След това залепих леко горещо батерията в ръкохватката и поставих Pi със скобата в кутията. След това сензорът на камерата беше внимателно залепен в конуса на носа, превключвателят на захранването беше завинтен към капака на батерията и всичко беше свързано.

Използвах джъмперни кабели за всички връзки, но само за да бъда особено внимателен, ги залепих горещо на място, в случай на някакво движение по време на последното сгъване на двете половини. Просто всъщност това беше малко притискащо, но нямаше пукащи звуци, така че след като двете половини бяха плътно събрани, аз притиснах конуса на носа и закрепих болта през дръжката - единствените две неща, които държат целия монтаж заедно.

Не работеше за първи път, успях да изключа екрана по време на първия squishathon, но с няколко стратегически кабелни огъвания всичко завърши щастливо втори път. Време е да го насочим към нещата!

Стъпка 10: Време за изпитване на температурата

Време за изпитване на температурата
Време за изпитване на температурата
Време за изпитване на температурата
Време за изпитване на температурата
Време за изпитване на температурата
Време за изпитване на температурата
Време за изпитване на температурата
Време за изпитване на температурата

Наличието на допълнително време у дома наистина ми помогна да се съсредоточа (обсебявам?) Повече от обикновено върху малките детайли на този проект и това определено доведе до по -чист завършек и по -малко изненади по време на сглобяването - както и до поддържане на психическото ми благосъстояние прав и тесен. Първоначалният план за сензора беше нещо съвсем различно, така че съм много доволен от крайния резултат, бавна и удовлетворяваща конструкция.

Apollo Pi изглежда страхотно и на рафта на проекта и определено е забавен и полезен инструмент, който трябва да имате наоколо, не можем да спрем да го насочваме към нещата! В един идеален свят това би било с малко по -висока разделителна способност и трябва да намеря някакъв начин да „обърна“дисплея, тъй като в момента е огледален, но това са малки иглата.

Благодаря за четенето и бъдете в безопасност на всички.

Другите ми проекти на Old Tech, New Spec са на Instructables на

Повече подробности са на уебсайта на адрес https://bit.ly/OldTechNewSpec. и аз съм в Twitter @OldTechNewSpec.

Препоръчано: