En ram för att göra prisvärda & eleganta modulära styrsystem (USB till MIDI, gömde sig, eller seriella) (13 / 15 steg)
Steg 13: Testa din enhet
Detta avsnitt är lite knepigt eftersom moduler kan fungera i ett av tre lägen: följetong (debug) läge, MIDI-läge, eller I2C läge. Om du aktiverar en mode, måste du inaktivera de andra transportsätten. Det rekommenderas inte att hoppa rakt in i MIDI-läge eftersom det är omöjligt att felsöka din controller hitåt.
Om du använder bara en modul här är stegen.
- Aktivera debug-läge i koden.
- Det är viktigt att du kommentar bort alla kodrader som har "usbMIDI" i dem annars koden inte kommer kompilera (irriterande, men nödvändigt).
- Välj "serial" enhet från Arduino tools -> USB-typ-menyn.
- Ladda upp din kod och öppna bildskärmen följetong. Säkerställa anslutningshastighet i 9600bps.
- Om bildskärmen följetong är att få översvämmad med utgång du har anslutit något felaktigt eller har felaktigt redigerat till koden för att identifiera vilket stift är i bruk. Som jag sa tidigare, är det bäst att bara testa en uppsättning komponenter i taget i stället för dem alla på en gång.
- Om bildskärmen seriell fungerar korrekt bör du se några utdata när du interagerar med komponenter. Denna utgång informerar också om vilket läge nummer är associerad med varje tryckknapp (så att du kan ändra lägen senare om det behövs).
- När allt fungerar i följetong monitor kan du nu fortsätta att MIDI.
- Inaktivera debug-läge i koden.
- Välj "MIDI" enhet från Arduino tools -> USB-typ-menyn.
- Kommentera bort alla "usbMIDI" rader du kommenterat ut tidigare.
- Handkontrollen är nu redo att skicka MIDI-meddelanden, och datorn bör erkänna det som en inbyggd MIDI-enhet (så enkelt som så).
- Nu inte skulle jag rekommendera att hoppa direkt till hookup med din programvara, snarare, ladda ner en gratis MIDI sniffer (det finns många där ute) och testa din MIDI-meddelanden i det först.
- Sniffern som din programvara, bör erkänna enheten som "Teensy MIDI".
- När du är nöjd med MIDI-utgången sedan vidare till mappning handkontrollen med din önskad programvara.
Om du använder mer än en modul här är stegen.
- Följa en modul steg ovan för varje modul (utan dem kopplas samman).
- Aktivera I2C läge på alla moduler utom master modulen. Aldrig aktivera I2C på modulen master.
- Igen, måste du kommentera ut alla "usbMIDI" linjer.
- Aktivera debugläge på master modulen. Så master modulen kommer att köra i seriell läge och alla andra moduler kommer att köra i I2C-läge.
- Anslut alla modulerna tillsammans.
- Kolla utdata i följetong monitor. Meddelanden som skickas från din andra moduler bör nu visas i den seriella monitorn med prefix "(I2C)".
- Nu aktivera MIDI-läge på bara master modulen.
- Kommentera bort alla "usbMIDI" rader på din master modul som du kommenterade ut tidigare.
- Du behöver inte göra några ändringar till din andra moduler, endast befälhavaren.
- Testa din MIDI-utgången i MIDI sniffer - voila.
- Kom ihåg, måste du ansluta alla dina moduler tillsammans och sedan koppla in USB. Om du ansluter USB innan du ansluter modulerna som tillsammans blir det ingen kommunikation och alla styrenheter kommer att frysa.
Okej, hela åtgärden är lite invecklad, men en gång du gå igenom det en gång kommer du att förstå vad som händer här. Det är ju irriterande du fortsätta kommentera/uncommenting raderna "usbMIDI" men det är tyvärr oundviklig.
Det finns en viss ombytlighet du måste övervinna när jag försöker ladda upp från Arduino Teensy, särskilt när du växlar från seriell läge till MIDI och tillbaka. Jag är inte säker på vad som orsakar dessa problem, men det är bra att veta att inget är brutet och om du hålla försöker igen du ska ha framgång.
En sak jag har märkt om DIY elektronik genom åren är de aldrig fungera första gången. Det finns alltid en liten lödning blunder eller anslutningsfel längs vägen. Bli inte avskräckt om saker och ting inte fungerar smidigt under det första försöket.
Någon frågade mig, "kan jag skapa en controller som fungerar både som en modul, och som en fristående styrenhet?". Med koden just nu, ingen - måste du ladda upp ny kod om du vill växla mellan lägena. Jag kommer att försöka fixa detta i nästa kod version. Sannolikt kommer det att kräva installation av en liten switch på din PCB.