Mündəricat:

Hummingbird Detektoru/Şəkil çəkən: 12 addım (şəkillərlə)
Hummingbird Detektoru/Şəkil çəkən: 12 addım (şəkillərlə)

Video: Hummingbird Detektoru/Şəkil çəkən: 12 addım (şəkillərlə)

Video: Hummingbird Detektoru/Şəkil çəkən: 12 addım (şəkillərlə)
Video: My Camera is Photographing Birds by Itself 2024, Noyabr
Anonim
Hummingbird Detektoru/Şəkil Alıcı
Hummingbird Detektoru/Şəkil Alıcı

Arxa göyərtəmizdə bir hummingbird yemi var və son bir neçə ildir ki, onların şəkillərini çəkirəm. Hummingbirds inanılmaz kiçik canlılardır, çox ərazidir və döyüşləri həm şən, həm də heyrətləndirici ola bilər. Amma şəkillərini çəkmək üçün evimin arxasında heykəl kimi dayanmaqdan yoruldum. Evin arxasında uzun müddət gözləmədən şəkil çəkdirmək üçün bir yola ehtiyacım var idi. Uzaqdan idarə olunan bir deklanşördən istifadə edə biləcəyimi bilirəm, amma orada olmağım olmadan şəkillərin avtomatik olaraq çəkilməsini istəyirdim. Buna görə də, sinir quşlarını aşkar edən və avtomatik şəkil çəkən bir cihaz hazırlamağa qərar verdim.

Bunu etmək üçün həmişə bir mikro nəzarətçi istifadə etməyi düşünürdüm. Mikro nəzarətçi kamera nəzarətini proqram nəzarəti altında idarə edə biləcək. Kiçik bir sinekuşu aşkarlayan sensor başqa bir şey idi. Bir hərəkət sensoru istifadə edə bilərdim, amma bənzərsiz bir şey sınamaq istədim. Səsi tətik olaraq istifadə etməyə qərar verdim.

Addım 1: Mikro nəzarətçi seçimi

Mikro nəzarətçi seçimi
Mikro nəzarətçi seçimi

Seçdiyim mikro nəzarətçi PJRC Teensy idi. Teensy bir ARM mikro nəzarətçisindən, xüsusən də ARM Cortex M4 -dən istifadə edir. Cortex M4, aşkarlamanı yerinə yetirəcək bir FFT (Fast Fourier Transform) yerinə yetirmək üçün aparat ehtiva edir. PJRC, Teensy -dən musiqi çalmaqla yanaşı, xarici girişlə və ya lövhəyə əlavə edə biləcəyiniz kiçik bir mikrofonla səs yazmaq üçün istifadə edə biləcəyiniz bir audio lövhə də satır. Planım Teensy -nin mikrofondan gələn səs üzərində FFT etməsini təmin etmək idi.

Addım 2: FFT?

FFT?
FFT?

FFT, bir siqnalı vaxt sahəsindən tezlik sahəsinə çevirən riyazi bir formula/alqoritmdir. Bunun mənası odur ki, mikrofondan zamanla götürülmüş səsi alır və onu orijinal dalğada mövcud olan tezliklərin böyüklüyünə çevirir. Görürsünüz, hər hansı bir ixtiyari, davamlı dalğa, bəzi əsas tezliyin tam ədədləri olan bir sıra sinus və ya kosinus dalğalarından qurula bilər. Bir FFT bunun əksini edir: ixtiyari bir dalğa alır və onu ümumiləşdirsək orijinal ixtiyari dalğanı yaradan dalğaların böyüklüyünə çevirir. Bunu söyləməyin daha sadə bir yolu, Teinsy -də bir qanad qanadının meydana gəldiyi tezlikdə bir sinekuşun qanad çırpınmasını 'eşidib eşitmədiyini' müəyyən etmək üçün proqram və FFT aparatından istifadə etməyi planlaşdırdım. Bir sinekkuşu 'eşidirsə', bir fotoşəkil çəkmək üçün bir kameraya komanda göndərəcəyəm.

İşlədi! Yaxşı, mən bunu necə etdim, necə edə bilərdin və daha da yaxşı edə bilərdin?

Addım 3: Uçan sinek quşu nə kimi səslənir?

Uçan sinek quşu nə kimi səslənir?
Uçan sinek quşu nə kimi səslənir?

İlk növbədə, sinir quşunun qanad çırpıntısını hansı tezlikdə eşidəcəyimi anlamalıydım. Bunu müəyyən etmək üçün iPhone -dan istifadə etdim. IPhone -u bir ştativə bağladım və göyərtəmizdəki hummingbird bəsləyicisinin qarşısında yavaş hərəkətli video çəkdirdim. Bir müddət sonra kameranı çıxardım və videonu yüklədim. Daha sonra, qidalandırıcının qarşısında bir sinekuş axtaran videoya baxdım. Yaxşı bir ardıcıllıq tapanda, sinekürdünün qanadlarını bir mövqedən eyni mövqeyə çırpması üçün lazım olan fərdi çərçivələrin sayını hesabladım. IPhone -da yavaş hərəkət saniyədə təxminən 240 kadrdır. Qidalanma qurğusunun qarşısında fırlanan bir sinekuşu gördüm və qanadlarını irəli mövqedən arxa mövqeyə keçirməsi və sonra irəli mövqeyinə qayıtması üçün 5 çərçivə saydım. Bu, 240 çərçivədən 5 kadrdır. Unutmayın ki, biz sinek quşunun qanadlarının hər vuruşunda bir səs eşidirik (biri irəli, biri arxa vuruşda). Bir dövr və ya dövr üçün 5 çərçivə üçün tezliyi 1 / (5/240) və ya 48 Hz dövrə bölünmüş hesablaya bilərik. Bu o deməkdir ki, bu sinek quşu uçarkən eşitdiyimiz səs iki dəfə və ya təxminən 96 Hz olmalıdır. Uçduqları və uçmadıqları zaman tezlik daha yüksəkdir. Kütlələrindən də təsirlənə bilər, amma düşünürəm ki, eyni növ quşların çoxunun təxminən eyni kütləyə sahib olduğunu güman edə bilərik.

Addım 4: Fourier Seriyası və Teensy

Fourier Seriyası və Teensy
Fourier Seriyası və Teensy

The Teensy (bir Teensy 3.2 istifadə etdim) PJRC (www.pjrc.com) tərəfindən hazırlanmışdır. FFT bir səs nümunəsinə görə hesablanacaq. Səsi əldə etmək üçün PJRC Teensy üçün audio adapter lövhəsi satır (TEENSY3_AUDIO - 14,25 dollar). Audio adapter lövhəsinə lehimlənə bilən kiçik bir mikrofon da satırlar (MİKROFON - 1.25 dollar). Audio adapter lövhəsində Teensy -nin serial avtobus (I2S) üzərində danışa biləcəyi bir çip (SGTL5000) istifadə olunur. Teensy SGTL5000 -dən istifadə edərək səsi mikrofondan götürür və rəqəmsallaşdırır, yəni mikrofonun eşitdiyi səsi təmsil edən bir sıra ədədlər yaradır.

FFT, Diskret Fourier Dönüşümü (DFT) adlanan şeyin sürətli bir versiyasıdır. İstənilən sayda nümunə üzərində DFT həyata keçirilə bilər, lakin bir FFT -nin nümunələri ikili çoxluq olan dəstlərdə saxlamaq lazımdır. Teensy aparatı 1024 nümunə (1024 = 2^10) üzərində FFT edə bilər, buna görə də istifadə edəcəyik.

Bir FFT, adətən, çıxışı olaraq, təmsil olunan müxtəlif dalğalar arasındakı böyüklükləri və faza əlaqələrini yaradır. Bu tətbiq üçün faz əlaqələri ilə maraqlanmırıq, ancaq böyüklüklər və onların tezliyi ilə maraqlanırıq.

The Teensy audio board, 44, 100 Hz tezliyində səs nümunələri. Belə ki, bu tezlikdə 1024 nümunə 1024/44100 və ya təxminən 23.2 millisaniyəlik bir zaman aralığını təmsil edir. Bu vəziyyətdə, FFT, 43 Hz nümunə dövrünün tam ədədləri olan böyüklüklərdə çıxış olaraq istehsal edəcək (yenə 1/0.0232 təxminən 43 Hz -ə bərabərdir). Bu tezlikdən təxminən iki dəfə çox olan böyüklükləri axtarmaq istərdik: 86 Hz. Hesabladığımız sinek qanadı qanadlarının tezliyi tam olaraq deyil, ancaq görəcəyimiz qədər yaxındır.

Addım 5: Fourier məlumatlarından istifadə

Fourier məlumatlarından istifadə
Fourier məlumatlarından istifadə

PJRC kitabxanaları, Teensy'nin nümunələri emal etməsini və bir sıra böyüklük dəyərlərini geri qaytarmasını təmin edir. Qaytarılmış massivdəki hər bir böyüklüyə zibil kimi müraciət edəcəyik. İlk bölmə (geri aldığımız məlumatların silsiləsində sıfıra bərabər olduqda) dalğanın DC ofsetidir. Bu dəyəri etibarlı şəkildə gözardı edə bilərik. İkinci bölmə (ofset 1 -də) 43 Hz komponentinin böyüklüyünü təmsil edəcək. Bu bizim əsas dövrümüzdür. Növbəti bölmə (ofset 2 -də) 86 Hz komponentinin böyüklüyünü təmsil edəcək və s. Hər bir sonrakı bin baza dövrünün tam ədədidir (43 Hz).

İndi bura bir az qəribə gəlir. Mükəmməl bir 43 Hz səsini təhlil etmək üçün bir FFT istifadə etsək, FFT ilk zibil qutusunu böyük bir miqdarda qaytarar və qalan bütün çöplər sıfıra bərabər olardı (yenə də mükəmməl bir dünyada). Əldə etdiyimiz və təhlil etdiyimiz səs 86 Hz olsaydı, ofset birindəki zolaq sıfır, ofset 2 -də olan zolaq (ikinci harmonik) bir qədər böyük böyüklükdə olardı və qalan qutular sıfır olardı və s. Ancaq bir hummingbird səsini tutsaydıq və 96 Hz (bir quşumda ölçdüyüm kimi) olsaydı, 86 Hz -lik 2 binlik dəyər bir qədər aşağı bir dəyərə sahib olardı (mükəmməl 86 Hz dalğasından daha çox) və ətrafındakı çöplərin (bir aşağı və bir neçə daha yüksək) hər birinin sıfıra bərabər olmayan bir dəyəri olardı.

FFT üçün nümunə ölçüsü 1024 -dən böyük olsaydı və ya səs nümunə götürmə tezliyimiz daha aşağı olsaydı, qablarımızın həllini daha yaxşı edə bilərdik (yəni daha kiçik). Ancaq bunları FFT qutularımızı 1 Hz baza dövrünün qatına çevirmək üçün dəyişdirsək belə, bu çöpün "dağılması" ilə məşğul olmalıyıq. Bunun səbəbi, hər zaman və dəqiq olaraq tək bir zibil qutusuna düşən bir qanad tezliyi əldə etməyimizdir. Bu o deməkdir ki, biz yalnız bir ofisi 2 çöp qutusundakı dəyərə əsaslanaraq sinekkuşu aşkar edə bilmərik, qalanını isə göz ardı edə bilmərik. Verilənləri anlamağa çalışmaq üçün bir neçə zibil qutusunda təhlil etmək üçün bir yola ehtiyacımız var. Bu barədə daha sonra.

Addım 6: Tikintiyə başlayın

Tikintiyə başlayın
Tikintiyə başlayın
Tikintiyə başlayın
Tikintiyə başlayın

Prototip sinekim detektoru üçün, Teensy-də sancaqlara lehimlənmiş əlavə uzun kişi-kişi sancaqlar istifadə etdim. Teensy-ni kiçik bir lehimsiz çörək taxtasına qoşmaq üçün bunu etdim. Bunu etdim, çünki prototipdə və çörək lövhəsində bir çox dəyişiklik edəcəyimi düşündüyüm üçün bunu dəyişdirə bildim və lazım olan yerdə telləri bağladım. Səs taxtasının alt tərəfinə Teensy -nin üstünə yapışdırılmasına imkan verən qadın zolaqları lehimlədim. Mikrofon səs kartının yuxarı tərəfinə lehimlənir (şəkillərə baxın). Montaj haqqında daha ətraflı məlumatı PJRC saytında tapa bilərsiniz:

(https://www.pjrc.com/store/teensy3_audio.html).

Addım 7: Şəkil çəkmək üçün avadanlıq

Şəkil çəkmək üçün avadanlıq
Şəkil çəkmək üçün avadanlıq
Şəkil çəkmək üçün avadanlıq
Şəkil çəkmək üçün avadanlıq

Canon Rebel Rəqəmsal Kameram var (yaxşı, həyat yoldaşım var). Kamerada əl ilə uzaqdan bir deklanşöre qoşulmağa imkan verən bir jak var. B&H Photo -dan əl ilə uzaqdan idarəetmə cihazı aldım. Kabel, kameranın bir ucuna oturmaq üçün uyğun bir yuvaya malikdir və təxminən 6 fut uzunluğundadır. Kabeli ucundakı idarəetmə qutusunun yanından kəsdim və telləri geri götürüb çörək taxtasına qoşa biləcəyim üç başlıq sancağına lehimlədim. Zəmində olan çılpaq tel və digər iki siqnal var: ucu tətiklidir (çəhrayı) və üzük (ağ) diqqət mərkəzindədir (şəkillərə baxın). Uç və/və ya üzüyü yerə qısaltmaq, deklanşörü və diqqəti kameraya yönəldir.

Bir tullanan teldən istifadə edərək, Teensy -dən çörək taxtasında istifadə edə biləcəyim bir sahəyə qədər ortaq bir yer gəzdim. Bir LED-in anodunu Teensy-də 2-ci pinlə və LED-in katotunu yerə bir rezistora (100-220 ohm) bağladım. Teensy -nin 2 -ci pinini 10K rezistora və NPN tranzistorunun bazasına bağladığım rezistorun digər tərəfinə bağladım (hər yerdə 2N3904). Transistorun emitentini yerə və kameraya gedən kabeldən ağ və çəhrayı tellərə bağladığım kollektoru bağladım. Çılpaq tel, yenə də yerə bağlandı. LED Teensy tərəfindən hər dəfə açıldıqda, NPN tranzistoru da açılacaq və kameranı (və fokusu) işə salacaq. Sxemaya baxın.

Addım 8: Sistem Dizaynı

Sistem Dizaynı
Sistem Dizaynı

Hummingbird -in qanad çırpma tezlikləri çox güman ki, bir neçə yüz Hz -dən yuxarı getmir, buna görə də səs frekanslarını, məsələn, bir neçə yüz Hz -dən yuxarı qeyd etməyimizə ehtiyac yoxdur. Bizə lazım olan yalnız istədiyimiz tezlikləri süzmək üsuludur. Bir bandpass və ya hətta aşağı keçid filtri əla olardı. Ənənəvi olaraq OpAmps və ya açar kondansatörlü filtrlərdən istifadə edərək aparatda bir filtr tətbiq edərdik. Ancaq rəqəmsal siqnal emalı və Teensy -nin proqram kitabxanaları sayəsində rəqəmsal filtrdən istifadə edə bilərik (lehimləmə lazım deyil … sadəcə proqram).

PJRC, Teensy və audio lövhəsi üçün səs sisteminizi sürükləməyinizə imkan verən əla bir GUI -yə malikdir. Burada tapa bilərsiniz:

www.pjrc.com/teensy/gui/

Mikrofondan (filtrdən) gələn səs tezliklərini məhdudlaşdırmaq üçün PJRC tərəfindən təmin edilən biquadratic kaskadlı filtrlərdən birini istifadə etmək qərarına gəldim. Üç filtri kaskadlaşdırdım və 100 Hz -də bant keçidi üçün qurdum. Bu filtr, sistemin maraqlandığımız tezlikdən bir az yuxarı və bir qədər aşağıya keçməsinə imkan verəcəkdir.

Blok diaqramında (şəkilə bax) i2s1, audio lövhəyə səs girişidir. Hər iki audio kanalı mikserə, sonra da filtrlərə bağladım (mikrofon yalnız bir kanaldır, amma hər ikisini qarışdırdım, hansı kanal olduğunu anlamamaq üçün mənə tənbəl deyin). Filtrin çıxışını səs çıxışına keçirirəm (istəsəm səsi eşidə bilərəm). Filtrlərdən gələn səsi də FFT blokuna bağladım. Blok diaqramında sgtl5000_1 etiketli blok səs nəzarətçi çipidir. Diaqramda heç bir əlaqəyə ehtiyac yoxdur.

Bütün bu blok tikintisini etdikdən sonra İxrac et düyməsini basın. Blok diaqramından yaradılan kodu kopyalayıb Teensy tətbiqinizə yapışdıra biləcəyiniz bir informasiya qutusu açılır. Koda baxsanız, bu, hər bir idarəetmənin, komponentlər arasındakı 'əlaqələrin' bir nümunəsidir.

Addım 9: Kod

Kod
Kod

Proqramı ətraflı nəzərdən keçirmək bu Təlimat kitabında çox yer tutacaq. Etməyə çalışacağım kodun bəzi əsas bitlərini vurğulamaqdır. Ancaq bu çox böyük bir tətbiq deyil. PJRC, Teensy və audio kitabxana/vasitələrdən istifadə etmək üçün əla bir video dərsinə malikdir (https://www.youtube.com/embed/wqt55OAabVs).

PJRC -dən bəzi FFT nümunə kodu ilə başladım. Səs sistemi dizayn alətindən əldə etdiklərimi kodun üstünə yapışdırdım. Bundan sonra koda baxsanız, bir az başlanğıc görürsünüz və sonra sistem mikrofondan gələn səsləri rəqəmsallaşdırmağa başlayır. Proqram 'sonsuza' döngəsinə daxil olur () və fft1024_1.available () funksiyasına zəng edərək FFT məlumatlarının mövcud olmasını gözləyir. FFT məlumatları mövcud olduqda, məlumatların bir nüsxəsini götürürəm və emal edirəm. Diqqət yetirin ki, məlumatları yalnız ən böyük zibil qutusu böyüklüyü təyin olunmuş dəyərdən yuxarı olduqda götürürəm. Bu dəyər, sistemin həssaslığını necə təyin etdiyimdir. Qutular təyin olunmuş dəyərdən yüksəkdirsə, dalğanı normallaşdırıram və emal üçün müvəqqəti bir sıra köçürürəm, əks halda buna məhəl qoymuram və başqa FFT gözləməyə davam edirəm. Qeyd etməliyəm ki, dövrə həssaslığını tənzimləmək üçün mikrofon qazanma nəzarət funksiyasından da istifadə edirəm (sgtl5000_1.micGain (50)).

Dalğanı normallaşdırmaq, bütün zibil qutularını ən böyük dəyərə sahib olan qutunun birə bərabər olması üçün tənzimlədiyim deməkdir. Bütün digər qutular eyni nisbətdə ölçülür. Bu, məlumatların təhlilini asanlaşdırır.

Məlumatları təhlil etmək üçün bir neçə alqoritmdən istifadə etdim, ancaq ikisini istifadə etməyə qərar verdim. Bir alqoritm, çöplərin əmələ gətirdiyi əyrinin altındakı sahəni hesablayır. Bu, maraqlandığınız bölgədəki zibil qutularının dəyərlərini əlavə edən sadə bir hesablamadır. Bir həddən yuxarı olub olmadığını müəyyən etmək üçün bu sahəni müqayisə edirəm.

Digər alqoritm, normallaşdırılmış FFT -ni təmsil edən sabit bir dəyərlər dəstindən istifadə edir. Bu məlumatlar həqiqi (optimal) sinekürd imzasının nəticələridir. Buna hedcinq deyirəm. Müvafiq qutuların bir -birinin 20% -i içərisində olub olmadığını görmək üçün hedcinq məlumatlarını normallaşdırılmış FFT məlumatları ilə müqayisə edirəm. 20% seçdim, amma bu dəyər asanlıqla tənzimlənə bilər.

Fərdi alqoritmlərin neçə dəfə bir matça sahib olduqlarını düşündüklərini, saydıqlarını və saydıqlarını hesablayıram. Bu sayını sinekkuşu təyin etmənin bir hissəsi olaraq istifadə edirəm, çünki yalançı tetiklemeler meydana gələ bilər. Məsələn, hər hansı bir səs yüksək olduqda və ya quşların qanad tezliyi olduqda, əl çalmaq kimi, bir tətik ala bilərsiniz. Ancaq əgər sayım müəyyən bir rəqəmin üstündədirsə (seçdiyim bir nömrə), bunun sinekkuş olduğunu söyləyirəm. Bu baş verdikdə, vurduğumuzu göstərmək üçün LED -i yandırıram və eyni dövrə kameranı NPN tranzistoru ilə işə salır. Proqramda kameranın tetikleme vaxtını 2 saniyəyə qoydum (LED və tranzistorun yandığı vaxt).

Addım 10: Montaj

Montaj
Montaj

Şəkildə elektronikanı (qeyri -rəsmi olaraq) necə qurduğumu görə bilərsiniz. Teensy -ni başqa bir (istifadə olunmamış) Arduino ilə uyğun bir daşıyıcı lövhəyə yapışdırılmış bir çörək taxtasına bağladım (məncə Arduino Zero). Hər şeyi göyərtəmdəki metal bir tent dirəyinə bağladım (kameraya gedən kabelə də gərginlik əleyhinə əlavə etdim). Qütb sinek quşu bəsləyicisinin yanında idi. Elektronikanı ölü bir cib telefonunu doldurmaq üçün istifadə edə biləcəyiniz kiçik bir LiPo güc kərpicindən istifadə etdim. Güc kərpicinin üstündə Teensy -yə keçmək üçün istifadə etdiyim USB konnektoru vardı. Uzaqdan tətik kabelini Kameranın üstünə çəkdim və qoşdum. Bəzi quş hərəkətlərinə hazır idim!

Addım 11: Nəticələr

Nəticələr
Nəticələr

Kameranı qidalandırıcının yanındakı bir tripodda qurdum. Kameranı fiderin ən ön kənarına yönəltdim və onu deklanşöre basıldıqda bir neçə sürətli şəkil çəkən İdman Moduna qoydum. 2 saniyəlik bağlama müddəti ilə hər bir tətil hadisəsi üçün təxminən 5 şəkil çəkdim.

Bunu ilk dəfə sınadığımda bir neçə saat proqramla məşğul olaraq vaxt sərf etdim. Həssaslığı və ardıcıl alqoritm vuruş sayını tənzimləməli oldum. Nəhayət onu düzəltdim və hazır idim.

Çəkdiyi ilk şəkil, sanki bir təyyarə döyüşçüsü kimi yüksək sürətli bir bank çevirmək kimi çərçivəyə uçan bir quş idi (yuxarıya bax). Nə qədər həyəcanlı olduğumu sizə deyə bilmərəm. Bir müddət göyərtənin digər tərəfində sakitcə oturdum və sistemin işləməsinə icazə verdim. Çox şəkil çəkə bildim, amma bir neçəsini atdım. Məlum olur ki, bəzən bir quş başı və ya quyruğu alırsan. Ayrıca, baş verə biləcək saxta tetikleyiciler aldım. Ümumilikdə 39 şəkil saxladığımı düşünürəm. Kameradan gələn deklanşör səsinə öyrəşmək üçün quşları qidalandırıcıya bir neçə səfər etdi, amma nəticədə buna məhəl qoymadılar.

Addım 12: Son Düşüncələr

Son Fikirlər
Son Fikirlər

Bu əyləncəli bir layihə idi və işləyir. Ancaq, əksər şeylər kimi, təkmilləşdirmək üçün çox yer var. Filtr əlbəttə fərqli ola bilər (aşağı keçid filtri və ya tənzimləmə və/və ya parametrlərdə dəyişikliklər kimi) və bəlkə də bu onu daha yaxşı işləməsinə səbəb ola bilər. Əminəm ki, sınamaq üçün daha yaxşı alqoritmlər var. Yazda bunun bir hissəsini sınayacağam.

Mənə açıq mənbəli maşın öyrənmə kodunun olduğunu söylədilər … bəlkə də sistemə sinek quşlarını müəyyən etmək üçün 'öyrədilə bilər'! Bunu sınayacağımdan əmin deyiləm, bəlkə də.

Bu layihəyə başqa nə əlavə edilə bilər? Kamerada bir tarix/saat kəkələməsi varsa, bu məlumatı şəkillərə əlavə edə bilərsiniz. Başqa bir edə biləcəyiniz şey, səs yazmaq və bir uSD kartına saxlamaqdır (PJRC səs kartında bir yuva var). Yadda saxlanılan səs, öyrənmə alqoritmini öyrətmək üçün istifadə edilə bilər.

Bəlkə bir yerdə Ornitologiya məktəbi belə bir cihazdan istifadə edə bilər? Qidalanma vaxtı, qidalanma tezliyi kimi məlumatları toplaya bilərlər və şəkillərlə yemə qayıdan xüsusi quşları müəyyən edə bilərsiniz.

Ümidim başqasının bu layihəni uzatması və etdiklərini başqaları ilə paylaşmasıdır. Bəziləri mənə dedilər ki, gördüyüm bu iş məhsula çevrilməlidir. Emin deyiləm, amma bunun öyrənmə platforması və elm üçün istifadə edilməsini istərdim.

Oxuduğunuz üçün təşəkkürlər!

Göndərdiyim kodu istifadə etmək üçün Arduino IDE (https://www.arduino.cc/en/Main/Software) lazımdır. PJRC -dən Teensyduino koduna da ehtiyacınız olacaq (https://www.pjrc.com/teensy/td_download.html).

Tövsiyə: