Zum Inhalt springen

Arduino Pinball Controller


Black Knight

Empfohlene Beiträge

vor 19 Minuten schrieb Black Knight:

Und wie geht das bei Video Modes, eigenen Zeichensätzen u.s.w.? In was für einem Datenformat werden die bei euch eingelesen?

Wir rendern die ganze Zeit Bilder. Schriften und so weiter unterstützen wir in MC. TTF und Bitmap fonts geht beides. Bilder oder Videos gehen auch. Es ist genau das gleiche wie auf einem LCD außer dass die Auflösung halt kleiner ist.

vor 22 Minuten schrieb Black Knight:

Und werden die Daten bei SW genauso so an die HW übertragen wie bei RGB, nur halt ein Byte pro Pixel? Werden die Daten regelmäßig übertragen oder immer nur dann, wenn sich im Display was ändert?

Für SW haben wir einen anderen openGL Shader der Gammakorrektur und Helligkeit macht als für RGB. An sich sind die aber sehr ähnlich.

An die Hardware senden wir es so wie die Hardware es will. Bei Smartmatrix senden wir nur Changes und min einmal pro Sekunde. P-Roc ist glaube ich periodisch. Spike hat ein Format mit vier Bitmaps für jeweils ein Bit des Farbtiefe nacheinander.

vor 30 Minuten schrieb Black Knight:

Ich will das Rad halt nicht nochmal erfinden, sondern nach Möglichkeit auf vorhandenem aufbauen. Vielleicht machen ich ja auch mal einen WPC-APC und dann wär's natürlich praktisch, wenn MPF den ähnlich ansprechen könnte wie jetzige WPC Geräte, die vermutlich meistens mit P-ROC laufen.

Die meisten nutzen glaube ich Smartmatrix (China Panel mit FAST Controller oder Teensy). P-Roc gibt es auch User aber nicht so viele mit DMD. Generell ist es am einfachsten wenn wir die Bytes sequenziell schicken können weil so bekommen wir sie auch aus OpenGL. Ansonsten können wir aber auch alles konvertieren.

 

vor 32 Minuten schrieb Black Knight:

Das wäre super, dann haben wir die letzte Baustelle auch vom Tisch.

Mache ich am Wochenende.

vor 33 Minuten schrieb Black Knight:

Ich würde natürlich auch ein Loop-Bit oder sowas einbauen, wenn's gebraucht wird. Oder eine Rückmeldung, wenn ein Soundfile zu Ende ist, dann könnte der APC z.B. eine fiktive Schalteraktivierung melden.

Ich dachte das hatten wir für APC eingebaut. Bei LISY hängt das glaube ich direkt vom Sound ab und man kann es nicht beeinflussen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Antworten 1,6Tsd
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

  • Black Knight

    642

  • bontango

    438

  • Volley

    100

  • jabdoa

    97

Top-Benutzer in diesem Thema

Veröffentlichte Bilder

4 hours ago, jabdoa said:

Ich dachte das hatten wir für APC eingebaut

Ja, das war mal in der API drin, wobei ich persönlich einen Loop zu unflexibel finde. Andererseits braucht man irgendein Signal wenn die Musik am Ende ist, daher die Idee mit dem Phantomschalter. Der würde dann ganz normal mit 'Get Changed Switches' (0x29) abgefragt. Dann würde also z.B. Schalter 125 gemeldet, wenn das Soundfile für Kanal 1 am Ende ist und Schalter 126 für Kanal 2.

Das wäre eine Lösung, die meiner Meinung nach leicht zu implementieren und trotzdem sehr flexibel wäre.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Hallo Jungs,

es ist so ruhig bei euch, seid ihr alle im Sommerloch?

@bontango Gibt's irgendwas neues vom Comet?

@jabdoa Kann ich den Sound ausprobieren? Sollen wir noch ein 'Sound Ende' Signal einführen oder lassen wir es so?

@Volley Was macht dein SMD-Fieber, kommst du klar oder brauchst du Hilfe?

@Snux Deine 2 Wochen sind ja noch nicht ganz rum, daher lasse ich dich noch in Ruhe 😁

Wenn nichts passiert komme ich noch auf dumme Ideen und baue tatsächlich einen WPC-APC. Das mit den DMDs habe ich nämlich inzwischen raus und den Rest kann ich weitgehend vom APC übernehmen.

 

P1020627.JPG

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 49 Minuten schrieb Black Knight:

Was macht dein SMD-Fieber, kommst du klar oder brauchst du Hilfe?

Ich hab jetzt den ganzen SMD-Krempel erst mal aus der Verpackung gefummelt und in SMD-Boxen gefüllt. Mit dem Löten wollte ich nächste Woche starten. Ich hoffe dann kommt auch endlich mal das Flussmittel an...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Morgen Frank,

das sieht ja schon perfekt aus.👍 Wie hast Du es implementiert?

Comet wartet immer noch in der Garage auf die nächsten Scritte, die ist momentan aber zu heiss und ich bin mit LISY35 beschäftigt.

Frank testet da gerade den Sound mit der Raspi-Soundkarte und ich hab nen User in USA der fleissig bugs in der LISY35 MPF implementation findet.

Nebenbei hab ich noch 'auf besonderen Wunsch' 😉 einen standalone PIC programmer entworfen und teste gerade die meine Teilbestückten LISY35 Boards die endlich aus China eingetroffen sind.

Aber dann mach ich mit dem Comet weiter ...

 

image.png

picpgm_PCB_v1.0.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

1 hour ago, bontango said:

Wie hast Du es implementiert?

Das ist total simpel; die DMDs haben einfach nur zwei Schieberegister drauf, eins für die Zeilen und eins für die Spalten. Ein Schuss mit dem Logicanalyzer und man sieht, was Sache ist.

Ich habe dieses Testbild jetzt einfach mal mit einem Arduino UNO implementiert, aber der ist wirklich nur für ein Testbild zu gebrauchen und nicht schnell genug, um simultan die Daten von der CPU anzunehmen. Da werde ich wohl einen Teensy oder sowas nehmen müssen.

Ich werde wohl auch eine Standalone-Version bauen, die man dann direkt über USB steuert, damit spart man sich den Umweg über den APC, wenn man MPF oder Lisy_Mini verwendet.

1 hour ago, bontango said:

ich hab nen User in USA der fleissig bugs in der LISY35 MPF implementation findet

Tja, jetzt musst du wohl die ganzen Änderungen nachziehen, die wir in die Lisy API eingebaut haben.

1 hour ago, Volley said:

Mit dem Löten wollte ich nächste Woche starten.

👍

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 20 Stunden schrieb bontango:

teste gerade die meine Teilbestückten LISY35 Boards

Das ist ja mal ne super Sache, Teilbestückt, wie hoch sind die Mehrkosten?

Ist da dann alles an SMD schon drauf?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 28 Minuten schrieb Marc1:

Das ist ja mal ne super Sache, Teilbestückt, wie hoch sind die Mehrkosten?

Das war ne bislang einmalige promo Aktion von eSeed, da kamen pro Board (inkl. Zoll) ca. 30€ dazu.

vor 30 Minuten schrieb Marc1:

Ist da dann alles an SMD schon drauf?

Ja und mehr, alles was du auf dem Foto siehst. Ich hätte auch Vollbestückung nehmen können, habe mich

aber erst einmal auf Bauteile aus deren Library beschränkt. Bei Bauteilen welche die auch erst besorgen

müssen dauert es wesentlich länger.

Mal abwarten, Bestückung günstig anzubieten ist scheints der neue Trend bei den Platinenherstellern in China, da wird sich im Preis noch was tun.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 19 Stunden schrieb Black Knight:

Tja, jetzt musst du wohl die ganzen Änderungen nachziehen, die wir in die Lisy API eingebaut haben.

Erst mal nicht, Jan unterstützt auch noch die 'alte' 0.08 API. Die will ich erst mal mit LISY35 am laufen haben,

bevor ich dann mit allen LISY Varianten auf 0.09 gehe.

Link zu diesem Kommentar
Auf anderen Seiten teilen

7 hours ago, bontango said:

bevor ich dann mit allen LISY Varianten auf 0.09 gehe

Verstehe. Eine Frage hätte ich aber noch zur 0.09er API.

Du hattest ursprünglich mal ein Loop Bit für den Befehl 'Play Sound File' spezifiziert. Wir hatten das dann irgendwann gestrichen, aber ein Hinweis wenn die Musikdatei zu Ende ist wäre vermutlich ganz nützlich. Ich hatte daher vorgeschlagen, einfach ein Switch Event dafür einzubauen, d.h. die HW meldet einfach Schalter 126 betätigt, wenn die Datei für Tonspur 1 zu Ende geht und Schalter 126 losgelassen für Tonspur 2.

PinMame könnte diese Funktion nutzen, um einen Musikloop zu realisieren und MPF könnte ein Event draus machen, das der User dann abfragen kann.

Jan hat sich bis jetzt noch nicht wirklich dazu geäußert, aber ich denke wir werden irgendwas in der Art brauchen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

8 hours ago, Marc1 said:

Das ist ja mal ne super Sache

Schon die Nase voll vom löten? 😉

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb Black Knight:

Du hattest ursprünglich mal ein Loop Bit für den Befehl 'Play Sound File' spezifiziert. Wir hatten das dann irgendwann gestrichen, aber ein Hinweis wenn die Musikdatei zu Ende ist wäre vermutlich ganz nützlich. Ich hatte daher vorgeschlagen, einfach ein Switch Event dafür einzubauen, d.h. die HW meldet einfach Schalter 126 betätigt, wenn die Datei für Tonspur 1 zu Ende geht und Schalter 126 losgelassen für Tonspur 2.

PinMame könnte diese Funktion nutzen, um einen Musikloop zu realisieren und MPF könnte ein Event draus machen, das der User dann abfragen kann.

Jan hat sich bis jetzt noch nicht wirklich dazu geäußert, aber ich denke wir werden irgendwas in der Art brauchen.

Die Bits sind im Protokoll und auch in MPF implementiert. Aktuell fehlt nur der Show/hardware_sound_player Teil. Das kann ich noch machen am Wochenende.

So ein Event können wir machen. Ich weiß nicht ob es jemand braucht. Bei internen Sounds haben wir sowas. Normalerweise würde ich warten bis jemand danach fragt. Aber wenn es da ist baue ich es ein.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

On ‎8‎/‎26‎/‎2019 at 7:40 PM, jabdoa said:

Normalerweise würde ich warten bis jemand danach fragt. Aber wenn es da ist baue ich es ein.

Irgendwas werden wir wohl brauchen und das wäre eine sehr flexible Variante, mit der wir diese Loop-Geschichte gleich mit erschlagen könnten. Damit würde man es dem User überlassen, ob er einen Loop oder was anderes haben will.

Ich habe sowas bei mir intern nämlich auch schon und könnte das einfach verwenden. Ich baue euch aber auch ein Loop-Bit ein, wenn ihr das gerne hättet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb Black Knight:

und das wäre eine sehr flexible Variante, mit der wir diese Loop-Geschichte gleich mit erschlagen könnten.

Wenn es nicht zu umständlich für den User zu konfigurieren ist wäre ich dafür, wie würde das denn in der mpf-config aussehen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich als MPF-Noob stelle mir halt ein Sound-Ende-Event vor, das der User dann zum Starten eines Modes, eines neuen Sound oder was auch immer verwenden kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 26.8.2019 um 16:53 schrieb Black Knight:

PinMame könnte diese Funktion nutzen, um einen Musikloop zu realisieren und MPF könnte ein Event draus machen, das der User dann abfragen kann.

Ich hab da nochmal drüber nachgedacht. Das einzige Problem was ich dabei sehe wenn man das zum loopen verwendet ist, dass man durch den Kommunikationslag möglicherweise eine kurze Pause hört zwischen den Sounds. Bei Musik und so geht das aber vermutlich trotzdem. Wir können das gerne so machen. Mir ist es wirklich egal. Der User würde in MPF in beiden Fällen einfach sagen, dass es loopen soll. Wenn es ein Event gibt ist das natürlich cool um andere Aktionen zu triggern (wie z.b. eine Lightshow wenn der Sound fertig ist). Daher kann ich mir auch eine Kombination aus Loopbit + Event vorstellen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

12 hours ago, jabdoa said:

Wenn es ein Event gibt ist das natürlich cool um andere Aktionen zu triggern

Genau, das war die Idee. Ich habe das bei mir so gemacht und nutze das häufig - z.B. um nacheinander mehrere Musikstücke abspielen zu können.

12 hours ago, jabdoa said:

dass man durch den Kommunikationslag möglicherweise eine kurze Pause hört zwischen den Sounds.

Je nachdem was die Leute machen könnte das natürlich passieren. Aber da würde ich deinen Ansatz verfolgen und erst mal abwarten, ob sich wirklich jemand beschwert. 

12 hours ago, jabdoa said:

Habe mal den Track in alle Commands eingebaut in 0.53.0-dev.57 und auch in der Dokumentation.

OK, probiere ich aus - falls meine MPF Kenntnisse dazu reichen. Vermutlich muss ich doch mal einen Noob-Thread im MPF Forum aufmachen; ich tu mich da teilweise schon etwas schwer.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich sehe in der Doku jetzt immer noch ein Optionsbyte mit einem Loop- und einem NoCache-Bit. Dieses Byte gibt es bei mir bisher noch nicht.

Wir sollten uns kurz abstimmen, ob ihr das braucht oder ob das weg kann. Das Cache-Bit muss ich sowieso ignorieren, das der Arduino zu wenig Speicher für einen Sound-Cache hat. Die Loop-Funktion könnten wir mit einem Sound-Ende Event realisieren, was mehr Flexibilität böte, aber eventuell Probleme mit den Latenzen machen könnte, falls man wirklich einen Loop aus Soundfragmenten haben will.

Meine Präferenz wäre also, dieses Byte weg zu lassen und stattdessen das Sound-Ende-Event einzuführen.

Wie sieht's bei euch aus?

@bontango @jabdoa Hättet ihr gerne ein Loop- bzw. NoCache-Bit? Dann baue ich das Byte noch ein und würde das Loop-Bit verwenden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Minuten schrieb Black Knight:

Hättet ihr gerne ein Loop- bzw. NoCache-Bit?

Wäre für mich derzeit das einfachste dann brauche ich nichts zu ändern und kann mir sparen das Sound Ende event auszuwerten.

Im Moment 'loope' ich bei gesetztem bit halt solange bis jemand stop sagt.

Sound ende Event könne wir ja zusätzlich machen

Link zu diesem Kommentar
Auf anderen Seiten teilen

22 minutes ago, bontango said:

Im Moment 'loope' ich bei gesetztem bit halt solange bis jemand stop sagt.

OK, dann baue ich das noch ein.

Was wir mit dem Sound-Ende-Event machen können wir ja noch entscheiden. Für PinMame ist das sowieso uninteressant, aber für MPF Nutzer wäre das vermutlich wichtig.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

@jabdoa Ich habe die Soundänderung eingebaut, kann das aber bisher nur mit dem Terminalprogramm testen. Was muss ich denn in meiner MPF-Config machen, um ein Soundfile abzuspielen?

Ähnliche Frage zu den Displays. Snux hat zwar gezeigt, dass es mit MPF geht aber ich würde das auch gerne mal selbst probieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

So, jetzt scheint alles zu laufen.

Ich habe für den Sound noch ein paar Änderungen in der SW gemacht, damit alles kompatibel zu den MPF Kommandos ist. Hoffentlich komme ich dazu, das dieses WE zu releasen.

@bontango Da hat sich jemand im Pinside Forum gemeldet, der Lisy gerne mit dem 'MPF command interface' benutzen würde. Ich bin mir nicht ganz sicher was er meint, vielleicht möchtest du da ja was zu sagen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

×
×
  • Neu erstellen...

Wichtige Information

Datenschutzerklärung und Registrierungsbedingungen