• 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
Hallo zusammen,

der Titel sagt es ja schon, ich habe ein kleines Programm geschrieben,
mit dem man seine Züge mit City Hub und Fernbedienung steuern kann, ganz ohne Smart Device.

Da alle(!) Motoren unterstützt werden kann man auch Boost oder technic Motoren einsetzen, dann hat man eine Lastregelung und es fährt viel schöner. Man muss es sehen.

Das Programm wird einmalig mitsamt einer neuen Firmware in das Hub geladen, das dauert insgesamt maximal 5 Minuten.
Danach ist es nach dem Einschalten des Hubs immer verfügbar.

(Natürlich kommt man auch wieder auf die Original LEGO Software zurück).

Wer sich traut kann in den ersten Zeile auch etliche Parameter einstellen, zum Beispiel "vmax" von 100 auf 67 heruntersetzen, oder "dirMotorA" von 1 auf -1, er dreht dann andersrum.

Die schlechte Nachricht: Das ganze ist im Beta-Status, man kann nicht sicher sein.....
Die Gute: bei mir läuft's eigentlich


Mehr dazu unter beim Nachbarn https://www.1000steine.de...amp;id=456416#id456416
Für große Anlagen (Grüße nach Schkeuditz!) hat es auch einen abschaltbaren Watchdog, d.h. wenn die Züge zu weit weg sind fahren sie einfach weiter....:giggle:


Hier ist es
https://github.com/falk12/MotorControl

Betatester gesucht, Feedback willkommen.

Grüße

Werner

Hier mal ein Blick auf alle Parameter, die man so einstellen kann:

Code:
# 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 = True # accelarate continously when holding butten

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

# 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"

mode=1 # start with function number...
autoacc = True # accelarate continously when holding butten
watchdog = False # "True" or "False": Stop motors when loosing remote connection
remoteTimeout =3 # hub waits x seconds for remote connect after starting hub

# Color and brightness of Hub LEDs
LEDconn = Color.GREEN*0.3 # if Hub connected, color * brightness
LEDnotconn = Color.RED*0.5 # if Hub is not connect, color * brightness
# define the two profiles
 
Zuletzt bearbeitet:

Ts__

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

danke, bissl knapp vorm BSBT 2021^^ (hab doch so schon noch genug zu tun^^)

Da das ganze ja auf der PyBricks Beta aufbaut, geht wahrscheinlich auch nur eine Fernbedienung mit einen Hub? Ich rate nur, habs nicht getestet, werde ich wohl auch nicht vorm Treffen mehr schaffen...

Da bei mir alle Ziel-Loks für diese Lösung 2 Hubs haben, würde mich interessieren ob es dafür schon eine Lösung gibt. Zur Zeit sieht das so aus: 2 Hubs , 1 Fernbedienung mit einen Tablet gekoppelt. Die Motoren an den Hubs brauchen verschiedene Drehzahlen, daher das Tablet zum Rechnen.

Meine Vorstellung wäre eben: 2 Hubs mit je einen leicht verschiedenen Programm (Drehzahlanpassung an unterschiedliche Raddurchmesser) mit einer Fernbedienung steuern. Ohne Tablet/Handy. Das geht meines Wissens noch nicht mit PyBricks oder liegt ich da falsch?

Sonst ist dein Programm natürlich ein super Start und hilft beim Einstieg ungemein!

Thomas
 

Lok24

Elektronikbahner
Registriert
11 Sep. 2019
Beiträge
1.451
Hi Thomas,

danke, bissl knapp vorm BSBT 2021^^ (hab doch so schon noch genug zu tun^^)
Ja, ich habe mich extra beeilt, vielleicht findet sich ja ein Krokodil irgendwo zum Testen, es fährt wirklich überzeugend.

Da das ganze ja auf der PyBricks Beta aufbaut, geht wahrscheinlich auch nur eine Fernbedienung mit einen Hub?
Nein, es sollten auch mehrere FB gehen, die werden als ioDevice behandelt. Wer weiß? Aber der pybricks Stand ist 3.0., 3.1 die Beta derzeit, Multihub ist glaube ich bei 3.3 angesiedelt......

Da bei mir alle Ziel-Loks für diese Lösung 2 Hubs haben, würde mich interessieren ob es dafür schon eine Lösung gibt. Zur Zeit sieht das so aus: 2 Hubs , 1 Fernbedienung mit einen Tablet gekoppelt. Die Motoren an den Hubs brauchen verschiedene Drehzahlen, daher das Tablet zum Rechnen.
2 Hubs? Vier Motoren? Uiiiii. Verschiedene Geschwindigkeiten macht mein Programm auch. DirMotorA = 1, DirmotorB = -0,5, z.B., dann läuft einer halb so schnell und gegenläfig.
Man kann auch eine Zug-Motor und einen technic Motor anschließen.....das Programm erkennt die und steuert die passend an.


Meine Vorstellung wäre eben: 2 Hubs mit je einen leicht verschiedenen Programm (Drehzahlanpassung an unterschiedliche Raddurchmesser) mit einer Fernbedienung steuern. Ohne Tablet/Handy. Das geht meines Wissens noch nicht mit PyBricks oder liegt ich da falsch?
Ich glaube nicht, dass das geht.
Wenn die FB connected ist verbindet sie sich wohl nicht mit einem zweiten Hub....

Es ist erstmal als "krokodil"-Lösung konzipiert.
Eine GBC Version soll folgen.
 

Ts__

Eisenbahner
Registriert
6 Jan. 2016
Beiträge
2.543
Ort
Zwickau / Sachsen
vielleicht findet sich ja ein Krokodil irgendwo zum Testen, es fährt wirklich überzeugend

klingt gut und ich denk schon, das es auch Krodile gibt. Ich bringe ja meines mit, aber das taugt nicht zum Test, Hab da einen BuWizz eingebaut.

Nein, es sollten auch mehrere FB gehen, die werden als ioDevice behandelt.

eine FB reicht mir, ich will nur mehrer Hubs^^

2 Hubs? Vier Motoren?

nene, pro Hub ein Motor. Der andere Anschluss ist fürs Licht genutzt.

erschiedene Geschwindigkeiten macht mein Programm auch. DirMotorA = 1, DirmotorB = -0,5, z.B., dann läuft einer halb so schnell und gegenläfig.

das ist klar. Ich kann dein Programm sicher soweit lesen und verstehen. Ändern wäre auch kein Ding. Hab ja auch schon einen Hub mit PyBricks im Einsatz.

Ich glaube nicht, dass das geht.
Wenn die FB connected ist verbindet sie sich wohl nicht mit einem zweiten Hub....

das wäre schade. Den ohne PyBricks gehts ja. Manche Loks bei mir fahren mit 2 bis 3 Hubs und einer Fernbedienung. Ohne Tablet. Geht aber eben nur, wenn alle Hubs den gleichen Motor verwenden, am besten den Trainmotor.

Es ist erstmal als "krokodil"-Lösung konzipiert.
Eine GBC Version soll folgen.

Passt schon. Der Anfang ist gemacht, das Beispiel hilft sicher vielen Einsteigern bei der ersten Hürde. Daher Danke!

Thomas
 

Lok24

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

nene, pro Hub ein Motor. Der andere Anschluss ist fürs Licht genutzt.
Ein Hub fürs Licht eins für die Motoren? Stichwort Verlängerungskabel.....die technic Kabel sind länger.

das ist klar. Ich kann dein Programm sicher soweit lesen und verstehen. Ändern wäre auch kein Ding. Hab ja auch schon einen Hub mit PyBricks im Einsatz.
So ist es nicht konzipiert :biggrin:
In function1() läuft alles, was Tasten und die Parameter steuert.
Die eigentlichen Motorbefehle, das Erkennen der Motoren das conncet der FB etc. ist alles weiter "unten" und braucht nie geändert zu werden.

das wäre schade. Den ohne PyBricks gehts ja. Manche Loks bei mir fahren mit 2 bis 3 Hubs und einer Fernbedienung. Ohne Tablet. Geht aber eben nur, wenn alle Hubs den gleichen Motor verwenden, am besten den Trainmotor.
Einfach mal warten was noch so kommt. Die FB ist ja erst seit vier Wochen verfügbar.
 

Cyberrailer

Urgestein
Registriert
4 Aug. 2015
Beiträge
811
Hallo Werner

Liest sich super.
Wie bekomme ich die Software auf den Hub ?
Dann teste ich auch mal!

Gruß Mario
 

Lok24

Elektronikbahner
Registriert
11 Sep. 2019
Beiträge
1.451
Zuletzt bearbeitet:

ellermaniac

Nebenbahner
Registriert
24 Mai 2019
Beiträge
1.885
Ort
Osnabrück
Betatester gesucht, Feedback willkommen.

Klingt spannend. Das könnte ich gut in meiner einen V52 testen, dort sind auch zwei Boost-Motoren an einem Hub verbaut. Eine der beiden Loks habe ich schon neu verkabelt, dass ich sie direkt mit der Fernbedienung steuern kann, die zweite läuft aktuell nur mit der PoweredUp-App. Das müsste dann mit der Software-Lösung ja auch machbar sein. Wäre auf jeden Fall einen Test wert, bevor ich auch der Lok an die Kabel gehe…

Ich muss erstmal kucken, mit welchem Bluetoothfähigem Gerät ich das Zeugs auf den Hub bekomme.

(aber eins nach der anderen, zuerst muss ich im Legozimmer mal wieder den Boden sehen können)

Gruß,
Christoph
 

ellermaniac

Nebenbahner
Registriert
24 Mai 2019
Beiträge
1.885
Ort
Osnabrück
Ich habe hier einen Uralt PC mit BT-Dongle für 5,--, habe das aber auch schon mit einem Smartphone gemacht, Android, Chrome

So, Bluetooth-Dongle ist da, PC mit Chrome auch. Hardware sollte also passen.

Nun mal zum Code:
Die zwei möglichen Profile werden über das rechte bzw. linke Steuerkreuz der Fernbedienung angesteuert, korrekt?

Kann ich dann über nur eines der Steuerkreuze zwei Motoren an einem Hub synchron ansteuern oder muss ich dafür beide Steuerkreuze benützen? Ideal wäre für mein Setting (zwei BOOST-Interactive-Motoren an einem City-Hub) beide Motoren über einen Button synchron laufen zu lassen können.

Ich hoffe das ich heute oder morgen mal ein Zeitfenster finde, die Software ganz in Ruhe auf dem Hub zu bringen.

Gruß,
Christoph
 

Lok24

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

Gleiche Motroren laufen immer synchron, bis auf die Drehrichtung, die man wählen kann.
dirMotorA = 1
dirMotorB = -1


Welche Tasten man nutzen möchte regeln die folgenden Parameter:
UP = "A+"
DOWN = "A-"
STOP = "A0"
SWITCH = "CENTER"
Links stehen die Parameter in Programm, rechts die Knöpfe.
Also alle auf dem linken Knopf, wenn man alle A auf B ändert rechts, oder auch mischen

Es läuft immer nur ein Profil, und es sind genau 4 von 7 Knöpfen aktiv.
Zwischen den Profilen wird mit "SWITCH" umgeschaltet, "Rangiergang" oder "Fahrt", CENTER ist die grüne Taste
Oder auch auf Wunsch
SWITCH="B0"

Wenn es mal läuft erklärt es sich recht gut von selbst.
Idealerweise ist es für zwei gleiche Tachomtoren gedacht, gleichlaufend oder entgegengesetzt. Oder für das Krokodil.

Ich kann die Anleitung aber nochmal überarbeiten, wenn das so unklar ist.
 
Zuletzt bearbeitet:

ellermaniac

Nebenbahner
Registriert
24 Mai 2019
Beiträge
1.885
Ort
Osnabrück
Ich kann die Anleitung aber nochmal überarbeiten, wenn das so unklar ist.

Nein, so ist es auf einen Schlag klarer! Dann müsste es ja so direkt funktionieren, anzupassen wären dann nur noch die entsprechenden Start- und Endgeschwindigkeiten.

Danke für die ausführliche Antwort.

Gruß,
Christoph
 

Rouven

Langbahner
Registriert
10 Mai 2017
Beiträge
1.009
Ort
Landkreis Kitzingen
Servus Werner,

ich lese hier bislang bei diesem sehr interessanten Thema nur still mit
...aus gleichem Grund:

bin gerade sehr ein/angespannt.

Einige Features sind schon mal top, dieser ist mein bisheriger Vavorit:

Für große Anlagen (Grüße nach Schkeuditz!) hat es auch einen abschaltbaren Watchdog, d.h. wenn die Züge zu weit weg sind fahren sie einfach weiter....

und

oder "dirMotorA" von 1 auf -1, er dreht dann andersrum.


Dieses Feature, welches auch Thomas interessiert @Ts__ wäre mir persönlich richtig wichtig (dass das jetzt kein Wunschkonzert ist, ist mir klar)

eine FB reicht mir, ich will nur mehrer Hubs


Bleiben wir trotzdem mal bei Wunschkonzert:

Aktuell bin ich mit BAP unterwegs, möchte mich aber auch mal mit Dieser Seite befassen, wenn Zeit ist.
Da steht u.a. "Multiple trains/motors can be linked to act as one"

Alles was ich an Anforderung habe ist:
8 (oder besser beliebig viele) Hubs (bzw. Motoren) gleichzeitig ansteuern mit:
=> stufenweise vorwärts
=> STOP
=> stufenweise rückwärts
(=> mehr ist für mich "Schmuck am Hemdskragen, den ich aber gerne mitnehme")

Bislang bin ich mit BAP beim aus meiner Sicht besten verfügbaren Kompromiss.
Dennoch ist es umständlich. Ich sitze am Laptop und klicke Motor für Motor 10% hoch bis die Sache rollt.
Einfacher wäre eine Funktionalität die jedem Motor sagt: "geh 10% hoch / geh 10% runter bzw. rückwärts / STOP" Damit hätte ich alles was ich brauche.
Oder alternativ 1 Controller sagt dem PC (bzw. BAP): "geh 10% hoch / geh 10% runter bzw. rückwärts / STOP" und der PC (bzw. BAP) sagt es den beliebig vielen HUBS.

Kann Das Dein Ansatz liefern?

Vielen Dank einstweilen.

Antwort hat Zeit.

Viele Grüße

Rouven
 

Lok24

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

ich lese hier bislang bei diesem sehr interessanten Thema nur still mit
...aus gleichem Grund:

Kann Das Dein Ansatz liefern?

Bei mir ist alles gut, die Baustelle ist gestern termingerecht (ja sowas gibt es) nach drei Wochen fertig geworden.
Aber nochmal fummle ich nicht mehr in 60(!) Räumen gleichzeitig rum.....

Zur Frage: nein. Mein Ansatz ist kein Ansatz. Es ist ein Programm für Pybricks, und damit lädt man ein Programm fest in ein Hub.
Gerne auch nochmal in ein zweites. Aber die sprechen nicht miteinander, und dass ich eine Fernbedienung mit beiden verbinden kann, dafür fehlt mir der Glaube.

Es ist völlig anders als BAP. Da es hier darum nicht geht, mache ich mal einen Thread für BAP auf und schreibe Dir dann da weiter, was Du machen willst geht auf jeden Fall, und wie Du jetzt arbeitest ist mir unklar, klingt aber umständlich ... (mm)
 
Zuletzt bearbeitet:

ellermaniac

Nebenbahner
Registriert
24 Mai 2019
Beiträge
1.885
Ort
Osnabrück
Wenn es mal läuft erklärt es sich recht gut von selbst.

Mhmm, ich kämpfe seit drei Stunden mit meinem Hub No. 4.

Also wenn man erst einmal die richtige Reihenfolge und Länge der gedrückten Knöpfe am Hub in Kombination mit Pybricks raus hat, startet zumindest die Installation der Firmware.

Die Installation läuft dann auch durch.

Dann habe ich
- 366 Zeilen Code in das Codefenster bei Pybricks kopiert
- in den Pybricks Settings "include current programm" aktiviert
- dann erneut die Firmware auf dem Hub installiert.

Wenn ich dann den Hub starte und versuche ihn mit der Zugfernbedienung zu verbinden gelingt das leider nicht.

Irgendwas mache ich falsch. Weiß aber nicht was genau...

Gruß,
Christoph
 

Lok24

Elektronikbahner
Registriert
11 Sep. 2019
Beiträge
1.451
Hallo @ellermaniac

Mhmm, ich kämpfe seit drei Stunden mit meinem Hub No. 4.
So war es nicht gedacht :shock:.

Also wenn man erst einmal die richtige Reihenfolge und Länge der gedrückten Knöpfe am Hub in Kombination mit Pybricks raus hat, startet zumindest die Installation der Firmware.Die Installation läuft dann auch durch.

Bist Du nach der Pybricks Anleitung oder nach meiner vorgegangen?
Der Weg ist:
- Alles abstöpseln
- Batterie 1 sec raus
- Batterie rein
- Taste am Hub drücken, bis LED lila blinkt.
Also der ganz normale LEGO standard.
Wo ist es denn schiefgegangen?

Dann habe ich
- 366 Zeilen Code in das Codefenster bei Pybricks kopiert
kann man machen, eigentlich :redface: macht man ein downlod und dann oben im Browser "Datei öffnen", aber der Effekt ist derselbe.

- in den Pybricks Settings "include current programm" aktiviert
- dann erneut die Firmware auf dem Hub installiert.
Kann man machen, ist aber mühsam.....
Einfach oben mal oben im Browser das Hub koppeln (BT-Symbol) und dann "Play" anklicken, dann kommen unten auch Meldungen, was da passiert.
Das sollten wir erstmal untersuchen.

Wenn ich dann den Hub starte und versuche ihn mit der Zugfernbedienung zu verbinden gelingt das leider nicht.
Hm. Ich denke Du musst Hub und Programm starten.

Schreib mal was passiert, ich krame derweil mal meine HW raus.....
 
Zuletzt bearbeitet:

ellermaniac

Nebenbahner
Registriert
24 Mai 2019
Beiträge
1.885
Ort
Osnabrück
ok, danke.

Jetzt meldet mir PyBricks beim erneuten Versuch:

"Traceback (most recent call last):
File "main.py", line 54, in <module>
ImportError: can't import name Remote"
 
Oben