LED Piano lärande Strip
Introduktion
Hur många gånger har du hört en låt - radio, under en film, eller på en konsert - och tänkte "Man jag önskar jag kunde spela som"? Nu kan du! Detta projekt kan man lära sig en låt anteckning av anteckning på piano av belysning upp lämplig LED lampor som motsvarar varje enskild tangent på piano. I själva verket, även om du inte har ett piano men har ett mindre elektronisk tangentbord, kan du anpassa den för detta. Vissa elektroniska tangentbord har faktiskt lätta upp nycklar för just detta ändamål, men gör det på ett riktigt piano är så mycket mer tillfredsställande. Ha kul och lära sig några låtar!
De tre huvudkomponenterna i detta projekt (liksom många) är:
1) programvara
2) hårdvara (icke-elektroniska)
3) elektronik och kablage
Även om de är separata delar av projektet, i verkligheten du kommer ofta att arbeta på mer än en i taget helt enkelt eftersom hur du väljer att göra en del påverkar hur du ska göra en annan. En bra sak om att göra dem parallellt, är dock att du ha helheten i åtanke om du tröttnar på att skriva kod, kan du designa dina akryl delar och om du är trött på att datorn helt och hållet kan du tråd upp några motstånd och lysdioder och ha lite kul med det. De är i en viss ordning i Instructable, men hur du gör det är upp till dig.
Begreppsmässig översikt
Den största frågan när jag började var "hur sjutton du individuellt styr 88 lysdioder?!?!" Lyckligtvis, efter lite forskning jag fick några marker för att göra just det och några Arduino tutorials och koden så pass hjälpte längs vägen. Bortsett från frågan, allt annat var tämligen okomplicerad eller åtminstone bara skyldig mig att plocka från flera alternativ - vad kan man göra remsan från, hur att hålla lysdioderna på plats, hur man skriver koden för att göra det alla springa, och så vidare. Låt oss tala om den stora frågan lite mer ingående så att du har en idé om hur det fungerar innan du börjar.
Jag fick Flisen ledde matrisen (eller 7 segment display) förare, vilket innebär att vad beträffar chipet är, vi har våra lysdioder wired som om de är i en fyrkantig rutnät, med ett visst antal rader och kolumner - positiva terminalerna är vanliga i varje kolumn och de negativa terminalerna är vanliga i varje rad. Detta gör 64 lysdioder (i en 8 x 8 grid) kontrolleras av varje chip och kräver endast tre (som är rätt tre!!!) kontrollera ingångar. Oavsett vilka eller hur många av lysdioderna du vill slå på, kan systemet hantera den.
Men vänta, om du vill slå på lysdioder (1,1) och (2,2), skulle inte det också lysa upp (1,2) och (2,1), eftersom alla rader 1-2 och kolumnerna 1-2 för att uppnå det original-målet måste vara på? Det är där klockan inuti chipet kommer i - lysdioderna inte faktiskt på kontinuerligt. Snarare de blinkar så snabbt att det mänskliga ögat observerar dem som kontinuerligt på. Detta är hur oönskade lysdioder kan förbli!
Så även om vi ser remsan som bara en linje av lysdioder, de är fast som om de är i två square matriser - en 8 x 8 (första chip) och en 5 x 5 (andra chip), som lägger upp till 89 nycklar (finalen "rad" 5 x 5 matris har endast 4 lysdioder, så kommer vi ner till 88). Voila!
Hur vet vi chipet som lysdioder för att belysa? Det har alla gjort med binära tal. Med hjälp av några kod lånat från utvecklare online (se koden för tilldelning), jag skapade programmet så att allt du behöver göra när översättningen en låt är att anropa kommandot playKey(...). Detta spelar viss numrerad nyckeln, börjar med 1 till vänster och slutar med 88 till höger. Detta kommando tar den nyckel antalet och översätter den så markerna kan göra sin plikt genom att göra följande: den nyckel antalet översätts till ett rad- och tal, som sedan översätts till ett radnummer och ett binärt tal som representerar som LED bör vara på (Läs från vänster, inte rätt). Till exempel om jag kallar playKey(13), som är A, översätta funktioner som som rad 2, kolumn 5. sedan sedan 2 ^ 5 är 32, som skulle vara det nummer som går till chipet. Läsa från vänster, är 32 00000100, som föreställer statligt av den andra raden. Samma koncept gäller när det handlar om flera LED-belysning - det handlar om binära tal! Kolla in koden för de exakta funktionerna och lite mer förklaring.
Slutligen finns det en potentiometer kopplad till sig alla att styra tempot - något verkligen, verkligen viktigt när du har ingen aning vad du gör...
Obs: Detta var inte en lätt Instructable att skriva på grund av hur komplicerat det var att sätta allt tillsammans och gör det hela fungerar. Tveka inte att låta mig veta om något är förvirrande eller oklar, eller om du har specifika frågor!
Låt oss komma igång!