MIDI Controller PART 3

Hallo ihr lieben.

Nach dem die BUSQUEEN und das MQ-ONE Dank eurer Mithilfe erschaffen wurde, geht es jetzt tatsächlich mal los den 3ten Teil zu kreiren, den BUSKING!

Ich würde mich wahnsinnig wieder über eure Unterstützung freuen.

Die Aufgabenstellung ist noch in der Build Phase. Es wird bestimmt eine Menge von der BUSQUEEN übernommen werden können.

So sieht die Oberfläche derzeit noch aus:

Bisher sieht es nach 90Tastern und 9 Potentiometer über einen Arduino MEGA mit 3 Expandern aus und einigen LEDs, das ganze mit MIDI OUT, MIDI IN, kein Display.

Beim Strom muss man ja etwas aufpassen, darum gleich die erste Frage fürs Beschriftungs- LAYOUT:

Ich möchte natürlich wieder LOW Current LED verwenden (Stück je 2mA Stromaufnahme), wo ist da die Grenze wo ihr sagt : “neee Laß mal lieber weniger machen!”

Sind 24Stück noch Praktikabel? geht noch mehr? oder lieber maximal 12? die können natürlich auch wieder über Expander oder so angeschlossen werden…

Zu den LEDs : sie müssen nur LEUCHTEN, blinken oder Pulsieren ist nicht nötig.

Das Blech dafür liegt ja schon eine Weile hier herum und durch die Arbeit mit der BUSQUEEN hab ich schon einige Änderungswünsche mit eingearbeitet. Einige Bohrungen fehlen noch und muss ich also ergänzen.

Erster Schritt ist also bei der Laserbeschriftung diese mit anzuzeichnen, da es im nachhinein schwieriger und ungenauer wird.

LG Rebecca

Edit:
Aktuelle
PIN TABELLE:
Busking Belegung des MEGA und der PCF.zip (20,3 KB)

Beitrag #43 - die Frontplatte: MIDI Controller PART 3 - #43 by rebel_tilt

Welcome Back :star_struck:

Hm, wie immer: Kommt drauf an.

Ich glaub die Frage ist nicht OB sondern WIE.

Ansonsten freue ich mich schon auf viele Tage knobeln.

LG

Hallo zurück im Forum!

Es gibt Stromgrenzen je Pin, je Port und je IC. Da sollten die 2 mA unkritisch sein. Also so viele LEDs wie Ausgangspins am µC sind. Du ahnst es vermutlich, würde ich aber so nicht machen.

Das ist besser. Die Expander werden mittels eines Bussystems an den µC angeschlossen und müssen irgendwie adressiert werden. Bei I²C geht das mit unterschiedlichen Adressen, bei SPI mit verschiedenen CS-Leitungen (Chip Select).

Beispielsweise acht mögliche verschiedene Adressen eines Expanders multipliziert mit der Pinzahl der Ausgänge je Expander. Also 8 * 16 = 128 LEDs.

MCP23S17 benötigt eine CS-Leitung und kann dann noch acht Adressen wie bei I²C unterscheiden, also 128 * Anzahl CS-Leitungen. Der SPI-Bus kann recht hoch getaktet werden.

Das sind die mir spontan einfallenden Beschränkungen.

Zu den LEDs. Hast du einmal über 5mm ws2812 nachgedacht?

den Arduino Mega kannst du im Prinzip pro Pin mit 20mA belasten (das max. Rating liegt höher). Aber es gibt noch weitere Einschränkungen, max. 200mA pro Port und eine gesamt Strombelastbarkeit über alle Ports gibt es auch. Irgendwo gabs mal eine schöne Grafik dazu. Deine 24 x 2mA sollten kein Problem sein.

Ich würde keine diskreten Pins dafür aufwenden. I2C Expander wurden schon genannt - tendiere für LEDs aber zu LED Treibern. Entweder die bekannten MAX7219 bzw. HT16K33 oder (was ich sicher in einem deiner letzten Threads auch schon eingeworfen habe) den SX1509.

Warum du dir den SX1509 anschauen sollst:'
Das ist nicht nur ein LED Treiber IC für 16 LEDs (jeder einzeln dimmbar, pulse und blink) sondern hat auch eine Logik zum auslesen von einer 8 x 8 Tastaturmatrix (64 Tasten!). Sparkfun hat ein gutes Tutorial - es gibt diese Boards aber auch im Nachbau wesentlich günstiger:

Wenn du dich nicht mit dem SX1509 anfreunden kannst und du die Tasten anders auslesen möchtest, dann würde ich an deiner Stelle den Vorschlag von @wwerner näher in Betracht ziehen, die Neopixel / WS2812 gibt es auch in der "üblichen" 5mm Bauform (suche z.B. nach APA106). Da kannst du eine ganze Kette an LEDs ansteuern und es fällt kaum ins Gewicht ob das 24 oder 48 sind. Der Strombedarf (nicht am Port-Pin!) ist bei diesen LEDs aber höher als 2mA. Aber ich denke das fällt nicht ins Gewicht, da du deine Steuerung vermutlich nicht für den Batteriebetrieb auslegen wirst. Oder liege ich da falsch?

btw: Mich würde noch interessieren was du funktional mit deinem MIDI Controller genau machen willst. Ich bin erst gerade in das Thema MIDI eingestiegen und suche selber nach Ideen.

Irgendwann ist das Timing die entscheidende Größe.

Schön euch alle wieder dabei zu haben.:heart:

Es müssen 3mm LED sein, da der Platz für größer einfach nicht reicht.

LED Streifen sind ungeeignet, das werdet ihr dann auch sehen, wenn ich ich die Beschriftung fertig hab.

Derzeit tendiere ich zu 24LEDs

Es werden dann 3 Blöcke, zwei mit je 6LED und einer mit 12LED

MODE A : Der Block soll immer den zuletzt betätigten Taster anzeigen, also maximal 1 LED leuchtet.

MODE B : In dem Block wird ein aktiver Taster jeweils an oder aus gezeigt, es können also ALLE LED leuchten.

Meistens ist der 12er Block in MODE A und die 6er in MODE B, fein wäre es, wenn es auch umschaltbar ist, je nachdem wie ich es benutzen möchte.

Wie gesagt, da brauch nichts blinken, blitzen, pulsieren oder so, es ist absolut genug Information wenn sie leuchtet!

für die Taster möchte ich wieder eine einzelne Abfrage, da diese bestimmt schneller arbeitet als eine Matrix, oder irre ich da?

Welchen Expander ich nehme sollte, denke ich, sprecht das ruhig miteinander ab, da ist eure Erfahrung einfach besser.

noiasca, was genau möchtest du denn mit MIDI machen?

Auch dieses Teil ist fürs Licht machen konzipiert. Ich denke morgen hab ich das Layout fertig, dann kannst du ja mal drauf schauen und gezielter fragen stellen.

LG Rebecca

Das ist umgangssprachlich gemeint.
Die adressierbaren LED's gibt es auch einzeln zum direkten auflöten auf die Leiterplatte. (z.B. ebay-link Oberseite Datenpins, Unterseite Versorgung)
Du wärest nicht die erste, die POF (Polymerfasern) ins Gehäuse klebt :slight_smile:

Die Modegestaltung ist Beiwerk; Das Prinzip mit den Merkern kennst Du ja aus den anderen Projekten.

Das mit den Tastenabfragen ist eher Geschmack. Wenn Du einzeln abfragst, durchläufst Du eine Schleife für die Abfrage, wenn Du Matrix abfragst bekommst Du einen Wert, den Du einzeln in der Software auflösen musst. Letzteres geht meisst schneller.

Was mir noch fehlt ist die Aufteilung / Zuordnung
Bei 90 Tasten und nur 24 LED in drei Bänken ist noch was übrig.

Hast Du einen Plan, was hardwareseitig zusammengehört?

Ich möchte zuverlässig mehrere Tasten gleichzeitig drücken können, ohne das es verzögert. Wenn da eine Matrix genauso gut funktioniert, die ist schneller und einfacher gelötet, dann, warum nicht…

Nee, ein Plan gibt es noch nicht, noch bin ich am überlegen und tüfteln, für was ich mich entscheide. Stand jetzt sind 40LED mit 4 Gruppen. Kann sich aber noch ändern.

Und schwupp… ist es einTaster mehr und EINE LED mehr, die dann tatsächlich auch BLINKT…

Wie gesagt ich bin noch am Designen

Ich möchte da den TLC5947 noch ins Spiel bringen. Das ist ein 24 Kanal LED Treiber mit Strombegrenzung und PWM Ansteuerung. Du brauchst keine Widerstände an den LED und kannst die Helligkeit steuern.
Interface: eine seielle Schnittstelle ähnlich SPI.

Grüße Uwe

Da wird es eher die Herausforderung nicht zu schnell zu lesen und einen ausgelösten Kontakt zu verpassen :slight_smile:

Aber momentan sehe ich da keine Schwierigkeiten.
Na stell mal zusammen. Ich bin da zuversichtlich...

Ok, ich zeig mal was ich bisher habe:

Stand jetzt, LEDs bei:

6er Block bei Positions I-VI, M1-6,

8er Block N1-8

12er Block bei Chaser 1-11+OFF

Blinkende LED bei PRELOAD wenn aktiv.

LG Rebecca

...und keine in der jeweiligen Farbe beleuchteten Taster bei "COLOR"?
Schwach gedimmt wenn nicht aktiv, heller leuchtend wenn ausgewählt (unter der Annahme, dass nur einer ausgewählt wird).

:slight_smile:

Klingt auf den ersten Blick Logisch, ist aber nicht nötig und das klappt auch nicht. Die Farbauswahl gilt für die gerade aktive Gruppe.

Die normale Arbeitsweise als Beispiel: GRUPPE A Farbe Gelb, GRUPPE B Farbe Blau…

für welche Gruppe soll dann die LED leuchten?

Mit PRELOAD kann ich alles an Farben, Gobos, Rotation, Programme wechseln etc. beliebig einstellen. Die Änderung ist aber erst mit dem 2tem Druck auf PRELOAD in Gange.

LG Rebecca

Das ist ein valider Einwand :wink:, dann ergibt es wirklich keinen Sinn. Auch gut, wieder ein paar LEDs gespart.

Ich bin thematisch noch etwas zurück :blush:

"Streifen" sind mechanisch wegen der Anordnung ungeeignet, gemeint waren aber RGB-LEDs mit eingebautem Controller, also Neopixel allgemein, die es in unterschiedlicher Bauform gibt. Allerdings muß man beim Rausschreiben der seriellen Informationen die Interrupts ausschalten, was das Einlesen von MIDI-IN stören könnte.

Daher mein Rat, bleib bei 3 mm LEDs mit irgendwelchen Expandern, Du magst ja PCF8575. Das Löten vieler Kabel bekommst Du bekanntlich bestens hin :wink:

PCF8575

Alte bekannte die bisher gute Dienste getan haben. fühlt sich gut an

Dachte ich mir. Stellt sich halt immer die Frage, setzt man auf Bewährtes für einen schnellen Erfolg oder probiert man mal was Neues für neue Erfahrungen.

Ich vermute, die echten Herausforderungen lauern an anderer Stelle :wink:

Oh ja,

Herausforderungen kann ich…

Guten Morgen

Es ist immer wieder gut, ohne Zeitdruck da ran zu gehen, man macht etwas, legt es bei Seite und wenn man wieder raufschaut fällt einem dann wieder etwas ein. Ändert noch ein bißchen. “Nee doch nicht: oder “ja geilo!” Alles ist erst drin und fertig, wenn ich da 2 Tage nichts mehr ändere. Mal sehen wie ich heute Abend drauf schaue…

Also wenn das echt nicht ins Gewicht fällt, dann nehm ich den vollen Luxus, also noch der 14er Block O mit LED dazu.

Also LEDs:

1x1

2x6

1x8

1x12

1x14

Ergibt dann 47LED, 46 davon nur Leucht und 1 mit Blink

Grob 100mA wenn alle Leuchten

Den Blink für Preload möchte ich deutlich auffällig machen, da das Pult dann ja “Blockiert” ist (es wartet auf die Freigabe).

Wenn das aus Versehen an ist, sucht man leicht nach: “was denn nun Kaputt?”

Wenn es noch geht, nehme ich hierfür dann eine helle Blaue mit 20mA. Da macht es, wenn ich richtig Verstehe, mehr Sinn wegen Blink, diese über den MEGA direkt zu nehmen.

48 sind 3 Expander

Oder geht auch ein Expander mit einer 7x7 =49 Matrix? Wie macht man das da denn eigentlich mit dem Vorwiderstand?

LG Rebecca