Innholdsfortegnelse:

HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskin (laget med en død maskine MK2): 4 trinn
HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskin (laget med en død maskine MK2): 4 trinn

Video: HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskin (laget med en død maskine MK2): 4 trinn

Video: HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskin (laget med en død maskine MK2): 4 trinn
Video: q3d quickfit extruder 2024, November
Anonim
Image
Image
Reparasjonen
Reparasjonen

Spesifikasjonen

  • Hybrid Midi -kontroller / trommemaskin: Arduino DUE drevet!
  • 16 Velocity sensing pads med svært lav latens 1> ms
  • 8 knapper bruker som kan tilordnes hvilken som helst Midi #CC -kommando
  • 16ch innebygd sequencer (ingen datamaskin nødvendig !!)
  • MIDI inn/ut/gjennom -funksjonalitet (kan brukes som et USB midi -grensesnitt!)
  • Delvis MIDI -klokke og MTC -støtte (jobber med MMC- og DAW -kontroll)

Dette er definitivt et av de mest kompliserte prosjektene jeg har jobbet med, snakket 17 output shift -registre, 6 input shift -registre, 2x 16 -kanals multiplexere som jobber på et kretskort. Jeg aner ikke hva som er hva og hvor pluss at jeg aldri har rotet med skiftregistre / multiplexere før ……

Det begynte som et impulskjøp av eBay, jeg ville virkelig ha en Native Instruments Maschine fordi jeg alltid har likt trommelputene på dem sammenlignet med de på MPC -studioet jeg eide, så da jeg så en feil på eBay for £ 40 pund trodde jeg Jeg ville prøve å fikse det med det verste scenariet å være 'hvis jeg ikke kan fikse det, har jeg en Arduino DUE og noen UNO ligger, jeg kan alltid gjøre noen hack'

Jeg liker de trommelputene uansett !!!!

Rekvisita

1 x defekt Native Instruments Maschine MK2

1 x Arduino Due.

17 x SN74HC595 - 8 -biters utgangsskiftregistre

6 x SN74HC165 - 8 -biters input -skiftregistre

2 x 74HC4067 - 16 kanals multiplexere.

2 x 3,2”256 x 64 OLED -skjermer.

litt flat ledning (gammel diskettkabel vil gjøre)

Trinn 1: Reparasjonen

EBay -selgeren var snill nok til å gi en ide om hva du kan forvente i beskrivelsen og hadde fjernet USB -porten. Brettet hadde en overspenning og fikk ikke strøm. Sett på multimeteret …. Brettet så ut til å ha en kort.. 'Jeg har reparert utallige hovedkort med shorts før. Så hvor vanskelig kan det være!?!' Det viste seg at dette var overspenning (og sannsynligvis delvis brettdesignet), hadde tatt ut nesten ALLE komponent på brettet inkludert hoved -CPU. Dette brettet var på en virkelig dårlig måte!

Jeg fortsatte å prod & poke med multimeteret mitt, gjorde litt research på komponentene og fant ut hva hver enkelt gjør pluss NI gjorde en god jobb med å gjøre ting ganske åpenbare med de forskjellige testpunktene rundt hovedkortet ??.

Trinn 2: Hackingen

The Hack
The Hack
The Hack
The Hack
The Hack
The Hack

Da jeg visste at jeg må bytte ut alt fra hoved -CPU -en (som ikke vil være nødvendig), vendte jeg meg til eBay. Heldigvis var alt som trengs billig, så det var morsomt å bestille masse. ?

17 x SN74HC595 - 8 -biters utgangsskiftregistre

De 17 utgangsskiftregistrene brukes til å kontrollere trommelputens flerfargede lysdioder og alle knappelydene (136 for å være nøyaktig !!) Disse er veldig enkle å bruke og fant raskt et bibliotek ved hjelp av Arduino IDE for å spare meg selv for å lage en.. de er lenket sammen.

6 x SN74HC165 - 8 -biters inngangskifteregister

Disse inngangskiftregistrene er flotte for flere innganger på 1 kanal. Det er totalt 48 knapper.

2 x 74HC4067 - 16 kanals multiplexere

Vi har 16 pads og 8 knapper igjen, disse er også analoge. Jeg syntes det var lettere å bruke disse ettersom de på tavlen var 8kanaler, og jeg hadde problemer med å finne hvor jeg skulle koble datapinnene.. cue spaghetti junction….

2 x 3,2”256 x 64 OLED -skjermer

Den må ha noen skjermer !!! Jeg kunne ikke finne informasjon om de originale LCD -skjermene som kom i NI -maskinen, og jeg orket ikke kaste bort mer tid på å prøve det, så jeg bestemte meg for å bestille noe fra Kina … Jeg brukte UG8x8 -biblioteket for å få disse til å fungere. De nye skjermene var litt mindre enn originalen, så jeg slettet bare de "dårlige bitene".

1 x Arduino Due

Jeg hadde dette liggende en stund og ventet på et prosjekt som var verdig nok for all den kraften !! Det oppstod et problem. Det ser ut til at noen revisjoner av disse tavlene har et tilbakestillingsproblem som betydde at jeg måtte trykke på tilbakestillingsknappen noen ganger for å få tingen til å kjøre etter at jeg lastet opp en skisse. Dette ble lett løst med en 10K motstand (det er et innlegg på Arduino -forumet om dette).

Trinn 3: Koden

Jeg ble virkelig imponert over hvor mye støtte det er i Arduino -samfunnet. Å finne kodeeksempler og biblioteker for de forskjellige komponentene var veldig enkelt og greit.

Å få USB midi i gang var enkelt og tok noen minutter. Lysdiodene tok litt tid, og jeg måtte lage en skisse som trinnvis satte hver pinne HØYT i intervaller på 1 sekund og tok et notat.. Jeg lagde en matrise som inneholdt PIN -tallene for å gjøre det lettere når det gjaldt koding av alt.

Jeg lagde 2 biblioteker for å snakke med multiplexerne, den ene håndterer de analoge putene og den andre knappene. Igjen var dette veldig enkelt. Jeg har lagt ved dem, bruk gjerne rediger osv.

Jeg ønsket å ha en sequencer og muligheten til å spille inn uten behov for en datamaskin, jeg fant litt informasjon om hvordan jeg konverterer BPM til ms og fant et flott Arduino DUE timer -bibliotek.

Ved å bruke tidsbiblioteket klarte jeg å sette leseinnganger og ting i intervaller:

Pads @ 1ms - Jeg fant dette for å gi den beste balansen mellom respons / de -bounce artefakter.

Buttons @ 40ms - Jeg brukte et købibliotek, så ingen trykk ble savnet.

Behandlingen utføres i hovedløkken, du kan ikke gjøre for mye når du er i en avbrudd, da dette vil låse Arduino.

Midi stuff @BPM (i ms) - for sekvensering, ved ønsket BPM kalles en funksjon som oppdaterer hvilke notater ETC skal spilles av og øker taktslageren.

Trinn 4: Konklusjon

Konklusjon
Konklusjon

Jeg er ikke sikker på hva jeg har laget her, men jeg er ganske stolt, putene svarer utmerket, jeg måtte tukle med timingen for å få den rette balansen med lydhørhet og debounce -problemer. Sekvensering fungerer veldig bra, og når jeg har funnet ut DAW -støtten, kan jeg integrere denne saken fullt ut i arbeidsflyten min og kan legge til ting i en kontroller jeg alltid har ønsket!. Dette var et veldig morsomt prosjekt å jobbe med og en flott øvelse for å ta tak i C, forstå reverse-engineering og hvordan multiplexere, skiftregistre og MIDI-sekvensering fungerer. Jeg fortsetter å forbedre hovedkoden og kan slippe den en dag som rytmdesigner med åpen kildekode.

TIPS:

Jeg fant hvordan jeg endrer USB -navnet til DUE ved å redigere en av toppfilene i Arduino/SAM -mappen.

MIDI-OX er et flott verktøy for å teste Midi-funksjonalitet

LENKER:

www.usb.org/sites/default/files/midi10.pdf - USB MIDI Spechttps://midi.teragonaudio.com/tech/miditech.htm https://guitargearfinder.com/guides/convert-ms -mi … Litt informasjon om hvordan du konverterer BPM til ms

travis-ci.com/SMFSW/Queue - For knappinnganger slik at vi ikke går glipp av noen trykk!

github.com/olikraus/u8g2/wiki/u8x8referenc… - UG8 lib for LED/LCD -skjermer

github.com/ivanseidel/DueTimer/releases - Arduino DUE Timing lib

www.pjrc.com/teensy/td_libs_Encoder.html - Encoder Lib for den store knappen

shiftregister.simsso.de/ - ShiftIn Register lib - Opprettet av Henrik Heine, 24. juli 2016

forum.arduino.cc/index.php?topic=57636.0 - MIDI Time Code -ting

Anbefalt: