Midifizierung einer Johannus-Orgel mittels Arduinos

  • Der Arduino Due hat doch nur 54 nutzbare Pins, wenn du einige Pins noch umbiegst, dann maximal 60. Demzufolge müsste dir doch ein Pin fehlen?

    Ich hab ohne Verbiegen und mechanische Eingriffe locker 61 digitale I/O Pins nutzbar gemacht und sogar noch eine Handvoll übrig. Aber pssst, sags nicht meinem Arduino mit nur 54 Pins ;)

    Spaß beiseite. Man kann die 54 digitalen Pins nutzen, die 12 analogen kann man auch als digitale deklarieren (in meinem Fall Pullup-Input). Das ergibt 66 Pins. Damit ist auf jeden Fall noch Luft, sodass ich an jeden Manual-Arduino noch min. einen Schweller und theoretisch ein paar weitere Dinge dranhängen könnte.

    Dieser Beitrag im Arduino-Forum hat mich auf die Idee gebracht. Sollte mit MEGA genauso gehen.


    Ich habe die vergangenen Tage übrigens an einem Schweller-Programm gearbeitet, das wie du auch beschrieben hast "träge" reagiert. Hab bisschen justieren müssen und aber nun ein Ergebnis, dass sich authentisch anfühlt. Zumindest nach dem mir bekannten Schweller-Gefühl. Da ist ja jeder auch anders... Also danke für die Anregung!


    ...Lötstellen...Lötstellen...Lötstellen...

    Du sagst es. Ich bin kein Lötfreund geworden, obwohl ich es jetzt nach dennoch sicher knapp 300 Lötstellen (inkl. Fehlversuchen und weiteren kleinen An- und Umbauten) besser kann und routinierter bin. Aber Das ganze vlt. noch doppelt so häufig? Ohne mich.

  • Ich habe die vergangenen Tage übrigens an einem Schweller-Programm gearbeitet, das wie du auch beschrieben hast "träge" reagiert. Hab bisschen justieren müssen und aber nun ein Ergebnis, dass sich authentisch anfühlt. Zumindest nach dem mir bekannten Schweller-Gefühl. Da ist ja jeder auch anders... Also danke für die Anregung!

    Oh, dazu habe ich im anderen Thread was hinzugeworfen :)

    Schweller Selbstbau

    Melodeum.de - Wissenswertes zu Harmonium

    • Offizieller Beitrag

    Sehr schön, natürlich viel Arbeit. Wenn sich dann der Erfolg einstellt ist man um Erfahrungen reicher. Schön, dass du mehrere Arduino eingesetzt hast. Auch, dass du dir dann die Mühe gemacht hast die Kabel Taste für Taste richtig zuzuordnen und das nicht wild verdrahtet hast und mit Programmieren des Arduino zu lösen. In einem Jahr würde man wieder neu überlegen wie das Programm läuft.

    Mach weiter so und freu dich über deinen Erfolg

  • Denn auf diese Stiftleisten war gar nicht so leicht zu löten, die Kunststoffeinfassung war sehr hitzesensibel. Der Lötkolben durfte gefühlt nur Sekundenbruchteile am Metallstift verweilen, ehe das Plastik weich wurde und der Pin schief stand. Vielleicht habe ich mich auch doof angestellt. Jedenfalls sah die Erstlingsarbeit krumm und schief, dafür aber sehr wild aus.

    Keine Sorge, du hast dich nicht zu doof angestellt. Diese Stiftleisten sind nämlich nicht zum anlöten eines Kabels gemacht, sondern für das anläten auf einer Platine. Zum anbringen eines Kabel gibt es spezielle Stecker, nämlich diese hier:

    IMG_20221123_214234.jpg

    Du isolierst das Kabel ab, fädelst es ein und verpresst es. Danach schiebst du die Hülse über alles. Das Problem dabei ist aber, dass man diese Stecker nicht günstig bekommt und das passende Werkzeug auch unheimlich teuer ist. Nebenbei ist es nicht weniger fummlig und von Hand gemacht sind die Chancen gut dass du das Kabel durchtrennst oder es zu locker ist und abfällt... Bedeutet in der Praxis eines Bastlers sich mit den Stiftleisten zu ärgern. Und das man nur zwei Hände hat :)

    Melodeum.de - Wissenswertes zu Harmonium

  • Das mit den zwei Händen habe ich durch eine "Dritte Hand" versucht zu kompensieren. Dort hinein habe ich die Stiftleiste geklemmt, die ich vorher an den Lötpunkten schön mit Lötfett eingecremt habe. Dann mit der einen Hand das Kabel auf den Pin gehalten, mit deren anderen einen Tropfen Lötzinn drauf, Lötkolben gleich wieder weg und etwas anpusten. Durch das Lötfett ist das Lötzinn dann i.d.R. einigermaßen gut geflossen und hat Pin und Kabel miteinander verbunden. Zum Schluss war das fast Fließbandarbeit, am Anfang hab ich etliche Lötstellen neu machen müssen.

    Im Nachhinein hab ich dann auch gedacht, ob es nicht vlt. so Stecker wie beim Steckbrettkabel hätte geben müssen. Im Grunde, wie du das auch beschreibst. Aber klar, wenn das so teuer ist, ist man wieder zurück beim Pfennigartikel Stiftleiste.

  • Daher ist es am einfachsten mit den Leiterbahnen die Kabel anzulöten und dann daran die Buchsenleiste. Danach kann man für die letzte Strecke fertige Kabel nutzen. Alternativ fertige Kabel in der gewünschten Länge kaufen, ein Ende abschneiden und an die gewünschte Stelle anlöten.

    Aber nach 2x 61 Leisten wirst du jetzt Übung haben :) Eine Arbeit bei der man besser nicht darüber nachdenkt, was man da eigentlich gerade tut :)

    Melodeum.de - Wissenswertes zu Harmonium

  • Genau, bei meiner nächsten Orgel werde ich das genau so machen (und hoffe gleichzeitig, es kommt nicht dazu). Allen etwaigen Nachahmern sei es gleich so empfohlen. Zusammenhängende Steckbrettkabel, egal ob Stecker/Stecker oder Stecker/Buchse, kosten auch nicht die Welt.

    Und übrigens: es waren 3x 61 plus 2x32 (inkl. hinten Kontaktierung verändern) plus 14 Setztasten, 2 Fußpistons sowie 2 Schwellpedale. Und da sind wir noch nicht bei dem einen oder anderen Experiment oder den ausstehenden 65 Registerschaltern. Alles, was ich mir an Löten sparen kann, werde ich mir sparen. Auch wenn ich tatsächlich mittlerweile Übung habe ;)

  • Zum Entprellen kannst du deinen Arduino ganz einfach nutzen. Die Lib Bounce2.h ist die einfache Antwort auf das Problem.

    Ich habe hier mal ein Stück Code rausgesucht der es ganz einfach zeigt:

    Die Zeile const uint8_t BUTTON_PINS[NUM_BUTTONS] = {22, 24, 26, 28, 30, 32, 34, 36, 38, 40}; gibt die Pins an, an der sich der Button befindet (der andere Pol ist natürlich GND).

    In der Zeile int buttonCode[NUM_BUTTONS] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; wird quasi für jeden Taster der Midicode angegeben. In diesem Fall wird ein ControlChange 1-10 gesendet. Je nachdem welcher Taster gedrückt wurde.

    Mit buttons[i].interval(50); wird die Entprellzeit auf 50ms gesetzt und im Loop wird geschaut ob der Taster nun sicher gedrückt wurde oder nicht.

    Melodeum.de - Wissenswertes zu Harmonium

  • Interessant! Wie macht man das in GO?

    In GO geht das in dem Fenster, das sich bei Rechtsklick auf MIDI-Elemente öffnet. Jedoch nicht in der Standardeinstellung nach "Warten auf Ereignis". Bei meiner Konfiguration (NoteOn/Off) stand dann automatisch im Feld Ereignis "9x Note". Das muss man händisch abändern in "Note an-/umschalten" o.ä. Dann wird ganz unten das Feld Debounce time aktiv und man kann einen Millisekunden-Wert eingeben.

    Ich habe es außerdem deshalb in GO gemacht, weil zu dem Zeitpunkt mein Code fertig, die Motorhaube zu und meine Orgel bereits am Laufen war. Dann lässt sich das natürlich im Nachhinein etwas einfacher in GO anpassen, als die "feste" Code-Methode.

  • Keine Ursache. Hab es auch nur von Rainer gelernt :)

    Ich habe noch eine handwerkliche Herausforderung vor mir, wo ich bislang noch keine Lösung so recht weiß. Doch hier gibt es so viele begabte Tüftler und Bastler, sodass mir vlt. Rat erteilt werden kann.

    Ich möchte gern die Registerschalter (Kippschalter, siehe Bild im ersten Beitrag) zu Tastern umrüsten. Mir fehlt nur grad noch die richtige Vorgehensweise. Habe verschiedenste Mikroschalter (u.a. den hier) probiert unter dem Schalter zu platzieren, sodass der Taster betätigt wird und der Schalter anschließend wieder zurückschnappt, Aber das funktioniert entweder nicht oder wäre nur sehr umständlich anzubringen. Alternativ will ich noch mit diesem Wippentaster experimentieren, auf den ich den originalen Schaler irgendwie aufbringen will. Das wären die Vorgehensweisen, wo der Taster mechanisch betätigt wird.

    Vielleicht würde alternativ noch gehen, dass ich eine andere (Rückhol-) Feder einbaue (momentan ist eine einrastende Feder verbaut) und den Kontakt eher optisch oder magnetisch zustande kommen lasse. Aber hier habe ich keine Ahnung, was das kostenmäßig pro Schalter bedeuten würde.

    Ich liefere morgen mal noch Bildmaterial nach.

  • Ich sehe noch keine Antwort. Es gibt mehrere Optionen. Hiermit gebe ich eins ab!

    Wenn Sie experimentieren möchten:

    Wenn der Metallrahmen nicht magnetisch ist, z. B. aus Aluminium, können Sie einen Magneten und einen Reedkontakt verwenden. Kleben Sie einen kleinen Neodymium-Magneten auf das Plastik und den Reedkontakt unter der Öffnung im Rahmen.
    Dann gilt es auszuprobieren, wie und wo der Reedkontakt platziert werden soll. (evtl. senkrecht zum Rahmen, sogar auf einer Holzleiste möglich)

    Beispiele finden Sie über Google. Sehen Sie, wie Orgelpedalkontakte mit Reedkontakten hergestellt werden.

    Verwenden Sie dann den gleichen Code wie eine Tastaturtaste im Arduino.


    Gehen Sie vorsichtig mit Reedkontakten um. Wenden Sie beim Biegen der Drähte keine Kraft auf das Glas an.