Innholdsfortegnelse:

Midi Record/Play/Overdub med 5-pinners tilkoblinger: 3 trinn
Midi Record/Play/Overdub med 5-pinners tilkoblinger: 3 trinn

Video: Midi Record/Play/Overdub med 5-pinners tilkoblinger: 3 trinn

Video: Midi Record/Play/Overdub med 5-pinners tilkoblinger: 3 trinn
Video: Audio Overdub in ScoreCloud Studio 2024, November
Anonim
Midi Record/Play/Overdub med 5-pinners tilkoblinger
Midi Record/Play/Overdub med 5-pinners tilkoblinger

* Bruker en ATMega-1284-brikke som kjører på 8 MHz, med 4 k Bytes RAM og 4 kBytes eeprom

* Bruker de gamle DIN 5-pinners kontaktene

* Tillater innspilling og avspilling, samt overdubbing: innspilling sammen med noe du har spilt inn før.

* Full meny

* Evne til å navngi og lagre en fil i eeprom

* Redigerbare tempoer og tidssignaturer

* Rudimentær kvantisering

Nyttig* Bevis for konsept: du kan synes dette prosjektet er utfordrende.

Hva denne opplæringen inkluderer:

* Deleliste

* Prosjektrapport (vedlagt dette panelet)

Inneholder mye informasjon du trenger å vite om prosjektet

* Lenke til C -koden på GitHub

github.com/sugarvillela/ATMega1284

* Trinn-for-trinn instruksjoner for å bygge prosjektet og tilpasse koden

Trinn 1: Deleliste

Deleliste
Deleliste

Noen deler fikk jeg på skolen med rabatt. Noen fikk jeg i en butikk og betalte for mye. Hvis du har tid, kan du få alt dette online.

1 brødbrett, hvilken som helst modell, omtrent samme størrelse som det på introduksjonsbildet, $ 20

1 mikroprosessor, modell ATMega1284, $ 5

Dette er en allsidig chip med flotte funksjoner. Finn databladet her:

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

1 5-volts strømforsyning

1 ATMEL-IS

Dette er grensesnittet mellom datamaskinen og mikroprosessoren. Du trenger også noen kodebehandlingsprogramvare (en IDE) og en kompilator som kan krysskompilere C til arkitekturen til ATMega-brikken. Atmel tilbyr et miljø, Atmel Studio som oppfyller disse kravene. Last den ned her:

1 optokobling, modell 6N138 eller tilsvarende, $ 5

Dette er for input; midi -standarden krever at enheter isoleres fra hverandre for å forhindre jordsløyfer. Jeg brukte NEC-tilsvarende brikke med identisk pin-out-arrangement. Se bildet ovenfor for informasjon eller bare google '6n138 pinout'. Hvis du bruker en modell med forskjellige pinnetildelinger, finner du de tilsvarende pinnene (nøye).

2 LCD -skjermer, modell 1602A1, $ 3 hver

Jeg brukte 2*16 skjermer, noe som betyr at de har 2 rader, hver 16 tegn bred. Koden er skrevet spesielt for disse, så prøv å bruke de samme. Tilkoblinger er: 8 datalinjer og 2 kontrollinjer. Du kan dele datalinjene mellom de to skjermene, men du trenger to kontrollinjer for hver, totalt 4 kontrolllinjer. Mitt prosjekt bruker buss C for LCD -datalinjer og den øvre nibble av buss D for kontrollinjer. Hvis du kobler din annerledes, endrer du utgangsbussene i koden din.

1 høyttaler

For metronomutgang; enhver høyttaler vil gjøre. Du vil mate den 3-5 volt firkantbølger, så det trenger ikke å høres pent ut. Du kan også koble til en ekstern forsterker.

1 kondensator, for å myke ut firkantbølgen til høyttaleren

2 5-pinners DIN-kontakter, hann eller hunn

Jeg brukte mannlige kabler og koblet dem til brettet. For en mer elegant løsning, bruk hunnkontakter og koble hannkabler til andre enheter. (Husk pin -tallene er bakover, avhengig av hvilken måte du ser på kontakten!)

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

Du må kanskje eksperimentere med motstandsverdier for å få optokobleren til å spore inngangen raskt nok

Lysdioder

Designet krever en diode på tvers av opto-isolatorinngangen, men en LED vil gjøre det. Bruk en LED for metronom for å blinke i takt med pipelyden. Ha flere lysdioder tilgjengelig for feilsøkingsutgang hvis du trenger dem.

Ledninger, mange ledninger

20-22 gauge, solide ledninger, lange, korte og bittesmå.

Trinn 2: C -kode

Gå til github for å få koden:

* Sørg for at du leser og forstår koden fordi du kanskje må endre den for å passe til annen maskinvare.

* Prosjektrapporten på intropanelet inneholder detaljerte beskrivelser av programvaremodulene og hvordan de samhandler.

* Ingen kopi-lim inn. Samhandle med koden; eksperiment; omskrive. Du kan sannsynligvis forbedre det.

Trinn 3: Første ledninger (se prosjektfotoet for veiledning)

Første ledninger (se prosjektfotoet for veiledning)
Første ledninger (se prosjektfotoet for veiledning)
Første ledninger (se prosjektfotoet for veiledning)
Første ledninger (se prosjektfotoet for veiledning)

Notater om prosjektbildet før vi starter

På bildet er optokobleren den siste brikken til høyre, og prosessoren er den store brikken til venstre.

Du vil legge merke til to andre sjetonger i mellom med en haug motstander tilkoblet. Ignorer dem, vær så snill. Det er skiftregistre som ikke brukes i dette prosjektet. Hvis du noen gang har lyst til å legge til et LED -utvalg, vil du finne ut hva de er til for.

Den runde svarte tingen er høyttaleren (en piezo -summer).

Knappene er øverst til venstre. Det er ganske langt fra buss A nederst til høyre på brikken.

LCD -skjermen til venstre er LCD 0. Den til høyre er LCD 1.

I disse instruksjonene antar jeg at du bruker den eksakte delen som er spesifisert (uansett hvor et modellnummer er oppgitt i delelisten).

Koble til strømforsyningen

Brettbrettet har strømskinner rundt kantene og mellom seksjoner. Bruk korte ledninger for å koble dem sammen og koble dem til strømforsyningen. Nå kan du få tilgang til positiv og bakken fra hvor som helst på brettet.

Chips

Installer ATMega Chip, vær forsiktig så du ikke bøyer pinnene (en god forsiktighet for brikker) og sørg for at den sitter helt inn.

Installer optokobleren ved siden av prosessoren.

Koble strømforsyningsskinnene til de riktige pinnene på prosessoren og optokobleren.

LCD -skjermer

Les den medfølgende filen LCDhookup.pdf (nedenfor) for å få hjelp til å koble til en LCD.

Hver skjerm har to strømtilkoblinger og tre jordforbindelser.

Pin 3 er en lysstyrkekontroll som, hvis den er satt feil, vil gjøre skjerminnholdet usynlig. Hvis du har et potensiometer til stede, kan du bruke dette til å justere kontrollspenningen. Du kan også prøve faste motstander for å få spenningen omtrent 1/2 av VCC.

Pins 4 og 6 på LCD 0 kobles til D4 og D5 på prosessoren. Disse brukes til å aktivere og tilbakestille skjermen.

Pins 4 og 6 på LCD 1 kobles til D6 og D7 på prosessoren.

Pins 7-17 på begge LCD-skjermene kobles til C0-C7 på prosessoren. Dette er en delt databuss. Hver skjerm ignorerer dataene til et kontrollsignal kommer inn på pinne 4 og 6.

Les: LCD -informasjon og mer informasjon for å forstå hvordan LCD -skjermene fungerer.

Knapper

Koble de fire knappene til A2-A4 på prosessoren. (Jeg lot A1 stå åpen for A/D -omformerinngang, men brukte den ikke.)

På hvilken som helst type logikkbrikke flyter en ikke -koblet inngang høyt, noe som betyr at prosessoren vil se en 1 på den inngangen. For å kontrollere dette må du koble pins til jord via en motstand. Jeg koblet knappene til å være på bakken (gjennom motstanden) når den ikke ble trykket, og høy når den ble trykket. Bruk hvilken som helst motstand 330 til 1k til dette formålet.

Alternativt, og kanskje mer energieffektivt, kan du koble knappene til å være høye når den ikke trykkes ned og lav når den trykkes. Du må endre koden (buttonBus.c) for å se etter ~ PINA i stedet for PINA.

Anbefalt: