Lok24
26.08.2020, 15:53

Editiert von
Lok24
27.08.2020, 08:42

+17Powered Up mit M5Stack Atom

Hallo zusammen,

heute möchte ich mal eine weitere Lösung für die bekannten Probleme mit Powered Up zeigen:

- kein Smartphone nötig
- Krokodil o.ä. lässt sich mit der FB regeln
- Zwei Motoren gegenläufig mit derselben Taste der FB
- Wenn es heute geht, geht es auch in 10 Jahren noch
- Plug and play (s.u.)

Das „Geheimnis“ ist ein kleiner Microprozessor, nur 3x3 Noppen groß.

Die Hardware

Es ist ein ESP32 „M5Stack ATOM Matrix“. Das Schöne daran: er hat oben eine 5x5 LED Matrix, und diese Fläche ist auch ein Taster.
Außerdem ist er genau 3x3 Noppen groß und grau ...

[image]



[image]



Das Testprogramm

Es handelt sich um ein c++ - Programm und nutzt die legoino-Bibliotheken von Cornelius Munz.
Ich habe das so gestaltet, dass der ATOM das Programm fest eingebaut hat, dennoch aber aus mehreren Optionen (Profilen) gewählt werden kann.



Die Idee

- Man überlegt sich eine Anwendung (z.B. FB mit Regelung für alle Motoren)
- Schreibt das Programm dazu (das gibt es als Beispiel auch zum Download)
- schreibt das fest in den Controller
- fertig

Ab dann macht dieser Prozessor nach dem Einschalten (1 sec) immer genau das und nur das.
(Bis jemand was neues reibschreibt, aber das muss man ja nicht….)

Dazu braucht er nur noch 5V, mehr nicht. Kein PC, kein SmartDevice, nichts von alledem. Vor allem: keine Ahnung was der überhaupt wie macht.

Und erweitert…

Im Video zeige ich wie man auch mehrere „Profile“ anlegen kann, also wie Remote und Hub agieren sollen, bei welchen Tastendrücken was wie passieren soll. Aber man könnte auch ein Profil „Haunted House“ oder „Karussell“ oder irgendwas anderes hinzufügen, in denselben Baustein.

Die Kosten

Die ATOM starten bei ca 6 $ beim Chinamann, der Matrix kostet da um 8$, meiner hat 16 € bei Bezug in D gekostet. Das war‘ schon.

In 10 Jahren …

… läuft das immer noch genauso, wenn nichts kaputtgeht (und man es sich verkneift, das LEGO Hub upzudaten….)

Für Entwickler

Man braucht
- die Arduino IDE
- die legoino-Bibliothek
- die ESP32-Bibliotheken
- einen PC

Das hat man in einer Viertelstunde zusammengesammelt, wenn man sich mittel bis wenig auskennt. Es gibt etliche Tutorials im Netz, da hab ich mein Weisheiten auch her. (habe aber länger gebraucht, da ich gar kein c++ kannte)

Plug and Play

Doch, schon.
Irgendwer (mit Ahnung)
- schreibt ein Programm („2 beliebige Motoren gegenläufig“)
- kauft den ATOM für x €
- schafft das Programm drauf (max. 5 Minuten Arbeit)
- und verkauft das Ganze für x +y € weiter

Der Empfänger steckt es an sein USB-Ladeteil, fertig.

Oder man hat in der Bekanntschaft jemanden der das kann. Wenn die Programme irgendwo vorliegen braucht man das nur zuammenzuklicken.

Ausblick

Was fehlt sind also Ideen, was man überhaupt programmieren kann und will und braucht, und Leute die des Ganzen mächtig sind.

Grüße

Werner

Ps:
Hier als Teaser mal das "Profil1", das ist schon sehr überschaubar....

void control1() {

int sstep = 10;
int sdelay = 400;
int vmax = 75;

if (FB.isLeftRemoteUpButtonPressed()) Speed = min(vmax, oldSpeed + sstep);
if (FB.isLeftRemoteDownButtonPressed()) Speed = max(vmax * -1, oldSpeed - sstep);
if (FB.isLeftRemoteStopButtonPressed()) Speed = 0;

if ( Speed != oldSpeed) {
TrainHub.setMotorSpeed(portA, Speed * 1);
TrainHub.setMotorSpeed(portB, Speed * -1);
oldSpeed = Speed;
disSpeed(Speed);
delay(sdelay);
}
}



Dirk1313 , RobbyRay , asper , hassel62 , cubo , MTM , Legoben4559 , aap134 , SuklaaTalvella , Ben® , Xris , Garbage Collector , tastenmann , freakwave , SirJoghurt , UncleTom , JuL gefällt das (17 Mitglieder)


43 vorhergehende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen Beitragsbaum

Lok24
11.09.2020, 09:46

Als Antwort auf den Beitrag von Ruppie

Re: Powered Up mit M5Stack Atom

Hallo Marc,

vielen Dank, das ist mir bekannt, geht aber leider am Zweck vorbei.

Denn für WLAN brauchst Du die IDE und die serielle Verbindung, um einmalig SSID und Key einzurichten.
Also nichts für Plug & Play.

Grüße

Werner



ElTentakel
21.09.2020, 08:46

Als Antwort auf den Beitrag von Lok24

Re: Powered Up mit M5Stack Atom

Lok24 hat geschrieben:

Hallo,

ja, verstehe. Ich habe vielleicht keine glücklichen Begriffe gewählt.

Die "Profile" weisen auf bestimmte Sets, z.B. CityTrain, Krokodil, Haunted House, Karussell, Achterbahn etc.
Die "Konfiguration" weist auf die Art wie es zu bedienen ist, also z.B. mit oder ohne FB, bei Tastendruck etwas tun, oder Toggle etc.
Und die "Parameter" legen individuelle Einstellungen fest, also z.B. wie schnell sich das Karussell drehen soll. Oder wie lange.

Aber erstmal müsste man klären wie man das Sensor-Problem und das Verbindungsproblem mit legoino löst.


Ja, mir ist auch schon aufgefallen, das keine Callbacks unterstützt werden. Da ich insbesondere den Tacho Motor als Servo konfigurierbar hätte, ist das natürlich ein Deal Breaker. Auch ist ein ständiges Abfragen sehr ungenau.

Aber dennoch kann ich es ja mal bei Gelegenheit umsetzen, denn für mich wäre der Nutzen sehr groß endlich mal meine schweren Loks mit zwei Motoren auszustatten oder einen Tracked Racer ordentlich steuern zu können, ohne das beim Lenken gleich die 2. Kette blockiert. Auch Anfahrkurven zum schonen von Zahnrädern wären echt angenehm. Mir gehts halt eher um Mocs und RC Nachrüstungen als um bestehende Lego Sets.



Lok24
24.09.2020, 12:03

Als Antwort auf den Beitrag von ElTentakel

Re: Powered Up mit M5Stack Atom

Hallo,

ElTentakel hat geschrieben:

Ja, mir ist auch schon aufgefallen, das keine Callbacks unterstützt werden.

Bist Du als Stefx im legoino-chat unterwegs?

ElTentakel hat geschrieben:
Da ich insbesondere den Tacho Motor als Servo konfigurierbar hätte, ist das natürlich ein Deal Breaker. Auch ist ein ständiges Abfragen sehr ungenau.

Ist mir nicht klar, Du brauchst doch den Motor nur um x Grad nach links und recht bewegen, warum benötigst Du da eine Rückmeldung, was habe ich übersehen?

ElTentakel hat geschrieben:
Aber dennoch kann ich es ja mal bei Gelegenheit umsetzen, denn für mich wäre der Nutzen sehr groß endlich mal meine schweren Loks mit zwei Motoren auszustatten

Das habe ich gerade programmiert. Mal schauen was sich da ergibt.



ElTentakel
27.09.2020, 21:45

Als Antwort auf den Beitrag von Lok24

+1Re: Powered Up mit M5Stack Atom

Lok24 hat geschrieben:

ElTentakel hat geschrieben:
Ja, mir ist auch schon aufgefallen, das keine Callbacks unterstützt werden.

Bist Du als Stefx im legoino-chat unterwegs?


Nein - aber ich hab die Dokumentation gelesen

Lok24 hat geschrieben:
ElTentakel hat geschrieben:
Da ich insbesondere den Tacho Motor als Servo konfigurierbar hätte, ist das natürlich ein Deal Breaker. Auch ist ein ständiges Abfragen sehr ungenau.

Ist mir nicht klar, Du brauchst doch den Motor nur um x Grad nach links und recht bewegen, warum benötigst Du da eine Rückmeldung, was habe ich übersehen?


Ich weiß nicht, wann der Motor das Ziel erreicht habe - Für Schalter bzw. Prozesse ist das aber relevant. Servos sind nicht nur zum lenken da. Aber ich denke das Projekt würde vielen auch ohne garantierten Servoeinschlag sehr nützen - ggf. kommte es ja noch später.

Lok24 hat geschrieben:
ElTentakel hat geschrieben:
Aber dennoch kann ich es ja mal bei Gelegenheit umsetzen, denn für mich wäre der Nutzen sehr groß endlich mal meine schweren Loks mit zwei Motoren auszustatten

Das habe ich gerade programmiert. Mal schauen was sich da ergibt.


Ich habe die GUI zum einstellen fertig. Ich muss jetzt noch den Anmeldevorgang vollenden und die Motorfunktionen implementieren - und die passende GUI im Statusmodus. Ich finds sehr benutzar - sobald ein minimales Funktionsset fertig ist, melde ich mich noch mal. Das kann aber wieder ein wenig dauern .



Lok24 gefällt das


ElTentakel
30.09.2020, 15:52

Als Antwort auf den Beitrag von ElTentakel

Editiert von
ElTentakel
30.09.2020, 16:03

+5Re: Powered Up mit M5Stack Atom

So, ich habe jetzt ein erstes funtkionsfähiges Proof of Conzept:



OpenPowerBrick bei Github

Es ist alles andere als fertig oder schick, aber schon recht vielversprechend.

Mir ist beim drehen des Videos auch aufgefallen, dass die Status-Anzeigematrix gedreht ist .

Geplant sind noch die Unterstützung vom Control+ Hub. Wenn möglich sollen auch zwei PoweredUp! Hubs gleichzeitig gehen, aber ich hab so schon Probleme mit dem Pairing. Das muss erstmal stabilisiert werden. Der Versuch zwei Fernbedienungen anzuschließen ist jedenfalls grandios gescheitert - aber das probiere ich später noch mal.

Aber erstmal möchte ich den Code aufräumen (Modularisierung) und ggf. ein paar Motorfunktionen hinzufügen.

/Edit: Als grundlegende Erklärung:

Oben sind die Eingänge (Fernbedienung) und links die Aktoren (Motoren) - mit dem M5 Schalter drückt man die Statusfenster und die Eingänge durch. Mit der linken PU Controllerseite wählt man die Aktoren aus und dann kann man mit der rechten PU Controllerseite eine der bisher vier Funktionen wählen. Mit Hilfe des Stop Knopfes soll man später auch einen weiteren Parameter (z.B. Maximum, Winkel, Farbe, je nach Aktor/Eingang etc) steuern können.



Lok24 , Tad16o , Beobachter74 , Thomas52xxx , JuL gefällt das (5 Mitglieder)


ElTentakel
03.10.2020, 14:35

Als Antwort auf den Beitrag von ElTentakel

Editiert von
ElTentakel
03.10.2020, 14:40

Re: Powered Up mit M5Stack Atom

So, ich habe jetzt noch einen 8-Stufen Motor modus hinzugefügt und ein Release für alle erstellt, die einfach nur das fertige Binary flashen wollen:

https://github.com/ElTent...rick/releases/tag/v0.2

Ich habe das ganze mit einer Lok mit zwei Motoren getestet - die eine hat Stufenwahl Vorwärz, die andere Rückwärts: es funktioniert einwandfrei.



Beobachter74
25.11.2020, 19:38

Als Antwort auf den Beitrag von Lok24

Re: Powered Up mit M5Stack Atom

Nabend!
Habt ihr schon gesehen was MattzoBricks so treibt?
Er nutzt u.a. auch einen ESP-32 als Controller für PUP.
Ziel seiner Architektur ist zwar Voll-Automation (über RocRail), aber zumindest für die (BT-) Verbindung zwischen ESP-32 und dem PUP Hub hat er ja Dinge entwickelt bzw. integriert.
MattzoBricks

Grüße

Benjamin



Ruppie
26.11.2020, 07:57

Als Antwort auf den Beitrag von Beobachter74

Re: Powered Up mit M5Stack Atom

Beobachter74 hat geschrieben:

Nabend!
Habt ihr schon gesehen was MattzoBricks so treibt?
Er nutzt u.a. auch einen ESP-32 als Controller für PUP.
Ziel seiner Architektur ist zwar Voll-Automation (über RocRail), aber zumindest für die (BT-) Verbindung zwischen ESP-32 und dem PUP Hub hat er ja Dinge entwickelt bzw. integriert.
MattzoBricks

Grüße

Benjamin

Spannend finde ich auch hier den Trend auf gekaufte Hardware zu verzichten da wird sich Werner freuen (auch wenn der keine Züge mag oder besitzt
Das RocRail Project ist cool ich bin aber ebenfalls kein Eisnbahnfan.
Danke für das Teilen dennoch.



Lok24
26.11.2020, 08:52

Als Antwort auf den Beitrag von Beobachter74

Editiert von
Lok24
26.11.2020, 08:53

Re: Powered Up mit M5Stack Atom

Hallo Benjamin,

Das ist aber schon völlig anders als das was ich hier vorgestellt habe.

Es erfüllt auch einen anderen Zweck.
Dennoch: es ist schon sehr komplex, um nicht "nerdig" zu sagen.

Verstehe nicht warum für PF extra Motorshields braucht. Eine einfach Ansteuerung des IR-Empfängers würde schon genügen.
Und zu bedienen ist das ganze auch schwierig, mal eben einen Zug fahren geht ja nicht. Du brauchst: Monitor, Maus, Tastatur, PC und musst den PC erst booten.
Sinn macht das auch nur für große und vollautomatisierte Anlagen, also eine Materialschlcht.

Ein Anbindung an 4Dbrix Wifi (gibts das überhaupt noch?) aber es fehlen Buwizz (auch 3.0) und Sbrick.
Manches ist merkwürdig: man muss die "Firmware" neu laden in den ESP?
Man soll den ESP im Zug mitfahren lassen? Und bei Lokwechsel?
Und dann beseitigt man jedes Reichweitenproblem mit WiFi?
(Übrigens steuert mein microHub die Züge auch via WLAN, wenn gewünscht )

Und was meint den das hier:
"Der Controller ist fertig, getestet und betriebsbereit.
Die Bauanleitung findet sich hier."

Ich glaube das ist insgesamt sehr speziell.

Grüße

Werner



Ruppie
27.11.2020, 18:28

Als Antwort auf den Beitrag von Lok24

Re: Powered Up mit M5Stack Atom

Lok24 hat geschrieben:

Es erfüllt auch einen anderen Zweck Werner

Meiner Meinung erfüllt es einen ähnlichen Zweck nur mit einem anderem Ansatz.
Lok24 hat geschrieben:
Dennoch: es ist schon sehr komplex, um nicht "nerdig" zu sagen.

"Nerdig" gefällt mir nicht klingt mir zu ähnlich zu "neidig".
Sagen wir einfach es ist eine erwachsenere oder reifere Lösung, da eben von vorhandenen Produkten weitestgehend unabhängig.
Lok24 hat geschrieben:
Verstehe nicht warum für PF extra Motorshields braucht. Eine einfach Ansteuerung des IR-Empfängers würde schon genügen.

Eben um nicht von kaufbaren Vorhandenen Lösungen abhängig zu sein.
Lok24 hat geschrieben:
Und zu bedienen ist das ganze auch schwierig, mal eben einen Zug fahren geht ja nicht. Du brauchst: Monitor, Maus, Tastatur, PC und musst den PC erst booten. Sinn macht das auch nur für große und vollautomatisierte Anlagen, also eine Materialschlcht.

Einfach ein etwas anderer Ansatz zum "Train Automation Project" wieauf Eurobricks vorgestellt.
Lok24 hat geschrieben:
... aber es fehlen Buwizz (auch 3.0) und Sbrick.

Die fehlen nicht die wurden bewusst nicht berücksichtigt, in diesem Ansatz braucht die niemand, das ist eben die Idee hinter dem "Eigenbau".
Lok24 hat geschrieben:
Manches ist merkwürdig: man muss die "Firmware" neu laden in den ESP?

Was genau ist daran merkwürdig ? Ohne ein Program macht ein ESP32 nix, das ist bei dir nicht anders.
Lok24 hat geschrieben:
Man soll den ESP im Zug mitfahren lassen? Und bei Lokwechsel?

Die Idee ist, das eben im Zweifel jede Lok ein eigenes Antriebsystem, bestehend aus: ESP32 - Motortreiber - Motor -Akku, verbaut hat
Es ist gar kein Wechsel vorgesehen, genauso wie du ja die Trainhubs in den Legozügen nicht dauern umtauschts, jeder Zug hat einen.
Lok24 hat geschrieben:
Und dann beseitigt man jedes Reichweitenproblem mit WiFi?

Warum nicht ?
Lok24 hat geschrieben:
(Übrigens steuert mein microHub die Züge auch via WLAN, wenn gewünscht )

Bezweifelt keiner
Lok24 hat geschrieben:
Ich glaube das ist insgesamt sehr speziell.

Ist deine Löung auch, ist immer so, macht die Welt bunter
Lok24 hat geschrieben:
Grüße


Ebenso



8 nachfolgende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen

Gesamter Thread: