Bygga ett stort Piano (5 / 10 steg)

Steg 5: Vilka tangenter har pressats?



Det finns 28 vita tangenterna på pianot vi behöver hålla reda på. En naiv inställning skulle tråd varje nyckel till enskilda insatsen av mikro-controller. Det skulle fungera om mikro-controller hade nog IO pinnar, men vanligtvis de inte. Atmega328p verkligen inte. Det skulle också innebära 29 ledningar (28 + 1 gemensamma) ansluten till växlarna. Det är mer arbete och material än vi skulle vilja, så kan vi göra bättre?

Människor har haft detta problem tidigare, och en gemensam lösning är matrix skanning. Den viktigaste insikten är att vi vill veta de viktiga staterna (upp/ned) men vi behöver inte känna dem på samma ögonblick. Genom att skanna nycklarna över tiden (om än mycket snabbt i mänskliga termer) kan vi minska mängden maskinvara behövs.

I vårt fall ordnade vi nycklarna i 4 rader (oktaver) och 7 kolumner (vit viktiga anteckningar). Vi Skanna kolumnerna (anteckningar) en i taget och se vilken av dessa anteckningar är aktiva inom oktaver. Efter att ha gjort 7 skanningar (för varje not) kommer vi att veta tillståndet för alla 28 nycklarna. Vi ange anteckningen ska skanna med 3 utgångar (8 möjligheter - vi behöver bara 7 noterar) och 4 ingångar (4 oktaver). Vi behöver 7 kablar för notes och 4 trådar för oktaver. Vi kan lösa problemet med 7 IO pinnar och 11 kablar. Detta är en stor förbättring.

Det finns några detaljer:

* Nyckel spökbilder: På grund av matrisen nyckeln ledningar det är möjligt för flera nycklar pressar tolkas felaktigt som att trycka på en tangent som inte är pressas. Genom att lägga till en diod varje switch vi förhindra nuvarande från att rinna baklänges i matrisen och stoppa detta från att hända.

* Kolumn/Obs urval: Vi behöver bara välja 1 Obs i taget (av 7) och vi har ont om IO pinnar, så det bästa sättet att hantera detta är att använda en 3:8-avkodare. Vi använde en 74LS138. Som har ett aktivt låg utgång, så kretsar är kanske mindre intuitivt än att ha en driven utgång 5V.

* Ingång kretsar: Ingångar på atmega328p kan konfigureras för att ha interna dra upp motstånd. Det är bra. Det sparar oss från att behöva tråd dem själva.

* Nyckel De studsar: Mekaniska nycklar Stäng eller öppna renlig. De studsar snabbt mellan öppna och slutna stater över en relativt lång tidsperiod (miiliseconds). Vi löste detta problem genom att filtrera de viktigaste händelserna i programvara. Sätt helt enkelt vi inte erkänner en nyckel upp/ner händelsen tills denna stat har bestått i växeln för vissa antal skanningar. Vi kan ställa det numret upp eller ned för att göra det viktiga mindre eller mer "känsligt".

Resurser:

En intressant diskussion om viktiga scanning och anslagsdynamiken sensing på kommersiella tangentbord.
http://www.openmusiclabs.com/Learning/Digital/Input-Matrix-scanning/keyboard/

Stora Piano Firmware. Tangentbord matris drivrutin.
https://github.com/Deadsy/bigpiano/BLOB/Master/src/Key.cpp
https://github.com/Deadsy/bigpiano/BLOB/Master/src/Key.h

Se Steg
Relaterade Ämnen

Sid Meier's Civilization V: hur man bygger ett stort imperium

Utforska, expandera, utnyttja och utrota.Dessa fyra saker är de fyra "X" s av en 4 X strategispel, som Civilization V anses vara. Om ditt enda val var att spela antingen ett brett, spretande imperium eller en lång, små, mycket folkrika en, vilke...

Bygga ett stort krig härjade utrymme bas gratis!

Utestående recension, bra support och hög efterfrågan helt awesome mini kriget gaming skum projekt jag var absolut inspirerad att göra en annan ond fantastiskt projekt. Kan börja med att bli inspirerad, det har tagit mig ett år men jag hade några häf...

Bygga ett skjul

varför bygga din egen byggnad?Tja, jag bara gillar inte de du ser för försäljning i butikerna, de är tunna och dyra, min DIY skjul är ingen av dessa saker.Dessutom är det exakt den storlek jag vill ha, och byggd för att min spec... .och jag tror att...

Hur man bygger ett ackord på Piano

Steg 1: Bygga ett ackord på piano är mycket intressant. Massor av människor tror dess utmanande, men inte om du öva! Först behöver du naturligtvis en piano eller tangentbordet för att spela på.Steg 2: Nästa steg är att hitta en nyckel att bygga din a...

Bygga ett växthus med Solar Powered Ventalation

Jag bor i solnedgången klimatzon 17 (San Francisco), så deras var mycket saker jag vill växa, men kunde inte på grund av klimatet. Min basilika var magra, min aubergine skrumpnade... Jag hade tur att få 2 eller 3 små tomater per planta. Jag velat ha...

Bygga ett akvarium som ser bra ut på alla vardagsrum

Varning: Först och främst varnas att detta är en lång instructable! Ca 1 timme av läsning. Kanske är det mer "lättsmälta" genom att bara ha en blick på bilder och senare återkomma till läsa lite historia bakom det och några tips på delarna du är...

Bygga ett medeltida gatlopp

bygga ett medeltida gatlopp!Jag har fått några kommentarer i stil med "Detta är inte riktig rustning" så...******************************************VARNING DETTA INTE ÄR BEKÄMPA REDO PANSAR. DETTA ÄR INTE MENAT FÖR SKYDD. DETTA ÄR EN COOL SER K...

Bygga ett högpresterande FPV Camera Quadcopter

Detta Instructable kommer att visa dig, i detalj, hur man bygger en hög kvalitet quadcopter för flygande FPV och inspelning antenn bilder/video.Vi vet alla människor inte kan flyga. Våra ben är alltför tät och flaxa med armarna inte producerar tillrä...

Hur man bygger ett vindkraftverk.

Dag jag ska visa dig hur man bygger ett fungerande vindkraftverk. För våra andra år projektet fick vi uppdraget att ta fram ett vindkraftverk som kan driva en liten motor. Oavsett vilken grupp som producerats mest makt skulle vinna konkurrensen och p...

Hur man inte ska bygga ett flygplan

Så har du slutligen beslutat att bygga det dröm flygplanet! Inte en modell denna gång, du kan faktiskt sitta och flyga! Bra för dig! Ni inleder ett stort äventyr. Eftersom ditt mål är utan tvekan att spendera enorma summor pengar och göra ett komplet...

Hur man bygger ett garage från marken

behöver lite verkstad utrymme, en fästning av ensamhet eller en plats att hysa din öl kylskåp? Ett nytt rymligt garage är svaret, och detta är Instructable att göra det möjligt. Som nya husägare och ivrig DIY typ kille var jag upp mot en stor utmanin...

Hur man bygger ett fort

ett fort är en mycket rolig och enkel privat bas som någon kan konstruera vilken tillåt dem till vara sektioneras bort från resten av världen. Även om forts verka enkelt att bygga, kräver de ofta minst några tips för att bygga dem till deras fulla po...

Bygga ett lusthus: från google sketchup till verkliga världen

Syftet med detta instructable är att bygga ett mycket resistent öppen källkod lusthus. De planer som används är fritt nedladdningsbara tråg den instructable.Om du är intresserad, kan du Visa listan över mina yet-realiserade idéer på min bloggSteg 1:...

Bygga ett klubbhus!

BehövsHAMMARE ELLER SPIK PISTOLDRILLSÅGWOODSKRUVMEJSELLEDSEN OM DETTA ÄR SVÅRT ATT FÖLJA, DESS MIN FÖRSTA OUTGRUNDLIGDetta outgrundlig lär du dig att bygga ett klubbhus. Det kan ta en vecka, en månad eller ett år och det kan kosta 0$ 3000 $, det är v...

Bygga ett barns Muskoka ordförande

några år sedan, jag designade denna särskilda Muskoka ordförande att ge till min brorson som en julklapp. Dessa är mer allmänt kallas Adirondack stolar i staterna. Jag bestämde mig för att detta också skulle vara ett stort projekt för min klass 11 tr...

Bygga ett soffbord idegran

Jag bestämde mig för att jag skulle bygga ett soffbord som jag har gjort lite av träslöjd under det senaste året, främst smycken lådor och vissa grundläggande hyllor, och trodde det skulle bli ett bra projekt att utveckla mina kunskaper. Jag hade urs...

Bygga ett hus i Filippinerna

Jag bygger ett hus i Filippinerna med hjälp av familj och vänner.Började byggas i 2012 och det är fortfarande inte färdig. Detta är ett så stort projekt kommer jag att dela spellista på YouTube om du är intresserad av i följande vardag. Jag började l...

Hur man bygger ett bostadsområde samhälle i Indien

Att ha sitt eget hus är en dröm som omhuldas av miljontals indier bor i olika städer av landet. Medan tidigare, trenden för ett stort hus som delas av flera personer lever tillsammans som gemensam familj var ganska populärt i Indien, denna tradition...

Hur man bygger ett Ultimaker Original + med en dubbel storlek utskrift säng (180 X 460)

speciellt för skaparna bland oss (Fablabers, lärare, lära-by-doing elever och nördar) i syfte att inspirera alla att inte bara se den 3D-skrivaren är en fantastisk att göra maskinen samt en maskin kan du också (åter) gör. På internet hittar du många...