İçindekiler:

1979 Apollo Pi Termal Kamera: 10 Adım (Resimlerle)
1979 Apollo Pi Termal Kamera: 10 Adım (Resimlerle)

Video: 1979 Apollo Pi Termal Kamera: 10 Adım (Resimlerle)

Video: 1979 Apollo Pi Termal Kamera: 10 Adım (Resimlerle)
Video: Мало кто знает, но Бланка ветеран войны бесконечности 🦸🏻‍♀️ | Бланка и Рома | Shaykin #юмор #шортс 2024, Kasım
Anonim
Image
Image
1979 Apollo Pi Termal Kamera
1979 Apollo Pi Termal Kamera
1979 Apollo Pi Termal Kamera
1979 Apollo Pi Termal Kamera

Bu eski Apollo mikrodalga dedektörü artık, sıcaklıkları alan ve sonuçları gerçek zamanlı olarak parlak 1,3 TFT ekranda görüntüleyen bir Adafruit termal kamera sensörüne sahip bir Raspberry Pi Zero tarafından desteklenen bir termal kamera olarak parlak yeni bir amaca sahip.

Bir Ön Ayar ve Dinamik modu vardır - ilkinde ekranda gösterilen renkler sabit kodlanmış sıcaklık eşiklerine dayanır ve ikincisinde renk aralığı bir Adafruit.io panosundaki sıcaklık kaydırıcıları kullanılarak ayarlanabilir. Pano ayrıca anında tutma yerindeki orijinal başparmak düğmesi kullanılarak yakalanan, cihaz tarafından yüklenen tüm anlık görüntüleri görüntüler.

Tüm sistem, el tutamağına gizlenmiş, burun konisi çıkarılarak ve bir USB kablosu takılarak kolayca şarj edilebilen ince, silindirik bir USB pil takımı ile çalışır.

Sadece üç Python betiği menü mantığını, sensörü ve Adafruit.io entegrasyonunu kontrol eder ve ekran PyGame tarafından yönetilir.

Bu proje üzerinde çalışmak karantina sırasında gerçekten pozitif kalmama yardımcı oldu ve elimizdeki fazladan zamanla çocuklar ve ben evin etrafında onu işaret edecek birçok ilginç şey bulduk!

Yukarıdaki gömülü sürümü göremiyorsanız, https://www.youtube.com/embed/1xjRJExzPR8 adresinde Apollo Pi'nin hareket halindeki YouTube videosuna bakın.

Gereçler

Apollo Mikrodalga Monitör

Ahududu Pi Sıfır W

Adafruit AMG8833 Termal Kamera Koparma

Adafruit Mini PiTFT 1.3 Ekran

Atlama Kabloları

3v Titreşimli Disk

USB güç bankası

Adım 1: Yıkım

Sökmek
Sökmek
Sökmek
Sökmek
Sökmek
Sökmek

Apollo Monitor'ü geçen yaz ikinci el bir satıştan, her şeyden çok benzersiz görünümü için aldım - ki bu kesinlikle daha iyi günler görmüş olduğu kadar iyi! İçerideki devreler eksikti ve her şey bir yapıştırıcı karmaşasıyla kaplıydı, onu onarmak için tarihi bir girişim.

Başlangıçta, muhtemelen tasarımı ve o sırada mikrodalga fırınların nadirliği göz önüne alındığında, muhtemelen bir tür endüstriyel ortamda Mikrodalga radyasyonunun varlığını kontrol etmek için kullanılıyordu, ancak bu konuda daha fazla bir şey bulamamıştım. Bildiğim bir şey var, termal kamera için ideal bir ev olurdu.

Konik "burnu" çıkardığım anda geri kalanı kelimenin tam anlamıyla dağıldı ve yapıştırılmış analog metre ve dikdörtgen düğme kolayca çıkarıldı. Yine de düğmeyi tuttum, tamamen işlevsel ve gerçekten garip bir şekildi, bu yüzden aynı deliğe bir yedek yerleştirmek için mücadele ederdim.

Adım 2: Kablolama

kablolama
kablolama
kablolama
kablolama

Her şeyi yerine oturtmak için kasayı kırpmadan önce, parçaların nasıl bir araya geleceğini bildiğimden emin olmak istedim, bu yüzden sensörü ve ekranı kablolamaya başladım. Sensörün kendisi iyiydi, onu Raspberry Pi'ye bağlamak için sadece dört atlama kablosu gerekiyordu.

Ekran biraz daha karmaşıktı, pinout şeması 13 jumper kablosu bağlamam gerektiğini gösterdi - açıkçası doğrudan bir Pi'nin üstüne oturmak için tasarlandı, bu yüzden gerçekten sadece kendimi suçlamak zorunda kaldım. Ekran ve Pi bağlantıları arasına bir parça dişi başlık eklemeye karar verdim, böylece ekranı çıkarıp kolayca bağlayabildim. Bu harika bir fikirdi ve başlığı Pi'ye bağlamak için pinout şemasını çok dikkatli bir şekilde takip ettim.

Sonra orijinal düğmeye bazı yeni atlama kabloları lehimledim, böylece GPIO'ya bağlanabilir ve termal görüntü anlık görüntülerini yakalamak için kullanılabilir. Son olarak, düğmeye basmalara dokunsal geri bildirim sağlamak için küçük bir titreşimli diski doğrudan GPIO pinlerine lehimledim.

3. Adım: Kasa Modları

Kasa Modları
Kasa Modları
Kasa Modları
Kasa Modları

Apollo Monitörü "yapılacaklar" kutumdan dirilten şeylerden biri üstteki ekran deliğiydi - bu, küçük Adafruit ekranı için kabaca ihtiyacım olan boyuttu. Kabaca. Deliği tam doğru boyuta genişletmek bir dosyayla bir saat kadar sürdü, ama neyse ki bu süreçte davayı yok etmeyi başardım.

Ayrıca orijinal olarak bir PP3 pili tutan iç kısımları da kestim ve döner bir alet kullanarak pil takımına yer açmak için tutacağın içindeki bazı bölmeleri kestim.

Sonunda, sensör ve şarj kablosu kablolarının "burun"dan çıkıp diğer devrelerle birleşmesi için bazı büyük delikler açtım.

4. Adım: Güç

Güç
Güç
Güç
Güç
Güç
Güç
Güç
Güç

Bu proje için, kasada daha fazla yer olduğu için bir LiPo pil ve adaptör/şarj cihazı kullanmamaya karar verdim. Bunun yerine standart bir USB güç bankası kullanmaya karar verdim. Sapın içine sığacak ince silindirik bir tane almak istedim, bu yüzden Amazon'da bulabildiğim en ucuz ve en ince olanı aradım. Sevimsiz LED feneri ve sahte pil stiliyle gelen, bulabildiğim en ince olanıydı, ancak kutusunu açarken tutamağa sığmayacak kadar kalın olduğunu fark ettim. Sonra parçalandığını fark ettim - üst vida açılmıştı ve içindeki çıplak pil dışarı çıktı, beni kulpun içine sığdırmak için ihtiyaç duyduğum 3 mm'den temiz bir şekilde kurtardı, ne sonuç!

Sonra kısa bir Mikro USB kablosu aldım, yalıtımın bir kısmını çıkardım, pozitif kabloyu kestim ve güzel bir kare kilitleme düğmesiyle lehimledim, böylece pil paketini çıkarmak zorunda kalmadan güç kontrol edilebilirdi. Bu düğme, orijinal olarak pil kapağına güzel bir şekilde oturdu ve kasanın üstündeki orijinal ile oldukça yakın bir eşleşme oldu. Artık her şeyin uyacağını bildiğime göre, her şeyi çalıştırmanın zamanı gelmişti!

Adım 5: Termal Kamera Yazılım Kurulumu

Termal Kamera Yazılım Kurulumu
Termal Kamera Yazılım Kurulumu

Termal sensörün kendisi, ısı görüntüsünü oluşturmak için 8x8 dizi sensör kullanan bir Adafruit AMG8833IR Termal Kamera Breakout'tur. Arduino ve Raspberry Pi ile çalışır, ancak bir Pi kullanmanın en büyük avantajı, yazılımın yakalanan veriler üzerinde bikübik enterpolasyon gerçekleştirmek için scipy python modülünü kullanabilmesi ve böylece 32x32 görüntü gibi görünmesini sağlamasıdır, temiz!

Sensörü ayarlamak oldukça basittir, ancak atlanması gereken bazı çemberler var, benim için işe yarayan şey buydu:

Raspberry Pi'de I2C ve SPI'yi etkinleştirin (Raspberry Pi Yapılandırması > Arayüzler)

Blinka CircuitPython kitaplığını kurun:

pip3 adafruit-blinka yükleyin

Ardından AMG8XX sensör kitaplığını kurun:

sudo pip3 adafruit-circuitpython-amg88xx# yükleyin

Pi'yi kapatın ve sensörü bağlayın - neyse ki sadece 4 kablo!

Ardından scipy, pygame ve color modüllerini kurun:

sudo apt-get install -y python-scipy python-pygamesudo pip3 yükleme rengi

Bu noktada kodum bir scipy hatası verdi, bu yüzden onu yeniden yükledim:

Sudo Pip3 scipy'yi kurun

Sonra şu hatayı aldım: ImportError: libf77blas.so.3: paylaşılan nesne dosyası açılamıyor: Böyle bir dosya veya dizin yok

Bu, yüklenerek çözüldü:

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

O andan itibaren, örnek kod iyi çalıştı, betiği Thonny'den ziyade konsoldan çalıştırdı:

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

Bu, sensör görüntüsünün bir pygame penceresinde ekranda görünmesini sağladı ve renk/sıcaklık eşiklerinde yapılan bazı ince ayarlardan sonra yüzümün bir ısı görüntüsü ile hipnotize oldum.

Adım 6: LCD Ekran Yazılım Kurulumu

LCD Ekran Yazılım Kurulumu
LCD Ekran Yazılım Kurulumu
LCD Ekran Yazılım Kurulumu
LCD Ekran Yazılım Kurulumu

Sensörü çalıştırmak gerçekten güzeldi ama şimdi onu küçük ekranda göstermem gerekiyordu. Kullandığım ekran bir Adafruit Mini PiTFT 1.3 240x240 - özellikle çözünürlüğü ve şekli termal kamera için doğru olduğu için, ayrıca kasaya sığacak doğru boyuttaydı ve ihtiyacım olan iki GPIO bağlantılı düğmeyi sundu.

Adafruit talimatları burada iki seçenek sunuyordu: Kolay ve Zor yol - denemeden sonra Zor yolu kullanmam gerektiğini fark ettim çünkü sensör çerçeve arabelleğine doğrudan erişim gerektiriyordu. Adım adım talimatları izleyerek "Konsolun görünmesini ister misiniz" sorusuna gelene kadar iyiydim - başlangıçta Hayır'ı seçtim, ancak Evet demeliydim. Bu biraz acı vericiydi, çünkü işlemi yeniden yapmak zorunda kaldım, ancak Pi, konsolu TFT'de gösterecek şekilde ayarlandığında, artık masaüstünü HDMI aracılığıyla göstermeyeceğini fark etmemi sağladı (en azından bu benim deneyimimdi).

Yine de, kurulum tamamlandıktan sonra, küçük ekran yeniden başlatıldığında normal Pi başlatma işleminin minyatür bir versiyonu görüntülendi ve örnek termal kamera komut dosyasını çalıştırdığımda pygame penceresi ısı görüntüsünü küçük ekranda gösterdi - çok tatmin edici!

7. Adım: Kod Düzenlemeleri

Kod Düzenlemeleri
Kod Düzenlemeleri
Kod Düzenlemeleri
Kod Düzenlemeleri

Örnek kod iyi çalıştı, ancak biraz daha fazlasını yapmasını istedim, bu yüzden senaryoları zevkime göre ayarlamaya başladım. Başlangıçta yüklenecek ve ekran kartına entegre iki düğmeden iyi şekilde yararlanacak bir Menü komut dosyası oluşturarak başladım.

menü.py

İlk olarak, PyGame kullanarak küçük ekranda güzel bir animasyonlu menü efekti gösterecek bazı Python çevrimiçi buldum. Bu betiğin güzelliği, bir dizi klasördeki tüm görüntüleri canlandırmasıdır, bu nedenle daha sonraki bir aşamada animasyonu değiştirmek kolay olacaktır (örneğin, animasyon renklerini durumla eşleştirmek için). Menü komut dosyasını, düğmelerden birine basmak animasyonu durduracak ve sensör ekranını gösterecek komut dosyaları olan ateş.py veya chill.py'yi açacak şekilde ayarladım. Bu çalışma ile betiği başlangıçta çalışacak şekilde ayarladım - normalde bunu /etc/xdg/lxsession/LXDE-pi/autostart düzenleyerek yapıyorum, ancak bu yöntem Masaüstü yüklemesine dayandığından bu sefer farklı bir seçeneğe ihtiyacım vardı.

İlk önce rc.local dosyasını düzenledim…

sudo nano /etc/rc.local

… daha sonra Çıkış satırının hemen üstüne aşağıdakine eklendi…

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

…önce menu.py betiğinin en üstte aşağıdakilere sahip olmasını sağladıktan sonra…

#!/usr/bin/env python3

…ve ayrıca menu.py dosyasını yürütülebilir bir komut dosyası olarak ayarladıktan sonra şunu yazın:

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

terminalin içine.

ateş.py (Ön ayar)

Ön Ayar komut dosyası için önce renk / sıcaklık eşiklerini belirledim, alt olanı (mavi) 16'ya ve üst olanı (kırmızı) 37.8'e ayarlıyorum. Bu, teorik olarak hala bir kişinin yüzünü yeşil olarak gösterecek, ancak sıcaklık 37.8 derece veya üzerindeyse kırmızı renkte parlayacak. Farklı yöntemlerle vücut sıcaklığını örnekleme konusunda çevrimiçi çok sayıda araştırma var, ancak sensörün varyansı +/- 2,5 derece olduğundan, en yaygın olarak kabul edilen "ateş" aralığına bağlı kalmaya karar verdim - bu, ssh ile değiştirmek için yeterince kolay daha sonraki bir tarihte.

Ardından, mevcut komut dosyasını kapatmak ve menu.py dosyasını açmak için iki ekran düğmesini ayarladım. Ayrıca kamera görüntüsünü yakalamanın ve dışa aktarmanın ve doğru PyGame komutunu bulmanın bir yolunu bulmak istedim.

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

Bunu, "başparmak" düğmesine basıldığında çalışacak şekilde ayarladım - başlangıçta mikrodalga okuması yapmak için kullandığınız düğme. Bu, görüntüyü yakalamayı halletti, sonra Python'un bazı satırlarına ekledim, böylece görüntü yakalandıktan sonra hemen bir Adafruit IO panosuna yüklenecek, böylece diğer cihazlarda görüntülenebilir ve kolayca indirilebilirdi. Hızlı bir "farklı kaydet" ile Preset komut dosyası tamamlandı.

chill.py (Dinamik)

Termal kamerada belirli sıcaklıkları aramaktan daha fazlası var ve Dinamik komut dosyasının esnek olmasını istedim, böylece üst ve alt renk eşikleri kolayca ayarlanabilir. Cihaza fazladan düğmeler eklemek ve gezinmeyi karmaşık hale getirmek istemedim, bu nedenle Adafruit.io panosunda kaydırıcıları kullanmayı seçtim.

Hazır Ayar komut dosyasında Adafruit kodunun büyük bir kısmına zaten sahiptim, bu yüzden sadece bazı ekstra satırlar eklemek zorunda kaldım, böylece gösterge tablosundaki mevcut kaydırıcı değerleri başlatıldığında alınır ve ekran varsayılanları olarak ayarlanır.

Kullandığım kodun tamamı GitHub'da mevcut, yeniden kullanmak için FeverChill klasörünü Pi'nizdeki /pi/ klasörüne indirmeniz ve ekran & sensör kurulur.

Senaryolar iyi çalışıyorken, daha karmaşık bir şeye geçmenin zamanı gelmişti!

8. Adım: Rötuşları Bitirme

Son Rötuşlar
Son Rötuşlar
Son Rötuşlar
Son Rötuşlar
Son Rötuşlar
Son Rötuşlar

Başlangıçta bu proje, termal sensörü başka bir şey için kullanmaktan hızlı bir şekilde uzaklaşmayı amaçlıyordu, ancak güncel olaylarla kendimi giderek daha fazla içine çektim ve onu uzatacak ve daha da zorlaştıracak küçük ekstra ayrıntılar.

Apollo Monitor kasasıyla çalışmak oldukça güzeldi, kesmesi ve zımparalaması kolaydı, ancak güzel bir şekilde bitirmek için bazı görünür devre kartlarını boyalı "maskelerin" arkasına sıkıştırmak istedim. Bunlar uzun zaman aldı, onları atık plastik parçalarından elle oydu, ancak tatmin edici bir işti. İlk önce ekran kartını kaplayacak, ancak mikro anahtarları görünür bırakacak küçük bir tane yaptım. Sonra termal sensör için bir tane yaptım, böylece "iş sonu"na baktığınızda çıplak elektronikler görmezsiniz.

İngiltere'nin karantinaya girmesinden birkaç gün önce renk şemasına karar verdim ve yakındaki hırdavatçıda istediğim renkleri bulduğum için şanslıydım. Kasa çok güzel bir şekilde ikiye bölündüğü için iki tonlu bir renk şeması önerildi ve ardından bunu "burun konisi" ve sensör kapağına kadar genişlettim. Resim yapmak çok eğlenceliydi, yılın ilk sıcak günü, gerçi bu, kulübedeki eşekarısı kıpır kıpır ve ortalıkta dolanırken resim yapmak anlamına geliyordu. Daha önce sprey boya ile maskeleme bandı kullanmadım ama ortaya çıkan iki tonlu parçaların ortaya çıkmasından gerçekten çok memnunum.

Daha önceki yapımlardan ders alarak montaja başlamadan önce boyalı parçaları bir hafta sertleşmeye bıraktım ve bu arada videoyu bir araya getirmeye başladım.

Adım 9: Montaj

toplantı
toplantı
toplantı
toplantı
toplantı
toplantı

Ne zaman bir proje üzerinde çalışsam, her şeyin kendi yapımı bir maket seti gibi montaja hazır hale getirildiği aşamaya gelmeyi seviyorum. Hepsinin birbirine uyacağının garantisi yok ve talimatlar sadece kafamda var, ama bu, herhangi bir yapının en sevdiğim kısmı.

Bu sefer çok sorunsuz geçti - çoğunlukla küçük ayrıntılara harcayacak ve her şeyin tam olarak böyle olduğundan emin olmak için fazladan zamanım olduğu için. Her şeyden önce ekranı kasaya yapıştırdım, ardından "yakala" düğmesini ekledim - bunlar kasanın üst kısmına bağlı olan tek parçalardı, bu yüzden güzel ve kolay bir başlangıç oldu.

Daha sonra pil takımını tutamağa hafifçe yapıştırdım ve Pi'yi braketiyle kasaya yerleştirdim. Bundan sonra kamera sensörü dikkatlice burun konisine yapıştırıldı, güç anahtarı pil kapağına vidalandı ve her şey bağlandı.

Tüm bağlantılar için bağlantı kabloları kullandım, ancak çok dikkatli olmak için, iki yarının birlikte son ezilmesi sırasında herhangi bir hareket olması durumunda bunları sıcak yapıştırdım. Aslında, biraz gıcırdıyordu, ama çatlama sesi yoktu, bu yüzden iki yarım birbirine sıkıca oturduğunda burun konisini iterek taktım ve cıvatayı tutamaktan tuttum - tüm grubu bir arada tutan tek iki şey.

İlk seferinde işe yaramadı, ilk squishathon sırasında ekranın bağlantısını kesmeyi başardım, ancak birkaç stratejik kablo bükülmesiyle her şey ikinci kez mutlu bir şekilde sona erdi. Bir şeylere işaret etme zamanı!

Adım 10: Sıcaklık Test Süreleri

Sıcaklık Test Süreleri
Sıcaklık Test Süreleri
Sıcaklık Test Süreleri
Sıcaklık Test Süreleri
Sıcaklık Test Süreleri
Sıcaklık Test Süreleri
Sıcaklık Test Süreleri
Sıcaklık Test Süreleri

Evde fazladan zaman geçirmek gerçekten bu projenin küçük ayrıntılarına normalden daha fazla odaklanmama (takıntı mı?) düz ve dar. Sensör için orijinal plan tamamen farklı bir şeydi, bu yüzden sonuçtan çok memnunum, yavaş tempolu ve tatmin edici bir yapı.

Apollo Pi, proje rafında da harika görünüyor ve kesinlikle etrafta olması eğlenceli ve kullanışlı bir araç, onu işaret etmekten vazgeçemeyiz! İdeal bir dünyada, biraz daha yüksek çözünürlük olurdu ve şu anda yansıtıldığı gibi ekranı "çevirmenin" bir yolunu bulmam gerekiyor, ancak bunlar küçük niggles.

Okuduğunuz için teşekkürler ve herkese güvende kalın.

Diğer Eski Teknoloji, Yeni Spec projelerimin tümü, https://www.instructables.com/member/MisterM/instructables/ adresindeki Instructables'ta.

Daha fazla ayrıntı https://bit.ly/OldTechNewSpec adresindeki web sitesinde bulunmaktadır. ve ben Twitter'dayım @OldTechNewSpec.

Önerilen: