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)


1 vorhergehender Beitrag ist ausgeblendet

Alle anzeigen Immer alle anzeigen Beitragsbaum

Ruppie
27.08.2020, 06:42

Als Antwort auf den Beitrag von aap134

Re: Powered Up mit M5Stack Atom

Permalink

1000steine-Code

BBCode

HTML


@Andreas
Du must die Rollenverteilung bei einer BLE Verbindung beachten.
Bezogen auf den Beispiel ist das gesteuerte Element dein Nano, das steuernde Element das Telefon.

Dein Telefon hat hier die selbe "Rolle" wie der ESP32. Kann also sicher Verbindungen zu mehreren Nano aufnehmen.
Dein Nano hat hier eine aehnliche "Rolle" wie Hub und FB.

Marc



Lok24
27.08.2020, 08:37

Als Antwort auf den Beitrag von aap134

Editiert von
Lok24
27.08.2020, 08:43

Re: Powered Up mit M5Stack Atom

Hallo Andreas,

aap134 hat geschrieben:

Wie funktioniert das bei dem ESP32 mit den multiplen Bluetooth-Verbindungen?
Bei meiner Steuerung des BLE-Nano (Arduino) über mein Smartphone (Serial Bluetooth Terminal) bekomme ich nur eine Verbindung hin.

Der ESP32 baut die Verbindung zu mehreren Hubs auf. Er ist der "Chef".

aap134 hat geschrieben:
Informationen über die leguiono-Bibliothek habe ich auf die Schnelle bei google auch nichts gefunden.
Natürlich nicht
Das Zeug heißt legoino, sorry für den Tippfehler, hab's jetzt korrigiert.
https://github.com/corneliusmunz/legoino

Wenn Du die Arduino-IDE installiert hast kannst Du das einfach über den Library Manager auswählen. Aber es wird mit dem Nano nicht gehen, es ist für ESP32.


Grüße

Werner



AdmiralStein
27.08.2020, 19:42

Als Antwort auf den Beitrag von Lok24

Re: Powered Up mit M5Stack Atom

Sehr interessant! Danke fürs Vorstellen.

Ich kann da also fertige Programme draufladen, die beim Einschalten bzw. auf Knopfdruck starten.

Wenn ich den Hub mit einem 9V-Netzteil und den ATOM mit einem 5V-Netzteil versorge, läuft das Ganze von morgens bis abends bzw. bis ich es ausschalte.

In den Programmen auf dem ATOM kann ich Werte von Sensoren verarbeiten, die ich an den Hub anschließe?

Man könnte also sagen, so ein ATOM in Verbindung mit einem 4-fach-Hub ersetzt mir einen teuren Spike-Zentralbaustein, sofern ich mich mit vier Anschlüssen zufrieden gebe.

Viele Grüße

Matthias



AdmiralStein
27.08.2020, 19:50

Als Antwort auf den Beitrag von AdmiralStein

Re: Powered Up mit M5Stack Atom

PS: In den ATOM-Spezifikationen steht "IR: Infrarot-Übertragung". Das könnte rein theoretisch sogar die Steuerung von PF-Komponenten ermöglichen, wenn da jemand eine entsprechende Bibliothek schreiben würde? Nur mal so als Gedanke...



Thomas52xxx
27.08.2020, 19:51

Als Antwort auf den Beitrag von AdmiralStein

Re: Powered Up mit M5Stack Atom

AdmiralStein hat geschrieben:

Man könnte also sagen, so ein ATOM in Verbindung mit einem 4-fach-Hub ersetzt mir einen teuren Spike-Zentralbaustein, sofern ich mich mit vier Anschlüssen zufrieden gebe.

Es gibt auch eine größere Ausführung (knapp 7x7) die zahlreiche Sensoren inkludiert hat und zudem über Lego-kompatible Noppena- und Technic-Pin-nschlüsse verfügt. Gibt es sicher auch anderswo günstiger.


Gruß
Thomas

mein Blog
meine Eisenbahnräder - mit funktionierendem Download


Ruppie
28.08.2020, 06:40

Als Antwort auf den Beitrag von aap134

Re: Powered Up mit M5Stack Atom

Hallo Andreas,
verwendest du ein Arduino Nano 33 BLE Board, mit Arduino BLE Bibliothek ?
Schau map hier:https://github.com/arduino-libraries/ArduinoBLE/issues/55

Offenbar hat Version 1.4 hier ein Problem die Bibliothek is no charge nichto gut a us bereft in Hinblick auf die Rolleston "Central", also die "steuernde" Rolle, aehnlich deinem Telefon.


Das Problem liege also in Lib /Middleware, nicht am Chip selber.

Alternativen:
1. Du kannst das Board das Board auch kit dem "MBED" Framework verwenden.
2. Du kannst das Board auch kit dem Adafruit Blue fruit Framework verwenden, dazu ms test Du Aber eine andere Firmware flashen,vermutlich zu schwierig, da man auch eine JTAG Programmer braucht.

Kurz:Wenn du beim nRF52840 Chip bleiben magst empfehle ich direct ein "Adafruit nRF Feather Express"
Wenn nicht Ist ESP32 sicker eine Blickling wert.

Hoffe das hilt ein wenig weiter.

Marc



Lok24
28.08.2020, 10:31

Als Antwort auf den Beitrag von AdmiralStein

Editiert von
Lok24
28.08.2020, 11:01

Re: Powered Up mit M5Stack Atom

Hallo Matthias,

AdmiralStein hat geschrieben:

Ich kann da also fertige Programme draufladen, die beim Einschalten bzw. auf Knopfdruck starten.
genau, das Ding startet unter 1 sec, im Video haben die "Connect" Anzeigen ein delay von 0,4sec, bevor sie die Farbe wechseln, auch das grün beim Einschalten bleibt 0,2 sec stehen, sonst würde man es gar nicht sehen.
Und nein, das Programm startet *immer". Du kannst natürlich als ersten Befehl reinfummeln "warte bis Taste gedrückt". Oder "warte bis HUB connected".

AdmiralStein hat geschrieben:
Wenn ich den Hub mit einem 9V-Netzteil und den ATOM mit einem 5V-Netzteil versorge, läuft das Ganze von morgens bis abends bzw. bis ich es ausschalte.

Ja. Und macht alle 5min mal für 30 sec das Karussel an, oder alle Stunde die Kuckusuhr oder in Zufallszeiten mal den Aufzug vom Haunted House. Und es muss dafür auch nicht im "LEGO-Regal" liegen, sondern irgendwo in Funkreichweite.

AdmiralStein hat geschrieben:
In den Programmen auf dem ATOM kann ich Werte von Sensoren verarbeiten, die ich an den Hub anschließe?
Ja. Aber mit der von mir benutzten Legoino-Programm-Bibliothek habe ich damit ein wenig Probleme, aber ja, auch sowas habe ich zum Laufen bekommen; da müsste nochmal jemand mit Programmier-Sachverstand drüberschauen.

AdmiralStein hat geschrieben:
Man könnte also sagen, so ein ATOM in Verbindung mit einem 4-fach-Hub ersetzt mir einen teuren Spike-Zentralbaustein, sofern ich mich mit vier Anschlüssen zufrieden gebe.
Prinzipiell ja, in der Realität wohl nicht.

Aber das wird jetzt eine sehr theoretische Diskussion.

Für "simple" Anwendungen bestimmt. Aber Du musst die Dinge programmiert bekommen. Legoino kennt m.E. kein "4-fach-Hub". Aber der Programmierer ist sehr aufgeschlossen - und schnell. Meine Anregung hatte er nach drei Stunden umgesetzt. Es mag auch andere Bibliotheken geben. Ich kenne mich da bei weitem nicht aus. Wie geschrieben: ohne dass sich jemand mit dem Kram auskennt werden wir nicht weiterkommen.

Je nachdem was Du machen willst (um mal wieder auf die Praxis zu kommen )
Ohne FB nur mit dem 4fach Hub macht das PyBricks schon eine ganze Weile. Auch mit weit mehr Befehlen.
Wenn Du mal schreibst was konkret(!) es tun soll kann ich mal schauen, ob ich sowas zusammenbekomme.
Und mit welchem Tool.

Grüße

Werner



Lok24
28.08.2020, 10:41

Als Antwort auf den Beitrag von AdmiralStein

Re: Powered Up mit M5Stack Atom

AdmiralStein hat geschrieben:

PS: In den ATOM-Spezifikationen steht "IR: Infrarot-Übertragung". Das könnte rein theoretisch sogar die Steuerung von PF-Komponenten ermöglichen, wenn da jemand eine entsprechende Bibliothek schreiben würde? Nur mal so als Gedanke...

Ja. Aber das alles gibt es ja schon seit Jahren, ich habe hier ein Beispiel da steht

J.A. Korten for Railbricks
Library by Roland Wiersma
November 2012
#include <legopowerfunctions.h> // this imports the LEGO PF library
Beschreibungen gab es seinerzeit in Railbricks.

Oder aber : man steckt am ATOM hinten(!) einfach eine IR-Diode ein, die die Signale der PF-FB empfängt -> LEGO Drehregler!



Lok24
28.08.2020, 10:47

Als Antwort auf den Beitrag von Thomas52xxx

+2Re: Powered Up mit M5Stack Atom

Thomas52xxx hat geschrieben:

.....größere Ausführung[/link] (knapp 7x7) die zahlreiche Sensoren inkludiert hat und zudem über Lego-kompatible Noppena- und Technic-Pin-nschlüsse verfügt. Gibt es sicher auch anderswo günstiger.

Natürlich, beim Chinesen:
https://www.banggood.com/...E&cur_warehouse=CN

Das Ding hat keine LED-Matrix, sondern einen 320x240 TFT-LCD Bildschirm.....



tastenmann , hassel62 gefällt das


Lok24
28.08.2020, 18:55

Als Antwort auf den Beitrag von Lok24

Re: Powered Up mit M5Stack Atom

Hi,

Lok24 hat geschrieben:

Für "simple" Anwendungen bestimmt. Aber Du musst die Dinge programmiert bekommen. Legoino kennt m.E. kein "4-fach-Hub". Aber der Programmierer ist sehr aufgeschlossen - und schnell. Meine Anregung hatte er nach drei Stunden umgesetzt. Es mag auch andere Bibliotheken geben.

Doch, "technic" 4-fach Hub geht auch seit 3 Wochen...
Ich gehe jetzt nochmal das "Sensor"-Problem an, aber das kann bei mir liegen. Mal schauen.



50 nachfolgende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen

Gesamter Thread: