Hallo,ich stehe vor dem Problem, 80 Geräusche die auf Festplatte gespeichert sind über 80 externe Tasten abrufbar zu machen. Jedem Geräusch seine Taste.
Wie geht das am besten. Ich nehme an da brauche ich ein Interface für irgendeine Schnittstelle und Software die damit umgehen kann. Oder welche Möglichkeiten habe ich bzw was gibts wo zu kaufen und was muß ich selbst machen.
Ich bitte um Eure Hilfe.
Gruß Hans
Hallo,ich stehe vor dem Problem, 80 Geräusche die auf
Festplatte gespeichert sind über 80 externe Tasten abrufbar zu
machen. Jedem Geräusch seine Taste.
Hallo Hans,
das ist gar keine so schwere Aufgabe. Die 80 Tasten ordnest Du zunächst in einer Matrix an (elektrisch gesehen – die räumliche Positionierung der Tasten ist natürlich beliebig), wobei sich eine mit 8 Zeilen und 10 Spalten anbietet. Zu jeder Zeile und jeder Spalte gibt es eine Leitung, wobei jede Taste, wenn Sie gedrückt wird, gerade diejenige Zeilenleitung mit derjenigen Spaltenleitung verbindet, an derem Kreuzungspunkt sie sich befindet. So ist das übrigens auch bei jeder gewöhnlichen PC-Tastatur gemacht. Der „Ausgang“ des Tastenfeldes besteht somit aus insgesamt genau 8+10=18 Leitungen.
Das Abfragen der Tasten über die Zeilen- und Speltenleitungen sowie die Kommunikation mit dem PC übernimmt ein Mikrocontroller. Gut geeignet dazu wäre z. B. der AT90S8515, ein Mitglied der AVR-Familie von Atmel. Dieser µC verfügt über eine ausreichende Anzahl von I/O-Ports (32 Stück) und außerdem noch über einen Hardware-UART, wodurch der Austausch von Daten mit dem PC über dessen serielle Schnittstelle sehr leicht realisiert werden kann. Das Programm des µCs wird in Assembler oder C erstellt.
Was noch fehlt, ist die Software für den PC, die die vom µC angelieferten Daten abfragt, auswertet und die gewünschten Sounds abspielt. Dieses Programm kann z. B. in Delphi geschrieben werden. Hier stehen zum Ansprechen der seriellen Schnittstelle und dem Abspielen von Multimedia-Dateien gebrauchsfertige Komponenten zur Verfügung, so daß der Programmieraufwand nicht allzu groß werden dürfte.
Ich hoffe, ich konnte Dir helfen.
Mit freundlichem Gruß
Martin
Hallo Martin, danke für deine Antwort, da bekomme ich ja langsam eine Übersicht.
Eines was ich vergessen habe zu sagen ist, die Taster sind vorhanden und montiert und sind alle massebezogen d.h mit Matrix geht nichts. Ich kann einigermaßen mit dem Basic-Stamp umgehen, C und Assembler kann ich nicht. Müßte aber auch mit dem Stamp gehen, was meinst du. Wie ich mit den 80 Tasten umgehe ist mir auch noch nicht so richtig klar.
Gruß Hans
Hallo Hans,
das ist gar keine so schwere Aufgabe. Die 80 Tasten ordnest
Du zunächst in einer Matrix an (elektrisch gesehen – die
räumliche Positionierung der Tasten ist natürlich beliebig),
wobei sich eine mit 8 Zeilen und 10 Spalten anbietet. Zu
jeder Zeile und jeder Spalte gibt es eine Leitung, wobei jede
Taste, wenn Sie gedrückt wird, gerade diejenige Zeilenleitung
mit derjenigen Spaltenleitung verbindet, an derem
Kreuzungspunkt sie sich befindet. So ist das übrigens auch
bei jeder gewöhnlichen PC-Tastatur gemacht. Der „Ausgang“ des
Tastenfeldes besteht somit aus insgesamt genau 8+10=18
Leitungen.Das Abfragen der Tasten über die Zeilen- und Speltenleitungen
sowie die Kommunikation mit dem PC übernimmt ein
Mikrocontroller. Gut geeignet dazu wäre z. B. der AT90S8515,
ein Mitglied der AVR-Familie von Atmel. Dieser µC verfügt
über eine ausreichende Anzahl von I/O-Ports (32 Stück) und
außerdem noch über einen Hardware-UART, wodurch der Austausch
von Daten mit dem PC über dessen serielle Schnittstelle sehr
leicht realisiert werden kann. Das Programm des µCs wird in
Assembler oder C erstellt.Was noch fehlt, ist die Software für den PC, die die vom µC
angelieferten Daten abfragt, auswertet und die gewünschten
Sounds abspielt. Dieses Programm kann z. B. in Delphi
geschrieben werden. Hier stehen zum Ansprechen der seriellen
Schnittstelle und dem Abspielen von Multimedia-Dateien
gebrauchsfertige Komponenten zur Verfügung, so daß der
Programmieraufwand nicht allzu groß werden dürfte.Ich hoffe, ich konnte Dir helfen.
Mit freundlichem Gruß
Martin
Hallo Hans,
Eines was ich vergessen habe zu sagen ist, die Taster sind
vorhanden und montiert und sind alle massebezogen d.h mit
Matrix geht nichts.
eine Alle-massenbezogen-Konfiguration ist leider wenig vorteilhaft. Wenn es keine Möglichkeit gibt, das Tastenfeld vielleicht doch irgendwie so abzuändern, daß eine Matrix-Anordnung realisiert werden kann, mußt Du einen erhöhten Aufwand sowohl auf Hard- als auch auf Software-Seite in Kauf nehmen.
Zum Managen von 80 massebezogenen Tasten fallen mir folgende Möglichkeiten ein:
-
Du nimmst drei µC „AT90S8515“. Wenn Du bei zweien 28 I/O-Ports und beim dritten 24 benutzt, hast Du insgesamt 80 Ports. Über die übrigbleibenden vier bzw. acht Ports wickelst Du die Kommunikation der µCs untereinander ab. Dies geschieht am besten über die SPI-Schnittstelle (SPI = Serial Peripheral Interface). Dem dritten µC fällt dann noch die Aufgabe der seriellen Kommunikation mit dem PC zu.
-
Du löst das Problem mit zehn 8-Bit-Schieberegister-ICs. Der „74HC125“ ist ein solches IC. Jeder Baustein verfügt über 8 Eingänge (die mit je acht Tastern zu verbinden sind), mit denen ein Schieberegister „geladen“ werden kann. Über einen Takteingang kann das Register dann „in Gang“ gesetzt werden. Der Clou ist, daß Du alle zehn ICs aneinanderhängen kannst. Der Ausgang des „letzten“ in der Kette wird dann mit einem einzigen Eingangspin des µCs verbunden. Am Anfang jedes Abfragezyklus gibt der µC den Befehl zum Laden der zehn Register. Danach liest er mit 80 Impulsen die Registerkette aus, wobei er die ankommenden Bits zur weiteren Verarbeitung in einem Puffer sichert. Da Du bei dieser Möglichkeit nur wenige I/O-Ports benötigst, kannst Du einen kleineren µC nehmen, z. B. den AT90S4433 (20 Ports) oder sogar den AT90S2313 (15 Ports).
-
Du begibst Dich auf analoges Terrain. Je vier Taster bekommen zunächst eine gemeinsame „Ausgangsleitung“ zugewiesen. Jede der 20 Ausgangsleitungen ist über einen Widerstand (z. B. 10 kOhm) mit der Plus-Leitung verbunden. Wenn nun jeder der vier zugehörigen Taster „seine“ Leitung über einen anderen Widerstand (z. B. erster Taster 10 kOhm, zweiter 6 kOhm, dritter 3 kOhm, vierter 1 kOhm) mit Masse verbindet, erhält die Ausgangsleitung je nach gedrücktem Taster ein anderes Potential. Einige µC-Typen aus der AVR-Familie verfügen über einen 6-kanaligen AD-Wandler. Dessen Auflösung beträgt 10 Bit, so daß sich 4 Schalter sicher „identifizieren“ lassen soltlen. 6 Kanäle sind allerdings für 80 Tasten zuwenig (6 * 4 = 24). Daher wäre also noch ein Multiplexing über CMOS-Analog-Schalter nötig.
Ich kann einigermaßen mit dem Basic-Stamp
umgehen, C und Assembler kann ich nicht. Müßte aber auch mit
dem Stamp gehen, was meinst du.
Zumindest, wenn Du Dich für Möglichkeit 2 entscheidest (ich denke, das ist ohnehin die Alternative der Wahl), müßte es mit dem Stamp gehen. Der Vorteil ist hier, daß Du mit wenig I/O-Ports auskommst (eben sogar noch weniger als bei der Matrix-Konfiguration nötig wären). Dafür bleibt es Dir nicht erspart, zehn ICs mit den Tastern zu verschalten. Übrigens dürfte dies auch die kostengünstigste Möglichkeit sein, weil die Schieberegister-ICs billig sind.
Mit freundlichem Gruß
Martin
Danke,das hilft mir weiter.Die Schieberegisterlösung gefällt mir gut, ich glaube das bringe ich hin.
Gruß Hans
Tach Hans,
ich würde ein kleines basic-Programmli schreiben: Wenn Taste „A“ dann beep01.wav usw. Dann eine 9,95-Tastatur kaufen, die überflüssigen Tasten (ALT, F4…) entfernen, neu beschriften und nach Programmstart gegen die Haupt-Tastatur austauschen. Vielleicht kann man sogar 2 Tastaturen parallel betreiben wenn eine USB und die andere PS2 oder DIN ist…
Vorteil: Keine Hadware-Bastelei, sehr preiswert.
Nachteil: Blöde Tasten.
Abhilfe: Nur den Controller benutzen, die Tastenanschlüsse herausführen und richtige Tasten ran.
bye
>Micha
Das Dashboard, ca. 20 x 30 cm gross, USB-Anschluss, hat einen ganzen Haufen Tasten, die sich frei belegen lassen.
MFG Peter