Mündəricat:

Özünüzü qurun (ucuz!) Çoxfunksiyalı Simsiz Kamera Nəzarətçisi .: 22 Adım (Şəkillərlə birlikdə)
Özünüzü qurun (ucuz!) Çoxfunksiyalı Simsiz Kamera Nəzarətçisi .: 22 Adım (Şəkillərlə birlikdə)

Video: Özünüzü qurun (ucuz!) Çoxfunksiyalı Simsiz Kamera Nəzarətçisi .: 22 Adım (Şəkillərlə birlikdə)

Video: Özünüzü qurun (ucuz!) Çoxfunksiyalı Simsiz Kamera Nəzarətçisi .: 22 Adım (Şəkillərlə birlikdə)
Video: 30 товаров для автомобиля с Алиэкспресс, автотовары №22 2024, Iyul
Anonim
Özünüzü qurun (ucuz!) Çox funksiyalı Simsiz Kamera Nəzarətçisi
Özünüzü qurun (ucuz!) Çox funksiyalı Simsiz Kamera Nəzarətçisi
Özünüzü qurun (ucuz!) Çox funksiyalı Simsiz Kamera Nəzarətçisi
Özünüzü qurun (ucuz!) Çox funksiyalı Simsiz Kamera Nəzarətçisi
Özünüzü qurun (ucuz!) Çox funksiyalı Simsiz Kamera Nəzarətçisi
Özünüzü qurun (ucuz!) Çox funksiyalı Simsiz Kamera Nəzarətçisi

Giriş Öz kamera nəzarətçinizi qurmağı heç düşünməmisinizmi? Sxem düzgündür, lakin komponent siyahısı səhv idi - yeniləndi. Bu Rəqəmsal Günlər yarışmasına bir girişdir, buna görə faydalı hesab edirsinizsə, lütfən qiymətləndirin/səs verin/şərh verin! Həqiqətən bəyənirsinizsə və büdrəyirsinizsə, "bəyəndim!":) Yeniləmə: hackaday -də nümayiş olunur! hackaday.com/2009/10/13/a-differ-breed-of-camera-controllers/ Yeniləmə: lazer tətikinin yeni fotoşəkilləri! Yeniləmə: Birinci Mükafat = D, səsvermə və/və ya reytinq üçün təşəkkürlər! Bu təlimat, əsasən kameralarından bir az daha çox məsafə qət etmək istəyən SLR istifadəçilərinin xeyrinədir, lakin IR interfeysləri ilə hər hansı bir nöqtə və çəkiliş varsa, bunu maraqlı tapa bilərsiniz. Əlbəttə ki, bu, kamera tetikleme terminallarına məntiqi çıxışlar bağlaya biləcəyiniz kamera hacks ilə işləyəcək (bir qədər dəyişikliklə). Bu tam bir təlimat olaraq başladı, amma sonradan qarşılaşdığım bəzi gözlənilməz məhdudiyyətlər səbəbindən, bu, daha çox müxtəlif işlərin necə aparılacağına dair bir bələdçi ola bilər - tez -tez sənə necə edə biləcəyinə dair seçim qoyuram. Düşünürəm ki, görməməzlikdən "bunu etməlisən" deməkdən daha yaxşı bir iş görməkdir. Bunu kamera nəzarətçi dizaynında bir dərs olaraq düşünün. Sxemləri və tam kodu verdim ki, həmişə kopyalaya biləsiniz. Dizaynı bir lövhəyə köçürmək və əksər insanlar üçün LCD əlavə etmək üçün sadə bir vəziyyət olacaq. Proses çox oxşar olduğundan və dizaynı daimi etməzdən əvvəl səhvləri düzəltməyə imkan verdiyindən, onu necə taxtadan keçirəcəyimi öyrəndim! Xüsusiyyətlər: Dəyişən şərtləri olan tək vuruş rejimi Aralıq (vaxt fasiləsi) rejimi Daxil edilmiş sensor dizaynları - işıq, səs (daha çox mümkün!) Ümumi dəyəri - 25 funtdan aşağı (alətlər istisna olmaqla) Parametrlərin asan dəyişdirilməsi üçün LCD Ekran Nikon/Canon ilə uyğun gəlir (kodlaşdırılmış), Olympus/Pentax üçün potensial dəstək (sınaqdan keçirilməmiş) Firmware yoxdur dəyişiklik tələb olunur IR istifadə edir, həm simsizdir həm də kameranıza zərər vermir. Soyuq havada oturub saatlarla uzaqdan idarəetmə düyməsini basaraq bunu düşündüm. Təxminən 1000 atış üçün 8 saniyəlik fasilə verdim. Düşündüm, hey, bu sadəcə bir IR LED -dir, elə deyilmi? Niyə onu təkrarlaya bilmərəm və gecikmə ilə öz uzaqdan idarə edə bilmirəm? Daha sonra (bir qədər utanc verici bir şəkildə, böyük bir beyin dalğası aldığımı düşündüyüm üçün) bunun edildiyini və hətta mövzu ilə bağlı bir neçə təlimat verildiyini öyrəndim. Tətbiqimin əksər intervalometrlərdən və diy pultlardan fərqli olduğu bir çox fərdiləşdirmə və modulluğa imkan verməsi, həm Nikon/Canon (həm də daha sonra digərləri ilə) uyğun olması və müəyyən bir tətikdə şəkil çəkmə qabiliyyətini özündə birləşdirməsidir. Fikir sadədir. Kifayət qədər sürətli bir şeyin şəklini çəkmək istəyirsən (hal -hazırda çekiminizdəki gecikmə ilə məhdudlaşırsınız, mənim üçün 6 ms). Bunu etmək üçün müxtəlif üsullar var: 1. Şəkili doğru zamanda çəkməyə çalışdığınız sınaq və səhv 2. Təkmilləşdirilmiş sınaq və səhvlə otağı qaraldır, kameranı lampaya (açıq deklanşöre) qoyursunuz və flaş yandırırsınız. doğru zamanda 3. Sifarişinizlə şəkil çəkmək üçün bir növ audio/işıq sensoru olan xüsusi bir tətik nəzarətçisi alın. 4. Özünüz qurun! Tamam, 1 və 2 qarışıqlıq üçün yaxşıdır və çox yaxşı şəkillər verə bilər. Ancaq sizə göstərəcəyim budur ki, təkrar -təkrar ardıcıl nəticələr verəcək bir dövrə qurmaq mümkündür. Ən əsası, bu sıx vaxtlarda, xərc alternativ modellərə nisbətən daha aşağıdır (bəzi insanlar bu cür şeylər edən dəstlər hazırlamışlar, ancaq bağlantılara baxmaq üçün çox baha başa gəlir). Dizaynın çox yönlülüyü belədir: Sensorunuz 0 ilə 5 V arasında bir çıxış gərginliyi yaradırsa, kameranızın işə salınması üçün istifadə edə bilərsiniz! Bu darıxdırıcı bir ifadədir, amma nəticələrini başa düşməyə başladıqda çox güclü olur. Sadəcə bir gərginlik səviyyəsini izləyərək, tətikiniz işıq əsaslı (LDR), səs əsaslı (mikrofon və ya ultrasəs), temperatur əsaslı (termistor) və ya hətta sadə bir potensiometr ola bilər. Əslində, demək olar ki, hər şey. Hətta dövrəni başqa bir nəzarətçiyə bağlaya bilərsiniz və sizə məntiqi bir nəticə verə biləcəyi təqdirdə, onu işə sala bilərsiniz. Dizaynın yeganə əsas məhdudiyyəti, yalnız IR interfeysləri ilə işləməsidir, proqram təminatını və aparatı mini USB vasitəsilə və ya hər hansı bir interfeyslə çıxarmaq üçün dəyişdirmək olduqca sadə olardı. Qeyd: Mənbə Kodu: 13 -cü addımda bəzi tətbiqlər təqdim etdim. İndiyə qədər nəzarətçimdə işlədiyim kod, əsas c faylı və asılılıqları ilə birlikdə hex faylda var. Tərtib etməkdən əmin deyilsinizsə, sadəcə kodumu işlədə bilərsiniz. Müxtəlif addımlarda istifadə edə biləcəyiniz bir nümunə kodu da daxil etdim (açıq şəkildə uzaqdan_test, intervalölçən testi və adc testi kimi adlanırlar. Bir addımda koda istinad etsəm, ehtimal var). EDIT: haqqında balonların uçması - görünür ki, balonların havaya qalxması ilə asanlıqla fotoşəkil çəkə biləcəyinizi söylədiyim zaman bir az uzaqgörən idim. Məlum oldu ki, orta balonun dərisi o qədər sürətlə hərəkət edir ki, kameranız açılana qədər tamamilə atılacaq. nəzarətçi deyil, əksər kameralarla bağlı bir problemdir (ADC -ni 120 kHz ətrafında hiss edir). Bunun yolu, əlavə bir tel çıxarıb başqa kiçik bir dövrə əlavə etsəniz, mümkün olan tetiklenen bir flaş istifadə etməkdir. Teorik olaraq, onu açmaq və gecikmə ilə oynamaq üçün başqa bir şey istifadə edə bilərsiniz (və ya hətta gecikmə kodunu mikrosaniyələrə daxil etmək üçün dəyişdirə bilərsiniz). 1m 150ms-1 sürətlə gedən bir hava pelleti təxminən 6-7ms çəkir, tetiklemek və çəkmək üçün kifayət qədər vaxt Silahın sadəcə hərəkət etməsi bir neçə mikrosaniyənin başlanğıc gecikməsini təmin edər s. Yenə də üzr istəyirəm, bəzi balonları tuta bilsəm, bu axşam oynayacağam, amma atəş tətiyi üçün atəşfəşanlıq kimi bir çox istifadə var! İşlədiyini göstərmək üçün aşağıya tez və çirkli bir vaxt atdım:) Oxumağı, qiymətləndirməyi və/və ya səs verməyi unutmayın! Alqışlar, JoshDisclaimer Bir şeyin dəhşətli dərəcədə yanlış getməsi və ya birtəhər kameranızı kərpicə atmaq/pişiyinizi ləkələmək ehtimalı olmadığı halda heç bir şeyə görə məsuliyyət daşımıram. Bu təlimata əsaslanan bir layihəyə başlayaraq, bunu qəbul edirsiniz və öz riski ilə davam edirsiniz. Bunlardan birini etsəniz və ya sizə kömək etmək üçün mənim göstərişlərimdən istifadə etsəniz - bura daxil etmək üçün mənə bir link/şəkil göndərin! Cavab indiyə qədər çox böyük idi (ən azından standartlarıma görə), insanların bunu necə şərh etdiyini görmək çox gözəl olardı. Mən yazdığım üçün 2 -ci versiya üzərində işləyirəm;)

Addım 1: Bəzi İlkin Düşüncələr …

Beləliklə, bu şeyi necə quracağıq? Mikrokontrolör Bu layihənin ürəyi və ruhu AVR ATMega8 -dir. Bu, əslində Arduinonun istifadə etdiyi ATMega168 çipinin bir az kəsilmiş versiyasıdır. C və ya Assambleyada proqramlaşdırıla bilər və öz xeyrimizə istifadə edə biləcəyimiz bir sıra həqiqətən faydalı xüsusiyyətlərə malikdir. "Əksəriyyəti giriş/çıxış (i/o) olan" pinli analoqdan rəqəmsal çeviriciyə "malik 28 pin "3 təyyarə taymerləri" Daxili və ya xarici saat mənbəyi "Bir çox kod kitabxanası və onlayn nümunə Bir çox sancağın olması yaxşıdır. Bir LCD ekran ilə əlaqə qura bilərik, 6 düymə girişimiz var və hələ də bir IR LED ilə çəkmək üçün kifayət qədər qalıq var və bəzi status LEDləri var. Atmel AVR prosessor seriyası internetdə çoxlu dəstəyə malikdir və əldə etmək üçün çoxlu dərsliklər var. başladı (bunu qısaca nəzərdən keçirəcəyəm, amma daha yaxşı xüsusi dərslər var) və yığınlar və kod yığınları. Arayış üçün bu layihəni AVR-LibC kitabxanasından istifadə edərək C-də kodlaşdıracağam. Bunu etmək üçün asanlıqla PIC ilə gedə bilərdim, amma AVR yaxşı dəstəklənir və pultlar üçün tapdığım bütün nümunələr AVR əsaslıdır! LCD Display qrafik və alfasayısal olaraq iki əsas ekran növüdür. Qrafik ekranların qətnaməsi var və pikselləri istədiyiniz yerə qoya bilərsiniz. İşin mənfi tərəfi odur ki, kodlaşdırmaq daha çətindir (kitabxanalar olsa da). Alfasayısal ekranlar sadəcə bir və ya daha çox simvol sırasından ibarətdir, LCD -də əsas simvolların (məsələn, əlifba, bəzi rəqəmlər və simvollar) yerüstü mağazası var və sətirləri çıxarmaq nisbətən asandır. İşin mənfi tərəfi, çevik olmadıqları və qrafika göstərmələri praktiki olaraq mümkün deyil, amma məqsədimizə uyğundur. Həm də daha ucuzdur! Alfasayısal rəqəmlər satır və sütun sayına görə təsnif edilir. 2x16 olduqca yaygındır, hər biri 5x8 matris olan 16 simvoldan ibarət iki sıra ilə. 2x20 s də əldə edə bilərsiniz, amma ehtiyac görmürəm. Qırmızı arxa işıqlı LCD istifadə etməyi seçdim (bunu astrofotoqrafiya üçün istifadə etmək istəyirəm və qırmızı işıq gecə görmə üçün daha yaxşıdır). Arxa işıq olmadan gedə bilərsiniz - bu tamamilə sizin seçiminizdir. Arxa işıqsız bir yol seçsəniz, gücünüzə və pulunuza qənaət edəcəksiniz, ancaq qaranlıqda bir məşəl lazım ola bilər. LCD axtararkən HD44780 ilə idarə olunmasını təmin etməlisiniz. Hitachi tərəfindən hazırlanmış bir sənaye standartı protokoldur və məlumat çıxarmaq üçün istifadə edə biləcəyimiz bir çox yaxşı kitabxana var. Aldığım model eBay -dən JHD162A idi. InputInput düymələrlə ediləcək (sadə!). 6 rejimi seçdim, tamam/çək və 4 istiqamət. Qəza baş verdikdə mikrofonu sıfırlamaq üçün başqa bir kiçik düyməni almağa dəyər. Tətik girişinə gəldikdə, bəzi əsas fikirlər işığa bağlı bir rezistor və ya elektret mikrofonudur. Büdcənizə görə yaradıcı və ya xəsis ola bilərsiniz. Ultrasəs sensorları bir az daha baha başa gələcək və əlavə proqramlaşdırma tələb edəcək, ancaq onlarla birlikdə çox səliqəli işlər görə bilərsiniz, əksər insanlar mikrofondan (yəqin ki, ən faydalı ümumi sensor) məmnun olacaq və elektrotlar çox ucuzdur. Bunun da gücləndirilməsi lazım olduğunu unutmayın (amma bunu daha sonra nəzərdən keçirəcəyəm). Çıxış - Status Lazım olan yeganə real nəticə statusdur (ekrandan başqa), buna görə də bir neçə LED burada yaxşı işləyəcək. Çıxış - Çəkiliş üçün şəkillər üçün kamera ilə əlaqə qurmalıyıq və bunun üçün infraqırmızı radiasiya yarada bilən bir işıq mənbəyinə ehtiyacımız var. Şükürlər olsun ki, bunu edən bir çox LED var və kifayət qədər yüksək gücə malik bir lampa almağa çalışmalısınız. Seçdiyim vahid 100mA max cari reytinqə malikdir (əksər LEDlər 30mA civarındadır). Dalğa uzunluğunun çıxışına da diqqət yetirməlisiniz. İnfraqırmızı işıq EM spektrinin daha uzun dalğa hissəsindədir və təxminən 850-950nm dəyər aramalısınız. IR LED -lərin çoxu 950 -nin sonuna doğru gedir və yandırıldıqda bir az qırmızı işıq görə bilərsiniz, bu problem deyil, ancaq boşa gedən spektr, mümkünsə 850 -ə yaxınlaşmağa çalışın. bu? Yaxşı, portativ olacaq, buna görə də batareyalar! Daha sonra 5V -a qədər artırılan 2 AA batareyadan istifadə etməyi seçdim. Növbəti bir neçə hissədə bunun arxasında duran səbəbləri araşdıracağam. Ucuz və çevik olduğu üçün xüsusi bir PCB dizaynını qənaət etdiyindən prototip hazırladıqdan sonra dövrə üçün lövhə istifadə etməyə qərar verdim. Sxemləri təqdim etdim, buna görə öz PCB planınızı düzəltməkdə sərbəstsiniz - bunu etsəniz də, bir nüsxəyə sahib olsanız minnətdar olaram! Yenə vəziyyət tamamilə sizin seçiminizdir, ekrana, düymələrə (Mümkünsə kifayət qədər intuitiv bir sxemdə) və batareyalar. Elektrik lövhələri getdikcə bu o qədər də mürəkkəb deyil, bir çox əlaqə sadəcə düymələr/LCD kimi şeylərlə əlaqədardır.

Addım 2: Güc İdarəetməsi

Güc idarəetməsi
Güc idarəetməsi

Güc İdarəçiliyi Belə bir layihə üçün taşınabilirliğin əsas cəhət olması lazım olduğu aydındır. Batareyalar buna görə də məntiqi seçimdir! İndi, portativ qurğular üçün ya doldurula bilən, ya da asanlıqla əldə edilə bilən bir batareya mənbəyi seçməyiniz olduqca vacibdir. İki əsas seçim 9V PP3 batareya və ya AA batareyalarıdır. Əminəm ki, bəzi insanlar 9V batareyanın ən yaxşı seçim olduğunu güman edəcəklər, çünki 9V 3 -dən daha yaxşıdır? Yaxşı, bu halda deyil. 9V batareyaları çox faydalı olsa da, batareyanın ömrü hesabına öz gərginliyini yaradır. MAh (milliamp saat) ilə ölçülən bu reytinq, batareyanın 1mA -da neçə saat işləyəcəyini nəzəri olaraq sizə bildirir (bir çimdik duzla götürsək də, bunlar çox vaxt ideal, aşağı yük şəraitindədir). Reytinq nə qədər yüksəkdirsə, batareya daha uzun müddət işləyəcək. 9V batareyaları 1000 mAh -a qədər və ətrafında qiymətləndirilir. Digər tərəfdən, qələvi AA -nın 2900mAh -da demək olar ki, üç qat çoxdur. NiMH şarj cihazları buna çata bilər, baxmayaraq ki, 2500 mAh ağlabatan bir məbləğdir (şarj oluna bilən batareyaların 1,5 V deyil, 1,2 V -də işlədiyini unutmayın!) LCD ekranın 5 V girişə (10%) ehtiyacı var və AVR -nin (mikro nəzarətçi) təxminən eyni (aşağı tezlikli saat sürətləri üçün 2.7 qədər aşağı düşə bilər). Həm də kifayət qədər sabit bir gərginliyə ehtiyacımız var, əgər bu dalğalanırsa mikrokontrolördə problem yarada bilər. Bunun üçün bir gərginlik tənzimləyicisini istifadə edəcəyik, indi qiymət və ya səmərəlilik üzərində seçim etməlisiniz. LM7805 (78 seriyası, +5 volt çıxışı) və ya kiçik bir inteqral dövrə kimi sadə 3 pinli bir gərginlik tənzimləyicisi istifadə etmək imkanı var. nəzərə alınan bir neçə məqam. Birincisi, üç pin tənzimləyicisinin demək olar ki, həmişə çıxışından daha yüksək bir girişə ehtiyacı var. Daha sonra gərginliyi istədiyiniz dəyərə endirirlər. Dezavantajı, dəhşətli bir səmərəliliyin olmasıdır (50-60% yaxşı gedir). Bunun üstünlüyü ucuzdur və 9V batareya ilə işləyəcək, İngiltərədə 20 pens üçün əsas bir model ala bilərsiniz. Həm də tənzimləyicilərin buraxma gərginliyinə malik olduğunu nəzərə almalısınız - giriş və çıxış arasındakı minimum boşluq. Təxminən 50 mV-də (digər dizaynlarla 1-2V ilə müqayisədə) buraxılan xüsusi LDO (Low DropOut) tənzimləyiciləri ala bilərsiniz. Başqa sözlə, +5V çıxışı olan LDO -lara diqqət yetirin. İnteqrasiya edilmiş bir sxemdən istifadə etmək üçün ideal yol keçid tənzimləyicisidir. Bunlar, məqsədimizə görə, bir gərginlik götürən və bizə yüksək səmərəliliylə tənzimlənən bir çıxış verən 8 pinli paketlər olacaq - bəzi hallarda demək olar ki, 90%. Nə qoymaq istədiyinizə bağlı olaraq çeviriciləri artıra və ya aşağı sala bilərsiniz (sırasıyla artırma/qəpik), alternativ olaraq istədiyiniz çıxışın üstündə və ya altında olan tənzimləyiciləri satın ala bilərsiniz. Bu layihə üçün istifadə etdiyim çip MAX619+. 2 AA (giriş aralığı 2V-3.3V) götürən və davamlı 5V çıxışı təmin edən 5V-lik bir tənzimləyicidir. İşləmək üçün yalnız dörd kondansatörə ehtiyac var və çox yer qənaət edir. Qiymət - qapaqlar daxil olmaqla.003.00. Batareyalarınızdan bir az daha çox istifadə etmək üçün mübahisə etməyə dəyər. Yeganə böyük dezavantaj, qısa qapanmadan qorunmamasıdır, buna görə də cərəyan varsa, xəbərdar olun! Əlavə bir dövrə əlavə etməklə düzəltmək olduqca çətindir: Başqa bir faydalı çip dizaynı - LT1307 kimi bir az səliqəli bir həll olmasa da. Yenə də 5V tənzimləyici, lakin müxtəlif girişlər ala bilər və aşağı batareya aşkarlanması kimi faydalı şeylərə malikdir. İndüktorlar, böyük kondansatörlər və rezistorlar ilə təxminən 5 -ə qədər bir qədər baha başa gəlir. Gərginlik Rayları İki əsas gərginlik rayından (üstəgəl ümumi bir yerdən) istifadə edəcəyik. Birincisi, batareyadan gələn 3V olacaq, bu LEDləri və digər nisbətən yüksək güc komponentlərini gücləndirmək üçün istifadə ediləcək. Mənim MAX619 yalnız 60mA -ya qədər qiymətləndirilir (mütləq maksimum 120mA olsa da), hər hansı bir LED -i idarə etmək üçün mikrokontrolörü MOSFET -ə bağlamaq daha asandır. MOSFET, demək olar ki, heç bir cərəyan çəkmir və qapı girişi 3V ətrafında olduqda dövrədə bir fasilə rolunu oynayır. Mikro nəzarətçi pin üzərində məntiqi 1 göndərdikdə, gərginlik 5V -dir və FET açılır, sonra qısa bir dövrə (yəni bir tel parçası) rolunu oynayır. Güc sensoru. Güc istehlakı Müxtəlif məlumat cədvəllərinə baxsaq, AVR-in maksimum yükdə 15-20mA-dan çox olmamasını qeyd edirik. LCD -nin işləməsi üçün yalnız 1mA lazımdır (ən azından sınadığımda 2 -ə büdcə). Arxa işıq yandıqda, qərar vermək həqiqətən sizin ixtiyarınızdadır. Düz 5V rayına bağlamaq (sınadım) yaxşıdır, amma etməzdən əvvəl onun bortda bir rezistoru olduğundan əmin olun (PCB üzərindəki izləri izləyin). Bu şəkildə 30mA çəkdi - qorxunc! 3.3k rezistorla hələ də görünür (astro fotoqrafiya üçün mükəmməldir) və yalnız 1mA çəkir. 1k və ya başqa bir şəkildə hələ də yaxşı bir parlaqlıq əldə edə bilərsiniz. Arxa işıq yandıqda 2mA -dan aşağı çəkdiyim üçün yaxşıyam! İstəyirsinizsə, 10k potensiometrdən istifadə edərək parlaqlıq düyməsini əlavə etmək çox çətindir. Daha sonra bu cərəyanı yarıya endirə bilərsiniz, çünki səmərəli olaraq 50% iş dövrü ilə işləyirsiniz (LED modulyasiya edildikdə). Hər halda, bu saniyənin bir hissəsinə qədər açıqdır, buna görə narahat olmağımıza ehtiyac yoxdur. Oynamalı olduğunuz digər LEDlər sizə yaxşı bir parlaqlıq vermək üçün yalnız 10mA cərəyanın kifayət etdiyini görə bilərsiniz. aşağı enerjili LED -lər üçün (İQ -dən başqa), məşəl dizayn etmirsiniz! Dövrümə bir güc göstəricisi əlavə etməməyi seçdim, çünki çox istifadə üçün çoxlu cərəyan var. Açıldığını yoxlamaq üçün açma/söndürmə düyməsini istifadə edin! Ümumilikdə, bir anda 30mA -dan çox işləməməli və təxminən 80 saatdan çox vaxt verməli olan 2500 mAh (dəyişməyə imkan verən) mAh nəzəri təchizatı ilə işləməməlisiniz. hər şey düzdür. Prosessorun çox vaxt boş qalması ilə bu, ən azı ikiqat/üç qat artacaq, buna görə də batareyalarınızı tez -tez dəyişməməlisiniz. Nəticə İşdə gedirik, asan deyildi! 9V batareya və LDO tənzimləyicisi ilə səmərəlilik hesabına ya ucuz və şən gedə bilərsiniz, ya da bir az daha çox ödəyib bunu etmək üçün xüsusi bir IC istifadə edə bilərsiniz. Büdcəm hələ də IC ilə birlikdə 20 -dən aşağı idi, buna görə ehtiyacınız olsa daha da aşağı sala bilərsiniz.

Addım 3: ATmega8 -ə daha yaxından baxın

ATmega8 -ə daha yaxından baxın
ATmega8 -ə daha yaxından baxın

PinsImage 1, ATMega8 üçün pinout diaqramıdır (tam olaraq 168/48/88 ilə eynidir, yeganə fərq göyərtədəki yaddaşın miqdarı və kəsmə variantlarıdır). məntiqi 1). Torpaqlanarsa, cihaz 2-6 - Port D, ümumi giriş/çıxış Pin 7 - VCC, təchizat gərginliyi (bizim üçün+5V) Pin 8 - GroundPin 9, 10 - XTAL, xarici saat girişləri (B Portunun bir hissəsi)) Pin 11 - 13 Port D, ümumi giriş/çıxış Pin 14 - 19 Port B, ümumi giriş/çıxış Pin 20 - AVCC, analoq təchizat gərginliyi (VCC ilə eyni) Pin 21 - AREF, analoq gərginlik istinadı Pin 22 - GroundPin 23-28 Port C, ümumi giriş/çıxış İstifadə olunan giriş/çıxış portları: D = 8, C = 6, B = 6 20 istifadə edilə bilən port cəmdir, sadəlik üçün çıxışlarınızı ya portlara (məsələn, çıxış portu olaraq D) və ya lövhədəki qruplar - LCD -nin yalnız C küncündə işləməsini istəyə bilərsiniz, çünki telləri o küncdə səliqəli saxlamaq üçün proqramlaşdırma üçün lazım olan üç əlavə pin var. Bunlar MISO (18), MOSI (17) və SCK (19). Lazım gələrsə bunlar məmnuniyyətlə i/o pinləri kimi fəaliyyət göstərəcəkdir. Kameraya göndərdiyimiz siqnalın dəqiq bir vaxtda (bir saniyəyə yaxın dəqiqliklə) olması lazımdır, buna görə də yaxşı bir saat mənbəyi seçməyimiz vacibdir. Bütün AVR -lərdə çipin saatını ala biləcəyi daxili bir osilator var. Bunun dezavantajı, temperatur/təzyiq/rütubətlə təxminən 10% dalğalana bilməsidir. Bununla mübarizə apara biləcəyimiz şey xarici bir kvars kristalından istifadə etməkdir. Bunlar 32768kHz -dən 20MHz -ə qədər olan hər şeydə mövcuddur. 4Mhz kristal istifadə etməyi seçdim, çünki kifayət qədər sürət təmin edir, amma bəlkə də 8Mhz+ilə müqayisədə kifayət qədər mühafizəkardır. Əslində, vaxt keçdikcə prosessorun boş dayanmasına əsaslanaraq ilk versiyanı yazdım. Təəssüf ki, vaxt məhdudiyyətləri səbəbindən saatı xaricdən idarə etmək və taymerlərin istifadəsini kəsməklə bağlı bəzi problemlərlə üzləşdim. Əslində, oyanmayan nəzarətçi ilə məşğul olmaq üçün kodu yenidən yazmalıydım - bunu edə bilərdim, amma vaxt mənə qarşıdır. Beləliklə, cihaz yalnız 20mA çəkir, buna görə də ondan qurtula bilərsiniz. Həqiqətən buna hazırsınızsa, o zaman kodla skripka etməlisiniz, daha dəqiq gecikmələr üçün 4MHz kristalını istifadə edərək daxili olaraq saat çəkmək və sonra Timer 2 -ni asinxron rejimdə işlətmək kifayətdir. ADR, AVR alətlər dəstindəki İsveçrə ordu bıçağı olan rəqəmsal çeviricinin analoqu deməkdir. Necə işlədiyi kənardan nisbətən sadədir. Bir pin üzərində bir gərginlik nümunəsi götürülür (hansısa sensordan və ya digər girişdən), gərginlik 0 ilə 1024 arasında rəqəmsal bir dəyərə çevrilir. Giriş gərginliyi ADC istinad gərginliyinə bərabər olduqda 1024 dəyəri müşahidə ediləcək. İstinadımızı VCC (+5V) olaraq təyin etsək, hər bölmə 5/1024 V və ya təxminən 5 mV -dir. Beləliklə, pin üzərində 5mV artım ADC dəyərini 1 artıracaq. ADC çıxış dəyərini bir dəyişən olaraq götürə bilərik və sonra onunla skripka edə bilərik, koddakı əşyalarla müqayisə edə bilərik və s. ADC inanılmaz dərəcədə faydalı bir funksiyadır və AVR -ni bir osiloskop halına gətirmək kimi bir çox maraqlı işlər görməyə imkan verir. Nümunə götürmə tezliyi təxminən 125 kHz -dir və əsas saat tezliyinə mütənasib olaraq təyin olunmalıdır. Qeyd, sadəcə AVR yaddaşındakı ünvanlar (yerlər) toplusudur. Qeydlər bit ölçülərinə görə təsnif edilir. 0 bitdən başlayaraq 7 bitlik bir qeyddə 8 yer var. Təxminən hər şey üçün qeydlər var və bunları daha sonra daha ətraflı nəzərdən keçirəcəyik. Bəzi nümunələrə, bir pinin yüksək və ya aşağı qoyulmasını nəzarət edən və girişlər üçün müqavimət çəkənləri təyin edən PORTx qeydləri (burada x, B, C və ya D) və sancağın çıxış və ya giriş olub -olmadığını təyin edən DDRx qeydləri daxildir. Təxminən 400 səhifə ağırlığında bir ədəbiyyat behemotu; AVR məlumat cədvəli prosessorunuz üçün əvəzolunmaz bir istinaddır. Hər bir qeydin, hər bir pinin, taymerlərin necə işlədiyini, hansı qoruyucuların nəyə və daha çoxuna qurulmalı olduğunu ehtiva edir. Onlar pulsuzdur və buna gec -tez ehtiyacınız olacaq, buna görə bir nüsxəni yükləyin! Www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

Addım 4: Sancaqlar ayırın

Təqdimat pinləri
Təqdimat pinləri

Artıq ehtiyac duyduğumuz giriş və çıxışlardan bəhs etmişəm, buna görə də onları sancaqlar ilə bölüşdürməliyik! İndi, PORT D -in 8 çıxış sancağı var ki, bu da çıxış portumuz kimi çıxış edə bilər. LCD -nin işləməsi üçün 7 pin lazımdır - 4 məlumat pimi və 3 nəzarət pin. IR LED yalnız bir pin tələb edir, buna görə də 8. PORTB düymələr portumuz olacaq, 6 girişi var, ancaq 5 -ə ehtiyacımız olacaq. Bunlar rejim və istiqamət düymələri olacaq. Xüsusi olaraq ADC limanıdır. Tətik girişi üçün yalnız bir pinə ehtiyacımız var və onu PC0 -a qoymağın mənası var (bu halda Port C, Pin 0 üçün pin pinlərinin ümumi bir qısaltması). Daha sonra vəziyyət LEDləri üçün bir neçə sancağımız var (biri ADC dəyəri bəzi şərtlərdən yuxarı olduqda yanar, digəri bəzi şərtlərin altında olduqda yanar). Bundan sonra aydın olacaq səbəblərə görə ok/vurma düymələrimizi də bura yerləşdirəcəyik. Bütün bunlardan sonra limanların əksəriyyətini istifadə etdik, amma layihəni genişləndirmək istəyirsinizsə hələ də bir neçə qalıb. - Bəlkə birdən çox tetikleyici?

Addım 5: Kamera ilə əlaqə

Kamera ilə ünsiyyət
Kamera ilə ünsiyyət
Kamera ilə ünsiyyət
Kamera ilə ünsiyyət

Rəqəmsal Günlər Foto Müsabiqəsində birinci mükafat

Tövsiyə: