İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
- Bir drone'a bağlanabilen ve termal radyasyonu ve görünür ışıkla düzenli fotoğrafçılığı gösteren termografik görüntüden oluşan karma bir çerçeveyi canlı yayınlayabilen bir cihaz geliştirdim.
- Platform, küçük bir tek kartlı bilgisayar, bir termal kamera sensörü ve normal bir kamera modülünden oluşur.
- Bu proje, ısı imzaları ile karakterize edilen güneş panelindeki hasarları tespit etmek için düşük maliyetli bir termal görüntüleme platformunun olanaklarını incelemeyi amaçlamaktadır.
Gereçler
- Ahududu Pi 3B+
- Panasonic AMG8833 ızgara gözü
- Pi Kamera V2
- VNC görüntüleyicili dizüstü bilgisayar
Adım 1: PCB Geliştirme
- Panasonic ızgara-göz sensörü için PCB kartı, Auto-desk EAGLE yardımıyla tasarlanabilir.
- .brd dosyası, küçük değişikliklerle Adafruit AMG8833 modülüne benzer şekilde geliştirilmiştir.
- Daha sonra PCB üreticileri ile PCB basılabilir ve ilk siparişimin tamamen ücretsiz olduğu pcbway.com'u kullandım.
- Yüzeye monte cihazlar içerdiğinden PCB lehimlemenin bildiğim lehimden tamamen farklı olduğunu buldum, bu yüzden başka bir PCB üreticisine gittim ve PCB'mi sensörle lehimledim.
2. Adım: Yazılım Geliştirme
- Kod, bir python Entegre Geliştirme Ortamı olan Thonny'de yazılmıştır.
- Projenin arkasındaki prosedür, pi kamerayı bağlamak ve ilgili yazılımı kurmaktı.
- Bir sonraki adım, GPIO pinlerini düzeltmek için termal sensörü bağlamak ve sensörü kullanmak için Adafruit Kütüphanesini kurmaktı.
- Adafruit kütüphanesi, sensörü okumak ve sıcaklıkları renklerle eşleştirmek için komut dosyası içeriyordu, ancak oluşturduğu hareketli görüntüler uygulanamadı.
- Bu nedenle kod, esas olarak iki kareyi birleştirmek için görüntü işlemeyi destekleyen bir formatta yeniden yazılmıştır.
Adım 3: Sensörleri Okuma
- Termal kameradan veri toplamak için, readpixels() komutu ile sensörlerin yeniden çalıştırılmasına izin veren, sensörlerin ayrı elemanlarından ölçülen Santigrat derece cinsinden sıcaklıkları içeren bir dizi üreten ADAFRUIT kütüphanesi kullanıldı.
- Pi kamera için, picamera.capture() işlev komutu, belirtilen çıktı dosyası formatına sahip bir görüntü oluşturur.
- Hızlı işlemeye uygun olması için daha düşük bir çözünürlük 500 x 500 piksele ayarlandı
Adım 4: Termal Sensör Kurulumu
- Öncelikle Adafruit Library ve python paketlerini kurmamız gerekiyor.
- Komut istemini açın ve şunu çalıştırın: sudo apt-get update Pi sizi güncelleyecektir
- Ardından şu komutu verin: sudo apt-get install -y build-essential python-pip python-dev python-smbus git
- Ardından şunu çalıştırın: git klon https://github.com/adafruit/Adafruit_Python_GPIO…. Adafruit paketini Raspberry Pi'nize indirecek
- Dizinin içinde hareket edin: cd Adafruit_Python_GPIO
- Ve şu komutu çalıştırarak kurulumu kurun: sudo python setup.py install
- Şimdi scipy ve pygame'i kurun: sudo apt-get install -y python-scipy python-pygame
- Son olarak, şu komutu vererek renk kitaplığını kurun: sudo pip install color Adafruit_AMG88xx
Adım 5: I2C Arayüzünü Etkinleştirme
- Şu komutu verin: sudo raspi-config
- Gelişmiş seçeneklere tıklayın ve I2C'yi seçin ve ardından etkinleştirin ve Bitir'i seçin.
- I2C'yi başarıyla etkinleştirmek için Pi'yi yeniden başlatın
- Kamera ve VNC arayüzlerini de etkinleştirdiğinizden emin olun.
Adım 6: Sensörü ve Kamerayı Kablolama
- AMG8833'ün sadece 4 pinini Pi'ye bağlayıp IR pinini bırakmalısınız.
- 5V besleme ve topraklama, GPIO pin 1 ve 6'ya bağlanabilir
- SDA ve SCL, Pi'nin 4 ve 5 numaralı pinlerine bağlanmıştır.
- ssh ile ahududuya giriş yapın
- çalıştırın: sudo i2cdetect -y 1
- Sensörün Pi ile kablolanmasında bir sorun yoksa 9. sütunda "69" görmelisiniz.
- Son olarak pi kamera v2'yi ahududu pi'deki kamera yuvasına bağlayın
Adım 7: Isı Haritalaması
- Komutu verin: git klon
- Adafruit_AMG88xx_python/examples dizinine gidin
- komutu verin: sudo python Thermal_cam.py
- AMG8833 ısı eşleme kodunu aşağıya ekledim.
Adım 8: Görüntü İşleme
-
Sıcaklık Haritalaması
- Termal verileri görselleştirmek için, sıcaklık değerleri, aradaki diğer tüm renklerle birlikte maviden kırmızıya değişen bir renk gradyanı ile eşlenir.
- Sensör başlatıldığında, en düşük sıcaklık 0(Mavi) ile ve en yüksek sıcaklık 1023(Kırmızı) ile eşlenir.
- Aradaki tüm diğer sıcaklıklar, aralık içinde ilişkili değerlere atanır.
- Sensör çıkışı, bir matris olarak yeniden boyutlandırılmış 1 x 64 dizisidir.
-
İnterpolasyon
- Termal sensörün çözünürlüğü oldukça düşüktür, 8 x 8 pikseldir, bu nedenle çözünürlüğü 32 x 32'ye çıkarmak için kübik enterpolasyon kullanılır, bu da matrisin 16 kat daha büyük olmasını sağlar
- İnterpolasyon, bir dizi bilinen nokta arasında yeni veri noktaları oluşturarak çalışır, ancak doğruluk azalır.
-
Resimlere numaralar
- 32 x 32 matrisinde 0 ile 1023 arasında değişen sayılar RGB renk modelinde ondalık koda dönüştürülür.
- Ondalık koddan, SciPy kütüphanesinden bir fonksiyonla görüntüyü oluşturmak kolaydır.
- Kenar yumuşatma ile yeniden boyutlandırma
- Pi kameranın çözünürlüğüne uyacak şekilde 32 x 32 görüntüyü 500 x 500'e yeniden boyutlandırmak için PIL (Python Image Library) kullanılır.
- Büyütüldüğünde pikseller arasındaki kenarları yumuşatan kenar yumuşatma filtresine sahiptir.
-
Şeffaf Görüntü bindirme
- Dijital görüntü ve ısı görüntüsü daha sonra, her biri %50 şeffaflık ile eklenerek nihai bir görüntüye harmanlanır.
- Aralarında paralel mesafe bulunan iki sensörden gelen görüntüler birleştirildiğinde, tamamen örtüşmezler.
- Son olarak, AMG8833 tarafından Minimum ve Maksimum Sıcaklık ölçümleri, ekranda üst üste binen metinle görüntülenir
Adım 9: Kod ve PCB Dosyaları
Aşağıdaki proje için test ve son kodu ekledim
Adım 10: Sonuç
- Böylece Raspberry Pi ve AMG8833 ile termal kamera yapılmıştır.
- Son video bu gönderiye yerleştirildi
- Çakmağı kuruluma yaklaştıkça sıcaklığın anında değiştiği ve çakmağın alevinin sensör tarafından doğru bir şekilde algılandığı gözlemleniyor.
- Dolayısıyla bu proje, bu COVID19 krizinde çok yardımcı olacak bir odaya giren kişilerde ateş tespiti için daha da geliştirilebilir.