Indholdsfortegnelse:

HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskine (lavet med en død maskine MK2): 4 trin
HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskine (lavet med en død maskine MK2): 4 trin

Video: HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskine (lavet med en død maskine MK2): 4 trin

Video: HX1 -DM - Upcycled Arduino DUE Powered DIY Trommemaskine (lavet med en død maskine MK2): 4 trin
Video: q3d quickfit extruder 2024, November
Anonim
Image
Image
Reparationen
Reparationen

Spec

  • Hybrid Midi controller / trommemaskine: Arduino DUE drevet!
  • 16 Velocity sensing pads med meget lav latenstid 1> ms
  • 8 knapper bruger kan tildeles enhver Midi #CC kommando
  • 16ch indbygget sequencer (ingen computer nødvendig !!)
  • MIDI in/out/thru -funktionalitet (kan bruges som USB midi -interface!)
  • Delvis MIDI -ur og MTC -understøttelse (arbejder med MMC- og DAW -kontrol)

Dette er helt sikkert et af de mest komplicerede projekter, jeg har arbejdet med, talte 17 output shift -registre, 6 input shift -registre, 2x 16 -kanals multiplexere, der arbejder på et kredsløbskort. Jeg aner ikke, hvad der er hvad og hvor plus jeg har aldrig rodet med skifteregistre / multiplexere før ……

Det startede som et impulskøb fra eBay, jeg ville virkelig have en Native Instruments Maschine, fordi jeg altid kunne lide trommepuderne på dem i forhold til dem på MPC -studiet, jeg ejede, så da jeg så en defekt på eBay for £ 40, - tænkte jeg Jeg ville prøve at ordne det med det værste tilfælde: 'Hvis jeg ikke kan ordne det, har jeg en Arduino DUE og et par UNO'er liggende, jeg kunne altid lave nogle hack'

Jeg kan virkelig godt lide de trommepuder alligevel !!!!

Forbrugsvarer

1 x defekt Native Instruments Maschine MK2

1 x Arduino Due.

17 x SN74HC595’er - 8 -bit output shift -registre

6 x SN74HC165’er - 8 -bit input shift -registre

2 x 74HC4067 - 16 kanals multiplexere.

2 x 3,2”256x64 OLED -skærme.

noget fladt kabel (gammelt diskettekabel vil gøre)

Trin 1: Reparationen

EBay -sælgeren var venlig nok til at give en idé om, hvad de kunne forvente i beskrivelsen og havde fjernet USB -porten. Tavlen havde lidt en overspænding og startede ikke. Sigt multimeteret …. Tavlen syntes at have en kort.. 'Jeg har repareret utallige bundkort med shorts før Så hvor svært kan det være!?!' Det viste sig at denne overspænding (og sandsynligvis til dels borddesignet) havde taget næsten HVERE ud komponent på kortet inklusive hoved -CPU'en. Dette bord var på en virkelig dårlig måde!

Jeg fortsatte med at prod & stikke med mit multimeter, undersøgte lidt om komponenterne og fandt ud af, hvad hver enkelt gør plus NI gjorde et godt stykke arbejde med at gøre tingene ganske indlysende med de forskellige testpunkter omkring bundkortet ??.

Trin 2: Hacket

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

Da jeg vidste, at jeg bliver nødt til at udskifte alt på hoved -CPU'en (hvilket ikke er nødvendigt), vendte jeg mig til eBay. Heldigvis var alt, hvad der var nødvendigt, billigt, så det var sjovt at bestille en masse af dem. ?

17 x SN74HC595’er - 8 -bit output shift -registre

De 17 output shift-registre bruges til at styre trommepadens flerfarvede lysdioder og alle knap-LED'er (136 for at være præcis !!) Disse er virkelig nemme at bruge og fandt hurtigt et bibliotek ved hjælp af Arduino IDE for at spare mig selv for at lave en.. de er lænket sammen.

6 x SN74HC165’er - 8 -bit input shift -register

Disse input shift -registre er gode til flere input på 1 kanal. Der er i alt 48 knapper.

2 x 74HC4067 - 16 kanals multiplexere

Vi har 16 puder og 8 knapper tilbage, disse er også analoge. Jeg fandt det lettere at bruge disse, da dem på tavlen var 8 -kanal, og jeg havde problemer med at finde, hvor jeg skulle tilslutte datastifterne. Cue spaghetti junction….

2 x 3,2”256x64 OLED -skærme

Det skal have nogle skærme !!! Jeg kunne ikke finde nogen oplysninger om de originale LCD -skærme, der kom i NI -maskinen, og jeg kunne ikke genere at spilde mere tid på at prøve, så jeg besluttede at bestille nogle fra Kina … Jeg brugte UG8x8 -biblioteket til at få disse til at fungere. De nye skærme var lidt mindre end originalen, så jeg slettede bare de 'dårlige bits' af.

1 x Arduino Due

Jeg havde dette liggende et stykke tid og ventede på et projekt, der var værdigt nok til al den kraft !! Der opstod et problem, jeg stødte på. Det ser ud til, at nogle revisioner af disse tavler har et nulstillingsproblem, der betød, at jeg nogle gange måtte trykke på nulstillingsknappen for at få tingen til at køre efter at have uploadet en skitse. Dette blev let løst med en 10K modstand (der er et indlæg på Arduino forum om dette).

Trin 3: Koden

Jeg var virkelig imponeret over, hvor meget støtte der er i Arduino -samfundet, at finde kodeeksempler og biblioteker til de forskellige komponenter var virkelig enkelt og ligetil.

Det var let at få USB midi i gang og tog et par minutter. Lysdioderne tog noget tid, og jeg var nødt til at oprette en skitse, der trinvist satte hver pin HIGH i intervaller på 1 sekund og tog en note.. Jeg lavede en matrix, der indeholdt PIN -numrene for at gøre det lettere, når det kom til at kode alt op.

Jeg lavede 2 biblioteker til at tale med multiplexerne, den ene håndterer de analoge puder og den anden håndtagene. Igen var dette virkelig simpelt. Jeg har vedhæftet dem, brug gerne redigering osv.

Jeg ville have en sequencer og muligheden for at optage uden brug af en computer, jeg fandt nogle oplysninger om, hvordan man konverterer BPM til ms og fandt et fantastisk Arduino DUE timer -bibliotek.

Ved hjælp af timerbiblioteket kunne jeg indstille læseinput og ting i intervaller:

Pads @ 1ms - Jeg fandt dette for at give den bedste balance mellem respons / de -bounce artefakter.

Buttons @ 40ms - Jeg brugte et købibliotek, så ingen tryk blev savnet.

Behandlingen udføres i hovedsløjfen, du kan ikke gøre for meget, når du er i en afbrydelse, da dette vil låse Arduino.

Midi stuff @BPM (i ms) - for sekventeringen kaldes ved den ønskede BPM en funktion, der opdaterer hvilke noter ETC skal afspilles og øger beattælleren.

Trin 4: Konklusion

Konklusion
Konklusion

Jeg er ikke sikker på, hvad jeg har lavet her, men jeg er ret stolt, puderne reagerer fremragende, jeg var nødt til at rode med timingen for at få den rigtige balance med lydhørhed og debounce -problemer. Sekventeringen fungerer fantastisk, og når jeg har fundet ud af DAW -understøttelsen, kan jeg fuldt ud integrere denne ting i min arbejdsgang og kan tilføje ting i en controller, jeg altid har ønsket!. Dette var et virkelig sjovt projekt at arbejde på og en fantastisk øvelse i at få styr på C, forståelse af reverse-engineering og hvordan multiplexere, skiftregistre og MIDI-sekventering fungerer. Jeg fortsætter med at forbedre hovedkoden og frigiver den måske en dag som en open source -rytmedesigner.

TIPS:

Jeg fandt, hvordan jeg ændrede USB -navnet på DUE ved at redigere en af overskriftsfiler i Arduino/SAM -mappen.

MIDI-OX er et fantastisk værktøj til test af Midi-funktionalitet

LINKS:

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

travis-ci.com/SMFSW/Queue - Til knapindgange, så vi ikke går glip af nogen tryk!

github.com/olikraus/u8g2/wiki/u8x8referenc… - UG8 lib til LED/LCD -skærme

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

www.pjrc.com/teensy/td_libs_Encoder.html - Encoder Lib til den store knap

shiftregister.simsso.de/ - ShiftIn Register lib - Oprettet af Henrik Heine, 24. juli 2016

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

Anbefalede: