Bouwen van een grote Piano (5 / 10 stap)

Stap 5: Welke toetsen zijn ingedrukt?


Er zijn 28 witte toetsen op de piano die we nodig hebben om bij te houden. Een naïeve aanpak zou elke sleutel draad op een afzonderlijke ingang voor de micro-controller. Dat zou werken als de micro-controller had genoeg IO pinnen, maar meestal doen ze niet. De atmega328p zeker niet. Het zou ook betekenen 29 draden (28 + 1 gemeenschappelijk) verbonden met de schakelopties. Dat is meer werk en materiële dan we willen, dus kunnen we beter doen?

Mensen hebben in het verleden met dit probleem geconfronteerd, en een gemeenschappelijke oplossing is matrix scannen. De belangrijkste inzicht is dat we willen weten van de belangrijke staten (omhoog/omlaag), maar we hoeven niet te weten hen op het zelfde moment. Door het scannen van de toetsen na verloop van tijd (zij het in zeer snel in menselijke termen) kunnen we de hoeveelheid hardware moeten verminderen.

In ons geval we geregeld de sleutels in 4 rijen (octaven) en 7 kolommen (witte belangrijke notities). Wij scannen de kolommen (notities) één tegelijk en zien welke van die nota's zijn actief binnen de octaven. Na het doen van 7 scans (voor elke noot) zullen we weten de staat voor elk van de 28 sleutels. We geven de notitie te scannen met behulp van 3 uitgangen (8 mogelijkheden - we hoeven alleen maar 7 notities) en 4 ingangen (4 octaven). We moeten 7 draden voor de nota's en 4 draden voor de octaven. Wij kunnen het oplossen van het probleem met behulp van 7 IO pinnen en 11 draden. Dit is een grote verbetering.

Er zijn een paar details:

* Sleutel Ghosting: Vanwege de matrix aard van de bedrading van het sleutel kan voor meerdere sleutels persen worden geïnterpreteerd ten onrechte als het indrukken van een toets die is niet wordt ingedrukt. Door toevoeging van een diode aan elke switch we voorkomen dat huidige uit stroomt achteruit in de matrix en dit voorkomen.

* Kolom/Opmerking selectie: We moeten alleen 1 opmerking (uit 7) tegelijk selecteren en we zijn korte op IO pennen, dus de beste manier om dit te gaan is het gebruik van een 3:8-decoder. We gebruikten een 74LS138. Dat heeft een actieve laag vermogen, dus de circuits misschien minder is intuïtief dan hebbend een + 5V output gedreven.

* Input circuits: De ingangen van de atmega328p kunnen worden geconfigureerd om interne pull up weerstanden. Dat is goed. Het bespaart ons hebben ze ons draad.

* Key-Bouncing: Mechanische toetsen niet sluiten of open netjes. Ze stuiteren snel tussen open en gesloten staten over een relatief lange periode (miiliseconds). Wij dit probleem opgelost door het filteren van de belangrijkste gebeurtenissen in software. Zet gewoon een sleutel omhoog/omlaag gebeurtenis tot die staat heeft behouden op de switch voor een aantal scans niet herkend. We kunt afstemmen dat aantal omhoog of omlaag om maken de toets minder of meer "gevoelig".

Bronnen:

Een interessante discussie over belangrijke scannen en belangrijke snelheid sensing op commerciële toetsenborden.
http://www.openmusiclabs.com/learning/Digital/Input-matrix-Scanning/Keyboard/

Grote Piano Firmware. Toetsenbord matrix Driver.
https://github.com/deadsy/bigpiano/BLOB/Master/src/Key.cpp
https://github.com/deadsy/bigpiano/BLOB/Master/src/Key.h

Gerelateerde Artikelen

Bouwen van een grote kraan spel

Bouwen van een grote kraan spel

hoe het bouwen van een hele kamer kraan spel.  Gebaseerd op het arcadestijl 'Kraan Game' of 'Klauw Machine'.  Dit is een voortzetting van een instructable sjabloonwaarden getiteld kraan GAME waarin we een 2-assige kraan spel in een kozijn bouwden.  N
Bouwen van een grote DB8 HDTV-antenne: Grote Bertha

Bouwen van een grote DB8 HDTV-antenne: Grote Bertha

Update mei 2015: deze antenne werd gebouwd in 2009. Het is nu 2015. We hebben het nog steeds en het nog steeds doet het werk. Ik heb sindsdien een versterker op de mast en nu kunnen we dat fringe kanaal licht aan de linkerkant van de anderen zonder n
Hoe het bouwen van een grote Minecraft huis

Hoe het bouwen van een grote Minecraft huis

In mijn eerste instructable ik zal u tonen hoe een grote overleving huis in minecraft huis te bouwen.Stap 1: Frame Vindt u allereerst een grote, platte gebied.Dan zult u willen maken van een frame, zoalsStap 2: Frame en muren Na dat, zal u wilt elke
Hoe te bouwen van een grote grote lange fiets.

Hoe te bouwen van een grote grote lange fiets.

He, hier is mijn grote grote grote fiets.Ik kreeg veel delen van rijwielen en zoals als geen van hen waren goed of compleet heb ik besloten om het gebruik van alle onderdelen die ik kon maken iets moois.Ik gebruikte twee berg fiets frames en een extr
Bouwen van een grote zandbak met bank stoel deksels

Bouwen van een grote zandbak met bank stoel deksels

dit is een mooi 4' x 4' zand-doos met deksels die openstaan Bank zitplaatsen.  Dit werd geïnspireerd door sommige andere DIY projecten die ik vond.  Ik deed dit met behulp van alle schroot materialen.Stap 1: materialen klaar de lijst* 18 - 4' 2 x 4's
Maken van een duim Piano (duimpiano)

Maken van een duim Piano (duimpiano)

dit is een eenvoudige gids voor het bouwen van een duim-Piano, of duimpiano. Zij hebben geboekt eeuwenlang heel Afrika (en een paar andere plaatsen) en veel verschillen in vorm, grootte en geluid. Ze behoren tot een groep van instrumenten genoemd "Mb
Hoe het schrijven van een grote schaal in de muziek

Hoe het schrijven van een grote schaal in de muziek

Samenvatting: bijna alle muziek die we gewend zijn te horen in ons dagelijks leven is tonale, betekenis dat het klinkt volledig en zoals u zou verwachten dat het nummer te klinken. Nadat u hebt volledige dit instructable, zult u beter begrijpen hoe d
Bouwen van een loods

Bouwen van een loods

waarom bouwen uw eigen loods?Nou, ik hou niet van die je te koop in winkels ziet, ze zijn dun en duur, mijn DIY schuur is niet van deze dingen.Bovendien is het precies de grootte ik wil, en aan mijn spec gebouwd... .en ik denk dat het ziet er mooi -
Bouwen van een Monster spelen Slide

Bouwen van een Monster spelen Slide

bouwen dingen is leuk... MAAR... Bouwen van leuke dingen is een freakin ' explosie!Ik denk dat mijn favoriete leuk ding om te bouwen zou dia's!Ik werk op een plaats waar dagelijks bouwen we dingen gericht op plezier. Het is een creatieve mix van Spee
Gebouw Quadcopters Drones en Uav's-A uitleg en gemakkelijk bouwen van een fundamentele Quad.

Gebouw Quadcopters Drones en Uav's-A uitleg en gemakkelijk bouwen van een fundamentele Quad.

Zodat u geïnteresseerd bent in Quadcopters, Quadrotors, UAV, Drones en wat zij noemen.Maar wat zijn ze samengesteld uit, en waarom? Kan ik bouwen of zijn ze voor meer geavanceerde elektronische type personen.Nou nooit angst. Presenteer ik u een basis
Het ontwerpen en bouwen van een bestrijding robot

Het ontwerpen en bouwen van een bestrijding robot

Combat robots zijn onderhoudend en vermakelijk sinds voordat ze populair op Comedy Central waren. Een tijdje terug ik ondernam de uitdaging van de bouw van een paar van bestrijding robots (een 30 pond en een 220lb). Ongeacht de grootte van de machine
Bouwen van een ultieme buiten Gelbrander compleet met aangepaste Cap steen: De ManPit

Bouwen van een ultieme buiten Gelbrander compleet met aangepaste Cap steen: De ManPit

Overzicht:In de stappen vooruit leert u om te bouwen van een grote brand put thats esthetisch evenals eenvoudig te bouwen en last but zeker not least vrij gemakkelijk op uw portemonnee, in feite de projectkosten van dit me minder dan 100 dollar. Ik w
Bouwen van een plant doos van een oude Futon base

Bouwen van een plant doos van een oude Futon base

Hi weer,Dit is niet een nieuw idee is er tientallen soortgelijke instructables. Ik denk dat je nieuwe ideeën uit het lezen van mijne kon vinden of misschien gewoon heb je dezelfde materialen rond leggend, zoals ik deed.OK... Ik hou van tomaten groeie
Hoe het bouwen van een loods in 33 minuten + 12.000 werpen plannen!

Hoe het bouwen van een loods in 33 minuten + 12.000 werpen plannen!

Zie hoe gemakkelijk en snel het is het bouwen van een grote buiten schuur (10 x 12) met het recht werpen plannen en materialen. De werkelijke gebouw tijd is slechts 33 minuten, gedaan door 2 jongens op Kauffman bouwers. Als u volgt de juiste loods pl