Sommario:

Costruisci il tuo controller per fotocamera wireless multifunzione (economico!): 22 passaggi (con immagini)
Costruisci il tuo controller per fotocamera wireless multifunzione (economico!): 22 passaggi (con immagini)

Video: Costruisci il tuo controller per fotocamera wireless multifunzione (economico!): 22 passaggi (con immagini)

Video: Costruisci il tuo controller per fotocamera wireless multifunzione (economico!): 22 passaggi (con immagini)
Video: 😠Ha i Cavi?? PS5 PRO MINI LIMITED EDITION!! 2024, Dicembre
Anonim
Costruisci il tuo controller per fotocamera wireless multifunzione (economico!)
Costruisci il tuo controller per fotocamera wireless multifunzione (economico!)
Costruisci il tuo controller per fotocamera wireless multifunzione (economico!)
Costruisci il tuo controller per fotocamera wireless multifunzione (economico!)
Costruisci il tuo controller per fotocamera wireless multifunzione (economico!)
Costruisci il tuo controller per fotocamera wireless multifunzione (economico!)

Introduzione Hai mai immaginato di costruire il tuo controller della fotocamera? NOTA IMPORTANTE: i condensatori per il MAX619 sono 470n o 0.47u. Lo schema è corretto, ma l'elenco dei componenti era sbagliato - aggiornato. Questa è una partecipazione al concorso Digital Days, quindi se lo trovi utile, valuta/vota/commenta favorevolmente! Se ti piace davvero e sei uno che inciampa, premi "mi piace!":) Aggiornamento: in evidenza su hackaday! hackaday.com/2009/10/13/a-different-breed-of-camera-controllers/ Aggiornamento: nuove foto del grilletto laser in azione! Aggiornamento: Primo Premio =D, grazie per il voto e/o la valutazione! Questa istruzione è principalmente a beneficio degli utenti SLR che cercano di ottenere un po' più di distanza dalle loro fotocamere, tuttavia se ci sono punti e scatti con interfacce IR, potresti trovarlo interessante. Certamente questo funzionerà anche (con una piccola modifica) con gli hack della fotocamera in cui è possibile collegare le uscite logiche ai terminali di attivazione della fotocamera. Questo è iniziato come un tutorial completo, ma a causa di alcuni vincoli imprevisti che ho incontrato in seguito, potrebbe essere più una guida su come realizzare varie cose - spesso ti lascio la scelta su come potresti fare cose che Penso che sia un modo migliore di fare le cose che dire ciecamente "devi farlo". Pensa a questo come a una lezione sul design del controller della fotocamera. Ho fornito schemi e codice completo in modo che tu possa sempre copiarlo. Sarà un semplice caso di trasferimento del design su uno stripboard e l'aggiunta del display LCD per la maggior parte delle persone. Ho esaminato come eseguire il breadboard poiché il processo è molto simile e consente di correggere gli errori prima di rendere permanente il design! Caratteristiche: Modalità scatto singolo Modalità intervallo (time lapse) Modalità scatto attivato (trigger da sensore esterno) con condizioni variabili Design dei sensori inclusi: luce, suono (molti altri possibili!) Costo totale: meno di £ 25 (strumenti esclusi) Display LCD per una facile modifica delle impostazioni Compatibile con Nikon/Canon (codificato), potenziale supporto (non testato) per Olympus/Pentax Nessun firmware modifica necessaria Utilizza l'IR, quindi è wireless e non danneggia la fotocamera Ho avuto l'idea per questo dopo essermi seduto fuori al freddo facendo clic sul telecomando per ore. Stavo facendo un intervallo di 8 secondi per circa 1000 scatti. Ho pensato, ehi, è solo un LED IR, vero? Perché non posso replicarlo e creare il mio telecomando con un ritardo integrato? Poi ho scoperto (un po' imbarazzato, perché pensavo di aver avuto un'onda cerebrale enorme) che questo è stato fatto e ci sono anche un paio di istruzioni sull'argomento. Laddove la mia implementazione differisce dalla maggior parte degli intervallimetri e dei telecomandi fai da te è che consente molta personalizzazione e modularità, è compatibile sia con Nikon/Canon (e probabilmente con altri in seguito) e combina la capacità di scattare una foto su un particolare trigger. L'idea è semplice. Vuoi scattare una foto di qualcosa di abbastanza veloce (attualmente limitato dal ritardo dell'otturatore, per me 6 ms). Ci sono una varietà di metodi per fare questo: 1. Prove ed errori: provi a scattare la foto al momento giusto 2. Migliori prove ed errori: oscura la stanza, metti la fotocamera sulla lampadina (otturatore aperto) e fai scattare un flash al momento giusto 3. Acquista un controller trigger dedicato che ha una sorta di sensore audio/luce per scattare la foto al tuo comando 4. Costruiscine uno tu stesso! Ok, 1 e 2 vanno bene per scherzare e possono produrre alcune immagini molto buone. Ma quello che sto per mostrarti è che è possibile costruire un circuito che ti darà risultati coerenti più e più volte. Soprattutto, in questi tempi stretti, il costo è inferiore rispetto ai modelli alternativi (alcune persone hanno prodotto kit che fanno questo genere di cose, ma costano una fortuna vedi link). La versatilità del design è questa: se il tuo sensore genera una tensione di uscita tra 0 e 5V, puoi usarlo per attivare la tua fotocamera! A prima vista questa è un'affermazione noiosa, ma una volta che inizi a capire le implicazioni diventa molto potente. Monitorando semplicemente un livello di tensione, il trigger potrebbe essere basato sulla luce (LDR), basato sul suono (microfono o ultrasuoni), basato sulla temperatura (termistore) o anche un semplice potenziometro. In effetti, praticamente qualsiasi cosa. Potresti anche collegare il circuito a un altro controller e a condizione che possa darti un output logico, quindi puoi attivare da esso. L'unica grande limitazione del design attualmente è che funziona solo con interfacce IR, sarebbe abbastanza semplice modificare il software e l'hardware per l'output tramite mini-USB o qualsiasi tipo di interfaccia richiesta. Nota: codice sorgente: ho fornito alcune applicazioni nel passaggio 13. Il codice che eseguo sul mio controller al momento è in un file esadecimale insieme al file c principale e alle sue dipendenze. Puoi semplicemente eseguire il mio codice se non sei sicuro della compilazione. Ho anche incluso del codice di esempio che puoi utilizzare in vari passaggi (sono chiamati ovviamente come remote_test, test dell'intervallometro e test adc. Se mi riferisco al codice in un passaggio, è probabile che sia lì. EDIT: un aggiornamento su palloncini che scoppiano - sembra che fossi un po' miope quando ho detto che potevi facilmente scattare foto di palloncini che scoppiano. Si scopre che la pelle del palloncino medio viaggia così velocemente che sarà scoppiata completamente quando la fotocamera si accende. è un problema con la maggior parte delle fotocamere, NON con il controller (che rileva l'ADC a una velocità di circa 120kHz). Il modo per aggirare questo problema è utilizzare un flash attivato, cosa fattibile se si aggiunge un cavo extra e un altro piccolo circuito. detto, in teoria potresti usare qualcos'altro per farlo scoppiare e giocare con il ritardo (o anche cambiare il codice di ritardo per includere i microsecondi). Una pallina d'aria che viaggia 1m a 150ms-1 impiega circa 6-7ms, tempo sufficiente per innescarsi e sparare Il solo movimento della pistola fornirebbe un ritardo rudimentale di pochi microsecondi S. Di nuovo, mi scuso per questo, stasera giocherò su se riesco a procurarmi dei palloncini, ma ci sono ancora molti usi per un trigger audio, come i fuochi d'artificio! Ho messo un lasso di tempo veloce e sporco di seguito per dimostrare che funziona comunque:) Non dimenticare di leggere, votare e/o votare! Saluti, JoshDisclaimer Nell'improbabile eventualità che qualcosa vada terribilmente storto o che in qualche modo blocchi la tua macchina fotografica/dremel il tuo gatto, non sono responsabile di nulla. Avviando un progetto basato su questo istruibile, lo accetti e continui a tuo rischio. Se ne fai uno o usi il mio istruibile per aiutarti, per favore mandami un link/foto così posso includerlo qui! La risposta è stata travolgente finora (almeno per i miei standard), quindi sarebbe fantastico vedere come le persone lo interpretano. Sto lavorando alla revisione 2 mentre scrivo;)

Passaggio 1: alcuni pensieri iniziali…

Quindi, come costruiremo questa cosa?MicrocontrolloreIl cuore e l'anima di questo progetto è un AVR ATMega8. È essenzialmente una versione leggermente ridotta del chip ATMega168 utilizzato da Arduino. È programmabile in C o Assembly e ha una varietà di funzioni davvero utili che possiamo usare a nostro vantaggio." 28 pin, la maggior parte dei quali sono input/output (i/o)" Convertitore da analogico a digitale integrato" Basso consumo energetico " 3 timer integrati " Sorgente di clock interna o esterna " Molte librerie di codici e campioni online Avere molti pin è positivo. Possiamo interfacciarci con uno schermo LCD, avere 6 ingressi per pulsanti e avere ancora abbastanza spazio per un LED IR con cui scattare e alcuni LED di stato. La serie di processori Atmel AVR ha molto supporto online e ci sono molti tutorial per ottenere iniziato (ne parlerò brevemente, ma ci sono tutorial dedicati migliori) e un mucchio di codice su cui rimuginare. Per riferimento, codificherò questo progetto in C usando la libreria AVR-LibC. Avrei potuto facilmente andare con PIC per farlo, ma AVR è ben supportato e tutti gli esempi che ho trovato per i telecomandi sono stati basati su AVR!Display LCDQui sono due principali tipologie di display, grafico e alfanumerico. I display grafici hanno una risoluzione e puoi mettere i pixel dove vuoi. Lo svantaggio è che sono più difficili da codificare (sebbene esistano librerie). I display alfanumerici sono semplicemente una o più righe di caratteri, il display LCD ha una memoria interna di caratteri di base (cioè l'alfabeto, alcuni numeri e simboli) ed è relativamente facile produrre stringhe e così via. Il rovescio della medaglia è che non sono così flessibili e la visualizzazione della grafica è praticamente impossibile, ma si adatta al nostro scopo. Sono anche più economici! Gli alfanumerici sono classificati in base al numero di righe e colonne. Il 2x16 è piuttosto comune, con due righe di 16 caratteri, ogni carattere è una matrice 5x8. Puoi anche ottenere 2x20 s, ma non ne vedo la necessità. Acquista quello con cui ti senti a tuo agio. Ho scelto di utilizzare un LCD retroilluminato rosso (lo voglio usare per l'astrofotografia e la luce rossa è migliore per la visione notturna). Puoi andare senza retroilluminazione: è interamente una tua scelta. Se scegli un percorso non retroilluminato risparmierai energia e denaro, ma potresti aver bisogno di una torcia al buio. Quando cerchi un LCD, dovresti assicurarti che sia controllato dall'HD44780. È un protocollo standard del settore sviluppato da Hitachi e ci sono molte buone librerie che possiamo usare per l'output dei dati. Il modello che ho comprato era un JHD162A da eBay. InputInput sarà fatto da pulsanti (semplice!). Ho scelto 6 modalità di selezione, ok/scatto e 4 direzioni. Vale anche la pena prendere un altro piccolo pulsante per resettare il micro in caso di crash. Per quanto riguarda l'ingresso trigger, alcune idee di base sono un resistore dipendente dalla luce o un microfono electret. È qui che puoi diventare creativo o avaro a seconda del tuo budget. I sensori a ultrasuoni costeranno un po' di più e richiederanno una programmazione extra, ma puoi fare cose davvero belle con loro. La maggior parte delle persone sarà felice con un microfono (probabilmente il sensore generale più utile) e gli elettreti sono molto economici. Tieni presente che anche questo dovrà essere amplificato (ma ne parlerò più avanti). Output - Stato L'unico vero output di cui abbiamo bisogno è lo stato (oltre al display), quindi un paio di LED funzioneranno bene qui. Output - Scatto Per prendere immagini, abbiamo bisogno di interfacciarci con la fotocamera e per questo abbiamo bisogno di una fonte di luce in grado di produrre radiazioni infrarosse. Per fortuna ci sono una moltitudine di LED che lo fanno e dovresti provare a prenderne uno di potenza ragionevolmente alta. L'unità che ho scelto ha una corrente nominale di 100 mA max (la maggior parte dei LED sono circa 30 mA). Dovresti anche prestare attenzione a notare la lunghezza d'onda in uscita. La luce infrarossa si trova nella parte della lunghezza d'onda più lunga dello spettro EM e dovresti cercare un valore di circa 850-950 nm. La maggior parte dei LED IR tende verso l'estremità 950 e potresti vedere un po' di luce rossa quando è acceso, questo non è un problema, ma è uno spettro sprecato, quindi prova ad avvicinarti a 850 se possibile. questo? Bene, sarà portatile, quindi le batterie! Ho scelto di utilizzare 2 batterie AA che sono poi aumentate a 5V. Esaminerò il ragionamento alla base di questo nelle prossime sezioni.'Involucro e costruzione'Il modo in cui esegui questa parte dipende interamente da te. Ho deciso di utilizzare lo stripboard per il circuito dopo la prototipazione perché è economico e flessibile e consente di risparmiare la progettazione di un PCB personalizzato. Ho fornito gli schemi in modo che tu sia libero di creare il tuo layout PCB - anche se se lo fai, sarei grato di averne una copia! Anche in questo caso il caso è interamente una tua scelta, deve essere in grado di adattarsi allo schermo, ai pulsanti (in un layout abbastanza intuitivo, se possibile) e le batterie. Per quanto riguarda i circuiti stampati, questo non è così complicato, molte delle connessioni sono semplicemente per cose come i pulsanti/LCD.

Passaggio 2: gestione dell'alimentazione

Gestione energetica
Gestione energetica

Power Management Per un progetto come questo è ovvio che la portabilità dovrebbe essere un aspetto chiave. Le batterie sono quindi la scelta logica! Ora, per i dispositivi portatili è abbastanza importante scegliere una fonte di batteria che sia ricaricabile o facilmente disponibile. Le due opzioni principali sono la batteria PP3 da 9V o le batterie AA. Sono sicuro che alcune persone penseranno che una batteria da 9 V sia l'opzione migliore perché, ehi, 9 V è meglio di 3, giusto? Beh, non in questo caso. Le batterie da 9V, sebbene molto utili, producono la loro tensione a scapito della durata della batteria. Misurata in mAh (milliamp ore), questa valutazione ti dice in teoria quanto tempo una batteria durerà a 1 mA in ore (anche se prendilo con un pizzico di sale, queste sono spesso in condizioni ideali, a basso carico). Più alto è il rating, più a lungo durerà la batteria. Le batterie da 9 V sono classificate fino a circa 1000 mAh. Gli AA alcalini, d'altra parte, hanno quasi tre volte tanto a 2900 mAh. Le batterie ricaricabili NiMH possono raggiungere questo obiettivo, anche se 2500 mAh è una quantità ragionevole (nota che le batterie ricaricabili funzionano a 1,2 V e non 1,5!). anche se può arrivare fino a 2,7 per velocità di clock a bassa frequenza). Abbiamo anche bisogno di una tensione abbastanza stabile, se fluttua su di essa potrebbe causare problemi con il microcontrollore. Per fare questo useremo un regolatore di tensione, devi fare una scelta sul prezzo rispetto all'efficienza ora. Hai la possibilità di utilizzare un semplice regolatore di tensione a 3 pin come l'LM7805 (serie 78, uscita +5 volt) o un piccolo circuito integrato. Uso di un semplice regolatoreSe scegli di utilizzare questa opzione, devi sopportare un pochi punti in mente. In primo luogo, i regolatori a tre pin richiedono quasi sempre un ingresso superiore alla loro uscita. Quindi abbassano la tensione al valore desiderato. Il rovescio della medaglia è che hanno un'efficienza terribile (il 50-60% va bene). Il vantaggio è che sono economici e funzionano con una batteria da 9 V, puoi acquistare un modello base per 20 pence nel Regno Unito. Dovresti anche tenere a mente che i regolatori hanno una tensione di dropout, il divario minimo tra ingresso e uscita. È possibile acquistare regolatori LDO (Low DropOut) speciali che hanno dropout a circa 50 mV (rispetto a 1-2 V con altri modelli). In altre parole, cerca gli LDO con un'uscita +5V. Usare un circuito integratoLa soluzione ideale è un regolatore a commutazione. Questi saranno, per il nostro scopo, normalmente pacchetti a 8 pin che assorbono una tensione e ci danno un'uscita regolata ad alta efficienza - quasi il 90% in alcuni casi. È possibile ottenere convertitori step up o step down (rispettivamente boost/buck) a seconda di ciò che si desidera inserire, in alternativa è possibile acquistare regolatori che porteranno al di sopra o al di sotto dell'output desiderato. Il chip che sto usando per questo progetto è un MAX619+. È un regolatore step-up da 5 V che richiede 2 AA (l'intervallo di ingresso è 2 V-3,3 V) e fornisce un'uscita costante di 5 V. Ha bisogno solo di quattro condensatori per funzionare ed è molto efficiente in termini di spazio. Costo - 3.00 compreso i cappucci. Probabilmente vale la pena spendere solo per sfruttare un po' di più le batterie. L'unico grande svantaggio è che non è protetto da cortocircuito, quindi se c'è un aumento di corrente, stai attento! Tuttavia, questo è ragionevolmente banale da risolvere con un circuito aggiuntivo: un altro utile design del chip, anche se non è una soluzione altrettanto accurata è l'LT1307. Ancora una volta, un regolatore da 5 V, ma può accettare una varietà di ingressi e ha cose utili come il rilevamento della batteria scarica. Costa un po' di più a circa 5 con induttori, grandi condensatori e resistori. Linee di tensione Utilizzeremo due linee di tensione principali (più una massa comune). Il primo sarà il 3V della batteria, questo verrà utilizzato per alimentare i LED e altri componenti di potenza relativamente elevata. Il mio MAX619 è valutato solo fino a 60 mA (sebbene il massimo assoluto sia 120 mA), quindi è più facile collegare il microcontrollore a un MOSFET per controllare qualsiasi LED. Il MOSFET non assorbe quasi corrente e agisce come un'interruzione nel circuito quando l'ingresso del gate è inferiore a circa 3V. Quando il microcontrollore invia 1 logico sul pin, la tensione è 5V e il FET si accende, quindi agisce solo come un cortocircuito (cioè un pezzo di filo). Il binario 5V alimenterà l'LCD, il microcontrollore e qualsiasi circuito di amplificazione per sensori di ingresso. Consumo energetico Se guardiamo a varie schede tecniche, notiamo che l'AVR non richiede più di 15-20 mA al massimo carico. Il display LCD richiede solo 1 mA per funzionare (almeno quando l'ho testato, budget per 2). Con la retroilluminazione accesa, sta a te decidere. Collegarlo direttamente al binario 5V (ho provato) va bene, ma assicurati che abbia un resistore integrato (segui le tracce sul PCB) prima di farlo. Ha assorbito 30 mA in quel modo - terribile! Con un resistore da 3,3 k è ancora visibile (perfetto per la fotografia astronomica) e assorbe solo 1 mA. Puoi comunque ottenere una luminosità decente usando un 1k o altro. Sto bene con il mio disegno appena sotto i 2 mA con la retroilluminazione accesa! Se vuoi, è banale aggiungere una manopola della luminosità usando un potenziometro da 10k. Il LED IR potrebbe richiedere un massimo di 100 mA, ma ho avuto buoni risultati con 60 mA sul mio (esperimento!). Puoi quindi dimezzare quella corrente perché stai effettivamente funzionando a un ciclo di lavoro del 50% (quando il LED è modulato). Ad ogni modo, è acceso solo per una frazione di secondo, quindi non dobbiamo preoccuparci di questo. Gli altri LED con cui dovresti giocare, potresti scoprire che solo una corrente di 10 mA è sufficiente per darti una buona luminosità - certamente guarda per LED a bassa potenza (escluso quello IR), non stai progettando una torcia! Ho scelto di non aggiungere un indicatore di alimentazione nel mio circuito, semplicemente perché richiede molta corrente per non molto uso. Usa l'interruttore on/off per verificare se è acceso! In totale, non dovresti eseguire più di 30 mA alla volta e con una fornitura teorica di circa 2500 mAh (consentendo la variazione) che dovrebbe darti ben oltre 80 ore dritto con tutto addosso. Con il processore inattivo per la maggior parte del tempo, questo raddoppierà/triplicherà almeno, quindi non dovresti cambiare le batterie molto spesso. Conclusione Ci siamo, è stato facile non è vero! Puoi andare a buon mercato e allegro con una batteria da 9 V e un regolatore LDO a scapito dell'efficienza o pagare un po' di più e utilizzare un IC dedicato per farlo. Il mio budget era ancora inferiore a 20 anche CON l'IC, quindi puoi abbassarlo ulteriormente se necessario.

Passaggio 3: uno sguardo più da vicino all'ATmega8

Uno sguardo più da vicino all'ATmega8
Uno sguardo più da vicino all'ATmega8

PinsImage 1 è il diagramma di pinout per ATMega8 (esattamente lo stesso del 168/48/88, l'unica differenza è la quantità di memoria a bordo e le opzioni di interrupt). Pin 1 - Reset, dovrebbe essere tenuto a tensione VCC (o almeno logico 1). Se messo a terra, il dispositivo eseguirà il soft-reset Pin 2-6 - Porta D, ingresso/uscita generale Pin 7 - VCC, tensione di alimentazione (+5 V per noi) Pin 8 - Ground Pin 9, 10 - XTAL, ingressi di clock esterni (parte della porta B)Pin 11 - 13 Porta D, ingresso/uscita generalePin 14 - 19 Porta B, ingresso/uscita generalePin 20 - AVCC, tensione di alimentazione analogica (uguale a VCC)Pin 21 - AREF, riferimento tensione analogicaPin 22 - TerraPin 23-28 Porta C, ingresso/uscita generale Porte i/o utilizzabili: D = 8, C = 6, B = 6 Un totale di 20 porte utilizzabili è ottimo, per semplicità dovresti raggruppare le tue uscite in porte (ad esempio, D come porta di uscita) o in gruppi sulla scheda: potresti volere che il display LCD si sposti dalla porta C solo per mantenere i fili in ordine in quell'angolo. Ci sono tre pin aggiuntivi necessari per la programmazione. Questi sono MISO (18), MOSI (17) e SCK(19). Tuttavia, se necessario, questi agiranno felicemente come pin i/o. Clock Il segnale che inviamo alla telecamera deve essere sincronizzato con precisione (preciso a circa un microsecondo), quindi è importante scegliere una buona sorgente di clock. Tutti gli AVR hanno un oscillatore interno da cui il chip può ottenere il suo clock. Lo svantaggio di questo è che possono fluttuare intorno al 10% con temperatura/pressione/umidità. Quello che possiamo fare per combattere questo è usare un cristallo di quarzo esterno. Questi sono disponibili in qualsiasi cosa, da 32768kHz (orologio) a 20MHz. Ho scelto di utilizzare un cristallo da 4 Mhz in quanto fornisce una discreta quantità di velocità, ma è abbastanza conservativo in termini di potenza rispetto forse a 8 Mhz +. Gestione dell'alimentazione a bordo Volevo davvero usare le routine di sospensione nel mio codice. In effetti ho scritto la prima versione per fare molto affidamento sull'inattività del processore durante il time lapse. Sfortunatamente, a causa dei limiti di tempo, ho riscontrato alcuni problemi con l'esecuzione dell'orologio esternamente e l'interruzione dell'uso dei timer. In sostanza, dovrei riscrivere il codice per gestire il controller semplicemente che non si sveglia - cosa che potrei fare, ma il tempo è contro di me. In quanto tale, il dispositivo assorbe solo 20 mA ish, quindi puoi farla franca. Se sei davvero pronto, quindi giocherellare con il codice, tutto ciò che devi fare è sincronizzare internamente e quindi eseguire Timer 2 in modalità asincrona utilizzando il cristallo a 4 MHz per i ritardi più accurati. È semplice da fare, ma richiede tempo. ADCIl coltellino svizzero nel set di strumenti AVR, l'ADC è l'acronimo di Analogue to Digital Converter. Come funziona è relativamente semplice dall'esterno. Viene campionata una tensione su un pin (da qualche sensore o altro ingresso), la tensione viene convertita in un valore digitale compreso tra 0 e 1024. Si osserverà un valore di 1024 quando la tensione di ingresso è uguale alla tensione di riferimento dell'ADC. Se impostiamo il nostro riferimento su VCC (+5V), allora ogni divisione è 5/1024 V o circa 5mV. Pertanto, un aumento di 5 mV sul pin aumenterà il valore ADC di 1. Possiamo prendere il valore di uscita ADC come variabile e quindi giocherellare con esso, confrontarlo con le cose, ecc. nel codice. L'ADC è una funzione incredibilmente utile e ti consente di fare molte cose interessanti come trasformare il tuo AVR in un oscilloscopio. La frequenza di campionamento è di circa 125kHz e deve essere impostata in proporzione alla frequenza di clock principale. Registri Potresti aver sentito parlare di registri prima, ma non temere! Un registro è semplicemente una raccolta di indirizzi (locazioni) nella memoria dell'AVR. I registri sono classificati in base alla loro dimensione in bit. Un registro a 7 bit ha 8 locazioni, poiché si parte da 0. Ci sono registri per quasi tutto e li esamineremo più in dettaglio in seguito. Alcuni esempi includono i registri PORTx (dove x è B, C o D) che controllano se un pin è impostato su alto o basso e imposta resistori di pull-up per gli ingressi, i registri DDRx che impostano se un pin è in uscita o in ingresso e così via. The DatasheetUn colosso della letteratura, con un peso di circa 400 pagine; i datasheet dell'AVR sono un prezioso riferimento per il vostro processore. Contengono i dettagli di ogni registro, ogni pin, come funzionano i timer, quali fusibili dovrebbero essere impostati su cosa e molto altro. Sono gratuiti e prima o poi ti serviranno, quindi scaricane una copia! www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

Passaggio 4: assegnazione dei pin

Assegnazione dei Pin
Assegnazione dei Pin

Ho già menzionato gli ingressi e le uscite di cui abbiamo bisogno, quindi dovremmo assegnare loro i pin! Ora, PORT D ha 8 pin, il che è conveniente in quanto può fungere da porta di uscita. Il display LCD richiede 7 pin per funzionare: 4 pin dati e 3 pin di controllo. Il LED IR richiede solo un pin, quindi il nostro 8. PORTB sarà la nostra porta pulsante, ha 6 ingressi, ma ne avremo bisogno solo 5. Questi saranno i pulsanti di modalità e direzionali. PORTC è speciale, è la porta ADC. Abbiamo solo bisogno di un pin per l'ingresso trigger e ha senso metterlo su PC0 (un'abbreviazione comune per i pin delle porte in questo caso Port C, Pin 0). Abbiamo quindi un paio di pin per i LED di stato (uno si accende quando il valore ADC è al di sopra di alcune condizioni, l'altro si accende quando è al di sotto di alcune condizioni). Metteremo anche qui il nostro input del pulsante ok/shoot, per ragioni che risulteranno chiare in seguito. Dopo tutto questo, abbiamo esaurito la maggior parte delle porte ma ne abbiamo ancora alcune se desideri espandere il progetto - forse più trigger?

Passaggio 5: comunicazione con la fotocamera

Comunicare con la fotocamera
Comunicare con la fotocamera
Comunicare con la fotocamera
Comunicare con la fotocamera

Primo Premio al Digital Days Photo Contest

Consigliato: