Spisu treści:

Kamera termowizyjna Apollo Pi 1979: 10 kroków (ze zdjęciami)
Kamera termowizyjna Apollo Pi 1979: 10 kroków (ze zdjęciami)

Wideo: Kamera termowizyjna Apollo Pi 1979: 10 kroków (ze zdjęciami)

Wideo: Kamera termowizyjna Apollo Pi 1979: 10 kroków (ze zdjęciami)
Wideo: Kamera termowizyjna do elektroniki 2024, Listopad
Anonim
Image
Image
Kamera termowizyjna Apollo Pi z 1979 roku
Kamera termowizyjna Apollo Pi z 1979 roku
Kamera termowizyjna Apollo Pi z 1979 roku
Kamera termowizyjna Apollo Pi z 1979 roku

Ten zabytkowy detektor mikrofalowy Apollo ma teraz nowe, błyszczące zastosowanie jako kamera termowizyjna, zasilana przez Raspberry Pi Zero z czujnikiem kamery termowizyjnej Adafruit, który rejestruje temperatury, wyświetlając wyniki w czasie rzeczywistym na jasnym wyświetlaczu TFT o przekątnej 1,3 cala.

Posiada tryb Preset i Dynamic - w pierwszym kolory wyświetlane na ekranie są oparte na zakodowanych na stałe progach temperatur, a w drugim zakres kolorów można regulować za pomocą suwaków temperatury na desce rozdzielczej Adafruit.io. Deska rozdzielcza również błyskawicznie wyświetla wszystkie migawki przesłane przez urządzenie, które są rejestrowane za pomocą oryginalnego przycisku kciuka na uchwycie.

Cały system zasilany jest z cienkiego, cylindrycznego akumulatora USB ukrytego w rękojeści, który można łatwo naładować, odczepiając stożek nosowy i podłączając przewód USB.

Tylko trzy skrypty Pythona kontrolują logikę menu, czujnik i integrację Adafruit.io, z wyświetlaczem obsługiwanym przez PyGame.

Praca nad tym projektem naprawdę pomogła mi zachować pozytywne nastawienie podczas zamknięcia, a dzięki dodatkowemu czasowi w naszych rękach dzieci i ja znaleźliśmy wiele interesujących rzeczy w domu, na które warto zwrócić uwagę!

Rzuć okiem na Apollo Pi w akcji w filmie na YouTube, na wypadek, gdybyś nie widział wbudowanej wersji powyżej, jest na

Kieszonkowe dzieci

Monitor mikrofalowy Apollo

Raspberry Pi Zero W

Kamera termowizyjna Adafruit AMG8833 Breakout

Ekran Adafruit Mini PiTFT 1,3"

Kable rozruchowe

Dysk wibracyjny 3V

Bank zasilania USB

Krok 1: Pozbądź się

Zburzyć
Zburzyć
Zburzyć
Zburzyć
Zburzyć
Zburzyć

Kupiłem Apollo Monitor na wyprzedaży używanej zeszłego lata, ze względu na jego wyjątkowy wygląd, a nie cokolwiek innego – co jest równie dobre, jak zdecydowanie widział lepsze dni! Obwody wewnątrz były niekompletne, a całość pokryta bałaganem kleju, historyczna próba naprawy.

Pierwotnie służył do sprawdzania obecności promieniowania mikrofalowego, prawdopodobnie w jakimś środowisku przemysłowym, biorąc pod uwagę jego konstrukcję i rzadkość w tym czasie kuchenek mikrofalowych, chociaż nie mogłem dowiedzieć się o nim wiele więcej. Jedno wiedziałem, że byłby to idealny dom na kamerę termowizyjną.

Gdy tylko oderwałem stożkowaty „nos” reszta dosłownie się rozpadła, a wklejony analogowy miernik i prostokątny przycisk można było łatwo usunąć. Trzymałem jednak przycisk, był doskonale funkcjonalny i miał naprawdę dziwny kształt, więc miałbym trudności z dopasowaniem zamiennika w tym samym otworze.

Krok 2: Okablowanie

Okablowanie
Okablowanie
Okablowanie
Okablowanie

Przed przycięciem obudowy, aby wszystko pasowało, najpierw chciałem się upewnić, że wiem, jak poszczególne części będą do siebie pasować, więc postanowiłem okablować czujnik i ekran. Sam czujnik był w porządku, do podłączenia go do Raspberry Pi potrzebne były tylko cztery kable rozruchowe.

Ekran był nieco bardziej skomplikowany, schemat wyprowadzeń pokazał, że będę musiał podłączyć 13 przewodów połączeniowych – oczywiście jest zaprojektowany tak, aby siedzieć bezpośrednio na górze Pi, więc naprawdę mogłem winić tylko siebie. Postanowiłem dodać kawałek żeńskiego nagłówka między ekranem a połączeniami Pi, abym mógł zdjąć ekran i łatwo go podłączyć. To był świetny pomysł i bardzo uważnie śledziłem schemat pinów, aby podłączyć nagłówek do Pi.

Następnie przylutowałem kilka nowych kabli połączeniowych do oryginalnego przycisku, aby można go było podłączyć do GPIO i używać do przechwytywania zdjęć termowizyjnych. Na koniec przylutowałem mały krążek wibracyjny bezpośrednio do pinów GPIO, aby zapewnić dotykowe sprzężenie zwrotne po naciśnięciu przycisków.

Krok 3: Modyfikacje obudowy

Mody do spraw
Mody do spraw
Mody do spraw
Mody do spraw

Jedną z rzeczy, które wskrzesiły Apollo Monitor z mojego pudełka „do zrobienia”, był otwór na wyświetlacz w górnej części - był to mniej więcej taki rozmiar, jakiego potrzebowałem do małego ekranu Adafruit. Mniej więcej. Poszerzenie otworu do odpowiedniego rozmiaru zajęło mi około godziny, ale na szczęście udało mi się nie zniszczyć obudowy w trakcie.

Odciąłem również części wnętrza, w których pierwotnie znajdował się akumulator PP3, i wyciąłem kilka grodzi wewnątrz uchwytu, aby zrobić miejsce na akumulator, za pomocą narzędzia obrotowego.

Na koniec wywierciłem kilka dużych otworów, aby kable do czujnika i kabel ładujący mogły wyjść z „nosa”, aby połączyć się z resztą obwodów.

Krok 4: Moc

Moc
Moc
Moc
Moc
Moc
Moc
Moc
Moc

Do tego projektu zrezygnowałem z używania baterii LiPo i zasilacza/ładowarki, ponieważ w obudowie było więcej miejsca. Zdecydowałem się zamiast tego użyć standardowego power banku USB. Chciałem dostać cienki cylindryczny, aby zmieścił się w rączce, więc szukałem najtańszego i najcieńszego, jaki mogłem znaleźć na Amazon. Ten, który przybył, z tandetną latarką LED i fajną baterią, był najcieńszy, jaki udało mi się znaleźć, ale po rozpakowaniu zdałem sobie sprawę, że wciąż jest zbyt gruby, aby zmieścić się w rączce. Potem zdałem sobie sprawę, że się rozpadł - górna część odkręcona i odsłonięta bateria w środku wysunęła się, zgrabnie oszczędzając mi 3mm, które potrzebowałem, aby zmieścić ją w rękojeści, co za rezultat!

Następnie wziąłem krótki kabel Micro USB, zdjąłem część izolacji, przeciąłem kabel dodatni i wlutowałem w piękny kwadratowy przycisk zatrzaskowy, dzięki czemu można było sterować zasilaniem bez konieczności odłączania akumulatora. Ten przycisk ładnie pasował do oryginalnej pokrywy baterii i był dość zbliżony do oryginalnego przycisku na górze obudowy. Teraz, gdy wiedziałem, że wszystko będzie pasować, nadszedł czas, aby wszystko działało!

Krok 5: Konfiguracja oprogramowania kamery termowizyjnej

Konfiguracja oprogramowania kamery termowizyjnej
Konfiguracja oprogramowania kamery termowizyjnej

Sam czujnik termiczny to Adafruit AMG8833IR Thermal Camera Breakout, który wykorzystuje matrycę czujników 8x8 do tworzenia obrazu cieplnego. Działa z Arduino i Raspberry Pi, ale największą zaletą korzystania z Pi jest to, że oprogramowanie może używać modułu scipy python do wykonywania interpolacji dwusześciennej na przechwyconych danych, dzięki czemu wygląda jak obraz 32x32, schludny!

Konfiguracja czujnika jest dość prosta, ale jest kilka obręczy do przeskoczenia, oto co mi się udało:

Włącz I2C i SPI na Raspberry Pi (Konfiguracja Raspberry Pi> Interfejsy)

Zainstaluj bibliotekę Blinka CircuitPython:

pip3 zainstaluj adafruit-blinka

Następnie zainstaluj bibliotekę czujników AMG8XX:

sudo pip3 zainstaluj adafruit-circuitpython-amg88xx #

Wyłącz Pi i podłącz czujnik - na szczęście tylko 4 przewody!

Następnie zainstaluj moduły scipy, pygame i color:

sudo apt-get install -y python-scipy python-pygamesudo pip3 kolor instalacji

W tym momencie mój kod wyrzucił błąd Scipy, więc zainstalowałem go ponownie za pomocą:

Sudo Pip3 zainstaluj scipy

Następnie otrzymałem błąd: ImportError: libf77blas.so.3: nie można otworzyć udostępnionego pliku obiektu: Brak takiego pliku lub katalogu

Zostało to rozwiązane przez zainstalowanie:

sudo apt-get zainstaluj python-dev libatlas-base-dev

Od tego momentu przykładowy kod działał dobrze, uruchamiając skrypt z konsoli, a nie z Thonny'ego:

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

To sprawiło, że wyświetlacz czujnika pojawił się na ekranie w oknie gry pygame, a po kilku poprawkach w zakresie progów kolorów/temperatury zahipnotyzował mnie obraz ciepła mojej twarzy.

Krok 6: Konfiguracja oprogramowania ekranu LCD

Konfiguracja oprogramowania ekranu LCD
Konfiguracja oprogramowania ekranu LCD
Konfiguracja oprogramowania ekranu LCD
Konfiguracja oprogramowania ekranu LCD

Naprawdę dobrze było uruchomić czujnik, ale teraz musiałem wyświetlić go na małym ekranie. Użyty przeze mnie ekran to Adafruit Mini PiTFT 1,3 240x240 - głównie dlatego, że jego rozdzielczość i kształt były adekwatne do kamery termowizyjnej, a także miał odpowiedni rozmiar, aby zmieścić się w obudowie i oferował dwa potrzebne mi przyciski GPIO.

Instrukcja Adafruit oferowała tutaj dwie opcje: Łatwy i Trudny – po eksperymentach zdałem sobie sprawę, że muszę skorzystać z Trudnego sposobu, ponieważ czujnik wymagał bezpośredniego dostępu do bufora ramki. Postępując zgodnie z instrukcjami krok po kroku, wszystko było w porządku, dopóki nie trafiłem na pytanie „Czy chciałbyś, aby pojawiła się konsola” – początkowo wybrałem Nie, ale powinienem był powiedzieć Tak. To było trochę uciążliwe, ponieważ oznaczało, że musiałem powtórzyć ten proces, ale uświadomiło mi to, że gdy Pi jest ustawione do wyświetlania konsoli na TFT, nie będzie już wyświetlać pulpitu przez HDMI (przynajmniej to było moje doświadczenie).

Mimo to, po zakończeniu konfiguracji, po ponownym uruchomieniu mały ekran wyświetlał miniaturową wersję zwykłego procesu uruchamiania Pi, a kiedy uruchomiłem przykładowy skrypt kamery termowizyjnej, okno pygame wyświetlało obraz ciepła na małym ekranie - bardzo satysfakcjonujące!

Krok 7: Poprawki kodu

Poprawki kodu
Poprawki kodu
Poprawki kodu
Poprawki kodu

Przykładowy kod działał dobrze, ale chciałem, żeby robił trochę więcej, więc zacząłem dostosowywać skrypty do mojego gustu. Zacząłem od stworzenia skryptu Menu, który ładował się podczas uruchamiania i dobrze wykorzystywał dwa przyciski zintegrowane z płytą wyświetlacza.

menu.py

Najpierw znalazłem w sieci Pythona, który wyświetlał ładny animowany efekt menu na małym ekranie, używając PyGame. Piękno tego skryptu polega na tym, że animuje wszystkie obrazy w ustawionym folderze, więc łatwo byłoby zmienić animację na późniejszym etapie (na przykład, aby dopasować kolory animacji do obudowy). Ustawiłem skrypt menu tak, aby naciśnięcie jednego z przycisków zatrzymało animację i otworzyło albo fever.py albo chill.py, skrypty pokazujące wyświetlacz czujnika. Po tym działaniu ustawiłem skrypt tak, aby uruchamiał się przy starcie - zwykle robię to edytując /etc/xdg/lxsession/LXDE-pi/autostart, ale ponieważ ta metoda opiera się na ładowaniu pulpitu, tym razem potrzebowałem innej opcji.

Więc najpierw edytowałem plik rc.local…

sudo nano /etc/rc.local

… następnie dodano poniżej tuż nad linią wyjścia…

sudo /home/pi/FeverChill/menu.py &

…po upewnieniu się, że skrypt menu.py ma na samej górze następujące elementy…

#!/usr/bin/env python3

…a także po ustawieniu menu.py jako skryptu wykonywalnego przez wpisanie:

chmod +x /home/pi/FeverChill/menu.py

do terminala.

gorączka.py (ustawienie wstępne)

Dla skryptu Preset najpierw ustawiłem progi kolorów/temperatury, ustawiając dolny (niebieski) na 16, a górny (czerwony) na 37,8. To teoretycznie nadal pokazywałoby twarz osoby na zielono, ale świeciło na czerwono, gdyby temperatura wynosiła 37,8 stopnia lub powyżej. Istnieje wiele badań w Internecie na temat próbkowania temperatury ciała różnymi metodami, ale ponieważ wariancja czujnika wynosi +/- 2,5 stopnia, postanowiłem po prostu trzymać się najszerzej akceptowanego zakresu "gorączki" - łatwo to zmienić za pomocą ssh w późniejszym terminie.

Następnie ustawiłem dwa przyciski ekranowe, aby zamknąć bieżący skrypt i otworzyć menu.py. Chciałem też znaleźć sposób na przechwycenie i wyeksportowanie obrazu z kamery, a po znalezieniu odpowiedniego polecenia PyGame

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

Ustawiłem to tak, aby uruchamiało się po naciśnięciu przycisku „kciuka” – tego, którego pierwotnie używałeś do odczytu w kuchence mikrofalowej. To zajęło się przechwyceniem obrazu, następnie dodałem kilka linii Pythona, aby obraz był natychmiast przesyłany do pulpitu nawigacyjnego Adafruit IO po przechwyceniu, aby można go było oglądać na innych urządzeniach i łatwo pobrać. Szybkim "zapisz jako" zakończył się skrypt Preset.

chill.py (dynamiczny)

Kamera termowizyjna to coś więcej niż szukanie określonych temperatur i chciałem, aby skrypt Dynamiczny był elastyczny, aby można było łatwo dostosować górny i dolny próg kolorów. Nie chciałem dodawać do urządzenia dodatkowych przycisków i komplikować nawigacji, więc zdecydowałem się na użycie suwaków na desce rozdzielczej Adafruit.io.

Miałem już większość kodu Adafruit w skrypcie Preset, więc musiałem tylko dodać kilka dodatkowych linii, aby bieżące wartości suwaków z pulpitu nawigacyjnego zostały pobrane przy uruchomieniu i ustawione jako domyślne.

Kod, którego użyłem, jest dostępny na GitHub, aby go ponownie użyć, wystarczy pobrać folder FeverChill do folderu /pi/ na swoim Pi i wprowadzić swoje dane logowania i nazwy kanałów Adafruit.io w skryptach, po wyświetleniu & czujnik są skonfigurowane.

Ponieważ skrypty działały sprawnie, nadszedł czas, aby przejść do czegoś bardziej chaotycznego!

Krok 8: Wykańczanie poprawek

Poprawki wykończeniowe
Poprawki wykończeniowe
Poprawki wykończeniowe
Poprawki wykończeniowe
Poprawki wykończeniowe
Poprawki wykończeniowe

Pierwotnie ten projekt miał być szybkim odwróceniem uwagi od używania czujnika termicznego do czegoś innego, ale z bieżącymi wydarzeniami coraz bardziej się w to wciągałem, a drobne dodatkowe szczegóły, które go rozciągnęły i uczyniły go większym wyzwaniem.

Obudowa Apollo Monitor była całkiem przyjemna w obsłudze, łatwa do cięcia i szlifowania, ale żeby ładnie ją wykończyć, chciałem schować niektóre widoczne płytki drukowane za pomalowanymi „maskami”. Trwało to wieki, ręcznie wycinając je z kawałków plastiku, ale była to satysfakcjonująca praca. Najpierw zrobiłem mały, który zakryłby płytkę ekranu, ale pozostawił widoczne mikroprzełączniki. Następnie zrobiłem jeden do czujnika termicznego, aby nie widziałeś gołej elektroniki, jeśli spojrzysz w dół "koniec biznesu".

Zdecydowałem się na kolorystykę na kilka dni przed zamknięciem Wielkiej Brytanii i miałem szczęście znaleźć kolory, które chciałem w pobliskim sklepie z narzędziami. Ponieważ obudowa tak ładnie podzieliła się na połówki, zasugerowano dwukolorową kolorystykę, a następnie rozszerzyłem ją na „stożek” i osłonę czujnika. Malowanie było świetną zabawą, pierwszy ciepły dzień w roku, chociaż oznaczało to malowanie, podczas gdy osy w szopie poruszały się i kłębiły. Nie używałem wcześniej taśmy maskującej z farbą w sprayu, ale jestem naprawdę zadowolony z tego, jak powstały dwukolorowe kawałki.

Ucząc się lekcji z poprzednich konstrukcji, pozostawiłem pomalowane części do stwardnienia na dobry tydzień przed przystąpieniem do montażu, a w międzyczasie zacząłem składać wideo.

Krok 9: Montaż

montaż
montaż
montaż
montaż
montaż
montaż

Zawsze, gdy pracuję nad projektem, uwielbiam przechodzić na scenę, gdzie wszystko jest ułożone gotowe do złożenia jak samodzielny model do sklejania. Nie ma gwarancji, że wszystko będzie do siebie pasować, a instrukcje istnieją tylko w mojej głowie, ale to moja ulubiona część każdej kompilacji.

Tym razem poszło bardzo gładko - głównie dlatego, że miałam dodatkowy czas na drobne szczegóły i upewnienie się, że wszystko jest po prostu takie. Najpierw wkleiłem ekran na gorąco do obudowy, a następnie dodałem przycisk "capture" - były to jedyne części połączone z górną częścią obudowy, więc był to fajny i łatwy start.

Następnie lekko przykleiłem akumulator do uchwytu i włożyłem Pi wraz z uchwytem do obudowy. Następnie czujnik kamery został starannie wklejony w stożek nosowy, włącznik zasilania został przykręcony do pokrywy baterii i wszystko zostało podłączone.

Użyłem kabli połączeniowych do wszystkich połączeń, ale dla dodatkowej ostrożności przykleiłem je na gorąco, na wypadek jakiegokolwiek ruchu podczas końcowego zgniatania dwóch połówek. Po prostu trochę zgniotło, ale bez trzasków, więc gdy obie połówki były blisko siebie, wcisnąłem stożek nosowy i zabezpieczyłem śrubę przez uchwyt - jedyne dwie rzeczy, które spajają cały zespół.

Za pierwszym razem nie zadziałało, udało mi się odłączyć ekran podczas pierwszego squisathonu, ale po kilku strategicznych zgięciach kabla wszystko skończyło się szczęśliwie za drugim razem. Czas skierować go na rzeczy!

Krok 10: Czasy testowania temperatury

Czasy testowania temperatury
Czasy testowania temperatury
Czasy testowania temperatury
Czasy testowania temperatury
Czasy testowania temperatury
Czasy testowania temperatury
Czasy testowania temperatury
Czasy testowania temperatury

Posiadanie dodatkowego czasu w domu naprawdę pomogło mi skupić się (obsesji?) bardziej niż zwykle na drobnych szczegółach tego projektu, a to zdecydowanie zapewniło czystsze wykończenie i mniej niespodzianek podczas montażu - a także pomogło mi zachować dobre samopoczucie psychiczne prosta i wąska. Pierwotny plan czujnika był czymś zupełnie innym, więc jestem bardzo zadowolony z efektu końcowego, powolnej i satysfakcjonującej konstrukcji.

Apollo Pi wygląda świetnie również na półce projektu i jest zdecydowanie zabawnym i użytecznym narzędziem, które można mieć pod ręką, nie możemy przestać wskazywać go na rzeczy! W idealnym świecie byłaby to nieco wyższa rozdzielczość i muszę znaleźć jakiś sposób na „odwrócenie” wyświetlacza tak, jak jest w tej chwili w lustrze, ale to drobne drobiazgi.

Dziękuję za przeczytanie i bądźcie bezpieczni.

Moje inne projekty Old Tech, New Spec są na Instructables pod adresem

Więcej szczegółów znajduje się na stronie https://bit.ly/OldTechNewSpec. i jestem na Twitterze @OldTechNewSpec.

Zalecana: