Sadržaj:

Izgradite sami (jeftino!) Višenamjenski bežični kontroler kamere .: 22 koraka (sa slikama)
Izgradite sami (jeftino!) Višenamjenski bežični kontroler kamere .: 22 koraka (sa slikama)

Video: Izgradite sami (jeftino!) Višenamjenski bežični kontroler kamere .: 22 koraka (sa slikama)

Video: Izgradite sami (jeftino!) Višenamjenski bežični kontroler kamere .: 22 koraka (sa slikama)
Video: Обычный деревообрабатывающий инструмент испортил отделку. Не позволяйте этому случиться с вами! 2024, Juli
Anonim
Izgradite sami (jeftino!) Višenamjenski bežični kontroler kamere
Izgradite sami (jeftino!) Višenamjenski bežični kontroler kamere
Izgradite sami (jeftino!) Višenamjenski bežični kontroler kamere
Izgradite sami (jeftino!) Višenamjenski bežični kontroler kamere
Izgradite sami (jeftino!) Višenamjenski bežični kontroler kamere
Izgradite sami (jeftino!) Višenamjenski bežični kontroler kamere

Uvod Jeste li ikada razmišljali o izgradnji vlastitog kontrolera kamere? VAŽNA NAPOMENA: Kondenzatori za MAX619 su 470n ili 0,47u. Shema je ispravna, ali je popis komponenti pogrešan - ažuriran. Ovo je prijava za takmičenje u Digitalnim danima pa ako vam se učini korisnim, molimo vas ocijenite/glasajte/komentirajte pozitivno! Ako vam se zaista sviđa i posrćete, pritisnite "sviđa mi se!":) Ažuriranje: predstavljeno na hackaday! hackaday.com/2009/10/13/a-different-breed-of-camera-controllers/ Ažuriranje: nove fotografije laserskog okidača u akciji! Ažuriranje: Prva nagrada = D, hvala na glasanju i/ili ocjeni! Ovo uputstvo je uglavnom za dobrobit SLR korisnika koji žele postići malo više kilometraže od svojih kamera, međutim ako postoji bilo kakva točka i snimci s IC sučeljima, ovo bi vam moglo biti zanimljivo. Svakako će ovo funkcionirati (s malo izmjena) sa hakovima za kamere gdje možete povezati logičke izlaze na terminale okidača kamere. Ovo je počelo kao cjelovit vodič, ali zbog nekih neočekivanih ograničenja s kojima sam se kasnije susreo, to bi mogao biti više vodič o tome kako postići različite stvari - često ću vam ostaviti izbor kako biste mogli raditi stvari koje Mislim da je to bolji način da radite stvari nego samo slijepo reći "morate to učiniti". Zamislite ovo kao lekciju o dizajnu kontrolera kamere. Dao sam sheme i cijeli kôd tako da ih uvijek možete jednostavno kopirati. To će biti jednostavan slučaj prenošenja dizajna na stripboard i dodavanje LCD -a za većinu ljudi. Prošao sam kako to zamisliti jer je proces vrlo sličan i omogućava ispravljanje grešaka prije nego što dizajn učinite trajnim! Značajke: Način pojedinačnog snimanja Intervalni (vremenski odmak) način Pokrenuti snimak (okidač s vanjskog senzora) Način rada s promjenjivim uvjetima Uključeni dizajni senzora - svjetlo, zvuk (mnogo više mogućih!) Ukupni troškovi - ispod 25 GBP (isključujući alate) LCD ekran za jednostavnu promjenu postavki Kompatibilan sa Nikon/Canon (kodiran), potencijalna podrška (neprovjereno) za Olympus/Pentax Bez firmvera potrebna je izmjena Koristi IC, pa je i bežičan i ne oštećuje vašu kameru. Ideju za to sam imao nakon što sam satima sjedio vani na hladnoći i kliktao na daljinski upravljač. Radio sam interval od 8 sekundi za oko 1000 snimaka. Mislio sam, hej, to je samo IC LED zar ne? Zašto ga ne mogu replicirati i napraviti vlastiti daljinski upravljač s ugrađenim kašnjenjem? Tada sam saznao (pomalo neugodno, jer sam mislio da sam imao veliki moždani val) da je to učinjeno i da postoji čak nekoliko instrukcija na tu temu. Ono što se moja implementacija razlikuje od većine intervalometara i daljinskih upravljača je što dopušta mnogo prilagođavanja i modularnosti, kompatibilna je sa Nikon -om/Canonom (a vjerovatno i kasnije) i kombinira mogućnost snimanja slike na određenom okidaču. Ideja je jednostavna. Želite snimiti nešto prilično brzo (trenutno ograničeno zaostatkom na kapci, za mene 6 ms). Postoje različiti načini za to: 1. Pokušaj i greška pokušavate snimiti sliku u pravom trenutku 2. Poboljšani pokušaj i greška zamračujete sobu, stavljate kameru na žarulju (otvoreni zatvarač) i pali blic u pravo vrijeme 3. Kupite namjenski kontroler okidača koji ima neku vrstu audio/svjetlosnog senzora za snimanje slike po vašoj naredbi 4. Izgradite ga sami! U redu, 1 i 2 su dobre za petljanje i mogu dati vrlo dobre slike. Ali ono što ću vam pokazati je da je moguće izgraditi krug koji će vam uvijek iznova davati dosljedne rezultate. Ono što je najvažnije, u ovim teškim vremenima, cijena je niža od alternativnih modela (neki ljudi su proizveli komplete za takve stvari, ali koštaju cijelo bogatstvo, pogledajte linkove). Svestranost dizajna je sljedeća: Ako vaš senzor generira izlazni napon između 0 i 5 V, možete ga koristiti za aktiviranje kamere! Na prvi pogled ovo je dosadna izjava, ali kad jednom shvatite implikacije, ona postaje vrlo moćna. Jednostavnim praćenjem naponskog nivoa, vaš okidač bi mogao biti baziran na svjetlu (LDR), zvuku (mikrofon ili ultrazvuk), temeljen na temperaturi (termistor) ili čak običnom potenciometru. Zapravo, gotovo sve. Možete čak i spojiti krug s drugim kontrolerom i pod uvjetom da vam može dati logički izlaz, tako da možete pokrenuti s njega. Jedino trenutno ograničenje dizajna je to što radi samo s IC sučeljima, bilo bi prilično jednostavno izmijeniti softver i hardver za izlaz putem mini-USB-a ili bilo koje vrste sučelja koja je potrebna. Napomena: Izvorni kod: Dao sam neke aplikacije u koraku 13. Kod koji trenutno pokrećem na svom kontroleru nalazi se gore u heksadecimalnoj datoteci zajedno s glavnom c datotekom i njenim ovisnostima. Možete jednostavno pokrenuti moj kôd ako niste sigurni u kompajliranje. Uključio sam i neke uzorke koda koje možete koristiti u različitim koracima (nazivaju se očito poput remote_test, intervalometer testa i adc testa. Ako govorim o kodu u koraku, šanse su tu. EDIT: Ažuriranje o baloni koji iskaču - čini se da sam bio malo kratkovidan kad sam rekao da možete lako snimiti fotografije iskačućih balona. Ispostavilo se da koža na prosječnom balonu putuje tako brzo da će potpuno iskočiti dok se fotoaparat ne uključi. Ovo problem je s većinom kamera, a ne s kontrolerom (koji ADC -om očitava brzinu od oko 120 kHz). Način na koji se ovo može dogoditi je upotreba aktiviranog bljeskalice, što je izvedivo ako dodate dodatnu žicu i još jedan mali krug. Rečeno je da biste u teoriji mogli upotrijebiti nešto drugo da ga otvorite i igrate sa kašnjenjem (ili čak promijenite kôd odgode tako da uključi mikrosekunde). Zračnim kuglicama koje putuju 1m pri 150ms-1 potrebno je oko 6-7ms, dovoljno vremena za okidanje i pucanje Samo pomeranje pištolja omogućilo bi rudimentarno kašnjenje od nekoliko mikrosekundi s. Još jednom, ispričavam se zbog ovoga, igrat ću se večeras ako uspijem nabaviti neke balone, ali još uvijek postoji mnogo upotreba zvučnog okidača, poput vatrometa! U nastavku sam stavio brzi i prljavi interval kako bih pokazao da to ipak funkcionira:) Ne zaboravite pročitati, ocijeniti i/ili glasovati! Živjeli, JoshDisclaimer U malo vjerojatnom slučaju da nešto pođe po zlu ili ako ste nekako opekli kameru/dremelirali svoju mačku, ne odgovaram ni za šta. Pokretanjem projekta zasnovanog na ovom uputstvu, prihvatate to i nastavljate na sopstvenu odgovornost. Ako napravite jedan od ovih ili koristite moje instrukcije da vam pomognem - pošaljite mi link/fotografiju da ga mogu uključiti ovde! Odziv je do sada bio golem (barem po mojim standardima) pa bi bilo sjajno vidjeti kako ga ljudi tumače. Radim na reviziji 2 dok tipkam;)

Korak 1: Neke početne misli …

Dakle, kako ćemo izgraditi ovu stvar? Mikrokontroler Srce i duša ovog projekta je AVR ATMega8. To je u biti pomalo skraćena verzija ATMega168 čipa koju koristi Arduino. Može se programirati u C ili montaži i ima niz zaista korisnih funkcija koje možemo koristiti u svoju korist. "28 pinova, od kojih je većina ulazno/izlazni (i/o)" Ugrađeni analogno -digitalni pretvarač "Mala potrošnja energije "3 ugrađena tajmera" Unutrašnji ili vanjski izvor takta "Mnogo biblioteka kodova i uzoraka na mreži Imati puno pinova je dobro. Možemo se povezati s LCD ekranom, imati ulaze sa 6 tipki i još uvijek im je ostalo dovoljno za infracrvenu LED diodu za snimanje i neke statusne LED diode. Serija procesora Atmel AVR ima veliku podršku na mreži i postoji mnogo vodiča za dobijanje započeo (proći ću ovo nakratko, ali postoje bolji namjenski vodiči) i hrpe i hrpe koda koje treba razmotriti. Za referencu ću kodirati ovaj projekt na C-u koristeći AVR-LibC biblioteku. Mogao sam to učiniti s PIC-om, ali AVR je dobro podržan i svi primjeri koje sam pronašao za daljinske upravljače su bazirani na AVR-u! Postoje dvije glavne vrste prikaza, grafički i alfanumerički. Grafički ekrani imaju rezoluciju i možete postaviti piksele gdje god želite. Nedostatak je što ih je teže kodirati (iako biblioteke postoje). Alfanumerički displeji jednostavno su jedan ili više redova znakova, LCD ima ugrađenu pohranu osnovnih znakova (tj. Abecedu, neke brojeve i simbole) i relativno je jednostavno ispisati nizove itd. Nedostatak je što nisu tako fleksibilni i prikazivanje grafike je gotovo nemoguće, ali odgovara našoj svrsi. Također su jeftiniji! Alfanumerički podaci kategorizirani su prema broju redova i stupaca. 2x16 je prilično uobičajen, s dva reda od 16 znakova, od kojih je svaki matrica 5x8. Možete dobiti i 2x20 s, ali ne vidim potrebu. Kupujte sve što vam odgovara. Odlučio sam se za LCD sa pozadinskim osvjetljenjem u crvenom (ovo želim koristiti za astrofotografiju, a crveno svjetlo je bolje za noćni vid). Možete ići bez pozadinskog osvjetljenja - to je potpuno vaš izbor. Ako odaberete rutu bez pozadinskog osvjetljenja, uštedjet ćete energiju i novac, ali možda će vam trebati svjetiljka u mraku. Kada tražite LCD, trebali biste osigurati da njime upravlja HD44780. To je industrijski standardni protokol koji je razvio Hitachi i postoji mnogo dobrih biblioteka koje možemo koristiti za izlaz podataka. Model koji sam kupio bio je JHD162A sa eBay -a. Ulaz će se vršiti pomoću dugmadi (jednostavno!). Odabrao sam 6 načina odabira, ok/snimaj i 4 smjera. Također vrijedi nabaviti još jedno malo dugme za resetiranje mikro u slučaju sudara. Što se tiče ulaza okidača, neke osnovne ideje su otpornik ovisan o svjetlu ili elektronski mikrofon. Ovdje možete postati kreativni ili škrti ovisno o svom budžetu. Ultrazvučni senzori će koštati nešto više i zahtijevaju dodatno programiranje, ali s njima možete raditi neke zaista uredne stvari. Većina ljudi bit će zadovoljna mikrofonom (vjerojatno najkorisnijim općenitim senzorom), a električni struji su vrlo jeftini. Imajte na umu da će i to morati biti pojačano (ali o tome ću kasnije). Izlaz - Status Jedini pravi izlaz koji nam je potreban je status (osim zaslona), tako da će nekoliko LED dioda ovdje dobro raditi. Izlaz - Snimanje Za snimanje slike, moramo se povezati s kamerom, a za to nam je potreban izvor svjetlosti koji može proizvesti infracrveno zračenje. Srećom, postoji mnoštvo LED dioda koje to rade i trebali biste pokušati odabrati jednu prilično velike snage. Jedinica koju sam odabrao ima trenutnu vrijednost od 100 mA max (većina LED dioda je oko 30 mA). Također biste trebali obratiti pažnju na izlaz valne duljine. Infracrveno svjetlo je u dijelu dužih valnih duljina EM spektra i trebali biste tražiti vrijednost od oko 850-950nm. Većina IC LED dioda teži ka kraju 950 i možda ćete vidjeti malo crvenog svjetla kada je uključeno, to nije problem, ali je uzalud potrošen spektar pa pokušajte prići bliže 850 ako je moguće. PowerKako ćemo napajati sve ovo? Pa, bit će prenosiv pa baterije! Odlučio sam koristiti 2 AA baterije koje se zatim pojačavaju do 5V. U sljedećih nekoliko odjeljaka ću razmotriti razloge koji stoje iza ovoga. 'Kućište i konstrukcija' Kako ćete to učiniti, u potpunosti ovisi o vama. Odlučio sam upotrijebiti stripboard za izradu kola nakon izrade prototipa jer je jeftin i fleksibilan te štedi dizajn prilagođene PCB -a. Dao sam sheme tako da možete sami napraviti svoj izgled PCB -a - iako to učinite, bio bih vam zahvalan na kopiji! Opet je slučaj u potpunosti vaš izbor, mora biti u mogućnosti uklopiti ekran, dugmad (u prilično intuitivnom rasporedu ako je moguće) i baterije. Što se tiče štampanih ploča, ova nije tako komplicirana, mnoge veze su jednostavno na stvari poput gumba/LCD -a.

Korak 2: Upravljanje napajanjem

Upravljanje napajanjem
Upravljanje napajanjem

Upravljanje napajanjem Za ovakav projekt očito je da bi prenosivost trebala biti ključni aspekt. Baterije su stoga logičan izbor! Sada je za prijenosne uređaje prilično važno odabrati izvor baterije koji se može puniti ili je lako dostupan. Dvije glavne opcije su 9V PP3 baterija ili AA baterije. Siguran sam da će neki ljudi pretpostaviti da je 9V baterija najbolja opcija jer hej, 9V je bolja od 3, zar ne? Pa ne u ovom slučaju. 9V baterije, iako vrlo korisne, proizvode svoj napon na račun trajanja baterije. Mjereno u mAh (miliamper sati), ova ocjena vam teoretski govori koliko će baterija trajati 1 mA u satima (iako je uzmite s malo soli, one su često pod idealnim uvjetima, pri niskom opterećenju). Što je veća ocena, baterija će duže trajati. 9V baterije imaju kapacitet do i oko 1000 mAh. S druge strane, alkalni AA -i imaju skoro tri puta više energije na 2900mAh. NiMH punjive baterije mogu dostići ovo, iako je 2500mAh razumna količina (imajte na umu da punjive baterije rade na 1,2 V, a ne 1,5!). LCD ekranu je potreban ulaz od 5 V (10%), a AVR -u (mikrokontroler) je potrebno približno isto (iako može pasti i do 2,7 za niske frekvencije takta). Potreban nam je i prilično stabilan napon, ako on fluktuira oko njega, to bi moglo uzrokovati probleme s mikrokontrolerom. Da bismo to učinili, upotrijebit ćemo regulator napona, morate sada izabrati cijenu u odnosu na efikasnost. Imate mogućnost korištenja jednostavnog 3-polnog regulatora napona poput LM7805 (serija 78, izlaz +5 volti) ili malog integriranog kruga. Upotreba jednostavnog regulatora Ako odaberete ovu opciju, morate nositi nekoliko stvari na umu. Prvo, tropolnim regulatorima gotovo uvijek je potreban ulaz veći od njihovog izlaza. Zatim snižavaju napon na željenu vrijednost. Nedostatak je to što imaju užasnu efikasnost (50-60% je dobro). Prednost je što su jeftini i radit će s 9V baterijom, a u Velikoj Britaniji možete kupiti osnovni model za 20 penija. Također morate imati na umu da regulatori imaju ispadni napon - minimalni jaz između ulaza i izlaza. Možete kupiti posebne LDO (Low DropOut) regulatore koji imaju ispadanje na oko 50mV (u usporedbi s 1-2V kod drugih izvedbi). Drugim riječima, pazite na LDO -ove s izlazom +5V. Korištenje integriranog kruga Idealan način za to je prekidački regulator. Za našu svrhu, to će biti obično 8 -pinski paketi koji primaju napon i daju nam regulirani izlaz s visokom efikasnošću - u nekim slučajevima gotovo 90%. Pretvarače sa povećanjem ili smanjenjem (pojačanje/smanjenje) možete dobiti u zavisnosti od toga šta želite da uložite, ili možete kupiti regulatore koji će imati iznad ili ispod željenog izlaza. Čip koji koristim za ovaj projekat je a MAX619+. To je pojačavač od 5V koji uzima 2 AA (ulazni raspon je 2V-3.3V) i daje stabilan izlaz od 5V. Za rad su mu potrebna samo četiri kondenzatora i vrlo je prostorno efikasan. Trošak - 3,00 including uključujući gornje granice. Vjerojatno je vrijedno trošenja energije samo da biste dodatno iskoristili baterije. Jedini veliki nedostatak je što nije zaštićen od kratkog spoja, pa ako dođe do strujnog udara, upozorite! Ovo je razumno trivijalno popraviti pomoću dodatnog kola: Još jedan koristan dizajn čipa - iako ni izbliza nije rješenje LT1307. Opet, regulator od 5 V, ali može uzeti različite ulaze i ima korisne stvari poput otkrivanja prazne baterije. Košta prilično više pri gotovo 5 s induktorima, velikim kondenzatorima i otpornicima. Naponske šine Koristit ćemo dvije glavne naponske šine (plus zajedničko uzemljenje). Prvi će biti 3V iz baterije, on će se koristiti za napajanje LED dioda i drugih komponenti relativno velike snage. Moj MAX619 je ocijenjen samo do 60mA (iako je apsolutni maksimum 120mA) pa je lakše spojiti mikrokontroler na MOSFET za kontrolu bilo koje LED diode. MOSFET ne crpi gotovo nikakvu struju i ponaša se kao prekid u kolu kada je ulaz kapije ispod 3V. Kada mikrokontroler šalje logičku 1 na pin, napon je 5V i FET se uključuje, a tada djeluje samo kao kratki spoj (tj. Komad žice). Šina 5V napaja LCD, mikrokontroler i bilo koja pojačala za ulazni senzori. Potrošnja energije Ako pogledamo različite podatkovne tablice, primjećujemo da AVR ne uzima više od 15-20mA pri maksimalnom opterećenju. LCD -u je potrebno samo 1mA za rad (barem kad sam testirao, budžet za 2). Sa uključenim pozadinskim osvjetljenjem, na vama je da odlučite. Priključivanje ravno na 5V šinu (pokušao sam) je u redu, ali prije toga provjerite ima li ugrađeni otpornik (slijedite tragove na PCB -u). Na taj način je izvuklo 30mA - strašno! Sa 3.3k otpornikom još uvijek je vidljiv (savršen za astro fotografiranje) i troši samo 1mA. I dalje možete postići pristojnu svjetlinu pomoću 1k ili na neki drugi način. Dobro sam s crtanjem ispod 2mA sa uključenim pozadinskim osvjetljenjem! Ako želite, trivijalno je dodati gumb za osvjetljenje pomoću potenciometra od 10k. IR LED može uzeti maksimalno 100mA, ali imao sam dobre rezultate sa 60mA preko moga (eksperiment!). Zatim možete prepoloviti tu struju jer efikasno radite na radnom ciklusu od 50% (kada je LED modulirana). U svakom slučaju, uključen je samo djelić sekunde pa ne moramo brinuti o ovome. Ostale LED diode s kojima biste se trebali poigrati možda ćete otkriti da je samo 10mA struja dovoljna za dobro osvjetljenje - svakako pogledajte za LED diode male snage (isključujući infracrvenu), ne dizajnirate svjetiljku! Odlučio sam ne dodati indikator napajanja u svoj krug, jednostavno zato što ima puno struje za malu upotrebu. Koristite prekidač za uključivanje/isključivanje da biste provjerili je li uključen! Ukupno ne biste trebali raditi više od 30 mA u isto vrijeme i sa teoretskim napajanjem od oko 2500 (dopuštajući varijacije) mAh što bi vam trebalo dati više od 80 sati ravno sa svime. S procesorom u praznom hodu većinu vremena ovo će se barem udvostručiti/utrostručiti, pa ne biste morali često mijenjati baterije. Zaključak Eto, to je bilo lako, zar ne! Možete otići jeftino i razveseliti se s 9V baterijom i LDO regulatorom na račun efikasnosti ili platiti malo više i upotrijebiti namjenski IC za to. Moj proračun je još uvijek bio ispod 20 čak i sa IC -om, pa ga možete još više smanjiti ako trebate.

Korak 3: Pažljivije pogledajte ATmega8

Bliži pogled na ATmega8
Bliži pogled na ATmega8

PinsImage 1 je dijagram pinout -a za ATMega8 (potpuno isti kao i 168/48/88, jedina razlika je količina ugrađene memorije i opcija prekida). Pin 1 - Resetiranje, treba držati na VCC naponu (ili barem logično 1). Ako je uzemljen, uređaj će se meko resetirati Pin 2-6 - Port D, opći ulaz/izlaz Pin 7 - VCC, napon napajanja (+5V za nas) Pin 8 - GroundPin 9, 10 - XTAL, vanjski ulazi sata (dio porta B) Pin 11 - 13 Port D, opći ulaz/izlazPin 14 - 19 Port B, opći ulaz/izlazPin 20 - AVCC, analogni napon napajanja (isti kao VCC) Pin 21 - AREF, referentni napon analognog pina 22 - Uzemljenje 23-28 Port C, opći ulaz/izlaz Upotrebljivi ulazno/izlazni portovi: D = 8, C = 6, B = 6 Ukupno 20 upotrebljivih portova je odlično, radi jednostavnosti trebate svoje izlaze grupirati u portove (recimo D kao izlazni port) ili u grupe na ploči - možda biste htjeli da LCD radi s porta C samo da bi žice bile uredne u tom kutu. Postoje tri dodatne pinove koje su potrebne za programiranje. To su MISO (18), MOSI (17) i SCK (19). Oni će rado djelovati kao u/i pinovi ako je potrebno. Zaključavanje Signal koji šaljemo kameri mora biti precizno tempiran (tačan do oko mikrosekunde) pa je važno da odaberemo dobar izvor takta. Svi AVR -ovi imaju unutrašnji oscilator iz kojeg čip može dobiti svoj sat. Nedostatak toga je što mogu varirati oko 10% s temperaturom/pritiskom/vlagom. Ono što možemo učiniti u borbi protiv ovoga je korištenje vanjskog kristala kvarca. Dostupne su na bilo čemu od 32768kHz (sat) do 20MHz. Odlučio sam se za korištenje kristala od 4 Mhz jer pruža pristojnu količinu brzine, ali je prilično konzervativan u usporedbi s možda 8 MHz+. Upravljanje napajanjem na ploči Zaista sam želio koristiti rutine spavanja u svom kodu. U stvari, napisao sam prvu verziju koja se u velikoj mjeri oslanjala na procesor u praznom hodu dok vrijeme prolazi. Nezadovoljno, zbog vremenskih ograničenja, naišao sam na neke probleme sa vanjskim pokretanjem sata i prekidanjem korištenja tajmera. U suštini, morao bih da prepišem kôd da bih se bavio kontrolorom koji se jednostavno nije probudio - što sam mogao učiniti, ali vrijeme je protiv mene. Kao takav, uređaj troši samo 20 mA iš, tako da se možete izvući. Ako ste zaista za to, svakako se pobrinite za kôd, sve što trebate učiniti je interno okrenuti sat, a zatim pokrenuti Timer 2 u asinhronom načinu rada pomoću kristala 4MHz za preciznija kašnjenja. Jednostavno je za napraviti, ali oduzima mnogo vremena. ADCSvajcarski vojni nož u AVR skupu alata, ADC označava analogno -digitalni pretvarač. Kako to funkcionira, relativno je jednostavno izvana. Na pinu se uzorkuje napon (s nekog senzora ili drugog ulaza), napon se pretvara u digitalnu vrijednost između 0 i 1024. Vrijednost 1024 će se primijetiti kada je ulazni napon jednak referentnom naponu ADC -a. Ako postavimo referencu na VCC (+5V), onda je svaka podjela 5/1024 V ili oko 5mV. Tako će povećanje od 5mV na pinu povećati vrijednost ADC -a za 1. Možemo uzeti izlaznu vrijednost ADC -a kao varijablu, a zatim se petljati s njom, uspoređivati je sa stvarima itd. U kodu. ADC je nevjerojatno korisna funkcija i omogućuje vam da radite mnogo zanimljivih stvari, poput pretvaranja AVR -a u osciloskop. Frekvencija uzorkovanja je oko 125 kHz i mora se postaviti proporcionalno glavnoj frekvenciji takta. Registri Možda ste već čuli za registre, ali ne bojte se! Registar je jednostavno zbir adresa (lokacija) u AVR memoriji. Registri se klasifikuju prema njihovoj veličini bita. 7 -bitni registar ima 8 lokacija, počevši od 0. Postoje registri za gotovo sve, pa ćemo ih kasnije pogledati mnogo detaljnije. Neki primjeri uključuju PORTx registre (gdje je x B, C ili D) koji kontroliraju je li pin postavljen visoko ili nisko i postavlja otpornike za ulaze, DDRx registre koji postavljaju da li je pin izlazni ili ulazni itd. Tehnički list Veliki književnik, težak oko 400 stranica; tehnički listovi AVR -a neprocjenjiva su referenca za vaš procesor. Sadrže pojedinosti o svakom registru, svakom pinu, načinu rada tajmera, koje osigurače treba postaviti na što i još mnogo toga. Oni su besplatni i trebat će vam prije ili kasnije, pa preuzmite kopiju! Www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

Korak 4: Dodjela pinova

Dodjela pinova
Dodjela pinova

Već sam spomenuo ulaze i izlaze koji su nam potrebni, pa bismo ih trebali dodijeliti! Sada, PORT D ima 8 pinova što je zgodno jer može djelovati kao naš izlazni port. Za rad LCD -a potrebno je 7 pinova - 4 pina za podatke i 3 kontrolne pinove. Za IR LED je potreban samo jedan pin, tako da će naš 8. PORTB biti naš port port, ima 6 ulaza, ali trebat će nam samo 5. To će biti gumbi za način rada i usmjeravanje. posebno, to je ADC port. Za ulaz okidača potreban nam je samo jedan pin i ima smisla staviti ga na PC0 (uobičajena skraćenica za pinove portova u ovom slučaju Port C, Pin 0). Zatim imamo nekoliko pinova za statusne LED diode (jedna svijetli kada je vrijednost ADC -a iznad nekog stanja, a druga svijetli kada je ispod nekog stanja). Ovdje ćemo staviti i naš gumb ok/shoot gumb, iz razloga koji će kasnije postati jasni. Nakon svega ovoga, iskoristili smo većinu portova, ali ostalo nam je još nekoliko ako želite proširiti projekt - možda više okidača?

Korak 5: Komunikacija s kamerom

Komunikacija sa kamerom
Komunikacija sa kamerom
Komunikacija sa kamerom
Komunikacija sa kamerom

Prva nagrada na foto -takmičenju Digital Days

Preporučuje se: