• Herzlich willkommen!

    Das Team von »Doctor Brick« heißt Euch herzlich willkommen und wünscht Euch viel Spaß hier!
    »Doctor Brick« ist eine anerkannte Community (RLOC) für erwachsene LEGO Enthusiasten, auch AFOLs (= Adult Fans Of LEGO) genannt.
    Wir können uns hier über alle Belange des LEGO Hobbys austauschen wie z.B. Set- und Teilefragen, Vorstellung und Rezensionen von Legobauten.
    Bitte beachtet die Nutzungsbedingungen und den Verhaltensleitfaden.

Züge steuern ganz ohne Smartphone, wer testet das mal?

Lok24

Elektronikbahner
Registriert
11 Sep. 2019
Beiträge
1.451
Möglich. Aber das Schwestermodell fährt ganz normal über die Fernbedienung angesteuert, die Boost-Motoren sind angeschlossen wie ein Zugmotor.
Ah, danke.

Zugmotoren haben keine Lastregelung.
Zugmotoren haben 0-100 Schritte,
Boost-Motoren haben einen Bereich von 0-1000, das sind dann aber grad/sec
 

GBCPeter

Herr der Bälle
Teammitglied
Registriert
21 Apr. 2012
Beiträge
3.405
Ort
Wuppertal
Eine Frage in die Runde zur Pybricks Beta, hat es schon jemand geschafft an der Fernbedienung die roten Tasten mit einer Funktion zu belegen. Meine Idee dahinter ist die, das man da einen 3 Kanal zaubern kann. Z.b. für den Zetros um die Diff. Sperre damit zu steuern. Meine Experimente in diese Richtung sind bislang gescheitert, obwohl die Tasten im Terminal angezeigt werden als betätigt.

mfg GBCPeter
 

GBCPeter

Herr der Bälle
Teammitglied
Registriert
21 Apr. 2012
Beiträge
3.405
Ort
Wuppertal
Hallo Werner,
Soweit war ich auch schon aber ich habe es bisher nicht geschafft, sie einer Funktion zuzuweisen. Das Programm wird fehlerfrei kompiliert und übertragen aber es erfolgt keinerlei Reaktion am Hub auf den Tastendruck ( nur im Terminal wird sie als gedrückt angezeigt). Habe schon alles mögliche an Kombinationen ausprobiert und meine 600 Seiten Python helfen da auch nicht weiter :S:S:S sch. Kompendium.
 

Lok24

Elektronikbahner
Registriert
11 Sep. 2019
Beiträge
1.451
Hallo zusammen,

Die Jungs von Pybricks haben weiterprogrammiert.
Man kann jetzt eine bestimmte FB verbinden und auch die LED-Farbe wechseln @ellermaniac , cool.

Version 2.4 ist online:
https://github.com/falk12/MotorControl

Mal schauen ob ich noch den Batterie-Level vom Hub(!) anzeigen will

@GBCPeter: stell doch deinen Code mal ein...
 
Zuletzt bearbeitet:

GBCPeter

Herr der Bälle
Teammitglied
Registriert
21 Apr. 2012
Beiträge
3.405
Ort
Wuppertal
Hallo Werner,
hier ist der Code ( ist ein angepasster 42099 aus dem Repository ) der Einfachheit halber zum Testen ob`s funktioniert.

# Remote is currently in beta. This program only works with firmware
# installed from <https://beta.pybricks.com>.

from pybricks.pupdevices import Motor, Remote
from pybricks.parameters import Port, Direction, Stop, Button
from pybricks.tools import wait

# Initialize the motors.
steer = Motor(Port.D)
front = Motor(Port.A, Direction.COUNTERCLOCKWISE)
rear = Motor(Port.B, Direction.COUNTERCLOCKWISE)
diff = Motor(Port.C)
# Lower the acceleration so the car starts and stops realistically.
front.control.limits(acceleration=1000)
rear.control.limits(acceleration=1000)

# Connect to the remote.
remote = Remote()

# Find the steering endpoint on the left and right.
# The middle is in between.
left_end = steer.run_until_stalled(-200, then=Stop.HOLD)
right_end = steer.run_until_stalled(200, then=Stop.HOLD)

# We are now at the right. Reset this angle to be half the difference.
# That puts zero in the middle.
steer.reset_angle((right_end - left_end) / 2)
steer.run_target(speed=200, target_angle=0, wait=False)

# Now we can start driving!
while True:
# Check which buttons are pressed.
pressed = remote.buttons.pressed()

# Choose the steer angle based on the left controls.
steer_angle = 0
if Button.LEFT_PLUS in pressed:
steer_angle -= 75
if Button.LEFT_MINUS in pressed:
steer_angle += 75

# Steer to the selected angle.
steer.run_target(500, steer_angle, wait=False)

# Choose the drive speed based on the right controls.
drive_speed = 0
if Button.RIGHT_PLUS in pressed:
drive_speed += 1000
if Button.RIGHT_MINUS in pressed:
drive_speed -= 1000
#Meine Erweiterung nachfolgend für den 3 Kanal
diff_Lock = 0
if Button.RIGHT in pressed:
diff_Lock += 500
if Button.LEFT in pressed:
diff_Lock -= 500

# Apply the selected speed.
front.run(drive_speed)
rear.run(drive_speed)
diff.run(diff_Lock)
# Wait.
wait(10)

Das komische ist das der Code nun läuft aber nur wenn man ihn auf den Hub lädt und direkt startet. Schaltet man den Hub aus und wieder ein kann die Fernbedienung gekoppelt werden doch es herrscht Tote Hose an den Motoren.

mfg GBCPeter
 

Lok24

Elektronikbahner
Registriert
11 Sep. 2019
Beiträge
1.451
Hallo Peter,

Das komische ist das der Code nun läuft aber nur wenn man ihn auf den Hub lädt und direkt startet. Schaltet man den Hub aus und wieder ein kann die Fernbedienung gekoppelt werden doch es herrscht Tote Hose an den Motoren.

Hm. Das ist normal?
Es sind zwei DInge:
Du installierst die FW auf dem Hub.
Wenn Du "Include current program" eingestellt hat passiert beim Einschalten
- entweder gar nichts (wenn Du kein Programm im Vorschaufenster hattest)
- oder dieses Programm (P1) wird ausgeführt

Wenn Du also ein Programm P1 mit in das Hub geladen hast, das die Remote verbindet passiert genau dass was Du beschreibst. (P1 läuft)
Jetzt änderst Du das Programm (P2) und startest es, dann wird das zwar geladen und ausgeführt, aber nicht gespeichert.
Wenn Du jetzt das Hub aus und wieder einschaltest hast Du wieder P1.
Also wieder mit P2 und Include die FW laden... so sehe ich das.
 
Zuletzt bearbeitet:

GBCPeter

Herr der Bälle
Teammitglied
Registriert
21 Apr. 2012
Beiträge
3.405
Ort
Wuppertal
Hallo Werner,
Du hast recht mit deiner Erläuterung. Ich hatte den Denkfehler, das er den Code automatisch speichert. Nun ist das Eis gebrochen und ich kann den Zetros voll steuern mit der FB.

Danke dir.

mfg GBCPeter
 

Lok24

Elektronikbahner
Registriert
11 Sep. 2019
Beiträge
1.451
Hallo Peter,

sehr gerne! Falls nochwas ist....
Übrigens würde ich für den Zetros A+B zum fahren und lenken nehmen und den grünen Knopf für Diff auf und zu, Anzeige via LED-Farbe .
 

ellermaniac

Nebenbahner
Registriert
24 Mai 2019
Beiträge
1.892
Ort
Osnabrück
So, hier ein erstes Amateurvideo von der Brückentestfahrt: V52 mit drei Neubauwagen, pybricks beta inside:

https://flic.kr/p/2mnWfWf

Man sieht gut das Ruckeln beim langsamen Anfahren. Man sieht auch, wie gleichmäßig und schön langsam sie ihre Runde dreht.

Gruß,
Christoph
 

Lok24

Elektronikbahner
Registriert
11 Sep. 2019
Beiträge
1.451
So, hier ein erstes Amateurvideo von der Brückentestfahrt: V52 mit drei Neubauwagen, pybricks beta inside:
Vielen Dank. Hast Du mal versucht mit der Startgeschwindigkeit zu experimentieren?
Es kann ja auch am Programm liegen, das macht folgendes:
Bei vmin=20:
0,20,21,22,23.....
Bei vmin=1:
0,1,2,3,4.......
 

BrisosX

Gleisbauer
Registriert
18 Juli 2018
Beiträge
960
mal ne frage,
wenn ich jetzt 2 loks habe, und beide über das programm laufen lasse.

ich aber auch mal die züge einzeln fahren lassen will, geht das indem ich einfach einen der hubs auslasse?
 

Lok24

Elektronikbahner
Registriert
11 Sep. 2019
Beiträge
1.451
wenn ich jetzt 2 loks habe, und beide über das programm laufen lasse.
Das geht nicht, das Programm läuft in dem Hub, und das ist ja nur in einer Lok eingebaut.
Das Programm ist gedacht für die Steuerung einer Lok mit einer FB, mit 1 oder 2 beliebigen Motoren.

Natürlich kann man das in allen Hubs installieren, braucht dann aber für jede Lok eine FB.
 

BrisosX

Gleisbauer
Registriert
18 Juli 2018
Beiträge
960
okay, dann ist dieses system für mich nicht nutzbar, habe 2 loks, mit 3 hubs, mal fahren sie zusammen, und mal getrennt.

dann wirds bei bc2 bleiben, schade
 

RR76

Urgestein
Registriert
8 Apr. 2019
Beiträge
1.150
Dafür kannst Du den Atom nehmen, das dürfte leicht anzupassen sein.
 

Lok24

Elektronikbahner
Registriert
11 Sep. 2019
Beiträge
1.451
Hallo zusammen,

heute mal ein kleines Filmchen (1 min) meiner "langsamen" V100.
Die eingestellte Geschwindigkeit (möglich von 1-100) ist fest 5, vorwärts wie rückwärts, erst ab Sekunde 50 wird beschleunigt.

Gedrückt wurde also nur je einmal
->
Stop
<-
Stop
->


Es schlängelt sich auch über eine Weiche, ohne zu stocken (45 sec).


Jeder Wagen bringt ca 1 kg auf's Gleis, auf der Lok sind etwa 60gr Bleiballast, um die Kraft auf die Räder zu bringen. Mehr Wagen hatte ich nicht, aber theoretisch....

Motor ist ein einfacher Boost-Motor mit Tacho, das Programm im Hub via Pybricks macht die Lastregelung, Steuerung über die normale LEGO-FB.
Der technic-L geht vermutlich noch besser.

Und hier für @ellermaniac extra nochmal das Anfahren mit zwei Boost-Motoren unter Last über die Weiche(16 sec):

 
Zuletzt bearbeitet:

Ts__

Eisenbahner
Registriert
6 Jan. 2016
Beiträge
2.549
Ort
Zwickau / Sachsen
Hallo Werner,

danke fürs zeigen

Die Leistungsregelung ist schon klasse, das Prinzip hab ich ja auch bei meiner V90 für eine konstante Geschwindigkeit unabhängig von der Wagenanzahl genutzt (nur per PowerUP App)

Ich wollte ja schon länger mit PyBricks und Fernbedienung rumspielen, die letzten Tage wurde ich da ausgebremst, da mein Bluetooth-Dongle seit Schkeuditz weg ist (ich habe den so verpackt, das er nicht kaputt geht und nicht weg kommt. Das Problem ist nur: das ist jetzt >5 Wochen her und ich hab keine Ahnung mehr, wo ich ihn verpackt habe....)

Heute also einen neuen Dongle gekauft und mal mit deinen Programm V2.5 rumgespielt. Natürlich noch nicht so, wie du es vorgesehen hast ;-)
Aber dein Programmcode hat es mir ermöglicht, die Einbindung einer Fernbedienung zu verstehen und diese mit den TechnicHub für ein anderes Projekt zu koppeln. Läuft.

Dafür vielen Dank, dein Programmcode ist da besser als jede Doku!

Jetzt mal genug AAA Akkus zusammensuchen und schauen ob ich PyBricks mit FB vielleicht auch für meine Züge mit 2 Hubs nutzen kann...

Thomas
 
Oben