Evdə 100 dollardan az pula bir infraqırmızı kamera necə qurulur (hissə 2)

Bu məqalənin birinci fəslini yazdığım vaxtdan bəri. Ancaq indi Yeni il ərəfəsində çoxdan vəd etdiyimi başa çatdırmaq üçün nəhayət boş vaxtım var.

Budur gedirik ...

Əvvəlcə termal görüntüləmə sistemimizin əsas diaqramına nəzər salaq.

Gördüyünüz kimi, bu sxemdə üç əsas qovşaq var:

  • Lazer göstərici modulunun düyünü
  • IR sensoru MLX90614DCI düyünü
  • Servos düyünü
Hər bir qovşaq haqqında bu məqalənin əvvəlki hissəsində oxuya bilərsiniz

Standart noutbuk enerji mənbəyi kimi istifadə olunurdu və bunların hamısı bizə 5 V DC və 0,5 A (USB 2.0) və ya 0,9 A (USB 3.0) təmin edən COM (USB) bağlantısı vasitəsilə bağlanırdı. hansı USB portu istifadə olunur.

Sxem pinout:

  • 3.3 V - IR sensorunun təchizatı üçün istifadə olunur və hər biri 4.7 kOhm olan çəkmə rezistorları vasitəsilə SDA və SCL çıxışlarına qoşulur
  • 5V - servolar təmin etmək.
  • D8 - üfüqi servonun fırlanma bucağından məsuldur.
  • D9 - şaquli servonun fırlanma bucağından məsuldur.
  • A4 - IR sensorunun SDA kontaktına qoşulur
  • A5 - IR sensorunun SCL kontaktına bağlıdır
  • GND - sistemin topraklanmasından məsuldur

Tamam, donanım hissəsi ilə işimiz bitdikdən sonra termal görüntüləmə kameramız üçün proqram yaratmağa keçək. Başlanğıcda bir proqramı React ilə bir veb layihə olaraq tətbiq etməyi planlaşdırırdım, ancaq inkişafı asanlaşdırmaq üçün standart bir Windows formasından istifadə etdim.

Ancaq Arduinoya qayıdaq.

Sensor məlumatlarını oxumağa başlamaq üçün GitHub deposundan Adafruit_MLX90614 yükləməlisiniz. Sıxılmamış Adafruit_MLX90614 qovluğunun adını dəyişdirin və Adafruit_MLX90614 qovluğunun Adafruit_MLX90614.cpp və Adafruit_MLX90614.h olduğunu yoxlayın.

Kitabxana qovluğunu arduinosketchfolder / libraries / qovluğuna qoyun. İlk kitabxananızdırsa, kitabxana alt qovluğunu yaratmağınız lazım ola bilər. IDE-ni yenidən başladın.

Bütün hazırlıqlar edildikdə, mikrokontrolör proqramımızın nüvəsi ilə işləyə bilərik.

Proqramımızı əsasən üç kiçik hissəyə bölə bilərik:

  • Dəyişən tərif
  • Quraşdırma etibarsızdır
  • Döngə boşdur

Xüsusi heçnə…

Dəyişən tərif hissəsində yalnız növbəti addımlarda istifadə edəcəyimiz bəzi əlavə kitabxanalar əlavə edirik və əlbəttə ki, servolarımız üçün biri IR sensorumuz üçün, digəri də bizə təkrarlama çağıran iki dəyişəni təyin edirik Bu qədər tarama alqoritmini təkrarlamaq lazımdır.

Quraşdırma Boşluğunda dəyişəni təyin edirik və Arduinodakı real sancaqlara bağlayırıq.

Və nəhayət sistemimizin əsas məntiqinin yerləşdiyi bir boşluq boşluğu hissəsidir. Bir sözlə, burada 3 döngə var. Birincisi, tarama prosesi davam edənə qədər işləyir və təkrarlama səhv olduqda ləğv olunur.

İkinci döngə üfüqi hərəkətdən məsuldur və istifadə olunan servoların texniki xüsusiyyətləri səbəbindən hər biri 1 ° -dən 60 addım düzəldir.

Eyni şey, şaquli hərəkətdən məsul olan üçüncü döngə üçün də tətbiq olunur. Bununla birlikdə, bu vəziyyətdə servo yalnız 45 addım atır.

Tamamlanan hər bir şaquli döngədən sonra ilk servo 65 ° başlanğıc şaquli vəziyyətinə qayıdır və hər şey yenidən başlayır.

Tarama prosesinin sonunda, pəncərənizdə 2700 ölçüsünün hər birinin sensorun istənilən vaxt aldığı istiliklə əlaqəli olduğu 60 ilə 45 arasındakı matrisin ölçüsünü görəcəksiniz.

Və bu matrisə əsasən sadəcə istədiyiniz termal görüntü yarada bilərsiniz.

Görüntü keyfiyyətini yaxşılaşdırmaq üçün kiçik gecikmələr (100ms və 50ms) əlavə etdim. Əsas məqsəd sensörün bu vaxta qədər daha dəqiq məlumat alması üçün iki ölçmə arasında fasilə vermək idi. Bu dəyərləri ehtiyaclarınıza görə artıra və ya azalda bilərsiniz.

Proqramın masa üstü hissəsi ilə əlaqədar hər şey olduqca sadədir, bizə lazım olanı COM portundan məlumat almaq və alınan temperaturlara uyğun olaraq rənglərdə göstərməkdir. Kodu düzəltmək üçün bir kod olduğu üçün yapışdırmayacağam. Bununla birlikdə, mənim tərəfimdən necə həyata keçirildiyi ilə maraqlanırsınızsa, github-dakı deposuma baxın.

Artıq proqram hissəsini bitirdik, termal görüntüləyicimizi fəaliyyətdə sınamağın vaxtı gəldi. Bir tarama obyekti olaraq masaya qoyulmuş soyuq su butulkasından istifadə etdim. Sağdakı şəkildəki ən çox görülən qırmızı rəngləri gördüyümüz kimi, tarama obyektinin xaricindəki temperaturun özündən daha yüksək olduğu mənasını verir.Göy rəng şüşədəki soyuq suyu, kiçik yaşıl və sarı-narıncı ləkələr sahələri göstərir. su isitmə.

Heç olmasa mənə hər şey məntiqli görünür. İstədiyiniz hər şeyi taramağa cəhd edə bilərsiniz. Bununla birlikdə, taramanın dəqiq bir obyekt istiqamətində edilməli olduğuna diqqət yetirin. Əks təqdirdə, istilik görüntüsünüzü qarışdıra biləcək yüksək və ya aşağı temperaturda bəzi üçüncü tərəf istilik nöqtələrini tuta bilərsiniz.

sol - real şəkil; sağ - termal görüntü

Ahhhh ... az qala bu yaraşıqlı birinin necə göründüyünü göstərməyi unutdu.

Gözəl

Ümid edirəm bu məqalə hazırda bunu etməyə çalışan və ya yaxın gələcəkdə edəcək hər kəs üçün faydalıdır.

Bu hekayəni bəyəndinizsə, xahiş edirəm düyməsini vurun və başqalarının daha asan tapması üçün paylaşın! Aşağıda bir şərh yazmaqdan çəkinməyin.