In een andere discussie heb ik het gehad over een beiaardaansturing via MIDI die ik aan het maken ben. Het deel midi->klokken werkt op dit moment.
Nu wil ik ook graag een bestaand klavier (mechanisch), met 49 toetsen, ombouwen zodat het midi-signalen verzendt.
Voor zover ik gevonden heb, worden in klavieren voor digitale piano's twee methodes toegepast om de beweging van de toets te meten: twee schakelpunten waar het tijdsverschil tussen gemeten wordt oftewel hall-sensoren waarmee je effectief de snelheid meet.
Of is er nog een ander mogelijk systeem?
Het gedoe met hall-sensoren lijkt me vrij omslachtig omdat het allemaal analoog verloopt en er dus een hoop A/D moet gebeuren. Ook omdat, als ik me niet vergis, een hall sensor de positie geeft, die je dus nog moet afleiden om de snelheid te krijgen en alles nog gecalibreerd moet worden.
De 'eenvoudigste' optie lijkt me dus deze met schakelpunten. Best optisch, lijkt me.
Nu, hoe moet ik die dingen gaan meten? Het gaat om 2x49=98 sensoren.
Multiplexen is een optie. Maar de schakeltijd gaat zeer kort zijn, vooral als de toets hard wordt aangeslagen. Is dat te doen?
Misschien dat iemand weet waar ik meer informatie kan vinden over de werking en het ontwerp van klavieren?
Zijn er ook geen kant-en-klare ic's op de markt die heel het gedoe afhandelen?
Alvast bedankt!
WilToyo
Maak me niet gek, ik ben al gek.
Moet je weten hoe hard er geslagen wordt, of is het voldoende om te weten dat er geslagen wordt.
Als je alleen maar hoeft te weten dat er een toets (of hoe heet dat op een beiaard?) geslagen wordt, kun je af met een reed-contacten. Op de toets een magneetje en ernaast een reed-contact.
Als je het met twee schakelaars per toets wilt doen, kun je de schakelaars in een diodematrix zetten.
Je spreekt dan over een matrix die 98 switches moet uitlezen.
Het uitlezen doe je met een microcontroller, welke met ingeprogrameerde timers het interval kan meten tussen de 2 schakelcontacten die bij een toets horen.
Als je een matrix aansturing/uitlezing programmeert in een controller, dan kun je zien wat voor resolutie je kunt halen voor het interval. MIDI werkt gelukkig met 7bit, dat is niet zo hoog, maar je zult zelf moeten onderzoeken of je die 7bit uberhaupt haalt, of misschien op 6bit uitkomt. Dit is afhankelijk van je controller-snelheid.
Maar even een vraag over dit project: Wat wil je met die toetsen gaan aansturen? Als het gaat om klokken, dan zie ik niet helemaal in waarom je dit wilt combineren met toetsaanslag. Of wil je daadwerkelijk de klokken met variabele kracht aanslaan?
Dat zal mechanisch een leuk grapje worden...
De velocity moet ook gemeten kunnen worden, helaas. Liefst met de maximale nauwkeurigheid. Midi voorziet 7 bits (0-127) om de velocity aan te duiden. Maar de meting moet nauwkeuriger zijn, aangezien de omzetting via een logaritmische curve gebeurt. Als je heel stil drukt is het tijdsverschil vele malen groter, namelijk.
De bedoeling is om met dit toetsenbord zowel een soundmodule als echte klokken te kunnen aansturen. Bij de echte klokken is de nauwkeurigheid van de velocity niet zo belangrijk, omdat je die klokken inderdaad niet zo nauwkeurig kan aansturen.
[Bericht gewijzigd door Henry S. op (28%)]
Moet het beslist dat klavier zijn, vanwege de uitvoering misschien?
Anders zou je een compleet MIDI klavier kunnen aanschaffen. Daarin zijn heel degeljke types verkrijgbaar, niet alleen speelgoed.
Jammer genoeg wel. Een normaal midi-masterklavier kost tegenwoordig bijna niets meer. Maar er moet effectief een beiaardklavier bespeeld worden, want het zal gebruikt worden in mobiele beiaardconcerten.
Ik besef dat het een groot project is en ik ben er ook nog niet uit of ik het effectief ga doen. Daarvoor moet ik eerst een schatting kunnen maken van het werk en budget dat het zal vragen.
Ik weet niet wat je ervaring is met het ontwerpen van dit soort digitale systemen, maar als je ervaring hebt met controllers, en beschikking hebt over een IDE waar ook een simulator in zit, dan kun je snel achterhalen of je dit gaat halen of niet.
(ik denk nu even heel simpel aan een PIC met bijv MPLAB)
Je kunt dan die matrix aansturing programmeren, en door te simuleren meteen zien of je het haalt.
Hiervoor hoef je niets te bouwen.
Als vervolgens blijkt dat het haalbaar is, bouw dan de hardware..
Maar goed, wellicht gaat dit nu te ver voor je..
Je kunt hier eens kijken voor inspiratie (zonder velocity):
http://www.necel.com/en/faq/mi_com/__com_ksw.html
EDIT
Ik zie net dat je ergens anders een topic hebt waar je een enorme lap code in hebt gezet. Blijkbaar heb je de ervaring dus..
EDIT 2
Ik bedenk me net dat het wel van belang is hoe ver je die twee contacten van een toets uit elkaar zet.
[Bericht gewijzigd door DIY op (16%)]
Ik heb een keyboard controller ontworpen. Er zit een pic16f648 in. Deze meet de velocity. Hij is in te stellen volgens verschillende curves. Als je interesse hebt kun je contact met me opnemen.
Dit zou nog een een goede link voor je kunnen zijn, het is precies wat je wilt:
edit: dat werkte niet goed
http://www.geocities.com/JDPetkov/ project 10
[Bericht gewijzigd door w1z13 op (21%)]
Ik moet helaas het project opschorten, aangezien ik het niet binnen de vooropgestelde tijd ga klaarkrijgen (einde dit jaar).
Dit omdat ik met mijn thesis ben begonnen en er mij dus niet veel tijd meer rest om me op andere dingen te storten.
Maar ik ga de draad later zeker terug oppikken.
Alvast bedankt voor jullie hulp.
RES
RES
Een LED kun je gebruiken als bewegingssensortje. Werkt als volgt, je laadt de LED (LED heeft kleine capaciteit), dan i/o in hi-Z en dan beginnen te meten (timer starten), op gegeven moment klapt de i/o om (schmitt trigger werking) en dan stop je de meting.(waarde in timer bepaalt reactiesnelheid toets, sneller of korter ontladen.) Dit op zoveel Hz herhalen. Dit moet je dus 49x vlak na elkaar doen. Je moet dan eerst uitzoeken hoe de LED reageert (karakteristiek), hoe sneller de (16-bit) timer loopt hoe nauwkeuriger de meting, zo instellen dat ie zoveel mogelijk ticks pakt over ontlaadttijd. (dan terugbrengen naar 7-bit voor MIDI.) Niet echt simpel, maar slijtvast en duurzaam.(kan nog wel stof in komen na jaren) Via hall-sensors stofvrij, maar wat duurder, een voordelige uC en LED's kost bar weinig.) Zo in elkaar flansen dat er zo min mogelijk stof in kan komen. Het blijft allemaal lastig aanslaggevoeligheid onder een toets. In die Japanse keyboardje is het een soort geleidend rubber, en die padjes ook. Een nog andere manier is waarschijnlijk capacitief of inductief (soort transponder idee onder elke toets, weet niet wat GSM straling erop doet, er is altijd wel een probleem.)