Sommario:

Registrazione/riproduzione/sovraincisione MIDI con connessioni a 5 pin: 3 passaggi
Registrazione/riproduzione/sovraincisione MIDI con connessioni a 5 pin: 3 passaggi

Video: Registrazione/riproduzione/sovraincisione MIDI con connessioni a 5 pin: 3 passaggi

Video: Registrazione/riproduzione/sovraincisione MIDI con connessioni a 5 pin: 3 passaggi
Video: FOOTSWITCH FOR GARAGEBAND and BOSS RC505 -CHEAPEST MIDI BLUETOOTH CONTROLLER M-VAVE CUVAVE CHOCOLATE 2024, Dicembre
Anonim
Registrazione/riproduzione/sovraincisione MIDI con connessioni a 5 pin
Registrazione/riproduzione/sovraincisione MIDI con connessioni a 5 pin

* Utilizza un chip ATMega-1284 funzionante a 8 MHz, con 4 kByte di RAM e 4 kByte di eeprom

* Utilizza i vecchi connettori DIN a 5 pin

* Consente la registrazione e la riproduzione, oltre alla sovraincisione: registra insieme a qualcosa che hai registrato in precedenza.

* Menù completo

* Possibilità di nominare e memorizzare un file in eeprom

* Tempi e tempi in chiave modificabili

* Quantizzazione rudimentale

Utilità* Proof of concept: potresti trovare questo progetto impegnativo.

Cosa include questo tutorial:

* Elenco delle parti

* Report del progetto (allegato a questo pannello)

Contiene molte informazioni che devi sapere sul progetto

* Link al codice C su GitHub

github.com/sugarvillela/ATMega1284

* Istruzioni passo passo per costruire il progetto e adattare il codice

Passaggio 1: elenco delle parti

Elenco delle parti
Elenco delle parti

Alcune parti le ho prese a scuola con uno sconto. Alcuni li ho presi in un negozio e li ho pagati troppo. Se hai tempo, scarica tutto questo online.

1 tagliere, qualsiasi modello, delle stesse dimensioni di quello nella foto introduttiva, $ 20

1 Microprocessore, modello ATMega1284, $5

Questo è un chip versatile con grandi caratteristiche. Trovi la scheda tecnica qui:

ww1.microchip.com/downloads/en/devicedoc/atmel-42718-atmega1284_datasheet.pdf

1 alimentatore da 5 Volt

1 ATMEL-ICE

Questa è l'interfaccia tra il computer e il microprocessore. È inoltre necessario un software di modifica del codice (un IDE) e un compilatore in grado di eseguire la compilazione incrociata del C nell'architettura del chip ATMega. Atmel fornisce un ambiente, Atmel Studio, che soddisfa questi requisiti. Scaricalo qui:

1 fotoaccoppiatore, modello 6N138 o equivalente, $ 5

Questo è per l'input; lo standard midi richiede che i dispositivi siano isolati l'uno dall'altro per evitare loop di massa. Ho usato il chip equivalente NEC con la stessa disposizione dei pin. Vedi la foto sopra per informazioni o semplicemente google '6n138 pinout'. Se utilizzi un modello con diverse assegnazioni dei pin, trova i pin corrispondenti (con attenzione).

2 schermi LCD, modello 1602A1, $ 3 ciascuno

Ho usato display 2*16, il che significa che hanno 2 righe, ciascuna larga 16 caratteri. Il codice è scritto appositamente per questi, quindi prova a usare gli stessi. I collegamenti sono: 8 linee dati e 2 linee di controllo. È possibile condividere le linee dati tra i due schermi, ma sono necessarie 2 linee di controllo per ciascuno, per un totale di 4 linee di controllo. Il mio progetto utilizza il bus C per le linee dati LCD e il nibble superiore del bus D per le linee di controllo. Se colleghi il tuo in modo diverso, cambia i bus di uscita nel tuo codice.

1 altoparlante

Per l'uscita del metronomo; qualsiasi oratore andrà bene. Gli alimenterai onde quadre da 3-5 volt, quindi non ha bisogno di suonare bene. Puoi anche collegarti a un amplificatore esterno.

1 Condensatore, per ammorbidire l'uscita dell'onda quadra all'altoparlante

2 connettori DIN a 5 pin, maschio o femmina

Ho usato cavi maschi e li ho cablati alla scheda. Per una soluzione più elegante, usa connettori femmina e collega i cavi maschio ad altri dispositivi. (Ricorda che i numeri dei pin sono all'indietro a seconda di come guardi il connettore!)

Resistori, 180-330 Ohm, 1k-10kOhm

Potrebbe essere necessario sperimentare i valori dei resistori per fare in modo che l'accoppiatore ottico tenga traccia dell'ingresso abbastanza rapidamente

LED

Il design richiede un diodo attraverso l'ingresso dell'isolatore ottico, ma un LED lo farà. Usa un LED per il metronomo, per lampeggiare a tempo con l'altoparlante che suona. Tieni più LED a portata di mano per il debug dell'output se ne hai bisogno.

Fili, tanti fili

Calibro 20-22, fili pieni, lunghi, corti e minuscoli.

Passaggio 2: codice C

Vai su github per ottenere il codice:

* Assicurati di leggere e comprendere il codice perché potresti doverlo modificare per adattarlo a hardware diverso.

* Il report del progetto nel pannello introduttivo contiene descrizioni dettagliate dei moduli software e di come interagiscono.

* Nessun copia-incolla. Interagire con il codice; sperimentare; riscrivere. Probabilmente puoi migliorarlo.

Passaggio 3: cablaggio iniziale (fare riferimento alla foto del progetto per indicazioni)

Cablaggio iniziale (fare riferimento alla foto del progetto per indicazioni)
Cablaggio iniziale (fare riferimento alla foto del progetto per indicazioni)
Cablaggio iniziale (fare riferimento alla foto del progetto per indicazioni)
Cablaggio iniziale (fare riferimento alla foto del progetto per indicazioni)

Note sulla foto del progetto prima di iniziare

Nella foto l'accoppiatore ottico è l'ultimo chip a destra e il processore è il chip più grande a sinistra.

Noterai altri due chip in mezzo con un mucchio di resistori collegati. Ignorali per favore. Questi sono registri a scorrimento, che non vengono utilizzati in questo progetto. Se hai mai voglia di aggiungere un array di LED, scoprirai a cosa servono.

La cosa nera rotonda è l'altoparlante (un cicalino piezo).

I pulsanti sono in alto a sinistra. È abbastanza lontano dall'autobus A in basso a destra del chip.

Lo schermo LCD a sinistra è LCD 0. Quello a destra è LCD 1.

In queste istruzioni, presumo che tu stia utilizzando la parte esatta specificata (ovunque sia indicato un numero di modello nell'elenco delle parti).

Collegare l'alimentazione

La breadboard ha binari di alimentazione attorno ai bordi e tra le sezioni. Usa fili corti per collegarli tutti insieme e per collegarli all'alimentazione. Ora puoi accedere al positivo e al terreno da qualsiasi punto della scacchiera.

Patatine fritte

Installa il Chip ATMega, facendo attenzione a non piegare i pin (una buona precauzione per qualsiasi chip) e assicurandoti che sia inserito fino in fondo.

Installare l'accoppiatore ottico adiacente al processore.

Collegare i binari dell'alimentatore ai pin appropriati sul processore e all'accoppiatore ottico.

LCD

Leggere il file LCDhookup.pdf incluso (sotto) per assistenza nel collegamento di un LCD.

Ogni schermo ha due collegamenti di alimentazione e tre collegamenti di terra.

Il pin 3 è un controllo della luminosità che, se impostato in modo errato, renderà invisibile il contenuto dello schermo. Se hai un potenziometro a portata di mano, usalo per regolare la tensione di controllo. Puoi anche provare resistori fissi, per ottenere la tensione a circa 1/2 di VCC.

I pin 4 e 6 sull'LCD 0 si collegano a D4 e D5 sul processore. Questi sono usati per abilitare e ripristinare lo schermo.

I pin 4 e 6 sull'LCD 1 si collegano a D6 e D7 sul processore.

I pin 7-17 su entrambi gli LCD si collegano a C0-C7 sul processore. Questo è un bus dati condiviso. Ogni schermata ignorerà i dati finché non arriva un segnale di controllo sui pin 4 e 6.

Leggi: Info LCD e altre informazioni per capire come funzionano gli schermi LCD.

pulsanti

Collega i quattro pulsanti a A2-A4 sul processore. (Ho lasciato A1 aperto per l'ingresso del convertitore A/D, ma non l'ho usato.)

Su qualsiasi tipo di chip logico, un ingresso non connesso fluttua alto, il che significa che il processore vedrà un 1 su quell'ingresso. Per controllarlo, è necessario collegare i pin a massa tramite un resistore. Ho collegato i pulsanti a terra (attraverso il resistore) quando non vengono premuti e in alto quando vengono premuti. Utilizzare qualsiasi resistore da 330 a 1k per questo scopo.

In alternativa, e forse in modo più efficiente dal punto di vista energetico, è possibile cablare i pulsanti in modo che siano alti quando non vengono premuti e bassi quando vengono premuti. Dovresti cambiare il codice (buttonBus.c) per cercare ~PINA invece di PINA.

Consigliato: