12 Button-Board von Leiterkartenpiraten Integration in meinem Fork

Man kann jetzt das 12 Tastenboard im Internet kaufen. Dabei handelt es sich um ein Tastenfeld, das 3 Funktionstasten enthält (Wie die 3 Tastenversion für Tonuino AiO oder Classic) sowie ein 3x3 Tastenfeld mit 9 Tasten die über eine Widerstandsmatrix ausgelesen werden. Dieses Board ist sowohl für das AiO Board als auch für den classic Tonuino nutzbar. Ich habe dieses Board in meine Software erfolgreich integriert. Man kann jetzt neben den 3 Standart-Tasten zusätzlich die 9 Tasten der Matrix mit Shortcuts belegen. Die Shortcuts der 3 Standarttasten werden wie gewohnt über longpress aufgerufen. Die 9 zusätzlichen Shortcuts werden durch einfachen Tastendruck aufgerufen. Eine Doppelbelegung der 9 Tasten habe ich nicht vorgesehen. Die Konfiguration der Shortcuts wurde in das Adminmenü integriert.
Auf der AiO habe ich das schon erfolgreich getestet. In der Classic-Version steht der Test noch aus, ist in der Software aber schon integriert.
Weil vermutlich erst wenige der Buttonboards in Verwendung sind, ist der Code noch nicht auf Github hochgeladen. Wer trotzdem schon Interesse hat kann mich per PN anschreiben um den Code und die zugehörigen mp3 und advert Ordner zu erhalten.

5 „Gefällt mir“

Die Software ist jetzt auch in Github hochgeladen. Bitte beachten, auch die zugehörigen mp3 und advertordner zu verwenden. Sonst funktioniert das Adminmenü nicht für die neuen Funktionen.
Diese Softwareversion ermöglicht 3 Tastenbetrieb mit max 5 shortcuts, 5 Tastenbetrieb mit max 7 shortcuts und den betrieb mit dem Buttonboard mit max 14 shortcuts. über defines wird die jeweilige Betriebsart festgelegt.

2 „Gefällt mir“

Ich konnte deinen Fork auf meine AiO mit 12 Buttonboard flashen, jetzt wird nur dauerhaft ein Tastendruck erkannt. DIP Einstellungen nach 3x3 Buttonboard Anleitung ist drauf. Zudem erkennt er dauerhaft einen Kopfhörer und schaltet daher den Lautsprecher ab.

Das mit dem Kopfhörer ist normal, wenn du die Hardwareänderung auf der AiO Platine nicht gemacht hast. Ohne die Änderung musst du die Kopfhörer Option in den defines deaktivieren. Mit dem Tastendruck. Was sagt der Ser. Monitor?Schau dir Mal das Foto oben an. Sind die Dipschalter bei dir in der richtigen Position?

Mach das doch bitte so, dass das Default ohne Änderungen funktioniert. Kaum einer wird diese Modifikation haben…

Ja, ich werde die Vordefinition noch Mal umkonfigurieren.

DIP Schalter ist korrekt, Kopfhörer habe ich auskommentiert (geht jetzt so, danke!).

Bei den Buttons musste ich musste die Cases 7-9 auskommentieren. Das Mapping hat den Wert für Shortcuts 7 auf 255 per default gesetzt und dann dauerhaft nach Ordner 255 gesucht. Nach dem Auskommentieren ging das dann aber auch.

Kannst du bitte mal den ser Monitor starten und dann der Reihenfolge nach die 9 Tasten drücken. Dann bitte mal posten.

Ich habe das im Code noch mal nachgeprüft. Die Ursache liegt darin, dass ich bei mir die Batteriespannungskontrolle aktiv habe, was aber auch nur nach einer Hardwareänderung der AiO geht. Zusätzlich muss dazu eine andere Boardunterstützungssoftware installiert werden. Dadurch waren hier Einstellungen aktiv, die bei nichtnutzung der Batteriekontrolle nicht wirksam werden.

Folgende Ergänzung im Setup beseitigt das Problem. Ergänze die Zeilen unter pinMode(Buttonmatrix… bis vor das letze #endif ohne die Sternchen. Dann sollte der code für alle 9 Tasten funktionieren.

#ifdef Buttonboard
  pinMode(Buttonmatrix, INPUT);         // Eingang Tastenmatrix 9-Tasten (A-I)

   *#ifdef AiO*
  •   #ifndef BattControl*
    
  •   analogReference(INTERNAL2V048);       // Festlegung der Referenz*
    
  •   analogReadResolution(12);             // Auflösung Auslesen*
    
  •   #endif*
    
  • #endif*
    
    #endif

Ich hab das nochmal kontrolliert. So funktioniert das jetzt.
Die Änderung ist auf Github auch aktualisiert worden.

Ich hab das jetzt so geändert. Ist auch schon auf Github geändert. Ausserdem war noch ein kleiner Bug in der Software der sich bei Nichtaktivierung der Batt-Kontrolle auswirkte. Der ist jetzt auch mit beseitigt.

1 „Gefällt mir“

Ja, läuft jetzt :slight_smile: Super Variante!

@Thomas-Lehnert Ist es auch möglich mit deinem Code zum Tastenboard nur 3 Taster an einem Classic TonUINO zu verwenden und wie müßte ich diese Verkabeln?

Ja, der Code kann für alle Varianten Classic und AiO in 3, 5 und 12 Tastenversion benutzt werden. Die Anpassung muss über die defines am Anfang des Codes vorgenommen werden. Lies dir bitte die Anweisungen am Anfang des Codes gut durch. Wo welche Taste angeschlossen wird, kannst du im Code sehen, wo die Pins zugewiesen werden. Die Anschlüsse für die Tasten entsprechen aber der Originalbeschallung des ursprünglichen Grundprojektes von @Thorsten .

@Thomas-Lehnert Das ist schön. Wo finde ich das Grundprojekt für die Originalbeschallung? Mit der Suche konnte ich nichts finden.

Das ist die ganz normale Tonuino Software von @Thorsten in der Dev Version. Möglicherweise habe ich deinen ersten Beitrag auch falsch verstanden, und du möchtest zu den normalen Tasten noch drei zusätzliche Tasten für Shortcuts hinzufügen? Dann musst du ähnlich dem 12 Tastenboard eine Zusatzschaltung mit Widerständen aufbauen, die das Auslesen über einen Analogeingang ermöglicht. Den Code kannst du dann auch dafür verwenden, aber etwas anpassen.

Ja genau, ich möchte zusätzlich drei Taster für Shortcuts. Wo finde ich dazu eine Zusatzschaltung mit Widerständen?

Dafür wäre eine Zusatzschaltung mit Widerständen gar nicht nötig. Die Schaltung ermöglicht ja, dass mehrere Taster an einem Pin ausgewertet werden können, aber 3 Pins sind meistens ja auch so noch frei.

Diese Schaltung kannst du verwenden. Am Code musst du soweit nichts ändern. Du musst in den defines das Buttonboard aktivieren. Du kannst dann im Adminmenü die Tasten A,B,C mit shortcuts belegen. Allerdings kannst du auch die weiteren Tasten bis I mit shortcuts belegen, diese aber nicht abrufen, weil nicht vorhanden.

Cool, das werde ich mal ausprobieren. Muß ich genau diese Widerstände verwenden oder reicht es wenn jeder weitere Taster 10kOhm mehr hat?

Du kannst auch eine Reihenschaltung von 10 kOhm Widerständen machen. Je Taste jeweils einer. Die Tasten schaltest du dann von den Verbindungspunkten jeweils nach Ground. Also quasi wie eine Kette. Der Arduino erkennt dann praktisch an der Anzahl der Widerstände zwischen gedrückter Taste und Analogeingang, welche Taste gedrückt wurde. Das gleichzeitige Drücken von mehreren Tasten wird dann auch nicht fehl interpretiert , es wird dann nur die Taste erkannt, die am nächsten am Analogeingang ist. Falls du vor hast noch mehr Tasten für Shortcuts zu verwenden, rate ich dir das fertige Buttonboard zu verwenden. Das ist genau dimensioniert und fix und fertig für die Benutzung. Funktioniert dann auch zuverlässig.