Arduino + TFT = visuell musik (7 / 9 steg)
Steg 7: Arduino program skiss
Skiss filen - visualMusic.ino - har kommenterats för detta Instructable.
Header-filer - MELODY_FILE.h, musicSymbols.h och gramophone.h - lagras i flikar, som du öppnar i Arduino IDE.
Den huvudsakliga skissen, visualMusic.ino delas in i dessa delar:
DEL ETT - BIBLIOTEK HEADERS, KONSTANTER, GLOBALA VARIABLER
DEL TVÅ - FUNKTIONER FÖR OBS BEARBETNING
playMusic funktion - funktionen undersöker melodin filens sträng av anteckningar (som skrivs i EML format), väljer varje segment separerade med blanksteg (dvs varje särskild not) och skickar varje segment i sekvens till funktionen parseNote().
noteIndex funktion - fått en karaktär som representerar en not, noteIndex returnerar positionen i oktav. Detta används för att placera anteckningar på skärmen. Exempel: "C" = > 0, hade "= > 1,"E"= > 2,"R"för resten = > 7.
parseNote funktion - parseNote tar emot en anteckning sträng från playMusic och bestämmer den musikaliska frekvensen och andra kännetecken på denna anteckning. Det passerar sedan dessa värden till Obs hanterarfunktion heter handleNote().
handleNote funktion är 'OBS handler' - det både spelar tonen och drar det på TFT-skärmen.
Del tre - setup() och loop() funktioner setup() kräver funktioner som dra grafik skärmen och spela musik. Det finns ingenting i loop() - eftersom vi spelar i storleksordningen ett visst antal gånger, inte på obestämd tid.
DEL FYRA - GRAFIKFUNKTIONER
drawStaff funktion - drar musikaliska personal linjer
eraseNotes funktion - raderar en del av skärmen innan varje not
Det finns sex separata funktioner som drar hela, halv, fjärdedel, åttonde, sextonde och trettioandra anteckningar.
draw_shapes funktion - använder data från huvudet filen gramophone.h Rita gramophone grafiken används på titelskärmen.