Stap 11: Alles over de Code
Ik deed mijn absoluut de beste gebruikersvriendelijker te maken de code. De code omvat vele commentaren zodat u kunt begrijpen wat er gaande is. U bent niet verplicht om te schrijven van code, dus-meer, vul de blanco. Gemakkelijk. Alleen als u wilt toevoegen sommige functies van de LED zal u wilt toevoegen sommige basic-code. Er is een voorbeeld van de LED geboden binnen de code om te beginnen.
Ik was nooit getraind als een coder, maar ik vind deze code te zijn behoorlijk verdomd goed! Dankzij mijn broer Neil voor hulp met een aantal van de moeilijker secties.
De code is onderverdeeld in vijf secties:
- Bewerken - de sectie waar u verplicht bent te maken van de juiste bewerkingen gerelateerde aan de controller met behulp van een methode aanvullen-in-de-spaties.
- Variabelen en functies - houdt de variabelen en functies die door de code wordt gebruikt.
- Setup - dit is waar we definiëren uit pin-configuratie, informeren de Teensy welke pin een ingang en die een output is.
- Lus - de hersenen van onze hele operatie. Deze functie lus over en voorbij terwijl de Teensy wordt uitgevoerd.
- Communicatiefuncties - deze functies behandelen onze berichten.
Binnen deze vijf secties vaak vindt u de subsecties voor drukknoppen, LED's, analoge-in Teensy, analog-in multiplexer en encoders.
Als u niet van Traktor software gebruikmaakt, zul je waarschijnlijk de roterende encoder MIDI-berichten bewerken. Raadpleeg de documentatie van uw software om te begrijpen van de verwachte berichtindeling. Wanneer u postuur op uiterlijk gelieve message me zodat ik het aan dit Instructable kan toevoegen.
Hoewel het niet noodzakelijk om te begrijpen van alle code, wil ik gewoon om uit te leggen van een fragment van code die zal u helpen begrijpen hoe de besturingsberichten werken. De onderstaande code stuurt analoge berichten voor een potentiometer. Er zijn drie modi (debug, I2C en MIDI) die u op/in de bewerkingen zet. Als de Foutopsporing is ingeschakeld, berichten worden verzonden via USB aan op de seriële monitor om te helpen met het opsporen van fouten. 'serialDebugOut' is een zeer fundamentele functie ik schreef die stuurt deze seriële berichten en kan bekeken worden aan de onderkant van de code. Als I2C is ingeschakeld, berichten worden verzonden via I2C naar de master module, die vervolgens de berichten via USB stuurt. Als dat Midi is ingeschakeld, wordt deze controller MIDI-berichten rechtstreeks via USB naar de computer stuurt. ' usbMIDI' is een bepaald bericht door Teensy ++ gebruikt voor MIDI-berichten. Lees meer over Teensy MIDI hier. Houd in mening u de code voor het verzenden van vele soorten berichten kunt bewerken: Teensy USB seriële Teensy USB-toetsenbord, Teensy USB-muis, Teensy USB Joystick, Teensy USB MIDIen Arduino Serial.
if(enableDebug==1) {//SERIAL debug brandt
serialDebugOut("Analog",i,tempAnalogInMap);
}
anders if(enableI2C==1) {//I2C
serialI2COut('a',i,tempAnalogInMap,channelNumber);
}
else {//MIDI
usbMIDI.sendControlChange(i,tempAnalogInMap,channelNumber);
}
Lees de code/commentaar over en voorbij, maken het nemen van een paar iteraties om uw hoofd wikkelen rond. U kunt veel leren van de code. Voortdurend verwijst naar de Arduino library voor secties die u niet begrijpt.
De roterende encoder-code is een vervelende beest. Als je ambitieus voelt kunt u meer lezen over het hier.
** Waarschijnlijk er worden enkele verbeteringen aangebracht in de code na verloop van tijd zo blijven controleren terug voor de laatste version.* *
Alle code vind je hier bij GitHub. Gebruik de code met een adellijke titel 'Controller Code' voor deze sectie. Klik op 'ZIP' in de linkerbovenhoek om te downloaden.