Kazalo:
- Zaloge
- 1. korak: razvoj PCB
- 2. korak: razvoj programske opreme
- 3. korak: Branje senzorjev
- 4. korak: Nastavitev toplotnega senzorja
- 5. korak: Omogočanje vmesnika I2C
- 6. korak: Ožičenje senzorja in kamere
- 7. korak: Kartiranje toplote
- 8. korak: Obdelava slik
- 9. korak: Datoteke s kodo in tiskanimi vezji
- 10. korak: Zaključek
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
- Razvil sem napravo, ki jo je mogoče pritrditi na brezpilotni letalo in lahko v živo predvaja mešani okvir iz termografske slike, ki prikazuje toplotno sevanje in redno fotografiranje z vidno svetlobo.
- Platforma je sestavljena iz majhnega računalnika z eno ploščo, senzorja termalne kamere in običajnega modula kamere.
- Namen tega projekta je preučiti možnosti poceni termovizijske platforme za odkrivanje poškodb na sončni plošči, za katero so značilni toplotni podpisi.
Zaloge
- Raspberry Pi 3B+
- Panasonic AMG8833 grid-eye
- Pi kamera V2
- Prenosni računalnik s pregledovalnikom VNC
1. korak: razvoj PCB
- PCB ploščo za Panasonic senzor mrežnega očesa lahko oblikujemo s pomočjo Auto-desk EAGLE.
- Datoteka.brd je razvita podobno kot modul Adafruit AMG8833 z rahlimi spremembami
- Potem lahko tiskano vezje natisnemo pri proizvajalcih tiskanih vezij in uporabil sem pcbway.com, kjer je bilo moje prvo naročilo popolnoma brezplačno.
- Ugotovil sem, da je spajkanje tiskanih vezij popolnoma drugačno od spajkanja, ki sem ga poznal, saj je vključeval površinsko nameščene naprave, zato sem šel k drugemu proizvajalcu tiskanih vezij in spajkal tiskano vezje s senzorjem.
2. korak: razvoj programske opreme
- Koda je napisana v Thonnyju, pythonovem integriranem razvojnem okolju.
- Postopek za projekt je bil povezati kamero pi in namestiti ustrezno programsko opremo.
- Naslednji korak je bil priključitev toplotnega senzorja na popravljanje zatičev GPIO in namestitev knjižnice Adafruit za uporabo senzorja.
- Knjižnica Adafruit je vsebovala skript za branje senzorja in preslikavo temperatur v barve, vendar gibljivih slik, ki jih je ustvarila, ni bilo mogoče izvesti
- Zato je bila koda prepisana v obliko, ki podpira obdelavo slik, predvsem za združevanje dveh okvirjev.
3. korak: Branje senzorjev
- Za zbiranje podatkov iz toplotne kamere je bila uporabljena knjižnica ADAFRUIT, ki omogoča ponovno analizo senzorjev z ukaznimi bralnimi piksli (), pri čemer se ustvari matrika, ki vsebuje temeprature v stopinjah Celzija, merjeno iz ločenih elementov senzorjev.
- Za kamero Pi funkcijski ukaz picamera.capture () ustvari sliko z določeno obliko izhodne datoteke
- Zaradi hitre obdelave je bila nižja ločljivost nastavljena na 500 x 500 slikovnih pik
4. korak: Nastavitev toplotnega senzorja
- Najprej moramo namestiti Adafruit Library in pakete python
- Odprite ukazni poziv in zaženite: sudo apt-get update, ki vas bo posodobil Pi
- Nato izdajte ukaz: sudo apt-get install -y build-bistven python-pip python-dev python-smbus git
- Nato zaženite: git clone https://github.com/adafruit/Adafruit_Python_GPIO…. Ki bo naložil paket Adafruit v vaš Raspberry Pi
- Premaknite se v imenik: cd Adafruit_Python_GPIO
- Namestite namestitev tako, da zaženete ukaz: sudo python setup.py install
- Zdaj namestite scipy in pygame: sudo apt-get install -y python-scipy python-pygame
- Končno namestite knjižnico barv z izdajo ukaza: sudo pip install color Adafruit_AMG88xx
5. korak: Omogočanje vmesnika I2C
- Izdajte ukaz: sudo raspi-config
- Kliknite Napredne možnosti in izberite I2C, nato ga omogočite in izberite Končaj
- Znova zaženite Pi, da uspešno omogočite I2C
- Prepričajte se, da ste omogočili tudi vmesnike Camera in VNC
6. korak: Ožičenje senzorja in kamere
- Na Pi morate priključiti samo 4 zatiče AMG8833 in pustiti IR zatič.
- 5V napajanje in ozemljitev je mogoče priključiti na GPIO zatiča 1 in 6
- SDA in SCL sta povezana na pin 4 in 5 Pi.
- Prijavite se v malino s ssh
- zaženi: sudo i2cdetect -y 1
- V 9. stolpcu bi morali videti "69", če ni, je pri ožičenju senzorja s Pi prišlo do težav.
- Končno povežite kamero pi v2 z režo za kamero v malini pi
7. korak: Kartiranje toplote
- Izdajte ukaz: git clone
- Premaknite se v imenik Adafruit_AMG88xx_python/examples
- izdajte ukaz: sudo python thermo_cam.py
- Spodaj sem priložil kodo za kartiranje toplote AMG8833.
8. korak: Obdelava slik
-
Preslikava temperature
- Za vizualizacijo toplotnih podatkov so temperaturne vrednosti preslikane v barvni gradient, ki sega od modre do rdeče z vsemi drugimi barvami vmes
- Ko se senzor zažene, je najnižja temperatura preslikana na 0 (modra), najvišja temperatura pa na 1023 (rdeča)
- Vsem drugim temperaturam vmes se v intervalu dodelijo korelirane vrednosti
- Izhod senzorja je 1 x 64 matrika, ki je spremenjena v matriko.
- Interpolacija
- Ločljivost toplotnega senzorja je dokaj nizka, 8 x 8 slikovnih pik, zato se za povečanje ločljivosti na 32 x 32 uporablja kubična interpolacija, kar povzroči matriko 16 -krat večjo
- Interpolacija deluje tako, da med nizom znanih točk zgradi nove podatkovne točke, vendar se natančnost zmanjša.
-
Številke slik
- Številke od 0 do 1023 v matriki 32 x 32 se v barvnem modelu RGB pretvorijo v decimalno kodo.
- Iz decimalne kode je sliko enostavno ustvariti s funkcijo iz knjižnice SciPy
-
Spreminjanje velikosti z izravnavo
- Za spreminjanje velikosti slike 32 x 32 na 500 x 500, da se ujema z ločljivostjo kamere Pi, se uporablja PIL (knjižnica slik Python).
- Ima filter proti zatiranju, ki zgladi robove med slikovnimi pikami pri povečavi
-
Prekrivanje s prozorno sliko
- Digitalna in toplotna slika se nato zlijeta v eno končno sliko in ju dodata s 50% prosojnostjo.
- Ko se zlijeta slike dveh senzorjev z vzporedno razdaljo med njima, se ne bodo popolnoma prekrivale
- Nazadnje sta prikazana merila minimalne in maksimalne temperature AMG8833 s prikazanim besedilom
9. korak: Datoteke s kodo in tiskanimi vezji
Spodaj sem priložil preskusno in končno kodo za projekt
10. korak: Zaključek
- Tako je bila zgrajena termična kamera z Raspberry Pi in AMG8833.
- Končni video je vgrajen v to objavo
- Opazimo lahko, da se temperatura takoj spremeni, ko pridem vžigalnik blizu nastavitve in senzor natančno zazna plamen vžigalnika.
- Zato se lahko ta projekt še naprej razvija za odkrivanje zvišane telesne temperature pri ljudeh, ki vstopajo v sobo, kar bo v veliko pomoč pri tej krizi COVID19.