İçindekiler:

Kendi (ucuz!) Çok Fonksiyonlu Kablosuz Kamera Kontrol Cihazınızı Yapın.: 22 Adım (Resimlerle)
Kendi (ucuz!) Çok Fonksiyonlu Kablosuz Kamera Kontrol Cihazınızı Yapın.: 22 Adım (Resimlerle)

Video: Kendi (ucuz!) Çok Fonksiyonlu Kablosuz Kamera Kontrol Cihazınızı Yapın.: 22 Adım (Resimlerle)

Video: Kendi (ucuz!) Çok Fonksiyonlu Kablosuz Kamera Kontrol Cihazınızı Yapın.: 22 Adım (Resimlerle)
Video: Bilgisayar çöp oldu #vlog #keşfet #birgünüm #ironia #bilgisayar #arkadaş #tavsiye 2024, Temmuz
Anonim
Kendi (ucuz!) Çok İşlevli Kablosuz Kamera Denetleyicinizi Yapın
Kendi (ucuz!) Çok İşlevli Kablosuz Kamera Denetleyicinizi Yapın
Kendi (ucuz!) Çok İşlevli Kablosuz Kamera Denetleyicinizi Yapın
Kendi (ucuz!) Çok İşlevli Kablosuz Kamera Denetleyicinizi Yapın
Kendi (ucuz!) Çok İşlevli Kablosuz Kamera Denetleyicinizi Yapın
Kendi (ucuz!) Çok İşlevli Kablosuz Kamera Denetleyicinizi Yapın

Giriş Kendi kamera kontrolörünüzü yapmayı hiç düşündünüz mü?ÖNEMLİ NOT: MAX619'un kapasitörleri 470n veya 0.47u'dur. Şematik doğru, ancak bileşen listesi yanlış - güncellendi. Bu, Dijital Günler yarışmasına bir giriştir, bu yüzden faydalı bulursanız, lütfen olumlu bir şekilde oy verin/oy verin/yorum yapın! Gerçekten seviyorsanız ve tökezliyorsanız, "beğendim!":) Güncelleme: Hackaday'de öne çıktı! hackaday.com/2009/10/13/a- Different-breed-of-camera-controllers/ Güncelleme: lazer tetiğin yeni fotoğrafları iş başında! Güncelleme: Birincilik Ödülü =D, oylama ve/veya oylama için teşekkürler! Bu talimat esas olarak kameralarından biraz daha fazla mesafe almak isteyen SLR kullanıcılarının yararınadır, ancak IR arabirimleriyle herhangi bir nokta ve çekim varsa, bunu ilginç bulabilirsiniz. Elbette bu, (biraz değişiklikle) mantıksal çıkışları kamera tetikleme terminallerine bağlayabileceğiniz kamera hilelerinde de işe yarayacaktır. Bu, tam kapsamlı bir öğretici olarak başladı, ancak daha sonra karşılaştığım bazı beklenmedik kısıtlamalar nedeniyle, çeşitli şeylerin nasıl başarılacağı konusunda daha çok bir rehber olabilir - çoğu zaman, hangi şeyleri nasıl yapabileceğiniz konusunda size bir seçim bırakacağım. Bence bir şeyler yapmanın körü körüne "bunu yapmalısın" demekten daha iyi bir yolu. Bunu kamera kontrolör tasarımında bir ders olarak düşünün. Her zaman kopyalayabilmeniz için şemaları ve tam kodu sağladım. Çoğu insan için tasarımı bir stripboard'a aktarmak ve LCD'yi eklemek basit bir durum olacaktır. İşlem çok benzer olduğu ve tasarımı kalıcı hale getirmeden önce hataları düzeltmeye izin verdiği için nasıl devre kartı yapılacağını inceledim! Özellikler: Tek çekim modu Aralık (zaman atlamalı) modu Değişken koşullarla tetiklenmiş çekim (harici sensörden tetikleme) modu Dahil edilen sensör tasarımları - ışık, ses (çok daha fazlası mümkün!) Toplam maliyet - 25 sterlinin altında (araçlar hariç) Ayarların kolay değiştirilmesi için LCD ekran Nikon/Canon ile uyumlu (kodlu), Olympus/Pentax için potansiyel destek (denenmemiş) Firmware yok değişiklik gerekli IR kullanır, bu nedenle hem kablosuz hem de kameranıza zarar vermez, bunun için dışarıda soğukta oturduktan sonra uzaktan kumandamı saatlerce tıklattıktan sonra düşündüm. Yaklaşık 1000 çekim için 8 saniyelik bir aralık yapıyordum. Düşündüm ki, bu sadece bir IR LED, değil mi? Neden onu çoğaltamıyorum ve yerleşik bir gecikmeyle kendi uzaktan kumandamı yapamıyorum? Daha sonra (biraz utanarak, çünkü büyük bir beyin dalgasına sahip olduğumu düşündüm) bunun yapıldığını ve konuyla ilgili birkaç talimat bile olduğunu öğrendim. Uygulamamın çoğu intervalometre ve diy uzaktan kumandadan farklı olduğu nokta, çok fazla kişiselleştirme ve modülerliğe izin vermesi, hem Nikon/Canon (ve muhtemelen daha sonra diğerleriyle) uyumlu olması hem de belirli bir tetikleyicide fotoğraf çekme özelliğini birleştirmesidir. Fikir basit. Oldukça hızlı bir şeyin fotoğrafını çekmek istiyorsunuz (şu anda deklanşörünüzdeki gecikmeyle sınırlı, benim için 6 ms). Bunu yapmak için çeşitli yöntemler vardır: 1. Deneme yanılma ile fotoğrafı doğru anda çekmeye çalışırsınız 2. İyileştirilmiş deneme yanılma yoluyla odayı karartırsınız, kameranızı ampule (açık deklanşör) açar ve bir flaş patlatırsınız. 3. Fotoğrafı emrinizde çekmek için bir çeşit ses/ışık sensörüne sahip özel bir tetik denetleyicisi satın alın 4. Kendiniz bir tane oluşturun! Tamam, 1 ve 2 ortalığı karıştırmak için uygundur ve çok iyi fotoğraflar verebilir. Ama size göstereceğim şey, size tekrar tekrar tutarlı sonuçlar verecek bir devre inşa etmenin mümkün olduğudur. En önemlisi, bu dar zamanlarda, maliyet alternatif modellere göre daha düşüktür (bazı insanlar bu tür şeyleri yapan kitler üretmiştir, ancak bir servete mal olurlar bkz. linkler). Tasarımın çok yönlülüğü şudur: Sensörünüz 0 ile 5V arasında bir çıkış voltajı üretiyorsa, bunu kameranızı tetiklemek için kullanabilirsiniz! Görünüşte bu sıkıcı bir ifadedir, ancak bir kez imalarını anlamaya başladığınızda çok güçlü hale gelir. Basitçe bir voltaj seviyesini izleyerek, tetikleyiciniz ışık bazlı (LDR), ses bazlı (mikrofon veya ultrason), sıcaklık bazlı (termistör) veya hatta basit bir potansiyometre olabilir. Aslında, hemen hemen her şey. Hatta devreyi başka bir kontrolöre bağlayabilir ve size mantıklı bir çıkış vermesi koşuluyla, ondan tetikleyebilirsiniz. Şu anda tasarımın tek büyük sınırlaması, yalnızca IR arayüzleri ile çalışmasıdır, yazılımı ve donanımı mini-USB veya herhangi bir arayüz üzerinden çıktı verecek şekilde değiştirmek oldukça basit olacaktır. Not: Kaynak Kodu: 13. adımda bazı uygulamalar sağladım. Şu an itibariyle denetleyicimde çalıştırdığım kod, ana c dosyası ve bağımlılıklarıyla birlikte bir hex dosyasında orada. Derleme konusunda emin değilseniz, kodumu çalıştırabilirsiniz. Ayrıca çeşitli adımlarda kullanabileceğiniz bazı örnek kodlar da ekledim (bunlar açıkçası remote_test, intervalometer test ve adc test gibi adlandırılıyor. Bir adımdaki koda atıfta bulunursam, ihtimaller oradadır. EDIT: Hakkında bir güncelleme patlayan balonlar - patlayan balonların fotoğraflarını kolayca çekebileceğinizi söylediğimde biraz miyopmuşum gibi görünüyor. Ortalama bir balonun derisi o kadar hızlı hareket eder ki kameranız ateşlendiğinde tamamen patlamış olur. çoğu kamera ile ilgili bir sorundur, kontrolörde DEĞİL (bu ADC'yi yaklaşık 120kHz'lik bir hızda algılar). Bunun üstesinden gelmenin yolu, fazladan bir kablo çıkışı ve başka bir küçük devre eklerseniz yapılabilen tetiklenmiş bir flaş kullanmaktır. dedi, teoride onu patlatmak ve gecikme ile oynamak için başka bir şey kullanabilirsiniz (hatta gecikme kodunu mikrosaniye içerecek şekilde değiştirin). Sadece tabancayı hareket ettirmek, birkaç mikrosaniyelik ilkel bir gecikme sağlayacaktır. s. Yine, bunun için özür dilerim, biraz balon yakalayabilirsem bu gece hakkında çalacağım, ama hala bir ses tetikleyicisinin havai fişek gibi birçok kullanımı var! Ancak işe yaradığını göstermek için aşağıya hızlı ve kirli bir zaman aralığı koydum:) Okumayı, oylamayı ve/veya oylamayı unutmayın! Şerefe, Josh Sorumluluk Reddi Bir şeylerin korkunç bir şekilde ters gitmesi veya bir şekilde kameranızı kapatmanız/kedinizi dremelleştirmeniz durumunda hiçbir şeyden sorumlu değilim. Bu talimata dayalı bir proje başlatarak, bunu kabul ediyor ve riski size ait olmak üzere devam ediyorsunuz. Bunlardan birini yaparsanız veya size yardımcı olması için talimatlarımı kullanırsanız - lütfen buraya ekleyebilmem için bana bir bağlantı/fotoğraf gönderin! Yanıt şimdiye kadar çok büyük oldu (en azından benim standartlarıma göre), bu yüzden insanların bunu nasıl yorumladığını görmek harika olurdu. Yazarken revizyon 2 üzerinde çalışıyorum;)

Adım 1: Bazı İlk Düşünceler…

Peki, bu şeyi nasıl inşa edeceğiz? MikrodenetleyiciBu projenin kalbi ve ruhu bir AVR ATMega8'dir. Esasen Arduino'nun kullandığı ATMega168 yongasının biraz kırpılmış bir versiyonudur. C veya Assembly'de programlanabilir ve bizim avantajımıza kullanabileceğimiz çok çeşitli gerçekten kullanışlı özelliklere sahiptir." Çoğunluğu giriş/çıkış (i/o) olan 28 pin" Yerleşik analogdan dijitale dönüştürücü" Düşük güç tüketimi " 3 yerleşik zamanlayıcı " Dahili veya harici saat kaynağı " Çok sayıda kod kitaplığı ve çevrimiçi örnek Çok sayıda pin olması iyidir. Bir LCD ekranla arayüz oluşturabiliriz, 6 düğme girişine sahip olabiliriz ve hala bir IR LED'i ve bazı durum LED'leri ile çekim yapmak için yeterli kalıntıya sahibiz. başladı (bunu kısaca gözden geçireceğim, ancak daha iyi özel öğreticiler var) ve üzerinde düşünülecek yığınla kod. Referans olarak bu projeyi AVR-LibC kütüphanesini kullanarak C'de kodlayacağım. Bunu yapmak için PIC ile kolayca gidebilirdim, ancak AVR iyi destekleniyor ve uzaktan kumandalar için bulduğum tüm örnekler AVR tabanlıydı! grafik ve alfanümerik olmak üzere iki ana görüntüleme türüdür. Grafik ekranların bir çözünürlüğü vardır ve pikselleri istediğiniz yere koyabilirsiniz. Dezavantajı, kodlamanın daha zor olmasıdır (kütüphaneler olmasına rağmen). Alfanümerik ekranlar yalnızca bir veya daha fazla karakter satırıdır, LCD'de yerleşik bir temel karakter deposu vardır (yani alfabe, bazı sayılar ve semboller) ve dizeleri vb. çıkarmak nispeten kolaydır. Dezavantajı ise esnek olmamaları ve grafik göstermenin neredeyse imkansız olması, ancak amacımıza uygun olması. Ayrıca daha ucuzlar! Alfanümerikler satır ve sütun sayılarına göre sınıflandırılır. 2x16, her biri 5x8 matris olan 16 karakterlik iki satırla oldukça yaygındır. 2x20 s de alabilirsiniz ama gerek görmüyorum. Hangisiyle rahat hissediyorsan onu al. Kırmızı arkadan aydınlatmalı bir LCD kullanmayı seçtim (bunu astrofotografi için kullanmak istiyorum ve kırmızı ışık gece görüşü için daha iyi). Arka ışık olmadan gidebilirsiniz - bu tamamen sizin seçiminiz. Arkadan aydınlatmalı olmayan bir rota seçerseniz, güç ve paradan tasarruf edersiniz, ancak karanlıkta bir el fenerine ihtiyacınız olabilir. LCD ararken, HD44780 tarafından kontrol edildiğinden emin olmalısınız. Hitachi tarafından geliştirilen endüstri standardı bir protokoldür ve veri çıkışı için kullanabileceğimiz birçok iyi kitaplık vardır. Satın aldığım model eBay'den bir JHD162A idi. InputInput butonlarla yapılacak (basit!). 6 - mod seçimi, tamam/çek ve 4 yön seçtim. Ayrıca, bir çökme durumunda mikroyu sıfırlamak için başka bir küçük düğme almaya değer. Tetik girişi ile ilgili olarak, bazı temel fikirler ışığa bağlı bir direnç veya elektret mikrofondur. Bütçenize bağlı olarak yaratıcı veya cimri olabileceğiniz yer burasıdır. Ultrason sensörleri biraz daha pahalıya mal olacak ve ekstra programlama gerektirecek ama onlarla gerçekten güzel şeyler yapabilirsiniz. Çoğu insan bir mikrofondan (muhtemelen en kullanışlı genel sensör) memnun olacaktır ve elektretler çok ucuzdur. Bunun da amplifiye edilmesi gerekeceğini unutmayın (ancak bunu daha sonra ele alacağım). Çıktı - Durumİhtiyacımız olan tek gerçek çıktı durum (ekranın yanı sıra), bu nedenle burada birkaç LED iyi çalışacaktır. Çıktı - ÇekimAlmak için resimler, kamera ile arayüz oluşturmamız gerekiyor ve bunun için kızılötesi radyasyon üretebilen bir ışık kaynağına ihtiyacımız var. Neyse ki bunu yapan çok sayıda LED var ve oldukça yüksek güçlü bir tane almaya çalışmalısınız. Seçtiğim ünite maksimum 100mA akım değerine sahiptir (çoğu LED 30mA civarındadır). Dalga boyu çıkışını da not etmeye özen göstermelisiniz. Kızılötesi ışık, EM spektrumunun daha uzun dalga boyu kısmındadır ve 850-950 nm civarında bir değer arıyor olmalısınız. Çoğu IR LED'i 950 ucuna yönelir ve açıldığında biraz kırmızı ışık görebilirsiniz, bu bir sorun değil, ancak spektrum boşa gidiyor, bu yüzden mümkünse 850'ye yaklaşmaya çalışın. GüçHepsine nasıl güç sağlayacağız? Bugün nasılsın? Peki, piller taşınabilir olacak! Daha sonra 5V'a yükseltilen 2 adet AA pil kullanmayı seçtim. Bunun arkasındaki mantığı önümüzdeki birkaç bölümde ele alacağım. 'Kasa ve İnşaat' Bu kısmı nasıl yapacağınız tamamen size kalmış. Ucuz ve esnek olduğu ve özel bir PCB tasarlamaktan tasarruf sağladığı için prototiplemeden sonra devre için stripboard kullanmaya karar verdim. Şemaları sağladım, böylece kendi PCB düzeninizi yapmakta özgürsünüz - yine de yaparsanız, bir kopyasına sahip olmaktan minnettar olurum! Yine durum tamamen sizin seçiminiz, ekrana sığabilmesi gerekiyor, düğmeler (mümkünse oldukça sezgisel bir düzende) ve piller. Devre kartları giderken, bu o kadar karmaşık değil, bağlantıların çoğu sadece düğmeler/LCD gibi şeylerle ilgili.

Adım 2: Güç Yönetimi

Güç yönetimi
Güç yönetimi

Güç YönetimiBöyle bir proje için taşınabilirliğin kilit bir unsur olması gerektiği açıktır. Piller bu nedenle mantıklı bir seçimdir! Şimdi, taşınabilir cihazlar için, şarj edilebilir veya kolayca bulunabilen bir pil kaynağı seçmeniz oldukça önemlidir. İki ana seçenek, 9V PP3 pil veya AA pillerdir. Eminim bazı insanlar 9V pilin en iyi seçenek olduğunu varsayacaktır çünkü hey, 9V 3'ten daha iyidir değil mi? Bu durumda değil. 9V piller çok kullanışlı olmakla birlikte, voltajlarını pil ömrü pahasına üretirler. mAh (miliamper saat) cinsinden ölçülen bu derecelendirme, teorik olarak bir pilin 1mA'da saat cinsinden ne kadar süre çalışacağını söyler (yine de bir tutam tuzla alın, bunlar genellikle ideal, düşük yük koşulları altındadır). Derecelendirme ne kadar yüksek olursa, pil o kadar uzun süre dayanır. 9V piller 1000 mAh'ye kadar ve yaklaşık olarak derecelendirilmiştir. Alkalin AA'lar ise 2900mAh'de neredeyse üç kat daha fazla. NiMH şarj edilebilir cihazlar buna ulaşabilir, ancak 2500mAh makul bir miktardır (şarj edilebilir pillerin 1.5 değil 1.2V'da çalıştığını unutmayın!). LCD ekranın 5V girişe (%10) ihtiyacı vardır ve AVR'nin (mikrodenetleyici) aşağı yukarı aynı (düşük frekanslı saat hızları için 2,7'ye kadar düşebilir). Ayrıca oldukça kararlı bir voltaja ihtiyacımız var, eğer dalgalanırsa mikrodenetleyicide sorunlara neden olabilir. Bunu yapmak için bir voltaj regülatörü kullanacağız, şimdi fiyat ve verimlilik arasında bir seçim yapmanız gerekiyor. LM7805 (78 serisi, +5 volt çıkış) gibi basit bir 3 pinli voltaj regülatörü veya küçük bir entegre devre kullanma seçeneğiniz var. Basit bir regülatör kullanma Bu seçeneği tercih ederseniz, akılda birkaç nokta. İlk olarak, üç pinli regülatör neredeyse her zaman çıkışlarından daha yüksek bir girişe ihtiyaç duyar. Daha sonra voltajı istenen değere düşürürler. Dezavantajı, çok verimli olmalarıdır (%50-60 iyi gidiyor). İyi tarafı, ucuz olmaları ve 9V pil ile çalışacak olmaları, İngiltere'de 20 peni için temel bir model alabilirsiniz. Ayrıca regülatörlerin bir çıkış voltajına sahip olduğunu da unutmayın - giriş ve çıkış arasındaki minimum boşluk. Yaklaşık 50mV'de (diğer tasarımlarla 1-2V ile karşılaştırıldığında) çıkışları olan özel LDO (Düşük DropOut) regülatörleri satın alabilirsiniz. Diğer bir deyişle, +5V çıkışlı LDO'lara dikkat edin. Entegre devre kullanmaİdeal yol bir anahtarlama regülatörüdür. Bunlar, amacımız için normalde voltaj alan ve bize yüksek verimlilikte düzenlenmiş bir çıktı veren 8 pinli paketler olacaktır - bazı durumlarda neredeyse %90. Ne koymak istediğinize bağlı olarak yükseltici veya düşürücü dönüştürücüler (sırasıyla boost/buck) alabilirsiniz, alternatif olarak istediğiniz çıkışın üstünde veya altında alacak regülatörler satın alabilirsiniz. Bu proje için kullandığım çip bir MAX619+. 2 AA alan (giriş aralığı 2V-3.3V'dir) ve sabit bir 5V çıkış veren 5V kademeli bir regülatördür. Çalıştırmak için sadece dört kapasitöre ihtiyaç duyar ve çok yer tasarrufu sağlar. Maliyet - 3,00 kapaklar dahil. Muhtemelen pillerinizden biraz daha fazla yararlanmak için harcanan paraya değer. Tek büyük dezavantajı, kısa devre korumalı olmamasıdır, bu nedenle bir akım dalgalanması varsa, uyarılmalıdır! Bununla birlikte, bir eklenti devresi ile düzeltmek oldukça önemsizdir: Bir başka kullanışlı çip tasarımı - neredeyse düzgün bir çözüm olmasa da LT1307'dir. Yine bir 5V regülatör, ancak çeşitli girişler alabilir ve düşük pil algılama gibi faydalı şeylere sahiptir. İndüktörler, büyük kapasitörler ve dirençler ile yaklaşık 5'te biraz daha pahalıya mal olur. Voltaj Raylarıİki ana voltaj hattı (artı ortak bir toprak) kullanacağız. Birincisi pilden gelen 3V olacak, bu LED'lere ve diğer nispeten yüksek güçlü bileşenlere güç sağlamak için kullanılacak. MAX619'um yalnızca 60mA'ya kadar derecelendirilmiştir (mutlak maksimum 120mA olsa da), bu nedenle herhangi bir LED'i kontrol etmek için mikro denetleyiciyi bir MOSFET'e bağlamak daha kolaydır. MOSFET neredeyse hiç akım çekmez ve kapı girişi yaklaşık 3V altında olduğunda devrede bir kesinti görevi görür. Mikrodenetleyici pim üzerinde mantıksal 1 gönderdiğinde, voltaj 5V olur ve FET açılır, ardından sadece kısa devre (yani bir tel parçası) gibi davranır. giriş sensörleri. Güç TüketimiÇeşitli veri sayfalarına bakarsak, AVR'nin maksimum yükte 15-20mA'dan fazla almadığını not ederiz. LCD'nin çalışması yalnızca 1mA alır (en azından test ettiğimde, 2 için bütçe). Arka ışık açıkken, karar vermek gerçekten size kalmış. Doğrudan 5V rayına bağlamak (denedim) iyi, ancak yapmadan önce yerleşik bir direnci olduğundan emin olun (PCB üzerindeki izleri izleyin). Bu şekilde 30mA çekti - korkunç! 3.3k direnç ile hala görüntülenebilir (astro fotoğrafçılığı için mükemmel) ve sadece 1mA çekiyor. 1k veya başka bir şekilde kullanarak hala iyi bir parlaklık elde edebilirsiniz. Arka ışık açıkken 2mA'nın hemen altında çizim yapmakta sorun yok! İsterseniz, 10k potansiyometre kullanarak bir parlaklık düğmesi eklemek önemsizdir. IR LED maksimum 100mA alabilir, ancak benimkilerde 60mA ile iyi sonuçlar aldım (deney!). Daha sonra %50 görev döngüsünde (LED modüle edildiğinde) etkin bir şekilde çalıştığınız için bu akımı yarıya indirebilirsiniz. Her neyse, sadece bir saniyenin küçük bir kısmı için açık, bu yüzden endişelenmemize gerek yok. Oynamanız gereken diğer LED'ler, size iyi bir parlaklık vermek için sadece 10mA akımın yeterli olduğunu görebilirsiniz - kesinlikle bakın düşük güçlü LED'ler için (IR hariç), bir meşale tasarlamıyorsunuz! Devreme bir güç göstergesi eklememeyi seçtim, çünkü çok fazla kullanım için çok fazla akım çekiyor. Açık olup olmadığını kontrol etmek için açma/kapama anahtarını kullanın! Toplamda, herhangi bir anda 30mA'dan fazla çalıştırmamalısınız ve teorik olarak yaklaşık 2500 mAh (değişime izin verir) mAh'lik bir güç kaynağı ile size 80 saatten fazla zaman kazandırmalıdır. her şey açıkken düz. İşlemci çoğu zaman boşta kaldığında, bu en az iki/üç katına çıkar, bu nedenle pillerinizi çok sık değiştirmeniz gerekmemelidir. Sonuçİşte başlıyoruz, bu kolaydı, değil mi! Verimlilik pahasına 9V pil ve LDO regülatörü ile ucuz ve neşeli olabilirsiniz ya da biraz daha fazla ödeyip bunu yapmak için özel bir IC kullanabilirsiniz. Bütçem IC ile bile hala 20'nin altındaydı, bu yüzden gerekirse daha da düşürebilirsiniz.

Adım 3: ATmega8'e Daha Yakından Bir Bakış

ATmega8'e Yakından Bir Bakış
ATmega8'e Yakından Bir Bakış

PinsImage 1, ATMega8'in pin çıkış şemasıdır (168/48/88 ile tamamen aynı, tek fark yerleşik bellek miktarı ve kesme seçenekleridir). Pin 1 - Sıfırlama, VCC voltajında tutulmalıdır (veya en azından mantıksal 1). Topraklanırsa, cihaz yazılımdan sıfırlanırPin 2-6 - Port D, genel giriş/çıkışPin 7 - VCC, besleme voltajı (bizim için +5V)Pin 8 - GroundPin 9, 10 - XTAL, harici saat girişleri (Port B'nin bir parçası))Pin 11 - 13 Port D, genel giriş/çıkışPin 14 - 19 Port B, genel giriş/çıkışPin 20 - AVCC, analog besleme voltajı (VCC ile aynı)Pin 21 - AREF, analog voltaj referansıPin 22 - GroundPin 23-28 Port C, genel giriş/çıkışKullanılabilir i/o bağlantı noktaları: D = 8, C = 6, B = 6A toplam 20 kullanılabilir bağlantı noktası harika, basitlik için çıkışlarınızı ya bağlantı noktalarına (örneğin, çıkış bağlantı noktası olarak D) ya da tahtadaki gruplar - kabloları o köşede düzenli tutmak için LCD'nin Port C'den çalışmasını isteyebilirsiniz. Programlama için gerekli olan üç ekstra pin vardır. Bunlar MISO (18), MOSI (17) ve SCK(19). Yine de bunlar gerekirse G/Ç pinleri olarak işlev görecektir. SaatlemeKameraya gönderdiğimiz sinyalin tam olarak zamanlanması (yaklaşık bir mikrosaniye kadar doğru) olması gerekir, bu nedenle iyi bir saat kaynağı seçmemiz önemlidir. Tüm AVR'ler, çipin saatini alabileceği dahili bir osilatöre sahiptir. Bunun dezavantajı, sıcaklık/basınç/nem ile %10 civarında dalgalanabilmeleridir. Bununla mücadele etmek için yapabileceğimiz şey, harici bir kuvars kristali kullanmaktır. Bunlar 32768kHz'den (izle) 20MHz'e kadar her şeyde mevcuttur. İyi bir hız sağladığı için 4Mhz kristal kullanmayı seçtim, ancak belki de 8Mhz+ ile karşılaştırıldığında oldukça güç tasarrufu sağlıyor. Yerleşik Güç YönetimiKodumda gerçekten uyku rutinlerini kullanmak istedim. Aslında, zaman aşımına uğrarken işlemciyi boşta çalıştırmaya büyük ölçüde güvenen ilk sürümü yazdım. Ne yazık ki, zaman kısıtlamaları nedeniyle, saati harici olarak çalıştırmak ve zamanlayıcıları kullanmayı kesmekle ilgili bazı sorunlarla karşılaştım. Özünde, denetleyiciyle başa çıkmak için kodu yeniden yazmam gerekecekti - sadece uyanmadım - ki bunu yapabilirdim, ama zaman bana karşı. Bu nedenle, cihaz yalnızca 20mA ish çeker, böylece ondan kurtulabilirsiniz. Gerçekten buna hazırsanız, o zaman elbette kodla uğraşın, yapmanız gereken tek şey dahili olarak saat yapmak ve ardından daha doğru gecikmeler için 4MHz kristali kullanarak Zamanlayıcı 2'yi eşzamansız modda çalıştırmaktır. Yapması basit ama zaman alıcıdır. ADCAVR araç setindeki İsviçre çakısı olan ADC, Analogdan Dijitale Dönüştürücü anlamına gelir. Nasıl çalıştığı dışarıdan nispeten basittir. Bir pim üzerinde bir voltaj örneklenir (bazı sensörlerden veya başka bir girişten), voltaj 0 ile 1024 arasında bir dijital değere dönüştürülür. Giriş voltajı ADC referans voltajına eşit olduğunda 1024 değeri gözlenir. Referansımızı VCC (+5V) olarak ayarlarsak, her bölüm 5/1024 V veya 5mV civarındadır. Böylece pin üzerindeki 5mV'lik bir artış ADC değerini 1 arttıracaktır. ADC çıkış değerini bir değişken olarak alıp onunla oynayabilir, koddaki şeylerle karşılaştırabiliriz vs. ADC, inanılmaz derecede kullanışlı bir işlevdir ve AVR'nizi bir osiloskopa dönüştürmek gibi birçok harika şey yapmanıza olanak tanır. Örnekleme frekansı 125 kHz civarındadır ve ana saat frekansıyla orantılı olarak ayarlanmalıdır. Kayıtlar Kayıtları daha önce duymuş olabilirsiniz, ama korkmayın! Bir kayıt, sadece AVR belleğindeki adreslerin (konumların) bir koleksiyonudur. Kayıtlar bit boyutlarına göre sınıflandırılır. 7 bitlik bir yazmaç, 0'dan başladığımız için 8 konuma sahiptir. Hemen hemen her şey için kayıtlar vardır ve bunlara daha sonra daha ayrıntılı olarak bakacağız. Bazı örnekler, bir pimin yüksek veya düşük olarak ayarlanıp ayarlanmadığını kontrol eden ve girişler için çekme dirençlerini ayarlayan PORTx yazmaçlarını (burada x B, C veya D'dir), pimin çıktı mı yoksa girdi mi olduğunu ayarlayan DDRx yazmaçlarını vb. içerir. Veri SayfasıYaklaşık 400 sayfa ağırlığında bir edebiyat devi; AVR veri sayfaları, işlemciniz için paha biçilmez bir referanstır. Her kayıt, her pin, zamanlayıcıların nasıl çalıştığı, hangi sigortaların neye ayarlanması gerektiği ve çok daha fazlasının ayrıntılarını içerirler. Ücretsizdirler ve er ya da geç buna ihtiyacınız olacak, bu nedenle bir kopyasını indirin!www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

Adım 4: Pinleri Tahsis Etme

Pin Ayırma
Pin Ayırma

İhtiyacımız olan giriş ve çıkışlardan daha önce bahsetmiştim, bu yüzden onlara pin tahsis etmeliyiz! Şimdi, PORT D'nin 8 pini var, bu da bizim çıkış portumuz olarak hareket edebileceği için uygun. LCD'nin çalışması için 7 pin gerekir - 4 veri pini ve 3 kontrol pini. IR LED'i sadece bir pin gerektirir, bu yüzden 8. PORTB'mizi oluşturan buton portumuz olacak, 6 girişi var, ancak sadece 5'e ihtiyacımız olacak. Bunlar mod ve yön butonları olacak. PORTC özel, bu ADC bağlantı noktasıdır. Tetik girişi için yalnızca bir pime ihtiyacımız var ve bunu PC0'a koymak mantıklıdır (bu durumda bağlantı noktası pimleri için ortak bir kısaltmadır, Bağlantı Noktası C, Pim 0). Daha sonra durum LED'leri için birkaç pinimiz var (biri ADC değeri bir koşulun üzerindeyken yanar, diğeri bir koşulun altındayken yanar). Daha sonra netleşecek nedenlerden dolayı buraya ok/ateş buton girişimizi de koyacağız. Bütün bunlardan sonra, portların çoğunu kullandık ama projeyi genişletmek isterseniz hala birkaç tane kaldı. - belki birden fazla tetikleyici?

Adım 5: Kamerayla İletişim Kurma

Kamerayla İletişim Kurmak
Kamerayla İletişim Kurmak
Kamerayla İletişim Kurmak
Kamerayla İletişim Kurmak

Dijital Günler Fotoğraf Yarışmasında Birincilik Ödülü

Önerilen: