Innholdsfortegnelse:

Bygg din egen (billig!) Multifunksjons trådløs kamerakontroller .: 22 trinn (med bilder)
Bygg din egen (billig!) Multifunksjons trådløs kamerakontroller .: 22 trinn (med bilder)

Video: Bygg din egen (billig!) Multifunksjons trådløs kamerakontroller .: 22 trinn (med bilder)

Video: Bygg din egen (billig!) Multifunksjons trådløs kamerakontroller .: 22 trinn (med bilder)
Video: Анна Мрачек Дитрих: Самолёт, который ездит 2024, Juli
Anonim
Bygg din egen (billig!) Multifunksjons trådløs kamerakontroller
Bygg din egen (billig!) Multifunksjons trådløs kamerakontroller
Bygg din egen (billige!) Multifunksjonelle trådløse kamerakontroller
Bygg din egen (billige!) Multifunksjonelle trådløse kamerakontroller
Bygg din egen (billige!) Multifunksjonelle trådløse kamerakontroller
Bygg din egen (billige!) Multifunksjonelle trådløse kamerakontroller

Innledning Har du noen gang lyst til å bygge din egen kamerakontroller? VIKTIG MERK: Kondensatorer for MAX619 er 470n eller 0,47u. Skjematikken er korrekt, men komponentlisten var feil - oppdatert. Dette er et bidrag til Digital Days -konkurransen, så hvis du synes det er nyttig, vær så snill å rangere/stemme/kommentere positivt! Hvis du virkelig liker det og er en snubler, klikker du på "jeg liker det!":) Oppdatering: omtalt på hackaday! hackaday.com/2009/10/13/a-different-breed-of-camera-controllers/ Oppdatering: nye bilder av laserutløseren i bruk! Oppdatering: Førstepremie = D, takk for at du stemte og/eller vurderte! Denne instruksen er hovedsakelig til fordel for SLR -brukere som ønsker å få litt mer kjørelengde ut av kameraene sine, men hvis det er noen poeng og skudd med IR -grensesnitt, kan du synes dette er interessant. Dette vil sikkert også fungere (med litt modifikasjon) med kamerahack der du kan koble til logiske utganger til kameratriggerterminaler. Dette startet som en fullstendig opplæring, men på grunn av noen uventede begrensninger jeg støtte på senere, kan det være mer en veiledning for hvordan du skal oppnå forskjellige ting - jeg lar deg ofte velge hvordan du kan gjøre ting som Jeg tror det er en bedre måte å gjøre ting på enn å bare si blindt "du må gjøre dette". Tenk på dette som en leksjon i design av kamerakontroller. Jeg har gitt skjemaer og full kode, slik at du alltid kan kopiere den. Det vil være et enkelt tilfelle av å overføre designet til et tavle og legge til LCD for de fleste. Jeg har gått igjennom hvordan jeg kan planlegge det siden prosessen er veldig lik og gir mulighet for å rette feil før du gjør designet permanent! Funksjoner: Enkeltskuddsmodus Intervall (tidsforløp) modus Utløst skudd (utløser fra ekstern sensor) modus med variable forhold Inkludert sensordesign - lys, lyd (mange flere mulige!) Total kostnad - under £ 25 (eksklusive verktøy) LCD -skjerm for enkel endring av innstillinger Kompatibel med Nikon/Canon (kodet), potensiell støtte (uprøvd) for Olympus/Pentax Ingen fastvare modifikasjon nødvendig Bruker IR så er både trådløst og skader ikke kameraet. Jeg hadde ideen til dette etter å ha sittet ute i kulden og klikket på fjernkontrollen i flere timer. Jeg gjorde et intervall på 8 sekunder for rundt 1000 skudd. Jeg tenkte, hei, det er bare en IR -LED ikke sant? Hvorfor kan jeg ikke replikere den og lage min egen fjernkontroll med en innebygd forsinkelse? Jeg fant deretter ut (litt flau, fordi jeg trodde jeg hadde hatt en massiv hjernebølge) at dette har blitt gjort, og det er til og med et par instrukser om emnet. Der implementeringen min skiller seg fra de fleste intervallmålere og diy fjernkontroller er at den gir mulighet for mye tilpasning og modularitet, er kompatibel med både Nikon/Canon (og sannsynligvis andre senere) og kombinerer muligheten til å ta et bilde på en bestemt trigger. Ideen er enkel. Du vil ta et bilde av noe ganske raskt (begrenset for tiden av forsinkelsen på lukkeren, for meg 6 ms). Det er en rekke metoder for å gjøre dette: 1. Prøve og feile du prøver å ta bildet i riktig øyeblikk 2. Forbedret prøving og feiling du mørkner rommet, setter kameraet på pære (åpen lukker) og avfyr et blits til rett tid 3. Kjøp en dedikert triggerkontroller som har en slags lyd-/lyssensor for å ta bildet på kommando 4. Bygg en selv! Ok, 1 og 2 er fine for å rote rundt og kan gi noen veldig gode bilder. Men det jeg skal vise deg er at det er mulig å konstruere en krets som vil gi deg konsekvente resultater gang på gang. Viktigst, i disse trange tider er kostnaden lavere enn alternative modeller (noen mennesker har produsert sett som gjør slike ting, men de koster en formue se lenker). Allsidigheten til designet er denne: Hvis sensoren din genererer en utgangsspenning mellom 0 og 5V, kan du bruke den til å utløse kameraet ditt! I utgangspunktet er dette en kjedelig uttalelse, men når du begynner å forstå implikasjonene, blir den veldig kraftig. Ved ganske enkelt å overvåke et spenningsnivå, kan utløseren din være lysbasert (LDR), lydbasert (mikrofon eller ultralyd), temperaturbasert (termistor) eller til og med et enkelt potensiometer. Faktisk omtrent alt. Du kan til og med koble kretsen til en annen kontroller og forutsatt at den kan gi deg en logisk utgang, og dermed kan du utløse fra den. Den eneste store begrensningen for designet for øyeblikket er at det bare fungerer med IR-grensesnitt, det ville være ganske enkelt å endre programvaren og maskinvaren for å sende ut via mini-USB eller hvilken som helst type grensesnitt som kreves. Merk: Kildekode: Jeg har gitt noen applikasjoner i trinn 13. Koden jeg kjører på kontrolleren min er nå oppe i en hex -fil sammen med hoved -c -filen og dens avhengigheter. Du kan ganske enkelt kjøre koden min hvis du er usikker på kompilering. Jeg har også inkludert noen eksempler på kode som du kan bruke i forskjellige trinn (de heter åpenbart som remote_test, intervalometer test og adc test. Hvis jeg refererer til kode i et trinn, er oddsen det er der. EDIT: En oppdatering om ballonger som dukker opp - det virker som om jeg var litt kortsynt da jeg sa at du enkelt kunne ta bilder av ballonger som dukker opp. Det viser seg at huden på den gjennomsnittlige ballongen beveger seg så fort at den vil ha spratt helt når kameraet ditt brenner. Dette er et problem med de fleste kameraer, IKKE kontrolleren (som registrerer ADC med en hastighet på rundt 120 kHz). Veien rundt dette er å bruke en utløst blits, noe som er mulig hvis du legger til en ekstra ledning og en annen liten krets. Det sa, du kan i teorien bruke noe annet til å pope det og leke med forsinkelsen (eller til og med endre forsinkelseskoden til å inkludere mikrosekunder). En luftpellet som reiser 1m ved 150ms-1 tar omtrent 6-7ms, nok tid til å utløse og skyte. Bare å flytte pistolen ville gi en rudimentær forsinkelse på noen få mikrosekunder s. Igjen, beklager dette, jeg skal spille om i kveld hvis jeg får tak i noen ballonger, men det er fortsatt mange bruksområder for en lydutløser, som fyrverkeri! Jeg har satt en rask og skitten time -lapse nedenfor for å vise at det fungerer derimot:) Ikke glem å lese, rangere og/eller stemme! Skål, Josh Ansvarsfraskrivelse I det usannsynlige tilfellet at noe går fryktelig galt, eller hvis du på en eller annen måte murer kameraet ditt/dreler katten din, er jeg ikke ansvarlig for noe. Ved å starte et prosjekt basert på dette instruerbare, godtar du det og fortsetter på egen risiko. Hvis du lager et av disse, eller bruker mitt instruerbare til å hjelpe deg - send meg en lenke/bilde så jeg kan inkludere det her! Responsen har vært overveldende så langt (i hvert fall etter mine standarder), så det ville være fantastisk å se hvordan folk tolker det. Jeg jobber med revisjon 2 mens jeg skriver;)

Trinn 1: Noen innledende tanker …

Så, hvordan skal vi bygge denne tingen? Mikrokontroller Hjertet og sjelen til dette prosjektet er en AVR ATMega8. Det er egentlig en litt trimmet versjon av ATMega168 -brikken som Arduino bruker. Den er programmerbar i C eller Assembly og har en rekke virkelig nyttige funksjoner som vi kan bruke til vår fordel. "28 pins, hvorav de fleste er input/output (i/o)" Onboard analog to digital converter "Lavt strømforbruk "3 innebygde tidtakere" Intern eller ekstern klokkilde "Mange kodebiblioteker og eksempler på nettet Å ha mange pins er bra. Vi kan koble til en LCD -skjerm, ha 6 knappinnganger og fortsatt ha nok til overs for en IR -LED å skyte med og noen status -LED -er. Atmel AVR -serien av prosessorer har mye støtte online, og det er mange opplæringsprogrammer for å få startet (jeg skal gå kort over dette, men det er bedre dedikerte opplæringsprogrammer) og massevis av kode å tenke på. For referanse vil jeg kode dette prosjektet i C ved hjelp av AVR-LibC-biblioteket. Jeg kunne lett ha gått med PIC for å gjøre dette, men AVR er godt støttet og alle eksemplene jeg har funnet for fjernkontroller har vært AVR-basert! LCD DisplayThere er to hovedtyper skjerm, grafisk og alfanumerisk. Grafiske skjermer har en oppløsning, og du kan sette piksler hvor du vil. Ulempen er at de er vanskeligere å kode for (selv om det finnes biblioteker). Alfanumeriske skjermer er ganske enkelt en eller flere tegnrader, LCD -skjermen har en innebygd butikk med grunnleggende tegn (dvs. alfabetet, noen tall og symboler), og det er relativt enkelt å skrive ut strenger og så videre. Ulempen er at de ikke er like fleksible, og å vise grafikk er praktisk talt umulig, men det passer vårt formål. De er også billigere! Alfanumerikk er kategorisert etter antall rader og kolonner. 2x16 er ganske vanlig, med to rader med 16 tegn, hvert tegn er en 5x8 matrise. Du kan også få 2x20 s, men jeg ser ikke behovet. Kjøp det du føler deg komfortabel med. Jeg valgte å bruke en rød bakgrunnsbelyst LCD (jeg vil bruke dette til astrofotografering og rødt lys er bedre for nattsyn). Du kan gå uten bakgrunnsbelysning - det er helt ditt valg. Hvis du velger en rute uten bakgrunnsbelysning, sparer du strøm og penger, men du må kanskje ha en lommelykt i mørket. Når du leter etter en LCD, bør du kontrollere at den kontrolleres av HD44780. Det er en industristandardprotokoll utviklet av Hitachi, og det er mange gode biblioteker som vi kan bruke til å sende ut data. Modellen jeg kjøpte var en JHD162A fra eBay. InputInput gjøres med knapper (enkelt!). Jeg valgte 6 - modus velg, ok/skyte og 4 retninger. Det er også verdt å få en annen liten knapp for å tilbakestille mikrofonen i tilfelle et krasj. Når det gjelder utløserinngangen, er noen grunnleggende ideer en lysavhengig motstand eller en elektretmikrofon. Det er her du kan bli kreativ eller gjerrig avhengig av budsjettet. Ultralydsensorer vil koste litt mer og kreve litt ekstra programmering, men du kan gjøre noen veldig fine ting med dem. De fleste vil være fornøyd med en mikrofon (sannsynligvis den mest nyttige generelle sensoren) og elektroner er veldig billige. Vær oppmerksom på at den også må forsterkes (men jeg går over dette senere) Output - Status Den eneste virkelige utgangen vi trenger er status (foruten displayet), så et par lysdioder vil fungere fint her. Output - Shooting For å ta bilder, må vi grensesnittet med kameraet, og for det trenger vi en lyskilde som kan produsere infrarød stråling. Heldigvis er det en rekke lysdioder som gjør dette, og du bør prøve å hente en rimelig høy effekt. Enheten jeg valgte har en nåværende vurdering på 100mA maks (de fleste lysdioder er rundt 30mA). Du bør også passe på å merke bølgelengdeutgangen. Infrarødt lys er i den lengre bølgelengden av EM-spektret, og du bør lete etter en verdi på rundt 850-950 nm. De fleste IR -lysdioder har en tendens til 950 -enden, og du kan se litt rødt lys når den er slått på, dette er ikke et problem, men det er bortkastet spektrum, så prøv å gå nærmere 850 hvis mulig. dette? Vel, den kommer til å være bærbar, så batterier! Jeg valgte å bruke 2 AA -batterier som deretter trappes opp til 5V. Jeg vil gå over begrunnelsen bak dette i de neste avsnittene. 'Casing and Construction' Hvordan du gjør dette er helt opp til deg. Jeg bestemte meg for å bruke stripboard for kretsen etter prototyping fordi den er billig og fleksibel og sparer å designe en tilpasset PCB. Jeg har gitt skjemaene slik at du kan lage din egen PCB -layout - selv om du gjør det, ville jeg være takknemlig for å ha en kopi! Igjen er saken helt ditt valg, den må kunne passe på skjermen, knapper (i en ganske intuitiv layout hvis mulig) og batteriene. Når kretskort går, er dette ikke så komplisert, mange tilkoblinger er ganske enkelt til ting som knapper/LCD.

Trinn 2: Strømstyring

Strømstyring
Strømstyring

Strømstyring For et prosjekt som dette er det åpenbart at portabilitet bør være et sentralt aspekt. Batterier er dermed det logiske valget! Nå, for bærbare enheter er det ganske viktig at du velger en batterikilde som enten er oppladbar eller lett tilgjengelig. De to hovedalternativene er 9V PP3 -batteri eller AA -batterier. Jeg er sikker på at noen vil anta at et 9V batteri er det beste alternativet fordi hei, 9V er bedre enn 3? Vel, ikke i dette tilfellet. 9V batterier, selv om de er veldig nyttige, produserer spenning på bekostning av batterilevetiden. Målt i mAh (milliampetimer), forteller denne klassifiseringen deg i teorien hvor lenge et batteri varer ved 1mA i timer (selv om du tar det med en klype salt, er disse ofte under ideelle forhold med lav belastning). Jo høyere karakter, jo lenger vil batteriet vare. 9V batterier er vurdert til opptil 1000mAh. Alkaliske AA -er har derimot nesten tre ganger så mye på 2900mAh. NiMH -oppladninger kan nå dette, selv om 2500mAh er en rimelig mengde (merk at oppladbare batterier fungerer på 1,2V ikke 1,5!). LCD -skjermen trenger en 5V -inngang (10%) og AVR (mikrokontrolleren) trenger omtrent det samme (selv om den kan gå så lavt som 2,7 for lavfrekvente klokkehastigheter). Vi trenger også en ganske stabil spenning, hvis den svinger om det kan forårsake problemer med mikrokontrolleren. For å gjøre dette bruker vi en spenningsregulator, du må velge mellom pris og effektivitet nå. Du har muligheten til å bruke en enkel 3-pinners spenningsregulator som LM7805 (78-serien, +5 volt utgang) eller en liten integrert krets. Bruk av en enkel regulator Hvis du velger å gå med dette alternativet, må du ha en noen få poeng i tankene. For det første trenger trepinnsregulatorer nesten alltid en inngang som er høyere enn utgangen. De trapper deretter spenningen ned til ønsket verdi. Ulempen er at de har forferdelig effektivitet (50-60% går bra). Oppsiden er at de er billige og vil kjøre med et 9V batteri. Du kan hente en grunnmodell for 20 pence i Storbritannia. Du bør også huske på at regulatorer har en frafallsspenning - det minste gapet mellom inngang og utgang. Du kan kjøpe spesielle LDO (Low DropOut) regulatorer som har frafall på rundt 50mV (sammenlignet med 1-2V med andre design). Med andre ord, se opp for LDOer med en +5V utgang. Bruke en integrert krets Den ideelle måten å gå på er en koblingsregulator. Disse vil for vårt formål normalt være 8 -pinners pakker som tar inn en spenning og gir oss en regulert effekt med høy effektivitet - nesten 90% i noen tilfeller. Du kan få trinn opp eller ned omformere (henholdsvis boost/buck) avhengig av hva du vil putte i, alternativt kan du kjøpe regulatorer som vil ta enten over eller under ønsket utgang. Chippen jeg bruker for dette prosjektet er en MAX619+. Det er en 5V trinn opp regulator som tar 2 AA (inngangsområdet er 2V-3.3V) og gir en jevn 5V ut. Den trenger bare fire kondensatorer for å fungere og er svært plasseffektiv. Kostnad - 3,00 inkludert caps. Det er uten tvil verdt splurge bare for å få litt mer bruk av batteriene. Den eneste store ulempen er at den ikke er kortslutningsbeskyttet, så vær oppmerksom på hvis det er en økning i strømmen! Dette er imidlertid rimelig trivielt å fikse med en tilleggskrets: En annen nyttig brikkedesign - selv om LT1307 ikke er så like pen løsning. Igjen, en 5V regulator, men den kan ta en rekke innganger og har nyttige ting som deteksjon av lavt batteri. Det koster ganske mye mer på nesten 5 med induktorer, store kondensatorer og motstander. Spenningsskinner Vi kommer til å bruke to hovedspenningsskinner (pluss en felles jord). Den første vil være 3V fra batteriet, denne vil bli brukt til å drive lysdiodene og andre relativt kraftige komponenter. Min MAX619 er bare opp til 60mA (selv om absolutt maksimum er 120mA), så det er lettere å koble mikrokontrolleren til en MOSFET for å kontrollere eventuelle lysdioder. MOSFET trekker nesten ingen strøm og fungerer som et brudd i kretsen når gateinngangen er under rundt 3V. Når mikrokontrolleren sender ut logisk 1 på pinnen, er spenningen 5V og FET slås på, og fungerer deretter som en kortslutning (dvs. en ledning). 5V -skinnen vil drive LCD, mikrokontroller og eventuelle forsterkningskretser for Strømforbruk Hvis vi ser på forskjellige datablad, merker vi at AVR ikke tar mer enn 15-20mA ved maksimal belastning. LCD -skjermen tar bare 1 mA (minst når jeg testet, budsjett for 2). Med bakgrunnsbelysningen på, er det virkelig opp til deg å bestemme. Det er greit å koble den rett til 5V -skinnen (jeg prøvde), men sørg for at den har en innebygd motstand (følg sporene på PCB) før du gjør det. Det trakk 30mA på den måten - forferdelig! Med en 3,3 k motstand er den fortsatt synlig (perfekt for astrofotografering) og trekker bare 1 mA. Du kan fortsatt få anstendig lysstyrke med en 1k eller på annen måte. Jeg har det bra med min tegning like under 2mA med bakgrunnsbelysningen på! Hvis du vil, er det trivielt å legge til en lysstyrkeknapp med et 10k potensiometer. IR -LED -en kan ta maksimalt 100mA, men jeg har hatt gode resultater med 60mA på tvers av mitt (eksperiment!). Du kan deretter halvere strømmen fordi du effektivt kjører på en 50% driftssyklus (når LED -en er modulert). Uansett, det er bare på i en brøkdel av et sekund, så vi trenger ikke å bekymre deg for dette. De andre lysdiodene du bør leke med, kan du oppdage at bare en 10mA strøm er nok til å gi deg en god lysstyrke - ser absolutt ut for LEDer med lav effekt (unntatt IR), designer du ikke en fakkel! Jeg valgte å ikke legge til en strømindikator i kretsen min, rett og slett fordi det er mye strømtrekk for lite bruk. Bruk av/på -bryteren for å sjekke om den er på! Totalt sett bør du ikke kjøre mer enn 30mA til enhver tid og med en teoretisk tilførsel på rundt 2500 (tillater variasjon) mAh som skal gi deg godt over 80 timer rett med alt på. Med prosessoren på tomgang for det meste vil dette i det minste doble/trippel, så du trenger ikke å bytte batterier veldig ofte. Konklusjon Det var lett, ikke sant! Du kan enten gå billig og munter med et 9V batteri og en LDO -regulator på bekostning av effektiviteten eller betale litt mer og bruke en dedikert IC for å gjøre det. Budsjettet mitt var fortsatt under 20 selv med IC, så du kan slippe det enda mer hvis du trenger det.

Trinn 3: En nærmere titt på ATmega8

En nærmere titt på ATmega8
En nærmere titt på ATmega8

PinsImage 1 er pinout -diagrammet for ATMega8 (nøyaktig det samme som 168/48/88, den eneste forskjellen er mengden innebygd minne og avbruddsalternativer). Pin 1 - Reset, skal holdes ved VCC -spenning (eller minst logisk 1). Hvis den er jordet, vil enheten tilbakestille Pin 2-6 - Port D, generell inngang/utgang Pin 7 - VCC, forsyningsspenning (+5V for oss) Pin 8 - GroundPin 9, 10 - XTAL, eksterne klokkeinnganger (del av Port B) Pin 11 - 13 Port D, generell inngang/utgang Pin 14 - 19 Port B, generell inngang/utgang Pin 20 - AVCC, analog forsyningsspenning (samme som VCC) Pin 21 - AREF, analog spenningsreferanse Pin 22 - GroundPin 23-28 Port C, generell inngang/utgang Brukbare i/o -porter: D = 8, C = 6, B = 6 Totalt 20 brukbare porter er flott, for enkelhets skyld bør du gruppere utgangene enten i porter (si D som utgangsport) eller inn grupper på brettet - du vil kanskje at LCD -skjermen skal gå fra Port C bare for å holde ledningene ryddige i det hjørnet. Det er tre ekstra pinner som kreves for programmering. Det er MISO (18), MOSI (17) og SCK (19). Disse vil gjerne fungere som i/o -pinner om nødvendig. Klokke Signalet som vi sender til kameraet må være nøyaktig tidsbestemt (nøyaktig til rundt et mikrosekund), så det er viktig at vi velger en god klokkekilde. Alle AVR -er har en intern oscillator som brikken kan få klokken fra. Ulempen med dette er at de kan svinge rundt 10% med temperatur/trykk/fuktighet. Det vi kan gjøre for å bekjempe dette er å bruke en ekstern kvartskrystall. Disse er tilgjengelige i alt fra 32768 kHz (klokke) til 20 MHz. Jeg har valgt å bruke en 4Mhz krystall, da den gir en anstendig mengde hastighet, men den er ganske strømkonservativ sammenlignet med kanskje 8Mhz+. Onboard Power ManagementJeg ønsket virkelig å bruke søvnrutiner i koden min. Faktisk skrev jeg den første versjonen for å stole sterkt på tomgang på prosessoren mens tiden gikk ned. På grunn av tidsbegrensninger kom jeg dessverre inn på noen problemer med å kjøre klokken eksternt og avbryte bruk av tidtakere. I hovedsak må jeg omskrive koden for å håndtere kontrolleren rett og slett ikke våkne - noe jeg kunne gjøre, men tiden er imot meg. Som sådan trekker enheten bare 20mA, slik at du kan komme unna med det. Hvis du virkelig er klar for det, så må du for all del fikle med koden, alt du trenger å gjøre er å klokke internt og deretter kjøre Timer 2 i asynkron modus ved hjelp av 4MHz krystall for mer nøyaktige forsinkelser. Det er enkelt å gjøre, men tidkrevende. ADC Den sveitsiske hærkniven i AVR -verktøysettet, ADC, står for Analog to Digital Converter. Hvordan det fungerer er relativt enkelt utenfra. En spenning samples på en pinne (fra en sensor eller annen inngang), spenningen blir konvertert til en digital verdi mellom 0 og 1024. En verdi på 1024 vil bli observert når inngangsspenningen er lik ADC -referansespenningen. Hvis vi setter vår referanse til å være VCC (+5V) så er hver divisjon 5/1024 V eller rundt 5mV. Dermed vil en økning på 5mV på pinnen øke ADC -verdien med 1. Vi kan ta ADC -utgangsverdien som en variabel og deretter fikle med den, sammenligne den med ting osv. I koden. ADC er en utrolig nyttig funksjon og lar deg gjøre mange kule ting som å gjøre AVR til et oscilloskop. Samplingsfrekvensen er rundt 125 kHz og må settes i forhold til hovedklokkefrekvensen. Registreringer Du har kanskje hørt om registre før, men frykt ikke! Et register er ganske enkelt en samling adresser (steder) i AVR -minnet. Registre er klassifisert etter bitstørrelsen. Et 7 -biters register har 8 steder, ettersom vi starter fra 0. Det er registre for omtrent alt, og vi vil se nærmere på dem senere. Noen eksempler inkluderer PORTx -registre (hvor x er B, C eller D) som styrer om en pinne settes høyt eller lavt og setter opp motstander for innganger, DDRx -registrene som angir om en pinne skal sendes ut eller inngang og så videre. Databladet En litteratur som veier rundt 400 sider; AVR -databladene er en uvurderlig referanse til prosessoren din. De inneholder detaljer om hvert register, hver pin, hvordan tidtakere fungerer, hvilke sikringer som bør settes til hva og mye mer. De er gratis, og du trenger det før eller siden, så last ned en kopi! Www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

Trinn 4: Tildel pinner

Tildele pins
Tildele pins

Jeg har allerede nevnt innganger og utganger vi trenger, så vi bør tildele dem pinner! Nå har PORT D 8 pinner som er praktisk, da det kan fungere som vår utgangsport. LCD -skjermen krever 7 pinner for å fungere - 4 datapinner og 3 kontrollpinner. IR -LED -en krever bare en pinne, så det utgjør vår 8. PORTB kommer til å være vår knappport, den har 6 innganger, men vi trenger bare 5. Dette vil være modus- og retningsknappene. PORTC er spesiell, det er ADC -porten. Vi trenger bare en pin for triggerinngangen, og det er fornuftig å sette den på PC0 (en vanlig forkortelse for port pins i dette tilfellet Port C, Pin 0). Vi har da et par pinner for status -lysdioder (den ene lyser når ADC -verdien er over en tilstand, den andre lyser når den er under en tilstand). Vi kommer også til å legge inn ok/skyte -knappinngangen her, av årsaker som vil bli klart senere. Etter alt dette har vi brukt opp flertallet av havnene, men vi har fortsatt noen få igjen hvis du ønsker å utvide prosjektet - kanskje flere utløsere?

Trinn 5: Kommunikasjon med kameraet

Kommunikasjon med kameraet
Kommunikasjon med kameraet
Kommunikasjon med kameraet
Kommunikasjon med kameraet

Første premie i Digital Days fotokonkurranse

Anbefalt: