Lok24
10.09.2021, 16:49

Editiert von
Lok24
14.09.2021, 14:55

+7Pybricks Programmsammlung

Hallo zusammen,

hier möchte ich für alle Interessierten im Laufe der Zeit eine kleine Sammlung an Pybricks-Programmen aufbauen.
Sie sind fertig, es braucht nicht programmiert zu werden, solange man die Standardwerte nutzt.
Dazu später unten mehr.

Die Programme werden via Webbrowser fest in ein City-Hub oder Technic-Hub geladen, zum Betrieb ist dann kein SmartDevice oder ähnliches nötig.

Die Installation ist hier beschrieben.
Installation.pdf

Das ist bebildert und recht ausführlich, der Weg ist ganz grob:

Download & Save Programm (s.u)
Entpacken
Website von Pybricks öffnen
Eigenschaften setzen
Programm öffnen
Download Programm auf Hub


Derzeit verfügbare Programme

MotorControl (City Hub, Fernbedienung)
Steuert 1-2 beliebige Motoren am Hub mit der Fernbedienung
MotorControl 2.5.zip

Features:
- Automatische Erkennung der Motoren
- Lastregelung bei Tacho-Motoren
- Motoren auch verschieden schnell drehend möglich
- zwei verschiedene Beschleunigungsprofile, im Betrieb durch Tastendruck wählbar
- Minimal- und Maximalgeschwindigkeit einstellbar
- Drehrichtung beider Motoren voreinstellbar
- Weiter Beschleunigen bei Festhalten der Taste (an und abschaltbar)
- Keine Fahtrrichtungsumkehr bei Überschreiten von Null
- Knöpfe frei den Funktionen zuzuordnen
- Weiterfahren oder Anhalten bei Verlust der FB-Verbindung
- Verbinden mit einer ganz bestimmten FB
- Einstellen der LED-Farben und Helligkeit von Hub und FB
- Auch für Technik Hub geeignet (nur Port A und B)


Fragen und Anregungen sind willkommen, Testkandidaten sowieso

Grüße

Werner



Thomas52xxx , friccius , Heather , Plastik , jpsonics , Gimmick , Ben® gefällt das (7 Mitglieder)


18 vorhergehende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen Beitragsbaum

Ben®
14.09.2021, 08:50

Als Antwort auf den Beitrag von Lok24

Re: Pybricks Programmsammlung // meine ganz-ganz kurze Wunschliste

Lok24 hat geschrieben:

Moinsen,

Gimmick hat geschrieben:
Schritt für Schritt nach Anleitung + Notebook holen und an machen + Hub holen + Kaffee schlürfen = 6:40 min

Danke für die Ehrenrettung

Gimmick hat geschrieben:

Beim zweiten mal ohne Batterie rausnehmen hats auch funktioniert. Hab einfach so oft und lange gedrückt bis das Lila Blinken kam

Weil Du vorher alles richtig gemacht hattest....
siehe hier
https://www.1000steine.de...amp;id=440032#id440032


Moin Werner,

so langsam erkenne auch ich den Ariadnefaden - weiß aber immer noch nicht, ob ich wirklich Freude haben werde, mich ins Labyrinth zu stürzen und den Kampf mit Legos Minotaurus aufzunehmen...

Aber der Überblick hilft und auch Deine Erinnerung daran, dass das Zug-Hub einen eingebauten Hardwarefehler hat. (An den Teil des Elends konnte ich mich gar nicht mehr erinnern. Ich fürchte aber, dass ich da kürzlich bei meinem Test reingeraten bin, als das Hub sich tatsächlich nicht mehr bedienen lassen wollte und ich die LEGO Firmware wieder neu aufgespielt habe).

Um Deiner Überschrift und Deinen vielen Aufforderungen gerecht zu werden:

Für eine Pybricks-Programmsammlung wünsche ich mir folgendes kleines Programm
(falls es die Technik+Software hergeben - falls nicht, verdamme ich PU und kaufe (noch) mehr PF nach).
Programmname:
"Lok_mit_2_Motoren.py"
Programm-Eigenschaften:
die linke Hälfte der Fernbedienung möge 2 Motoren (an den beiden Ausgänge EINES Hubs angeschlossen) synchron in der gleichen Geschwindigkeitsstufe laufen lassen (jedoch einen mit umgekehrtem Drehsinn). Bevorzugt universell für "egal-welche" Motoren. Wenn "egal" nicht zu haben ist, dann für Eisenbahnmotoren.

Ich biete mich als Tester an und würde das in eine SANTA-FE oder MAERSK Lok einbauen wollen. Feedback binnen maximal 3 Werktagen ist hiermit zugesichert! Ich würde dann auch meinen Frieden mit der Pybricks Lösung schließen. Versprochen.

Damit wäre für Eisenbahner bereits das wichtigste getan:
• Motoren mit Tacho können mit 10 Geschwindigkeitsstufen laufen (bisheriges Programm). Einsatzfelder: MOCs und Krokodil.
• Loks mit 2 Motoren können - selbst in Kinderhand - mit einem Einzel-Bedienelement der Standard-Fernbedienung sauber laufen (ohne Angst, dass die Motoren gegeneinander kämpfen müssen). Einsatzfelder: "starke Loks" für längere oder schwerere Züge.

Besten Dank im Voraus!

Beste Grüße,

Ben


[image]



mehr Bilder gibt's hier:

[image]


"blay s....!" - Aber China Klone (puke!) sind noch viel schlimmer...


Gimmick
14.09.2021, 10:03

Als Antwort auf den Beitrag von Ben®

Re: Pybricks Programmsammlung // meine ganz-ganz kurze Wunschliste

Ben® hat geschrieben:


Moin Werner,


Um Deiner Überschrift und Deinen vielen Aufforderungen gerecht zu werden:

Für eine Pybricks-Programmsammlung wünsche ich mir folgendes kleines Programm
(falls es die Technik+Software hergeben - falls nicht, verdamme ich PU und kaufe (noch) mehr PF nach).
Programmname:
"Lok_mit_2_Motoren.py"
Programm-Eigenschaften:
die linke Hälfte der Fernbedienung möge 2 Motoren (an den beiden Ausgänge EINES Hubs angeschlossen) synchron in der gleichen Geschwindigkeitsstufe laufen lassen (jedoch einen mit umgekehrtem Drehsinn). Bevorzugt universell für "egal-welche" Motoren. Wenn "egal" nicht zu haben ist, dann für Eisenbahnmotoren.

Ich biete mich als Tester an und würde das in eine SANTA-FE oder MAERSK Lok einbauen wollen. Feedback binnen maximal 3 Werktagen ist hiermit zugesichert! Ich würde dann auch meinen Frieden mit der Pybricks Lösung schließen. Versprochen.

Damit wäre für Eisenbahner bereits das wichtigste getan:
• Motoren mit Tacho können mit 10 Geschwindigkeitsstufen laufen (bisheriges Programm). Einsatzfelder: MOCs und Krokodil.
• Loks mit 2 Motoren können - selbst in Kinderhand - mit einem Einzel-Bedienelement der Standard-Fernbedienung sauber laufen (ohne Angst, dass die Motoren gegeneinander kämpfen müssen). Einsatzfelder: "starke Loks" für längere oder schwerere Züge.

Besten Dank im Voraus!

Beste Grüße,

Ben


Erinnert mich an meine Rückkehr als Erwachsener in die Technic-Welt... Bricklink? Rebrickable? Was sind das abgefahrene Teile mit Winkeln um drei Ecken? Da hat das Reinfuchsen auch richtig lange gedauert.

Bzgl. des Programs:
Das ist kein Problem. Das ist genau das, was Werner schon gemacht hat. Nur war er so nett und hat z.B. den Parameter für "entgegengesetzte Motoren" schon oben aufgeführt, so dass man das selber einstellen könnte.
Aber ich bin sicher er würde auch noch mal eine Version mit deinen Konfigwünschen hochladen



Lok24
14.09.2021, 10:05

Als Antwort auf den Beitrag von Gimmick

Editiert von
Lok24
14.09.2021, 10:10

Re: Pybricks Programmsammlung // meine ganz-ganz kurze Wunschliste

Hallo Ben und Gimmick,

sitze quasi schon in Taxi, ausfühliche Antwort später.
Aber ja, genau das kann es jetzt schon.

Es fehlt tatsächlich die "Anleitung", das ist mir bewusst....
Aber solange kein Bedarf war?

Frage an Ben: kannst Du programmieren?
"nein" wäre hier eine prima Antwort!



Ben®
14.09.2021, 13:29

Als Antwort auf den Beitrag von Lok24

Re: Pybricks Programmsammlung // meine ganz-ganz kurze Wunschliste

Lok24 hat geschrieben:

Hallo Ben und Gimmick,

sitze quasi schon in Taxi, ausfühliche Antwort später.
Aber ja, genau das kann es jetzt schon.

Es fehlt tatsächlich die "Anleitung", das ist mir bewusst....
Aber solange kein Bedarf war?

Frage an Ben: kannst Du programmieren?
"nein" wäre hier eine prima Antwort!


Hi Werner,

auf letzte Frage ein entschiedenes "Kommt drauf an"...
In Excel gelte ich als Profi (bis Nerd falls das die Steigerung dazu ist). Fortran77 beherrsche ich, wenn es sein muss.
VBA in fortgeschrittenen Rudimenten: ich bin gut darin mein Problem Google-gerecht zu formulieren, um die passende Vorlage zu finden, die ich umstricke und erweitere.
Auch in PovRay bin ich früher sehr tief abgetaucht gewesen. Irgendwann fragte mich Render-Guru Jeroen mal nach irgendwelchen Tricks - da wusste ich, dass ich kurz vor Nerd bin; Bewegungsunschärfe, Nebel, Animationen - da ging so einiges.
Aber ohne wöchentliches Anwenden ist man bei all diesen Sachen schnell wieder nahe ans DAU-Niveau zurück.

Ich habe ins 2.5er *.py geschaut, aber sah nicht, wo die Knöpfe den Motoren zugeordnet werden.

Das hier scheint klar:
# assign buttons to function1
# syntax: function = "name"
# name may be "A+","A-","A0","B+","B-","B0","CENTER"


UP = "A+"
DOWN = "A-"
STOP = "A0"
SWITCH = "CENTER"


Danach der ganze Block ist auch verständlich: nur nicht auf WELCHEN Motor es sich auswirkt, bzw. warum auf alle Motoren.
def function1():
...
[/blau]

****************

Wenn ich das Programm jetzt mal ganz wörtlich nehme, dann schließe ich daraus, dass ich [eigentlich?] nur den folgenden blauen Block bearbeiten soll/darf? Und ich habe bereits editiert, dass der zweite Motor gegensinnig laufen soll.

# -----------------------------------------------
# Set user defined values
# -----------------------------------------------

# define the two profiles
# profil_x = (minimun speed,maximum Speed,accelerate in steps of ..., wait for next acceleration(in ms)


Profil_A = (20,100,10,100) #min,max,step,acc
Profil_B = (10,500,5,200) #min,max,step,acc


# define direction of motors

dirMotorA = 1 # Direction 1 or -1
dirMotorB = -1 # Direction 1 or -1


autoacc = False # accelarate continously when holding butten

# -----------------------------------------------
# Set general values
# -----------------------------------------------




Wenn ich trotz Programms also eine "normale Fernbedienung haben möchte: also auch
UP = "B+"
DOWN = "B-"
STOP = "B0"

berücksichtigt sehen will (mit Auswirkung nur auf Motor 2). Könnte ich das hier flott selbst einbauen? Oder würde ich mich dann an Dich wenden, um ein Programm
Standard-FB.py zu erhalten (der Vorteil wäre, dass man beispielsweise Beschleunigungen, Höchstgeschwindigkeiten etc. beeinflussen könnte - der "Krawall-Freund" meiner Kids bekommt dann immer das gedrosselte Hub, damit es nicht immer zu Entgleisungen kommt.) So langsam fixt Du mich hier an... :-)

Antwort hat vieeeeel Zeit.

Gruß

Ben


[image]



mehr Bilder gibt's hier:

[image]


"blay s....!" - Aber China Klone (puke!) sind noch viel schlimmer...


Lok24
14.09.2021, 13:45

Als Antwort auf den Beitrag von Ben®

Re: Pybricks Programmsammlung // meine ganz-ganz kurze Wunschliste

Hallo Ben®,

Ich glaube wir meinen nicht das selbe.
Das Programm steuert 1 oder 2 Motoren immer nur gleichzeitig.
Deswegen gibt es genau einen Satz Funktionen / Knöpfe

Ben® hat geschrieben:

Ich habe ins 2.5er *.py geschaut, aber sah nicht, wo die Knöpfe den Motoren zugeordnet werden.

Das hier scheint klar:
[gruen]# assign buttons to function1
Danach der ganze Block ist auch verständlich: nur nicht auf WELCHEN Motor es sich auswirkt, bzw. warum auf alle Motoren.
def function1():
...
[/blau]


Weil in function(1) die Routine "drive()" aufgerufen wird, und die macht alle angeschlossenen Motoren.
Das sind halt 1 oder 2.

Ben® hat geschrieben:

Wenn ich das Programm jetzt mal ganz wörtlich nehme, dann schließe ich daraus, dass ich [eigentlich?] nur den folgenden blauen Block bearbeiten soll/darf? Und ich habe bereits editiert, dass der zweite Motor gegensinnig laufen soll.


Die User-Paramter gehen bis "Import classes and functions"
Und dirMotorB = -1 ist schon mal goldrichtig.

Ben® hat geschrieben:

Wenn ich trotz Programms also eine "normale Fernbedienung haben möchte: also auch
UP = "B+"
DOWN = "B-"
STOP = "B0"

berücksichtigt sehen will (mit Auswirkung nur auf Motor 2). Könnte ich das hier flott selbst einbauen? Oder würde ich mich dann an Dich wenden, um ein Programm
Standard-FB.py zu erhalten
Weiß ich noch nicht, aber ja, wenn Bedarf da ist?

Ben® hat geschrieben:
(der Vorteil wäre, dass man beispielsweise Beschleunigungen, Höchstgeschwindigkeiten etc. beeinflussen könnte -

??? genau das geht doch?
Oder ich hab's nicht richtig verstanden.

Mit dem Programm gehen genau 4 Knopffunktionen, niemals mehr.
UP, DOWN , STOP, SWITCH

Ich mache mich jetz mal an die "Bedienungsanleitung"
Danke für's testen.

Grüße

Werner



Ben®
14.09.2021, 13:59

Als Antwort auf den Beitrag von Lok24

Re: Pybricks Programmsammlung // meine ganz-ganz kurze Wunschliste ist positiv erledigt - Danke!

Lok24 hat geschrieben:

Hallo Ben®,

??? genau das geht doch?
Oder ich hab's nicht richtig verstanden.

Mit dem Programm gehen genau 4 Knopffunktionen, niemals mehr.
UP, DOWN , STOP, SWITCH

Ich mache mich jetz mal an die "Bedienungsanleitung"
Danke für's testen.

Grüße

Werner


Hi Werner,

vergiss meinen vorigen Beitrag: Ich bin gerade völlig auf dem falschen Dampfer unterwegs gewesen.
Pybricks wirkt sich natürlich immer auf genau einen Hub aus. NICHT auf eine Fernbedienung (die dann ggf. zwei Züge kontrollieren könnte).

Alles gut soweit.

Das einzige, was ich den Kids nun beibringen muss: es gibt bei Benekes Hubs, die beim An- und Ausschalten (etwas) anders als daheim funktionieren. Ansonsten sollte jetzt alles soweit klar sein.

Doppelmotor teste ich - wenn's irgendwie einzurichten ist - heute abend mal.

Beste Grüße,

Ben


[image]



mehr Bilder gibt's hier:

[image]


"blay s....!" - Aber China Klone (puke!) sind noch viel schlimmer...


Lok24
14.09.2021, 14:16

Als Antwort auf den Beitrag von Ben®

Editiert von
Lok24
14.09.2021, 14:16

Re: Pybricks Programmsammlung // meine ganz-ganz kurze Wunschliste ist positiv erledigt - Danke!

Hi,

Ben® hat geschrieben:

Alles gut soweit.


.....

(aus anderem post
• Motoren mit Tacho können mit 10 Geschwindigkeitsstufen laufen (bisheriges Programm). Einsatzfelder: MOCs und Krokodil.


Das macht es nicht.
Es macht was anderes

Die Motoren werden mit 100 Stufen im Programm angesteuert, alle immer, alle Typen.
Bei Tacho-Motoren wird dieser Wert mit 10 malgenommen.

So. Wenn Du im Profil "step" auf 10 stellst hast Du 100/10 = 10 Stufen am Motor.
Die laufen bei vmin=20 aber automatisch so: 20,21,22,23,24,25,26,27,28,29
Es macht also keine Sprünge.
Bei Step = 20 hast Du 5 Stufen am Motor, bei Step = 100 beschleunigt er selbst bis volle Kraft
Bei Step = 5 must Du 20mal drücken...

Grüße

Werner



Ben®
20.09.2021, 08:34

Als Antwort auf den Beitrag von Ben®

Re: Pybricks Programmsammlung // Doppelmotor-Test (Anwender-Rückmeldung)

Ben® hat geschrieben:


Doppelmotor teste ich - wenn's irgendwie einzurichten ist - heute abend mal.

Beste Grüße,

Ben


Moin Werner,

mit dem Doppelmotor-Test hat es dann doch nicht sofort geklappt. Ist aber am Wochenende erfolgreich nachgeholt worden. Der TGV ist mit zwei PU-Eisenbahnmotoren bestückt worden. Und bestand dann insgesamt aus zwei Triebköpfen mit 6 Waggons dazwischen und konnte seine Runden mit genug Tempo laufen, um in zu engen Kurven sogar gelegentlich aus dem Gleis zu kippen. PU hat also hinreichend Kraft und Geschwindigkeit drauf.

Installation des Pybrick-Programms war leider wieder einmal "sperrig". Mein Ziel von 10 Minuten habe ich deutlich gerissen. Das Bluetooth konnte/wollte den Hub irgendwie nicht sehen. Das klappte nicht via Pybricks und auch nicht in der Lego-App. Erst als ich das Smartphone bewusst nach BT-Geräten in der Nähe suchen ließ, stand da auf einmal das Hub in der Liste und konnte dann auch (zeitweilig) in den Apps gefunden werden. Das betreffende Hub (unmittelbar nach Erscheinen mit dem 60197-Zug erworben) war zuvor noch nie anders als per Fernbedienung angesteuert worden. Firmware also auf Niveau von irgendwo 2018. Auch nach dem Erkennen, gab es unerwartete Verbindungsabbrüche.

[image]



Es war jedenfalls wieder "Gefummle" an Hub (Batterien immer wieder mal raus + rein) und Smartphone nötig, bevor irgendwann per Pybrick die Firmware überschrieben werden konnte. Dann lief das auch gleich gescheit mit zwei Motoren unterschiedlichen Drehsinns.

Was mir noch als wenig tauglich auffiel: Pybrick ist nichts für schwache Bildschirmauflösung (und ich weiß: es ist Beta und gratis):

[image]



Im Editiermodus (mit Tastatur am unteren Bildschirmrand) sehe ich dort jedenfalls nur ca. Dreiviertel einer einzigen (grünen) Programmzeile in Höhenrichtung. Wenn man das Programm nicht schon vorher am PC oder vorm Download gesehen hat, kriegt man das nicht gelesen + editiert. Pybricks weigert sich zudem, ins Hochformat zu rotieren: unabhängig von der Ausrichtung der Hardware, bleibt es im Querformat stehen. Irgendwann gibt es bestimmt ein neues Smartphone mit mehr Auflösung. (Und dann wird irgendwas anderes statt dessen nicht funktionieren....).


Fazit: Es brauchte eine knappe Stunde, bis das Programm auf dem Hub drauf war. Dafür läuft es nun aber wie gewünscht. Prima Ergebnis - jedoch wieder unerwartet holpriger Weg dorthin.

Gruß

Ben


[image]



mehr Bilder gibt's hier:

[image]


"blay s....!" - Aber China Klone (puke!) sind noch viel schlimmer...


Lok24
20.09.2021, 09:23

Als Antwort auf den Beitrag von Ben®

Editiert von
Lok24
20.09.2021, 09:44

Re: Pybricks Programmsammlung // Doppelmotor-Test (Anwender-Rückmeldung)

Hallo Ben,

vielen Dank für die Mühe.

Ben® hat geschrieben:

Das Bluetooth konnte/wollte den Hub irgendwie nicht sehen. Das klappte nicht via Pybricks und auch nicht in der Lego-App. Erst als ich das Smartphone bewusst nach BT-Geräten in der Nähe suchen ließ, stand da auf einmal das Hub in der Liste und konnte dann auch (zeitweilig) in den Apps gefunden werden. Das betreffende Hub (unmittelbar nach Erscheinen mit dem 60197-Zug erworben) war zuvor noch nie anders als per Fernbedienung angesteuert worden. Firmware also auf Niveau von irgendwo 2018.

Eigentlich (?) sollte es so sein:
Pybricks Download Button: da ist das Hub nur sichtbar, wenn es im Bootloader-Modus ist (lila LED blinkt)
Pybricks Bluetooth Button : da ist das Hub nur sichtbar, wenn Pybricks drauf ist
Powered Up App: da sollte das Hub sofort und automatisch das FW-Update begninnen, wenn es noch "alt" ist

Aber schön wenn es jetzt läuft.

Grüße

Werner



Ben®
Montag, 10:54

Als Antwort auf den Beitrag von Lok24

+1Re: Pybricks Programmsammlung // Doppelmotor-Test (Anwender-Rückmeldung)

Lok24 hat geschrieben:

Eigentlich (?) sollte es so sein:
Pybricks Download Button: da ist das Hub nur sichtbar, wenn es im Bootloader-Modus ist (lila LED blinkt)


Hi Werner,

ich kann hier nur nochmals bestätigen: LED am Hub blinkte lila, aber im Smartphone wurde das Hub nicht in der Pybricks-App (nach Klick auf Downloader-Button) gesehen.

Mag aber auch ein spezifisches Problem meines Smartphones sein: wie verschiedentlich angemerkt, zieht dessen Bluetooth offenbar mächtig Leistung und führt zur flotten Entladung des Akkus.
Irgendwas am BT ist dort offenkundig nicht wie es soll. Damit unbrauchbar zum Bespielen von Lego oder für Corona-Warn-App etc.

Aber PU läuft jetzt per Fernbedienung wie erhofft in zwei Anwendungsfällen:
• Krokodil mit Tachoregelung (ging zuvor auch per Kurzschlussbrücken und Leistungsregelung)
• Loks mit zwei Drehgestellen können jetzt mit 2 PU Motoren versehen werden.
(bisher nur als Power Functions mit Receiver und Polwechsler in einer der Leitungen zu den 2 Motoren)

Das ist alles, was ein Eisenbahner braucht. Ausser natürlich mehr rollendes Material und eine schöne Landschaft drumherum...

Leg Godt!

Ben


[image]



mehr Bilder gibt's hier:

[image]


"blay s....!" - Aber China Klone (puke!) sind noch viel schlimmer...


Lok24 gefällt das


Gesamter Thread: