Kugelbahnsystem GraviTrax von Ravensburger

  • Da coogelbahn nachgefragt hat, hier der „Programm-Code“ meiner oben genannten Beispielbahn:

    Das rote Signal aktiviert die beiden mittleren Starter (zum Releaser).

    Da grüne Signal aktiviert den Lever in der Mitte (sieht man nur halb), die beiden Switches unten (eines der beiden sieht man nicht), und die beiden rechten Starter (Zickzack-Strecke). Damit bei Aktivierung der ersten beiden Signale die dadurch ausgelösten Kugeln des rechten Starters nicht in in die Bahn reinrollen, leitet ein Turntable die beiden ersten Kugeln nach hinten um.

    Da es nur drei Farbkanäle gibt, musste ich bei grün etwas kreativ sein…

    Das blaue Signal aktiviert schließlich die beiden linken Starter.

    Eigentlich sollte die Bahn ursprünglich etwas länger sein, und mehr Kugeln aktivieren. Die Anzahl der Einzel-Befehle ist aber auf 64 begrenzt. Diese Grenze hat mich dann doch unangenehm überrascht… :(

    Einmal editiert, zuletzt von Capote ()

  • Habe jetzt mal erste Versuche mit connect und Python gemacht.

    Fazit: Installation klappt, Rest läuft nicht.

    Meine Vermutung: das liegt an der mangelndrn Umsetzung der Frameworks asyncio und/oder bleach

    Da bei den Systemvorraussetzungen nur Einträge für Windows bzw. Linux/Rhaspberry zu finden sind, schätze ich mal dass die Software nur auf diesen Plattformen getestet wurde.

    Gruß aus dem Münsterland
    Herbert

    ______________________________

    I'm old enough to know what's wise
    and young enough not to choose it

    2 Mal editiert, zuletzt von Herbert ()

  • Denn durch Python ist da doch so einiges möglich - da muss man aber halt den Code selber schreiben bzw. ergänzen.

    Da sehe ich das Haupthindernis für einen praktikablen Einsatz. Man muss für jede Bahn einen eigenen Code schreiben. Eigentlich braucht man wie bei offiziellen Power App modulare Einzelbefehle wie z.B. „sende ein rotes Signal nur für Switches“. Und zwar ohne dafür einen Python-Code schreiben zu müssen. Deshalb:

    Das schreit irgendwie nach einem GraviTrax App-Store :)

    Jau. :)

    Da hätte ich auf jeden Fall Interesse!

  • Da wird es doch vermutlich rucki zucki einige python libs geben, wo man genau solche wiederkehrenden sachen modular drin verfügbar hat und dann in seinem eigenen code integrieren kann. Wäre jetzt zumindest meine Vermutung bei so einem offenen Ansatz.

    Ausstehende Crowdfunding-Projekte:

    Arydia, Bad Karmas (Teburu), HEL - The Last Saga, Into The Godsgrave, Kingdoms Forlorn, Nanolith, Nova Aetas: Renaissance, Peacemakers: Horrors of War, RoboMon, Sword & Sorcery Abyssal Legends, Tainted Grail - Kings of Ruin, The Elder Scrolls (CTG), Unlikely Heroes, Vampire: Milan Uprising (Teburu), Warcrow Adventures, Witchbound

  • Da wird es doch vermutlich rucki zucki einige python libs geben, wo man genau solche wiederkehrenden sachen modular drin verfügbar hat und dann in seinem eigenen code integrieren kann. Wäre jetzt zumindest meine Vermutung bei so einem offenen Ansatz.

    Denke ich auch. Z.b. ist es mit Python möglich zu ändern, dass die Elemente nicht mehr nach 10 Minuten ausgehen. Was sicherlich gut gemeint ist, ist in der Praxis einfach nur nervig - das wäre so ein Beispiel dafür.

    Ein bisschen Rumkugeln kann nicht schaden!

  • Bei Light bin ich etwas enttäuscht… Erwartet hätte ich, dass die irgendwie auf die Signale reagieren.

    Zustimmung. Das hätte ich auch erwartet. Also z.B. das Starten einer Kugel nicht nur mit Sound- sondern alternativ oder in Kombination mit Lichtsignalen.

    Wird aber teuer, denn hier enthält die Packung nur 1 Stein.

    Was würdest du mit 2 Steinen anfangen? Stereo? ;)

    Warum man den Bausteinen nicht noch eine individuelle Mac-Id verpasst und diese auch in das Signal gepackt hat bleibt mir unverständlich.

    Was meinst du mit „individuelle Mac-Id“? Etwa, dass z.B. jeder Switch-Stein seine eigene ID hat? Bei vielleicht (reine Spekulation) 100.000 verkauften Exemplaren?

    Begeistert bin ich im Übrigen auch vom neuen Schachtel-Format: endlich weniger Luft.

    Stimmt. Bin ich auch. Vor allem, dass das nicht nur bei den aktuellen Neuheiten der Fall ist, sondern bei allen jemals erschienenen Actionsteinen! :thumbsup:

  • Was will ich als Informatiker denn mit einer App wenn ich es in Code lösen kann, das wäre ja ein Rückschritt...

    Ausstehende Crowdfunding-Projekte:

    Arydia, Bad Karmas (Teburu), HEL - The Last Saga, Into The Godsgrave, Kingdoms Forlorn, Nanolith, Nova Aetas: Renaissance, Peacemakers: Horrors of War, RoboMon, Sword & Sorcery Abyssal Legends, Tainted Grail - Kings of Ruin, The Elder Scrolls (CTG), Unlikely Heroes, Vampire: Milan Uprising (Teburu), Warcrow Adventures, Witchbound

  • Eigentlich braucht man wie bei offiziellen Power App modulare Einzelbefehle wie z.B. „sende ein rotes Signal nur für Switches“.

    Diese Anweisung gibt es gemäß Spec: die Finktion send_sinal() enthält diese Parameter (und noch ein paar mehr).

    Was würdest du mit 2 Steinen anfangen? Stereo? ;)

    Einen neben den roten Starter, einen neben den Blauen. :sonne:

    Etwa, dass z.B. jeder Switch-Stein seine eigene ID hat? Bei vielleicht (reine Spekulation) 100.000 verkauften Exemplaren?

    Ja, bei Netzwerkkarten funktioniert das sogar über Herstellergrenzen hinweg.

    Gruß aus dem Münsterland
    Herbert

    ______________________________

    I'm old enough to know what's wise
    and young enough not to choose it

  • Diese Anweisung gibt es gemäß Spec: die Finktion send_sinal() enthält diese Parameter (und noch ein paar mehr).

    Ich meinte jetzt nicht einzelne Python-Code-Funktionen, sondern wie bei der offiziellen Power App einzelne Buttons in einer App, die man dann einfach hochziehen kann… :)

    Einen neben den roten Starter, einen neben den Blauen. :sonne:

    Okay, überzeugt. ^^

    Ja, bei Netzwerkkarten funktioniert das sogar über Herstellergrenzen hinweg.

    Danke!

  • Ich meinte jetzt nicht einzelne Python-Code-Funktionen, sondern wie bei der offiziellen Power App einzelne Buttons in einer App, die man dann einfach hochziehen kann… :)

    Die Funktion kannst Du einfach in eine Zeile schreiben.

    Alternativ könnten sie die App natürlich etwas aufbohren. Aber auch wenn sie das täten: eine App bildet immer nur ein Subset der möglichen Funktionalität ab.

    Gruß aus dem Münsterland
    Herbert

    ______________________________

    I'm old enough to know what's wise
    and young enough not to choose it

  • Alternativ könnten sie die App natürlich etwas aufbohren.

    Genau das meine ich. Ich habe keine Python-Kenntnisse. Ich habe weder Python noch die Ravensburger Bibliothek auf meinem Rechner installiert. Ich weiß nicht wie man einen funktionfähigen Code zusammenbastelt. Ich bin schlicht Non-Informatiker mit rudimentären Informatik-Kenntnissen. :)

    Ich habe aber als User Interesse an einzelne Buttons, die ein Signal einer bestimmten Farbe an bestimmte Power Steine senden. :)

  • Alternativ könnten sie die App natürlich etwas aufbohren.

    Genau das meine ich. Ich habe keine Python-Kenntnisse. Ich habe weder Python noch die Ravensburger Bibliothek auf meinem Rechner installiert. Ich weiß nicht wie man einen funktionfähigen Code zusammenbastelt. Ich bin schlicht Non-Informatiker mit rudimentären Informatik-Kenntnissen. :)

    Ich habe aber als User Interesse an einzelne Buttons, die ein Signal einer bestimmten Farbe an bestimmte Power Steine senden. :)

    Ich hoffe mal dass das alles noch kommt. Vom Gefühl her hat das Marketing das Projekt den Entwicklern zu früh aus der Hand gerissen. Ich hoffe mal die Entwicklung wird nicht eingestellt, Apps kann man ja updaten und ausführlichere Python-Tutorials kann man auch noch zur Verfügung stellen.

    Gruß aus dem Münsterland
    Herbert

    ______________________________

    I'm old enough to know what's wise
    and young enough not to choose it

  • Ich hoffe mal dass das alles noch kommt.

    Ja, das hoffe ich auch. :)

    Vom Gefühl her hat das Marketing das Projekt den Entwicklern zu früh aus der Hand gerissen.

    Das denke ich eher nicht. Die App, die sie uns auf dem Builder Event letztes Jahr gezeigt haben, sah damals schon so aus wie jetzt. Und schon da war der Plan, die App Herbst 2023 zu veröffentlichen.

    Das Konzept hinter Power (Funkpaket etc.) war schon früh weit entwicklelt. Zum Beispiel die Unterscheidung zwischen Trigger und Finish Trigger.

    Ich hoffe mal die Entwicklung wird nicht eingestellt

    Davon gehe ich jetzt mal nicht aus. :)

    (hängt natürlich an den Mitarbeitern, Ravensburger hat bei Gravitrax eine ziemliche Fluktation...)

    Apps kann man ja updaten

    Das hoffe ich schwer! :)

    und ausführlichere Python-Tutorials kann man auch noch zur Verfügung stellen

    Da wiederum bin ich eher skeptisch...

  • Das Konzept hinter Power (Funkpaket etc.) war schon früh weit entwicklelt. Zum Beispiel die Unterscheidung zwischen Trigger und Finish Trigger.

    Das Protokoll musste ja ohnehin definiert und umgesetzt werden um die Kommunikation zwischen den Bausteinen zu gewährleisten. Jetzt wurde das ja nur mit connect nach außen geleitet.

    Da wiederum bin ich eher skeptisch...

    Ich auch, möglicherweise haben die da gar keinen Skill.

    Gruß aus dem Münsterland
    Herbert

    ______________________________

    I'm old enough to know what's wise
    and young enough not to choose it

  • Bei Light bin ich etwas enttäuscht. Ist das überhaupt POWER? Wahrscheinlich ja, es kommen ja Batterien rein. Aber die Teile machen nur Licht, und das in den Höhensteinen der Bahn. Erwartet hätte ich, dass die irgendwie auf die Signale reagieren.

    Möglicherweise kommt da noch was. Wie bei Sound ist das Funksymbol auf der Verpackung...

    Dann könnte man da vielleicht über die App was machen… Mal abwarten. :)

  • Nachdem das Ganze am Sonntag vom iPad nicht so recht geklappt hat, habe ich es gestern vom Raspberry Pi versucht. Da habe ich mich wohl bei der Installation verhaspelt, da ich eine dritte Python-Version installieren musste (3.10 ist erforderlich, Raspi hatte auf 2.x und 3.9) und er dann mit den packages durcheinander kam.

    Heute dann der Versuch auf dem MacBook:

    • Python 3.11 mit offiziellem Paket installiert
    • gravitraxconnect mit pip3 installiert wie beschrieben - dabei wurde bleak automatisch mitinstalliert.
    • programme unter examples durchprobiert

    Und es funzt vom Feinsten:

    • Verbindung zum Connect-Baustein funktioniert
    • man bekommt Hardware-Version, Software-Version, Mac-Adresse und Batteriestand übertragen
    • via Signal-Beispiel habe ich dem Sound-Baustein auch Töne entlocken können


    Die Büchse der Pandora ist geöffnet …

    Gruß aus dem Münsterland
    Herbert

    ______________________________

    I'm old enough to know what's wise
    and young enough not to choose it

    Einmal editiert, zuletzt von Herbert ()

  • Noch ein bisserl weiter mit Connect und Python experimentiert.

    Es gibt 2 Beispiel-Anwendungen im Paket: eine für die Kommandozeile und eine mit grafischer Oberfläche (GUI).

    So sieht die GUI-Anwendung aus:

    Im linken Fenste kann man oben den Ziel-Baustein und weitere Parameter einstellen, und wenn man einen der farbigen Knöpfe betätigt wird das ausgewählte Signal in dieser Farbe übermittelt. Im rechten Fenster werden die Logs ausgegeben.

    Gruß aus dem Münsterland
    Herbert

    ______________________________

    I'm old enough to know what's wise
    and young enough not to choose it

    2 Mal editiert, zuletzt von Herbert ()

  • Die GUI sieht recht komfortabel aus. Ich versuche das jetzt mal zu verstehen…

    Ich verstehe die Oberläche so: Wenn man zum Beispiel den Button „Red“ betätigt, wird ein rotes Signal an den Stein „bridge“ programmiert. Und anschließend eine Wartezeit von 2 Sekunden. Richtig?

    Wie bei der App kann man auf diese Weise so einen Python Code generieren, ohne Python zu kennen. Richtig?

    Falls ja, wäre das dann wirklich komfortabel!

    (Nebenbei: Weißt du was eine „bridge“ ist?)

    Nach weiter! :)

  • (Nebenbei: Weißt du was eine „bridge“ ist?)

    Bridge ist der connect-Baustein.

    Jedes Signal hat eine Quelle (stone) und ein Ziel (Status). In diesem Falle hat der Baustein Connect ein Signal an den Baustein Sound geschickt. Der Baustein Sound kann also auch darauf reagieren, wer ihm die Nachricht geschickt hat.

    Gruß aus dem Münsterland
    Herbert

    ______________________________

    I'm old enough to know what's wise
    and young enough not to choose it

    Einmal editiert, zuletzt von Herbert ()

  • (Nebenbei: Weißt du was eine „bridge“ ist?)

    Bridge ist der connect-Baustein.

    Jedes Signal hat eine Quelle (stone) und ein Ziel (Status). In diesem Falle hat der Baustein Connect ein Signal an den Baustein Sound geschickt. Der Baustein Sound kann also auch darauf reagieren, wer ihm die Nachricht geschickt hat.

    Ich habe das schon seit Wochen am Laufen, konnte bisher allerdings mangels Connect noch nix machen. Jetzt habe ich den Stein und bin noch nicht dazu gekommen :lachwein:

    Hat der Baustein Sound immer einen Ton abgespielt oder zufällig?

    Ein bisschen Rumkugeln kann nicht schaden!

    Einmal editiert, zuletzt von coogelbahn ()

  • Hat der Baustein Sound immer einen Ton abgespielt oder zufällig?

    It depends. 😉

    Bei den ersten Tests kam ein zufälliger Ton. Steuere ich ihn aber über die GUI Applikation mit Wiederholungen an, kommt in einem Durchlauf immer der gleiche Ton.

    Gruß aus dem Münsterland
    Herbert

    ______________________________

    I'm old enough to know what's wise
    and young enough not to choose it

  • Nun ja - beim nächsten Durchlauf kommt meist ein anderer Ton.

    Ich habe aber noch nicht untersucht ob man das mit den Knöpfen am Baustein beeinflussen kann.

    Gruß aus dem Münsterland
    Herbert

    ______________________________

    I'm old enough to know what's wise
    and young enough not to choose it

  • Hinweis: coogelbahn hat ein Video gemacht, wo er zeigt, was man mit einer Python-Programmierung alles machen kann:

    Gravitrax & Python

    Mit der freien Python-Programmierung hat man deutlich mehr Möglichkeiten als (momentan) mit der Power-App, u.a. :

    • if/then Abfragen
    • Schleifen
    • Abfragen von welchen Steinen Signale gesendet werden (Trigger, Finish-Trigger, Controller,…)
    • Spezielle Farbsignale, bei denen z.B. nur Switches aktiviert werden, aber nicht Starter.

    Coogelbahn zeigt auch auf seiner Webseite sehr detailliert, wie man vorgeht um Python und die Gravitrax-Python-Bibliothek zu installieren. Hierzu gibt er auch Tips zu einer Python-Entwicklungsumgebung (Editor, Programmausführung, Debugger,…):

    Tips zu Python

    Einmal editiert, zuletzt von Capote ()