Forum: Mikrocontroller und Digitale Elektronik 6x22 LED Matrix für Gitarren Fretboard


von Feli B. (guybrush)


Lesenswert?

Hallo alle Zusammen,

ich habe mir zusammen mit einem Freund den Plan gemacht, eine Gitarre 
mit LED's zu bestücken. D.h. in jeden Bund, für jede Seite eine LED um 
später Skalen und Griffmuster anzeigen zu lassen.

Ich persöhnlich habe schon eine Ausbildung als Elektroniker gemacht, 
aber meine µController kenntnisse sind extrem bescheiden. (Habe ein 
bischen erfahrung mit dem ATmega8).

Was wir konkret bauen wollen ist:

Gitarre mit 6x22 LEDs,ambesten als Matrix angesteuert und ein kleines 
display mit tastern, um zwischen den einzelnen Skalen-Muster 
durchzuschalten.
Evtl auch noch einen kleinen einstellbaren Timer, der zwischen den 
einzelnen mustern weiterläuft (1 sek bis 10 sek).

Was ich dafür als erstes in erfahrung bringen möchte ist, mit welchen 
Controller das am besten geht. Ich weiß nicht ob ein Atmega 8 dafür 
ausreicht um etwa 100 skalen (led-muster) mit zugehörigem displaytext 
einzuspeichern.

Dann wärs noch Interessant, ob der µController dann eine extra 
Treiberstufe braucht, um alle LEDs zu versorgen.

Ich bin auch bereit dafür eine neue Programmiersprache zu lernen, falls 
assembler nicht die beste wahl ist.

Ich hoffe hier hat jemand schon ne Idee wie man sowas am besten 
realisiert.

grüße
Guybrush

von Rene K. (draconix)


Lesenswert?

Sehr schöne Idee muß ich sagen.

Sollte ein Atmega8 nicht reichen, kann man auch zu einfach zu einem 
Atmega168 greifen. Gleiches Layout, fast gleiche Hardware. Nur doppelt 
soviel Speicher.

Um ein Multiplexing wirst du wohl oder übel nicht herumkommen. Zumindest 
für die einzelnen Bünde also benötigst du 6 Pins für die Saiten-LEDs und 
2 Pins zum Schieben für die Schieberegister der Bünde.


Übrigens haben alle meiner Gitarren 24 Bünde ;) Da sollte man mit 3 
Schieberigstern in Kaskade (8Bit) auskommen.

Schöne Sache dat...

von Michael H. (michael_h45)


Lesenswert?

Feli Bezler schrieb:
> ich habe mir zusammen mit einem Freund den Plan gemacht, eine Gitarre
> mit LED's zu bestücken. D.h. in jeden Bund, für jede Seite eine LED um
Saaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaite!!!
> später Skalen und Griffmuster anzeigen zu lassen.

> Gitarre mit 6x22 LEDs,ambesten als Matrix angesteuert und ein kleines
Ich würde dir eher Schieberegister empfehlen, denn die kannst du zum 
einen bequemer über den ganzen Hals verteilen und zum anderen weil die 
Ansteuerung meines Erachtens nach einfacher ist.

> display mit tastern, um zwischen den einzelnen Skalen-Muster
> durchzuschalten.
> Evtl auch noch einen kleinen einstellbaren Timer, der zwischen den
> einzelnen mustern weiterläuft (1 sek bis 10 sek).
Da wirds dann aber schon ziemlich anspruchsvoll...
Das würde ich mal als Option in Hardware vorsehen und später dann in die 
Software einplanen.
Bleibst du dabei am Anfang gleich stecken, ist der Frustfaktor mit dem 
ganzen Projekt entsprechend groß...

> Was ich dafür als erstes in erfahrung bringen möchte ist, mit welchen
> Controller das am besten geht. Ich weiß nicht ob ein Atmega 8 dafür
> ausreicht um etwa 100 skalen (led-muster) mit zugehörigem displaytext
> einzuspeichern.
Du brauchst entweder einen externen Speicher (EEPROM/Flash), oder eine 
entsprechend schnelle Schnittstelle zum PC.
Ich würde dir vorerst zum AtMega8 raten, weil der hier im 
AVR-GCC-Tutorial schön beschrieben ist und du daher die Code-Teile 
des Tutorials übernehmen kannst.
Brauchst du später tatsächlich mehr Platz, kannst du zum pinkompatiblen 
AtMega328 greifen.

> Dann wärs noch Interessant, ob der µController dann eine extra
> Treiberstufe braucht, um alle LEDs zu versorgen.
Ja.
Z.B. TLC6C595 oder TLC5917 / TLC5916

> Ich bin auch bereit dafür eine neue Programmiersprache zu lernen, falls
> assembler nicht die beste wahl ist.
Das wäre eine gute Gelegenheit, in C einzusteigen - 
AVR-GCC-Tutorial.


Ganz generell: kleinere Brötchen backen und nicht mit einem riesen 
Projekt auf direktem Weg in die Sackgasse steuern.
Stell dir erst mal die Hardware für die LED-Geschichte zusammen, 
programmier deinen Controller, dass er ein Muster auf den LEDs 
ausgeben kann, schreib dir Routinen, um Muster aus dem Speicher zu lesen 
und zum Schluss eine Funktion, die Muster passend zu einem Lied aus dem 
Speicher holt und sie auf den LEDs anzeigt.

Display und Menü und 100 Lieder kommen später.

von Klaus (Gast)


Lesenswert?

Feli Bezler schrieb:
> ich habe mir zusammen mit einem Freund den Plan gemacht, eine Gitarre
> mit LED's zu bestücken. D.h. in jeden Bund, für jede Seite eine LED um
Saaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaite!!!
> später Skalen und Griffmuster anzeigen zu lassen.

Wieso 6, eine für die Vordersaite und eine für die Rücksaite

MfG Klaus

von Michael H. (michael_h45)


Lesenswert?

Michael H. schrieb:
> Z.B. TLC6C595 oder TLC5917 / TLC5916
TPIC6C595 sollte das heißen.

von Rene K. (draconix)


Lesenswert?

Hmm... wirklich ein sehr interessantes Projekt. Ich setze mich mal 
ran...

von Jobst M. (jobstens-de)


Lesenswert?

Ich denke, ich würde keine Schieberegister im Hals verstecken.
Ich würde eine 11*12 (immer 2x6 zusammengefasst) Matrix davon machen und 
einen ATmega16 hernehmen. Nicht wegen des Speichers, sondern wegen der 
Anschlusspins.
Der ATmega bewegt sich im selben preislichen Rahmen und man spart sich 
die Schieberegister, sowie die Verdrahtung der selben, welche ich auch 
als Faktor ansehe.

Über den Speicherplatz mußt Du Dir wenig sorgen machen, denn Du willst 
ja nur immer max. 6 LEDs gleichzeitig leuchten lassen. Mehr Saiten hat 
so eine Gitarre ja nicht. Korrigier mich bitte, wenn da ein Denkfehler 
ist - ich bin ja kein Musiker. Wenn Du das Optimal im Speicher ablegst, 
sind das 4 Byte pro Griff. Abzüglich Software sind das >3000 Griffe, die 
Du dann im ROM des ATmega16 ablegen kannst. (>7000 bei einem ATmega32)

Um die 6 LEDs leuchten zu lassen, benötigst Du auch keine zusätzlichen 
Treiber. Nur Texte als Laufschrift über den Hals laufen zu lassen, 
kannst Du dann vergessen.

Dann kommt ja noch das Display sowie Bedienelemente dazu. Auch hierzu 
benötigst Du noch Anschlüsse, die am ATmega16 dann noch frei sind.

Auf dem Display möchtest Du Songtexte synchron zum Griffmuster anzeigen 
lassen? Oder habe ich das falsch verstanden? Der könnte mehr Speicher 
verbrauchen, als die Griffmuster selber. Evtl. doch gleich zum 
ATmega644/1284 greifen?

Für einen Timer benötigst Du keine extra Hardware, daher ist die 
Betrachtung erst mal nicht relevant.
Ich denke, wenn Du das in Assembler machen möchtest ist das Okay, so 
hoch schätze ich den Aufwand nicht ein um dafür extra eine Hochsprache 
erlernen zu müssen. Das ist vor allem Bit-geschubse, da ist Assembler eh 
besser geeignet.


Gruß

Jobst

von Feli B. (guybrush)


Lesenswert?

Also ich hab mir das jetzt auch so vorgestellt das ich einfach eine 
12x12 er Matrix nehme (der 0te Bund muss ja auch dabei sein; hatte ich 
ganz vergessen) und das ganze mit villeicht sogar 2 Atmega32 mache. 
Einen der nur für die Ansteuerung und einen für die Daten bzw. Display 
funktion zuständig ist.

Und nein, ich hatte nicht vor, jede einzelne Note separat aufleuchten zu 
lassen. Nur komplette Pentatonik-muster auf einmal
In etwa soetwas:

http://www.planetguitar.net/lickderwoche/pentatonik1/a_moll_pentatonik.gif

Ich bau demnächst mal eine Versuchsplatine auf und probier ein wenig 
herum. Mal sehn wie weit ich komme.

Danke schonmal =)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.