Indholdsfortegnelse:

Byg din egen (billige!) Multifunktions trådløs kamerakontroller .: 22 trin (med billeder)
Byg din egen (billige!) Multifunktions trådløs kamerakontroller .: 22 trin (med billeder)

Video: Byg din egen (billige!) Multifunktions trådløs kamerakontroller .: 22 trin (med billeder)

Video: Byg din egen (billige!) Multifunktions trådløs kamerakontroller .: 22 trin (med billeder)
Video: 3 750 000 $ CLB65 YACHT TOUR Идеальный владелец-оператор Роскошный семейный сафари CL Yachts 2024, Juli
Anonim
Byg din egen (billige!) Multifunktions trådløs kamerakontroller
Byg din egen (billige!) Multifunktions trådløs kamerakontroller
Byg din egen (billige!) Multifunktions trådløs kamerakontroller
Byg din egen (billige!) Multifunktions trådløs kamerakontroller
Byg din egen (billige!) Multifunktions trådløs kamerakontroller
Byg din egen (billige!) Multifunktions trådløs kamerakontroller

Indledning Har du nogensinde lyst til at bygge din egen kameracontroller? VIGTIG BEMÆRK: Kondensatorer til MAX619 er 470n eller 0,47u. Skematikken er korrekt, men komponentlisten var forkert - opdateret. Dette er et bidrag til Digital Days -konkurrencen, så hvis du finder det nyttigt, bedes du bedømme/stemme/kommentere positivt! Hvis du virkelig kan lide det og er en snubler, skal du trykke på "jeg kan lide det!":) Opdatering: fremhævet på hackaday! hackaday.com/2009/10/13/a-different-breed-of-camera-controllers/ Opdatering: nye billeder af laserudløseren i aktion! Opdatering: Første præmie = D, tak for afstemningen og/eller bedømmelsen! Dette instruerbare er hovedsageligt til fordel for SLR -brugere, der ønsker at få lidt mere kilometertal ud af deres kameraer, men hvis der er nogen mening og skyder med IR -grænseflader, kan du finde dette interessant. Dette vil bestemt også fungere (med en smule modifikationer) med kamerahacks, hvor du kan tilslutte logiske udgange til kameratriggerterminaler. Dette startede som en fuldstændig selvstudium, men på grund af nogle uventede begrænsninger, jeg stødte på senere, kan det være mere en vejledning til, hvordan du udfører forskellige ting - jeg vil ofte lade dig vælge om, hvordan du kunne gøre ting, som Jeg synes, det er en bedre måde at gøre tingene på end bare blindt at sige "du skal gøre dette". Tænk på dette som en lektion i kamera controller design. Jeg har leveret skemaer og fuld kode, så du altid kan kopiere den. Det vil være et simpelt tilfælde at overføre designet til et stribetavle og tilføje LCD for de fleste mennesker. Jeg har gennemgået, hvordan man brødbrætter det, da processen er meget ens og giver mulighed for at rette fejl, før du gør designet permanent! Funktioner: Enkeltbillede -tilstand Interval (time -lapse) -tilstand Udløst skud (udløser fra ekstern sensor) -tilstand med variable forhold Inkluderede sensordesign - lys, lyd (mange flere mulige!) Samlede omkostninger - under £ 25 (eksklusive værktøjer) LCD -display til nem ændring af indstillinger Kompatibel med Nikon/Canon (kodet), potentiel support (uprøvet) til Olympus/Pentax Ingen firmware ændring nødvendig Bruger IR, så det er både trådløst og beskadiger ikke dit kamera. Jeg havde idéen til dette efter at have siddet udenfor i kulden og klikket på min fjernbetjening i timevis. Jeg lavede et interval på 8 sekunder i omkring 1000 skud. Jeg tænkte, hej, det er bare en IR -LED ikke sandt? Hvorfor kan jeg ikke replikere det og lave min egen fjernbetjening med en indbygget forsinkelse? Jeg fandt derefter ud (lidt flov, fordi jeg troede, jeg havde haft en massiv hjernebølge), at dette er blevet gjort, og der er endda et par instruktører om emnet. Hvor min implementering adskiller sig fra de fleste intervalometre og diy fjernbetjeninger er, at den giver mulighed for en masse tilpasninger og modularitet, er kompatibel med både Nikon/Canon (og sandsynligvis andre senere) og kombinerer evnen til at tage et billede på en bestemt trigger. Ideen er enkel. Du vil tage et billede af noget ganske hurtigt (begrænset i øjeblikket af forsinkelsen på din lukker, for mig 6ms). Der er en række forskellige metoder til at gøre dette: 1. Prøve og fejl, du forsøger at tage billedet på det rigtige tidspunkt 2. Forbedret forsøg og fejl du mørklægger rummet, sætter dit kamera på pære (åben lukker) og affyrer et blitz på det rigtige tidspunkt 3. Køb en dedikeret trigger controller, der har en form for lyd/lys sensor til at tage billedet på din kommando 4. Byg en selv! Ok, 1 og 2 er fine til at rode rundt og kan give nogle meget gode billeder. Men hvad jeg vil vise dig er, at det er muligt at konstruere et kredsløb, der vil give dig konsekvente resultater gang på gang. Vigtigst af alt er omkostningerne i disse stramme tider lavere end alternative modeller (nogle mennesker har produceret kits, der gør denne slags ting, men de koster en formue se links). Alsidigheden i designet er dette: Hvis din sensor genererer en udgangsspænding mellem 0 og 5V, kan du bruge den til at udløse dit kamera! Umiddelbart er dette en kedelig erklæring, men når du først begynder at forstå konsekvenserne, bliver den meget kraftfuld. Ved blot at overvåge et spændingsniveau kan din trigger være lysbaseret (LDR), lydbaseret (mikrofon eller ultralyd), temperaturbaseret (termistor) eller endda et simpelt potentiometer. Faktisk næsten alt. Du kan endda forbinde kredsløbet til en anden controller og forudsat at det kan give dig et logisk output, så du kan udløse fra det. Den eneste store begrænsning ved designet i øjeblikket er, at det kun fungerer med IR-grænseflader, det ville være ret simpelt at ændre softwaren og hardwaren til output via mini-USB eller hvilken som helst slags grænseflade, der kræves. Bemærk: Kildekode: Jeg har leveret nogle applikationer i trin 13. Koden, jeg kører på min controller fra nu af, er deroppe i en hex -fil sammen med hoved -c -filen og dens afhængigheder. Du kan simpelthen køre min kode, hvis du er i tvivl om kompilering. Jeg har også inkluderet nogle eksempler på kode, som du kan bruge i forskellige trin (de hedder naturligvis som remote_test, intervalometer test og adc test. Hvis jeg refererer til kode i et trin, er oddsene det er der. EDIT: En opdatering om balloner dukker op - det ser ud til, at jeg var lidt nærsynet, da jeg sagde, at du let kunne skyde fotos af sprængende balloner. Det viser sig, at huden på den gennemsnitlige ballon bevæger sig så hurtigt, at den er sprunget helt, når dit kamera affyres. Dette er et problem med de fleste kameraer, IKKE controlleren (som registrerer ADC'en med en hastighed på omkring 120 kHz). Vejen rundt om dette er at bruge en udløst blitz, hvilket er muligt, hvis du tilføjer en ekstra ledning ud og et andet lille kredsløb. Det sagde, kunne du i teorien bruge noget andet til at pope det og lege med forsinkelsen (eller endda ændre forsinkelseskoden til at inkludere mikrosekunder). En luftpille, der kører 1m ved 150ms-1, tager ca. 6-7ms, nok tid til at udløse og skyde. Bare at flytte pistolen ville give en rudimentær forsinkelse på et par mikrosekunder s. Igen, undskyld herom, jeg skal spille om i aften, hvis jeg kan få fat i nogle balloner, men der er stadig mange anvendelser til en lydudløser, som fyrværkeri! Jeg har lagt en hurtig og beskidt time -lapse nedenfor for at vise, at det fungerer dog:) Glem ikke at læse, bedømme og/eller stemme! Skål, Josh Ansvarsfraskrivelse I det usandsynlige tilfælde, at noget går frygteligt galt, eller hvis du på en eller anden måde murrer dit kamera/dremel din kat, er jeg ikke ansvarlig for noget. Ved at starte et projekt baseret på dette instruerbare, accepterer du det og fortsætter på egen risiko. Hvis du laver et af disse, eller brug min instruktive til at hjælpe dig - send mig et link/foto, så jeg kan inkludere det her! Responsen har været overvældende indtil nu (i hvert fald efter min standard), så det ville være fantastisk at se, hvordan folk tolker det. Jeg arbejder på revision 2, mens jeg skriver;)

Trin 1: Nogle indledende tanker …

Så hvordan skal vi bygge denne ting? Mikrokontroller Hjertet og sjælen i dette projekt er en AVR ATMega8. Det er i det væsentlige en lidt trimmet version af ATMega168 -chippen, som Arduino bruger. Det er programmerbart i C eller Assembly og har en række virkelig nyttige funktioner, som vi kan bruge til vores fordel. "28 pins, hvoraf størstedelen er input/output (i/o)" Onboard analog til digital converter "Lavt strømforbrug "3 indbyggede timere" Intern eller ekstern urkilde "Masser af kodebiblioteker og prøver online Det er godt at have masser af pins. Vi kan kommunikere med en LCD -skærm, have 6 knapindgange og stadig have nok tilovers til en IR -LED til at skyde med og nogle status -LED'er. Atmel AVR -serien af processorer har meget support online, og der er masser af tutorials i at få startede (jeg vil gå kort over dette, men der er bedre dedikerede selvstudier) og masser af kode at kigge på. Til reference koder jeg dette projekt i C ved hjælp af AVR-LibC-biblioteket. Jeg kunne let have gået med PIC for at gøre dette, men AVR understøttes godt, og alle de eksempler, jeg har fundet til fjernbetjeninger, har været AVR-baserede! LCD DisplayThere er to hovedtyper af display, grafisk og alfanumerisk. Grafiske skærme har en opløsning, og du kan placere pixels, hvor du vil. Ulempen er, at de er sværere at kode for (selvom der findes biblioteker). Alfanumeriske skærme er simpelthen en eller flere tegnrækker, LCD'en har en indbygget lager af grundlæggende tegn (dvs. alfabetet, nogle tal og symboler), og det er relativt let at sende strenge og så videre. Bagsiden er, at de ikke er så fleksible, og at vise grafik er praktisk talt umuligt, men det passer til vores formål. De er også billigere! Alfanumerik er kategoriseret efter række og kolonne. 2x16 er ret almindeligt, med to rækker med 16 tegn, hvor hvert tegn er en 5x8 matrix. Du kan også få 2x20 s, men jeg kan ikke se behovet. Køb hvad du har lyst til. Jeg valgte at bruge en rød baggrundsbelyst LCD (jeg vil bruge dette til astrofotografering, og rødt lys er bedre til nattesyn). Du kan gå uden baggrundsbelysning - det er helt dit valg. Hvis du vælger en rute, der ikke er baggrundsbelyst, sparer du strøm og penge, men du har muligvis brug for en lommelygte i mørket. Når du leder efter en LCD, skal du sikre dig, at den styres af HD44780. Det er en branchestandardprotokol udviklet af Hitachi, og der er mange gode biblioteker, som vi kan bruge til at sende data. Den model, jeg købte, var en JHD162A fra eBay. InputInput foretages med knapper (enkelt!). Jeg valgte 6 - mode select, ok/shoot og 4 retninger. Det er også værd at få en anden lille knap til nulstilling af mikrofonen i tilfælde af et nedbrud. Hvad angår triggerindgangen, er nogle grundlæggende ideer en lysafhængig modstand eller en elektretmikrofon. Det er her, du kan blive kreativ eller nærig afhængigt af dit budget. Ultralydssensorer vil koste lidt mere og kræve noget ekstra programmering, men du kan gøre nogle virkelig pæne ting med dem. De fleste mennesker vil være glade for en mikrofon (sandsynligvis den mest nyttige generelle sensor) og elektroner er meget billige. Vær opmærksom på, at det også skal forstærkes (men jeg vil komme nærmere ind på dette senere). Output - Status Det eneste rigtige output, vi har brug for, er status (udover displayet), så et par lysdioder fungerer fint her. Output - Skydning Til optagelse billeder, skal vi interface med kameraet, og til det har vi brug for en lyskilde, der kan producere infrarød stråling. Heldigvis er der et væld af lysdioder, der gør dette, og du bør prøve at hente en rimelig høj effekt. Den enhed, jeg valgte, har en nuværende rating på 100mA max (de fleste lysdioder er omkring 30mA). Du skal også passe på at notere bølgelængdeudgangen. Infrarødt lys er i den længere bølgelængde del af EM-spektret, og du skal være på udkig efter en værdi på omkring 850-950nm. De fleste IR -lysdioder har tendens til 950 -enden, og du kan muligvis se lidt rødt lys, når det er tændt, dette er ikke et problem, men det er spildt spektrum, så prøv at gå tættere på 850, hvis det er muligt. det her? Nå, det kommer til at være bærbart, så batterier! Jeg valgte at bruge 2 AA -batterier, som derefter trækkes op til 5V. Jeg vil gå over begrundelsen bag dette i de næste par afsnit. 'Casing og konstruktion' Hvordan du gør dette er helt op til dig. Jeg besluttede at bruge stripboard til kredsløbet efter prototyper, fordi det er billigt og fleksibelt og sparer at designe et brugerdefineret printkort. Jeg har givet skemaerne, så du er fri til at lave dit eget PCB -layout - selvom du gør det, ville jeg være taknemmelig for at have en kopi! Igen er sagen helt dit valg, den skal kunne passe til skærmen, knapper (i et ret intuitivt layout, hvis det er muligt) og batterierne. Når kredsløbskort går, er dette ikke så kompliceret, mange forbindelser er simpelthen til ting som knapperne/LCD.

Trin 2: Strømstyring

Strømstyring
Strømstyring

Strømstyring For et projekt som dette er det indlysende, at portabilitet bør være et centralt aspekt. Batterier er således det logiske valg! Nu er det for bærbare enheder temmelig vigtigt, at du vælger en batterikilde, der enten er genopladelig eller let tilgængelig. De to hovedmuligheder er 9V PP3 -batteriet eller AA -batterier. Jeg er sikker på, at nogle mennesker vil antage, at et 9V batteri er den bedste løsning, fordi hej, 9V er bedre end 3 ikke? Nå, ikke i dette tilfælde. 9V batterier, selvom de er meget nyttige, producerer deres spænding på bekostning af batteriets levetid. Målt i mAh (milliampetid) fortæller denne rating dig i teorien, hvor længe et batteri holder ved 1 mA i timer (selvom du tager det med en knivspids salt, er disse ofte under ideelle forhold med lav belastning). Jo højere rating, jo længere holder batteriet. 9V batterier er vurderet til op til og omkring 1000mAh. Alkaliske AA'er har på den anden side næsten tre gange så meget ved 2900mAh. NiMH genopladelige kan nå dette, selvom 2500mAh er en rimelig mængde (bemærk at genopladelige batterier fungerer ved 1,2V ikke 1,5!). LCD -skærmen har brug for en 5V input (10%) og AVR (mikrokontrolleren) har stort set det samme (selvom det kan gå så lavt som 2,7 for lavfrekvente urhastigheder). Vi har også brug for en temmelig stabil spænding, hvis den svinger om det kan forårsage problemer med mikrokontrolleren. For at gøre dette skal vi bruge en spændingsregulator, du skal træffe et valg frem for pris vs effektivitet nu. Du har mulighed for at bruge en simpel 3-polet spændingsregulator som LM7805 (78-serien, +5 volt udgang) eller et lille integreret kredsløb. Brug af en simpel regulator Hvis du vælger at gå med denne mulighed, skal du bære en få punkter i tankerne. For det første har tre pin -regulatorer næsten altid brug for et input, der er højere end deres output. De træder derefter spændingen ned til den ønskede værdi. Bagsiden er, at de har en forfærdelig effektivitet (50-60% går godt). Opadrettede er, at de er billige og vil køre med et 9V batteri, du kan hente en grundlæggende model for 20 pence i Storbritannien. Du skal også huske på, at regulatorer har en frafaldsspænding - det mindste mellemrum mellem input og output. Du kan købe specielle LDO (Low DropOut) regulatorer, der har frafald på omkring 50mV (sammenlignet med 1-2V med andre designs). Med andre ord skal du kigge efter LDO'er med en +5V udgang. Brug af et integreret kredsløb Den ideelle måde at gå på er en koblingsregulator. Disse vil til vores formål normalt være 8 -benede pakker, der optager en spænding og giver os et reguleret output med en høj effektivitet - næsten 90% i nogle tilfælde. Du kan få trin op eller trin ned konvertere (henholdsvis boost/buck) afhængigt af hvad du vil putte i, alternativt kan du købe regulatorer, der vil tage enten over eller under den ønskede output. Chippen jeg bruger til dette projekt er en MAX619+. Det er en 5V step up regulator, der tager 2 AA'er (inputområdet er 2V-3.3V) og giver en stabil 5V out. Det behøver kun fire kondensatorer for at fungere og er meget pladsbesparende. Omkostninger - 3,00 inklusive hætter. Det er uden tvivl værd at sprøjte bare for at få lidt mere brug af dine batterier. Den eneste store ulempe er, at den ikke er kortslutningsbeskyttet, så hvis der er en strømstigning, skal du advares! Dette er dog rimeligt trivielt at rette med et tilføjelseskredsløb: Et andet nyttigt chipdesign - selvom LT1307 ikke er nær så pæn en løsning. Igen en 5V regulator, men den kan tage en række forskellige input og har nyttige ting som f.eks. Registrering af lavt batteri. Det koster en del mere på næsten 5 med induktorer, store kondensatorer og modstande. Spændingsskinner Vi kommer til at bruge to hovedspændingsskinner (plus en fælles jord). Den første vil være 3V fra batteriet, dette vil blive brugt til at drive lysdioderne og andre relativt kraftige komponenter. Min MAX619 er kun klassificeret op til 60mA (selvom det absolutte maksimum er 120mA), så det er lettere at tilslutte mikrokontrolleren til en MOSFET for at styre eventuelle lysdioder. MOSFET trækker næsten ingen strøm og fungerer som et brud i kredsløbet, når gateindgangen er under omkring 3V. Når mikrokontrolleren sender logisk 1 ud på stiften, er spændingen 5V, og FET tændes, så fungerer den bare som en kortslutning (dvs. et stykke ledning). 5V -skinnen vil drive LCD, mikrokontroller og eventuelle forstærkningskredsløb til Strømforbrug Hvis vi ser på forskellige datablade, bemærker vi, at AVR ikke tager mere end 15-20mA ved maksimal belastning. LCD'et tager kun 1mA at fungere (i det mindste når jeg testede, budget til 2). Med baggrundsbelysningen tændt er det virkelig op til dig at beslutte. Det er fint at forbinde det lige op til 5V -skinnen (jeg prøvede), men sørg for, at det har en indbygget modstand (følg sporene på printkortet), før du gør det. Det trak 30mA på den måde - forfærdeligt! Med en 3,3 k modstand kan den stadig ses (perfekt til astrofotografering) og trækker kun 1 mA. Du kan stadig få anstændig lysstyrke ved hjælp af en 1k eller på anden måde. Jeg har det fint med min tegning lige under 2mA med baggrundsbelysningen tændt! Hvis du vil, er det trivielt at tilføje en lysstyrkeknap ved hjælp af et 10k potentiometer. IR -LED'en kan maksimalt tage 100mA, men jeg har haft gode resultater med 60mA over mit (eksperiment!). Du kan derefter halvere denne strøm, fordi du effektivt kører med en 50% driftscyklus (når LED'en er moduleret). Anyway, den er kun tændt i en brøkdel af et sekund, så vi behøver ikke bekymre dig om dette. De andre lysdioder, du skal lege med, kan opleve, at kun en 10mA strøm er nok til at give dig en god lysstyrke - se bestemt for lysdioder med lav effekt (undtagen IR -en), designer du ikke en brænder! Jeg valgte ikke at tilføje en strømindikator i mit kredsløb, simpelthen fordi det er meget strømforbrug til ikke meget brug. Brug tænd/sluk -knappen til at kontrollere, om den er tændt! I alt bør du ikke køre mere end 30mA ad gangen og med en teoretisk forsyning på omkring 2500 (giver mulighed for variation) mAh, der skulle give dig godt 80 timer lige med alt på. Med processoren i tomgang i det meste af tiden vil dette mindst fordobles/tredobles, så du skulle ikke skulle skifte batterier særlig ofte. Du kan enten gå billigt og muntert med et 9V batteri og en LDO -regulator på bekostning af effektiviteten eller betale lidt mere og bruge en dedikeret IC til at gøre det. Mit budget var stadig under 20 selv med IC, så du kan slippe det endnu mere, hvis du har brug for det.

Trin 3: Et nærmere kig på ATmega8

Et nærmere kig på ATmega8
Et nærmere kig på ATmega8

PinsImage 1 er pinout -diagrammet for ATMega8 (nøjagtigt det samme som 168/48/88, den eneste forskel er mængden af indbygget hukommelse og afbrydelsesmuligheder). Pin 1 - Reset, skal holdes ved VCC -spænding (eller mindst logisk 1). Hvis den er jordet, nulstilles enheden Pin 2-6 - Port D, generel input/output Pin 7 - VCC, forsyningsspænding (+5V for os) Pin 8 - GroundPin 9, 10 - XTAL, eksterne urindgange (del af Port B) Pin 11 - 13 Port D, generel input/output Pin 14 - 19 Port B, generel input/output Pin 20 - AVCC, analog forsyningsspænding (samme som VCC) Pin 21 - AREF, analog spændingsreference Pin 22 - GroundPin 23-28 Port C, generel input/output Brugbare i/o -porte: D = 8, C = 6, B = 6 I alt 20 brugbare porte er fantastisk, for enkelheds skyld bør du gruppere dine output enten i porte (f.eks. D som outputport) eller i grupper på tavlen - du vil måske have LCD'et til at køre fra Port C bare for at holde ledningerne ryddelige i det hjørne. Der er tre ekstra ben, der kræves til programmering. Det er MISO (18), MOSI (17) og SCK (19). Disse vil dog med glæde fungere som i/o -pins. Clocking Signalet, som vi sender til kameraet, skal være præcist timet (nøjagtigt til omkring et mikrosekund), så det er vigtigt, at vi vælger en god urkilde. Alle AVR'er har en intern oscillator, som chippen kan få sit ur fra. Ulempen ved dette er, at de kan svinge omkring 10% med temperatur/tryk/luftfugtighed. Hvad vi kan gøre for at bekæmpe dette er at bruge en ekstern kvartskrystal. Disse fås i alt fra 32768 kHz (ur) til 20 MHz. Jeg har valgt at bruge en 4Mhz krystal, da den giver en anstændig mængde hastighed, men alligevel er temmelig strømkonservativ i forhold til måske 8Mhz+. Onboard Power ManagementJeg ville virkelig bruge søvnrutiner i min kode. Faktisk skrev jeg den første version til at stole stærkt på tomgang på processoren, mens tiden faldt. Uheldigvis stødte jeg på grund af tidsbegrænsninger i nogle problemer med at køre uret eksternt og afbryde brugen af timerne. I det væsentlige skulle jeg omskrive koden for at håndtere controlleren, der simpelthen ikke vågner - hvilket jeg kunne gøre, men tiden er imod mig. Som sådan tegner enheden kun 20mA ish, så du kan slippe af sted med den. Hvis du virkelig er klar til det, så skal du for alle midler pille med koden, alt hvad du skal gøre er at clock internt og derefter køre Timer 2 i asynkron tilstand ved hjælp af 4MHz krystal for de mere præcise forsinkelser. Det er enkelt at gøre, men tidskrævende. ADC Den schweiziske hærkniv i AVR -værktøjssættet, ADC står for Analog to Digital Converter. Hvordan det fungerer, er relativt enkelt udefra. En spænding samples på en pin (fra en sensor eller anden indgang), spændingen bliver konverteret til en digital værdi mellem 0 og 1024. En værdi på 1024 vil blive observeret, når indgangsspændingen er lig med ADC -referencespændingen. Hvis vi angiver vores reference til VCC (+5V), så er hver division 5/1024 V eller omkring 5mV. Således vil en stigning på 5mV på stiften øge ADC -værdien med 1. Vi kan tage ADC -outputværdien som en variabel og derefter rode med den, sammenligne den med ting osv. I koden. ADC er en utrolig nyttig funktion og giver dig mulighed for at gøre mange fede ting som at gøre din AVR til et oscilloskop. Samplingsfrekvensen er omkring 125 kHz og skal indstilles i forhold til hovedurfrekvensen. Registreringer Du har måske hørt om registre før, men frygt ikke! Et register er simpelthen en samling adresser (steder) i AVR -hukommelsen. Registre klassificeres efter deres bitstørrelse. Et 7 -bit register har 8 placeringer, da vi starter fra 0. Der er registre for stort set alt, og vi kigger nærmere på dem senere. Nogle eksempler inkluderer PORTx -registre (hvor x er B, C eller D), der styrer, om en pin er sat højt eller lavt og sætter pull -up -modstande til input, DDRx -registre, der angiver, om en pin er output eller input og så videre. Databladet En masse litteratur, der vejer omkring 400 sider; AVR -databladene er en uvurderlig reference til din processor. De indeholder detaljer om hvert register, hver pin, hvordan timere fungerer, hvilke sikringer der skal indstilles til hvad og meget mere. De er gratis, og du får brug for det før eller siden, så download en kopi! Www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

Trin 4: Tildeling af stifter

Tildeling af stifter
Tildeling af stifter

Jeg har allerede nævnt de input og output, vi har brug for, så vi bør tildele dem pins! Nu har PORT D 8 pins, hvilket er praktisk, da det kan fungere som vores outputport. LCD -skærmen kræver 7 ben til at fungere - 4 datapinde og 3 styrepinde. IR -LED'en kræver kun en pin, så det udgør vores 8. PORTB bliver vores knapport, den har 6 indgange, men vi skal kun bruge 5. Disse vil være tilstands- og retningsknapperne. PORTC er specielt, det er ADC -porten. Vi har kun brug for en pin til triggerindgangen, og det er fornuftigt at sætte det på PC0 (en almindelig forkortelse for port pins i dette tilfælde Port C, Pin 0). Vi har derefter et par ben til status -LED'er (den ene lyser, når ADC -værdien er over en tilstand, den anden lyser, når den er under en tilstand). Vi vil også lægge vores ok/skyde -knapindgang her af grunde, der vil blive klar senere. Efter alt dette har vi brugt de fleste havne op, men vi har stadig et par tilbage, hvis du ønsker at udvide projektet - måske flere udløsere?

Trin 5: Kommunikation med kameraet

Kommunikation med kameraet
Kommunikation med kameraet
Kommunikation med kameraet
Kommunikation med kameraet

Første præmie i de digitale dage fotokonkurrence

Anbefalede: