Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: PCB-Entwicklung
- Schritt 2: Softwareentwicklung
- Schritt 3: Auslesen der Sensoren
- Schritt 4: Einrichtung des Temperatursensors
- Schritt 5: Aktivieren der I2C-Schnittstelle
- Schritt 6: Verdrahten des Sensors und der Kamera
- Schritt 7: Heat-Mapping
- Schritt 8: Bildverarbeitung
- Schritt 9: Code- und PCB-Dateien
- Schritt 10: Fazit
Video: Kostengünstige Wärmebildkamera - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
- Ich habe ein Gerät entwickelt, das an einer Drohne befestigt werden kann und ein gemischtes Bild aus dem Thermografiebild, das Wärmestrahlung und normales Fotografieren mit sichtbarem Licht zeigt, live streamen kann.
- Die Plattform besteht aus einem kleinen Einplatinencomputer, einem Wärmebildkamerasensor und einem regulären Kameramodul.
- Dieses Projekt zielt darauf ab, die Möglichkeiten einer kostengünstigen Wärmebildplattform zur Erkennung von Schäden in Solarmodulen zu untersuchen, die durch Wärmesignaturen gekennzeichnet sind.
Lieferungen
- Raspberry Pi 3B+
- Panasonic AMG8833 Gitterauge
- Pi-Kamera V2
- Laptop mit VNC-Viewer
Schritt 1: PCB-Entwicklung
- Die Platine für den Panasonic Grid-Eye-Sensor kann mit Hilfe von Autodesk EAGLE entworfen werden.
- Die.brd-Datei wurde ähnlich wie das Adafruit AMG8833-Modul mit leichten Modifikationen entwickelt
- Dann kann die Leiterplatte bei Leiterplattenherstellern bedruckt werden und ich habe pcbway.com genutzt, wo meine erste Bestellung völlig kostenlos war.
- Ich stellte fest, dass das Löten von Leiterplatten völlig anders war als das Löten, das ich kannte, da es sich um oberflächenmontierte Geräte handelte, also ging ich zu einem anderen Leiterplattenhersteller und ließ meine Leiterplatte mit dem Sensor löten.
Schritt 2: Softwareentwicklung
- Der Code ist in Thonny geschrieben, einer integrierten Python-Entwicklungsumgebung.
- Das Verfahren hinter dem Projekt bestand darin, die Pi-Kamera anzuschließen und die zugehörige Software zu installieren.
- Der nächste Schritt bestand darin, den Wärmesensor anzuschließen, um die GPIO-Pins zu korrigieren und die Adafruit-Bibliothek zur Verwendung des Sensors zu installieren.
- Die Adafruit-Bibliothek enthielt ein Skript zum Lesen des Sensors und zum Zuordnen der Temperaturen zu Farben, jedoch konnten die von ihr erstellten Bewegtbilder nicht implementiert werden
- Daher wurde der Code in ein Format umgeschrieben, das die Bildverarbeitung unterstützt, hauptsächlich um zwei Frames miteinander zu verschmelzen.
Schritt 3: Auslesen der Sensoren
- Um Daten aus der Wärmebildkamera zu sammeln, wurde die ADAFRUIT-Bibliothek verwendet, die das einfache Entfernen der Sensoren mit dem Befehl readpixels() ermöglicht, wodurch ein Array mit Temperaturen in Grad Celsius generiert wird, die von den Sensoren getrennten Elementen gemessen werden.
- Für die Pi-Kamera generiert der Funktionsbefehl picamera.capture() ein Bild mit dem angegebenen Ausgabedateiformat
- Um der schnellen Verarbeitung gerecht zu werden, wurde eine niedrigere Auflösung auf 500 x 500 Pixel eingestellt
Schritt 4: Einrichtung des Temperatursensors
- Zuerst müssen wir die Adafruit Library und Python-Pakete installieren
- Öffnen Sie die Eingabeaufforderung und führen Sie aus: sudo apt-get update, das Sie Pi. aktualisiert
- Geben Sie dann den Befehl ein: sudo apt-get install -y build-essential python-pip python-dev python-smbus git
- Führen Sie dann Folgendes aus: git clone https://github.com/adafruit/Adafruit_Python_GPIO….was das Adafruit-Paket auf Ihren Raspberry Pi herunterlädt
- Wechseln Sie in das Verzeichnis: cd Adafruit_Python_GPIO
- Und installieren Sie das Setup, indem Sie den Befehl ausführen: sudo python setup.py install
- Jetzt scipy und pygame installieren: sudo apt-get install -y python-scipy python-pygame
- Installieren Sie abschließend die Farbbibliothek, indem Sie den Befehl ausgeben: sudo pip install color Adafruit_AMG88xx
Schritt 5: Aktivieren der I2C-Schnittstelle
- Geben Sie den Befehl aus: sudo raspi-config
- Klicken Sie auf die erweiterten Optionen und wählen Sie I2C aus, aktivieren Sie es und wählen Sie Fertig stellen
- Starten Sie den Pi neu, um I2C erfolgreich zu aktivieren
- Stellen Sie sicher, dass Sie auch die Kamera- und VNC-Schnittstellen aktiviert haben
Schritt 6: Verdrahten des Sensors und der Kamera
- Sie sollten nur 4 Pins von AMG8833 an Pi anschließen und den IR-Pin belassen.
- 5V-Versorgung und Masse können an GPIO-Pins 1 und 6. angeschlossen werden
- SDA und SCL sind mit Pin 4 und 5 des Pi verdrahtet.
- Melden Sie sich mit ssh. bei Himbeere an
- ausführen: sudo i2cdetect -y 1
- Sie sollten "69" in der 9. Spalte sehen, wenn nicht ein Problem bei der Verkabelung des Sensors mit Pi vorliegt.
- Schließen Sie schließlich die Pi-Kamera v2 an den Kamerasteckplatz im Himbeer-Pi. an
Schritt 7: Heat-Mapping
- Geben Sie den Befehl aus: git clone
- Wechseln Sie in das Verzeichnis Adafruit_AMG88xx_python/examples
- Geben Sie den Befehl aus: sudo python thermal_cam.py
- Den Code für das Heatmapping AMG8833 habe ich unten angehängt.
Schritt 8: Bildverarbeitung
-
Temperaturzuordnung
- Zur Visualisierung der thermischen Daten werden die Temperaturwerte in einen Farbverlauf von Blau bis Rot mit allen anderen Farben dazwischen abgebildet
- Wenn der Sensor initiiert wird, wird die niedrigste Temperatur auf 0 (Blau) und die höchste Temperatur auf 1023 (Rot) abgebildet.
- Allen anderen Temperaturen dazwischen werden korrelierte Werte innerhalb des Intervalls zugewiesen
- Der Sensorausgang ist ein 1 x 64 Array, dessen Größe zu einer Matrix geändert wird.
-
Interpolation
- Die Auflösung des Wärmesensors ist mit 8 x 8 Pixeln ziemlich niedrig, daher wird die kubische Interpolation verwendet, um die Auflösung auf 32 x 32 zu erhöhen, was zu einer 16-mal größeren Matrix führt
- Die Interpolation funktioniert durch die Konstruktion neuer Datenpunkte zwischen einem Satz bekannter Punkte, jedoch nimmt die Genauigkeit ab.
-
Zahlen zu Bildern
- Zahlen im Bereich von 0 bis 1023 in einer 32 x 32 Matrix werden im RGB-Farbmodell in Dezimalcode umgewandelt.
- Aus dem Dezimalcode lässt sich das Bild einfach mit einer Funktion aus der SciPy-Bibliothek generieren
-
Größenänderung mit Anti-Aliasing
- Um die Bildgröße von 32 x 32 auf 500 x 500 zu ändern, um der Auflösung der Pi-Kamera zu entsprechen, wird PIL (Python Image Library) verwendet.
- Es verfügt über einen Anti-Aliasing-Filter, der die Kanten zwischen den Pixeln beim Vergrößern glättet
-
Transparentes Bild-Overlay
- Das digitale Bild und das Wärmebild werden dann zu einem endgültigen Bild gemischt, wobei sie jeweils mit 50 % Transparenz hinzugefügt werden.
- Wenn Bilder von zwei Sensoren mit parallelem Abstand miteinander verschmolzen werden, überlappen sie sich nicht vollständig
- Schließlich werden die minimalen und maximalen Temperaturmessungen von AMG8833 mit überlagertem Text auf dem Display angezeigt
Schritt 9: Code- und PCB-Dateien
Ich habe den Test- und Endcode für das Projekt unten angehängt
Schritt 10: Fazit
- So wurde eine Wärmebildkamera mit Raspberry Pi und AMG8833 gebaut.
- Das letzte Video wurde in diesen Beitrag eingebettet
- Es kann beobachtet werden, dass sich die Temperatur augenblicklich ändert, wenn ich das Feuerzeug in die Nähe des Setups bringe und die Flamme des Feuerzeugs vom Sensor genau erkannt wurde.
- Daher kann dieses Projekt zur Fiebererkennung bei Personen, die einen Raum betreten, weiterentwickelt werden, was in dieser COVID19-Krise sehr hilfreich sein wird.