MICRO MIDI STEPPER touchOSC TIMELAPSE DOLLY (5 / 6 steg)
Steg 5: Programmera ARDUINO
Kontrollera att du fått följande bibliotek för Arduino manus:
- MIDI.h
- STEPPER.h
Innan du tittar på koden, vad är poängen med skriptet?
Det använder en teknik som kallas MIDI-återanrop. Det finns dokumenterade exempel som kommer med biblioteket, i korta ord, MIDI-återanrop innebär att det finns bara denna funktion för att titta på Rx PIN-koden och se om det finns någon form av MIDI-information kommer in i den ogiltiga loop(). Inget mer.
Det gör skriptet som låg latens som möjligt, eftersom det finns inga andra saker i den ogiltiga loop() som tar handläggningstiden makt.
OM det finns ett MIDI-meddelande kommer in, appeller det MIDI-hanteraren för att identifiera meddelandet.
I våra manus söker vi MIDI #CC meddelanden på MIDI-kanal 1 och #CC på nummer 20 och 21.
Ett meddelande om MIDI-#CC kan vara ett värde mellan 0-127, och vi använder nummer 20 för svarvning och nummer 21 för att köra Dollyn.
Jag kan inte skärmdump hela manuset, och när du klistrar in det i texten det visar inte mig formaterad koden, så jag kommer skärmdump dem i plattor. Bara titta på siffrorna på vänster sida för att passa dem tillbaka tillsammans.
- Linje 1 -24
I denna del jag definierar den motoriska outs och en räknare per motor, båda biblioteken får också ingår och Steppers definieras. 4096 steg är en revolution.
Var försiktig på motorn PINS, istället för 1_2_3_4 det PINUT system är: 1_3_2_4
Så att stiften i vårt skript är 9_11_10_12 och 5_7_6_8.
- Linje 24-80
Vi använder midi callbacks, är denna del där saker går i som du vill göra om en viss MIDI-ingång upptäcks.
I linje 28 ser det ut om den inkommande MIDI-meddelanden skickas på MIDI-cannel 1
I linje 30 ser det ut om MIDI-#CC är 20, och om dess på #CC20 det visar motorn för 20 steg beroende på om dess högre eller lägre sedan räknaren.
I linje 52 gör det samma för MIDI-#CC21.
- Linje 81-116
Den sista delen är utan laga kraft setup() och void loop()
Vi ställa in AmotA etc stiften till utgångar och ange hastigheten på steppers.
Som tidigare nämnts är består den ogiltiga loop() bara av MIDI.read().
Jag la en PIN-kod kallas "pin" på PIN 13 (LED stift) för att se om MIDI-meddelanden kommer in, men du behöver inte det för den att köra.