Lok24
10.09.2021, 16:49

Editiert von
Lok24
07.01.2023, 18:28

+8Pybricks Programmsammlung

Hallo zusammen,


Die unten genannten Programme funktionieren mit der neuen Version von Pybricks (3.2) leider nicht mehr.

----------------------------------------------------------------------------------------------------

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
Falls irgendwo noch auf beta.pybricks.com verwiesen wird: das ist nicht mehr sinnvoll, es läuft alles mit code.pybricks.com (Juli 2022)

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

AutoBox Für City Hub + Fernbedienung
Schaltet 1-2 beliebige Motoren am Hub mit der Fernbedienung für eine einmal voreingestellte Geschwindigkeit.

Download AutoBox1.12.zip

Download Anleitung und Parameter.pdf

Wenn alles eingerichtet ist handelt es sich quasi um eine ferngesteuerte Akku-Box mit voreingestellter Geschwindigkeit.

Das Programm speichert den eingestellten Wert in der FB als Teil des FB-Namens.
(eigentlich sollte das im Hub gespeichert werden, da warten wir noch auf die Pybricks Programmierer um das zu ermöglichen, dann geht das auch ohne FB wird nicht unterstützt...) Irgendwann scheinbar doch....

Die Idee ist:
Hub mit FB koppeln, Geschwindigkeit einstellen, speichern.
Alles aus machen
Ab dann kann man immer wieder mit dem Hub und dieser(!) FB den Motor ein- und ausschalten, mit der gespeicherten Geschwindigkeit.

Features
- Regeln der Motorgeschwindigkeit via FB
- Starten und Stoppen mit der zuletzt gespeicherten Geschwindigkeit
- Speichern der aktuellen Geschwindigkeit
- Automatische Erkennung der Motoren
- Lastregelung bei Tacho-Motoren
- Motoren auch verschieden schnell drehend möglich
- Minimal- und Maximalgeschwindigkeit einstellbar
- Drehrichtung beider Motoren voreinstellbar
- Weiter Beschleunigen bei Festhalten der Taste (an und abschaltbar)
- Keine Fahrtrichtungsumkehr bei Überschreiten von Null
- Knöpfe frei den Funktionen zuzuordnen
- Einstellen der LED-Farben und Helligkeit von Hub und der FB



ShuttleTrain(Für City Hub + Fernbedienung)
Kontrolliert einen Zug mit Motor und Lichtsensor anhand von farbigen Abschnitten im Gleis

Download ShuttleTrain 1.4.zip

Download Anleitung und Parameter.pdf

Features
- Automatische Erkennung des Motors
- Lastregelung bei Tacho-Motoren
- Minimal- und Maximalgeschwindigkeit einstellbar
- Drehrichtung des Motos voreinstellbar
- Verbinden mit einer ganz bestimmten FB
- Einstellen der LED-Farben und Helligkeit von Hub und FB
- Pendelverkehr zwischen zwei Farbkacheln
- oder Kreisverkehr auf einem geschlossenen Oval
- Wartezeiten für beide Richtungen getrennt einstellbar
- Zug automatisch oder manuell nach Halt starten
- Umschaltung automatisch/manuell via FB, auch im laufenden Betrieb
- Tasten frei zuzuordnen

Achtung: ShuttleTrain derzeit im Test-Status

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

Download Anleitung und Parameter.pdf

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)


(* wer die 2.5 im Einsatz hat: die kann nicht mehr fehlerfrei geladen werden, da sich der pybricks-code geändert hat; Wer seine 2.5 anpassen will:
In Zeile 251 muss es heißen:
speed_limit, acceleration_limit, torque_limit = Motor(port).control.limits()

Fragen und Anregungen sind willkommen, Testkandidaten sowieso

Grüße

Werner



Thomas52xxx , friccius , Heather , jpsonics , Gimmick , Ben® , JuL , tmctiger gefällt das (8 Mitglieder)


34 vorhergehende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen Beitragsbaum

rgbs
13.07.2022, 11:44

Als Antwort auf den Beitrag von Lok24

Editiert von
rgbs
13.07.2022, 11:46

Re: Pybricks Programmsammlung

Lok24 hat geschrieben:

(speed_limit) War's auch mal, der "Nachteil" deiner Lösung: keine Lastregelung

Der Haken ist ja, wenn eine Kaskadenregelung nicht zufriedenstellend funktioniert, bringt es ja nichts.

Gruß
R-G.



Lok24
13.07.2022, 12:49

Als Antwort auf den Beitrag von rgbs

Re: Pybricks Programmsammlung

rgbs hat geschrieben:

Der Haken ist ja, wenn eine Kaskadenregelung nicht zufriedenstellend funktioniert, bringt es ja nichts.

Was ist eine Kaskadenregelung?
Und was sollte da bei pybricks nicht gehen?
https://www.youtube.com/watch?v=UaNMkoPSUSA

Mein Programm funktioniert ja :-)

Der Fehler ist: das geht bei DC von 0 - 100 (dc(s)), bei anderen von 0-1000, run(s*10), aber es müsste bis zum vom Motor gemeldeten Speed_Limit gehen, das wird ja extra ermittelt.
Zeile 252/253
Wenn das bei z.B. 1500 liegt läuft der nur mit 2/3 Geschwindigkeit.



Lok24
13.07.2022, 15:21

Als Antwort auf den Beitrag von Lok24

Re: Pybricks Programmsammlung

Lok24 hat geschrieben:

Wenn das bei z.B. 1500 liegt läuft der nur mit 2/3 Geschwindigkeit.

Habe jetzt zwei Stunden Fehler gesucht, aber keinen gefunden, Speed-Limit ist 1000 für die XL-Motoren;
Mit mehr laufen die auch nicht schneller, und beide laufen ungefähr gleich schnell.
Aber der Fehler ist ja da.

Welche Motoren nutzt Du?



Lok24
13.07.2022, 17:34

Als Antwort auf den Beitrag von rgbs

Re: Pybricks Programmsammlung

Habs jetzt mal eingetütet, hier ist das Programm:

from pybricks.pupdevices import Motor
from pybricks.parameters import Port
from pybricks.tools import wait

# Initialize two XL-motors on port A and B.
m1 = Motor(Port.A)
m2 = Motor(Port.B)

#start both motors
m1.run(2000)
m2.dc(100)

#wait and show results
wait(1000)
print(m1.speed(),m2.speed())

Und das Ergebnis:
991 1555
960 1570
960 1570
991 1555
991 1555
1006 1555

Also ist der dc-Mode 50% schneller......
Ts_ hatte mich auch schon darauf aufmerksam gemacht, in Wörrstadt.



rgbs
13.07.2022, 21:58

Als Antwort auf den Beitrag von Lok24

Re: Pybricks Programmsammlung

Lok24 hat geschrieben:


Welche Motoren nutzt Du?

Technic Large Motor, der ist ja für das Krokodil vorgesehen.
Ich gehe davon aus, dass der Motor nicht über Drehzahlgrenze "abgewürgt" wird, sondern über die Strombegrenzung (torque_limit), da das Teil ruckelt, wenn man die Beschleunigungszeit klein macht.

Gruß
R.G.



Plastik
14.07.2022, 07:35

Als Antwort auf den Beitrag von Lok24

Re: Pybricks Programmsammlung

Hallo Werner,

vielen Dank für Deine tolle Arbeit. Mein Traum ist ein Zug mit vorne montiertem Abstandssensor (=Farbsensor), der automatisch abbremst, wenn er zu dicht auffährt.

Sonnige Grüße

André


Alles gut.


Technicmaster0
14.07.2022, 14:18

Als Antwort auf den Beitrag von Lok24

Re: Pybricks Programmsammlung

Lok24 hat geschrieben:

Habs jetzt mal eingetütet, hier ist das Programm:

from pybricks.pupdevices import Motor
from pybricks.parameters import Port
from pybricks.tools import wait

# Initialize two XL-motors on port A and B.
m1 = Motor(Port.A)
m2 = Motor(Port.B)

#start both motors
m1.run(2000)
m2.dc(100)

#wait and show results
wait(1000)
print(m1.speed(),m2.speed())

Und das Ergebnis:
991 1555
960 1570
960 1570
991 1555
991 1555
1006 1555

Also ist der dc-Mode 50% schneller......

Soweit ich weiß, ist die max Speed bei allen Motoren auf 1000 Umdrehungen pro Minute gesetzt. Das liegt nicht daran, dass die nicht mehr können, sondern das Team hat einfach noch nicht die möglichen Maximalgeschwindigkeiten eingepflegt.



Lok24
14.07.2022, 14:25

Als Antwort auf den Beitrag von Technicmaster0

Re: Pybricks Programmsammlung

Technicmaster0 hat geschrieben:

Soweit ich weiß, ist die max Speed bei allen Motoren auf 1000 Umdrehungen pro Minute gesetzt. Das liegt nicht daran, dass die nicht mehr können, sondern das Team hat einfach noch nicht die möglichen Maximalgeschwindigkeiten eingepflegt.

Ich meine hätte da vor Jahren auch mal 1400 gelesen?

Egal wie, so ist es ja nutzlos. Natürlich hängt die max. Umdrehung von der Batteriespannung ab, aber das Problem ist doch: Mein Fahrpult geht von 0-100 %, und die muss ich jetzt auf 0 - max umrechnen.
Der XL macht um die 1650, der L 1400 etc.



rgbs
14.07.2022, 15:43

Als Antwort auf den Beitrag von Lok24

Re: Pybricks Programmsammlung

Lok24 hat geschrieben:


... aber das Problem ist doch: Mein Fahrpult geht von 0-100 %, und die muss ich jetzt auf 0 - max umrechnen.
Der XL macht um die 1650, der L 1400 etc.

Wie Du ja selbst schon festgestellt hast, läuft der Motor bei Vorgabe 2000 auch nur mit unter 1000 u/min.
Eine Umrechnung des Vmax Wertes löst das Problem nicht.

Gruß
R.G.



Lok24
14.07.2022, 15:53

Als Antwort auf den Beitrag von rgbs

Re: Pybricks Programmsammlung

Natürlich, ich kann den Wert ja setzen mit
m1.control.limits(2000)

Aber wenn ich dann bei Fahrstufe 80 bin tun sich halt am Motor nichts mehr, unbefriedigend.
Setze ich ihn auf 1700 läufts prima.

Hier die Zeile 210
if motor[x].getDir() != 0 and motor[x].getType() == "Motor" : motor[x].obj.run(s*motor[x].getSpeed()/100)

und hier 251-254
motor[i].obj.control.limits(1700)
motor[i].setSpeed(1700)
#motor[i].setAcc(acceleration_limit)

gilt aber nur für XL, für L scheint mir 1400 passender.



25 nachfolgende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen

Gesamter Thread: