Alegoxander
13.02.2022, 08:48

Editiert von
Alegoxander
15.02.2022, 20:10

+1Unboxing: Mindstorms Robot Inventor (515151) ... and more

1. DIE GESCHICHTE BEGINNT

Guten Morgen,

nachdem letzte Woche zunächst der Preis bei 285.99 lag, als ich kaufen wollte, aber schon wieder zwischen 300 und 400 angesagt waren, habe ich einen Alarm bei Brickmerge gesetzt und als dieser auslöste, habe ich zugegriffen. Verrückt, ohne Anlass, einfach so für mich und mein Söhnchen.

Da wir bereits viel diskutiert haben (ganz herzlichen Dank nochmals!), kam von Lok24 die Idee eines Unboxing Threads, den ich hiermit gerne beginnen möchte.

- Freitag, 11.02.2022: Mindstorms Set kommt per Post
- Samstag, 12.02.2022: meine Familie damit überrascht und abends gestartet

Die frische Packung, mir scheint direkt aus dem Karton von Lego selbst:

[image]



Geöffnet und Hub ausgepackt:

[image]



Es folgt die Story des ersten Abenteuers mit dem Hub ...


80er und 90er, 12V Eisenbahn, ... bis Mindstorms RCX 1.0. Jetzt wieder mit Söhnchen dabei: Classic, Creator, Technik, Boost, Mindstorms/Spike.


JuL gefällt das


10 vorhergehende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen Beitragsbaum

Lok24
22.02.2022, 15:38

Als Antwort auf den Beitrag von Alegoxander

Re: Unboxing: Mindstorms Robot Inventor (515151) ... and more

Permalink

1000steine-Code

BBCode

HTML


Danke.

Alegoxander hat geschrieben:

Streaming ist wie bei Filmen: Man lädt den Film nicht auf den Rechner, sondern schaut ihn direkt von der Quelle. In unserem Fall also ist das Programm auf dem Rechner oder auf dem iPad und wird nur vom Hub dort gelesen sozusagen.

Es wird dort gelesen? Und übertragen? Oder eben doch auf dem Rechner ausgeführt?
(also so wie beim Boost, da sendet das Move Hub "Sensor erkannt" an die App, die schaut wo es weitergeht und sendet dann "Motor A Stop" an das Hub).

Deswegen ist ja genau Pybricks ungleich schneller als die App.



Alegoxander
23.02.2022, 10:26

Als Antwort auf den Beitrag von Lok24

Re: Unboxing: Mindstorms Robot Inventor (515151) ... and more

Lok24 hat geschrieben:

Es wird dort gelesen? Und übertragen? Oder eben doch auf dem Rechner ausgeführt?
(also so wie beim Boost, da sendet das Move Hub "Sensor erkannt" an die App, die schaut wo es weitergeht und sendet dann "Motor A Stop" an das Hub).
Deswegen ist ja genau Pybricks ungleich schneller als die App.


Ja, wie beim Boost. Aber man kann ja selbst wählen, welchen Modus man nutzt. Mindstorms hat ja beide Möglichkeiten.
Aber beispielsweise für den Touchscreen-Controller braucht man den Streaming-Modus.


80er und 90er, 12V Eisenbahn, ... bis Mindstorms RCX 1.0. Jetzt wieder mit Söhnchen dabei: Classic, Creator, Technik, Boost, Mindstorms/Spike.


Lok24
23.02.2022, 10:43

Als Antwort auf den Beitrag von Alegoxander

Editiert von
Lok24
23.02.2022, 10:48

Re: Unboxing: Mindstorms Robot Inventor (515151) ... and more

Moin,

Alegoxander hat geschrieben:

Ja, wie beim Boost. Aber man kann ja selbst wählen, welchen Modus man nutzt. Mindstorms hat ja beide Möglichkeiten.

Aha, also doch anders als bei der Musik, ob ich da streame oder downloade, es kommt immer dasselbe an.
Hier wird im Download der Code übertragen, im Streaming nur Befehle. Völlig anders.

Alegoxander hat geschrieben:
Aber beispielsweise für den Touchscreen-Controller braucht man den Streaming-Modus.

Der ja nicht ordentlich funktioniert...?
Und bedeutet aber doch, dass der Hub im Dowload modus überhaupt nicht von aussen steuerbar ist, ausser über Hub-to-Hub? Ein teurer Spaß.

Wie stoppe ich eine außer Rand und Band geratene Maschine?
Wie starte ich eine Fukntion?
Fragen über Fragen.



Technicmaster0
23.02.2022, 15:16

Als Antwort auf den Beitrag von Lok24

Re: Unboxing: Mindstorms Robot Inventor (515151) ... and more

Alegoxander hat geschrieben:

Da würde mich eben ein Vergleich interessieren. Ich nutz(t)e das iPad dafür. Kann am iPad liegen, an meinem Hub oder es ist generell so. Vielleicht kann Technicmaster0 etwas dazu schreiben?

Die Verzögerungen bei der beworbenen Fernsteuerung mit Smartphone und Gamepad ist tatsächlich ein großer Kritikpunkt. Bei Gamepads ist es sogar noch etwas schlimmer: die gehen auch nur im Streamingmodus, d.h. die Verzögerung von Gamepad zu App kommt noch dazu. Ich würde normalerweise immer den Downloadmodus nehmen, wenns geht. Aber mehr dazu später in diesem Post.

Lok24 hat geschrieben:
Bedeutet: genau der Modus, mit dem man auch andere Bibliotheken einbinden kann geht nicht gut?

Das mit den Bibliotheken hängt ein bisschen davon ab, in diesem Fall gehe ich nur auf Python ein:
Für den Streaming Modus gibt es ganz normale Python Bibliotheken, die mit dem Python auf dem Computer ausgeführt werden. Da kann man natürlich auch alle anderen Python Bibliotheken nutzen, die auf dem Computer laufen. Weil der Code auf dem Computer ausgeführt wird. Man kann das mit der MonoBrick Communication Library für den EV3 vergleichen.
Im Download-Modus wird der Code in Micropython vorkompiliert und dann auf den Hub geladen. Das vorkompilieren macht aber soweit ich weiß nur die offizielle App und ist nicht unbedingt nötig, macht alles aber ein bisschen effizienter/schneller. Im Download-Modus kann man entweder eigene Bibliotheken (also einfach Python-Dateien) auf den Hub laden (bspw. mit einem Dateibrowser wie rshell oder einem Programm, dass die Sachen in den internen Speicher vom Hub lädt). Außerdem gibt es einige Bibliotheken, die auf dem Hub vorinstalliert sind. uBluetooth, utime usw.

Alegoxander hat geschrieben:
- unter iOS kein gewohntes Copy & Paste sowie exaktes Bewegen zu einer Position mit Space

Zumindest da würde ich davon ausgehen, dass es irgendwie geht. Hast du schon mal länger auf einen Block, den du kopieren willst, gedrückt?


Lok24 hat geschrieben:
Der ja nicht ordentlich funktioniert...?
Und bedeutet aber doch, dass der Hub im Dowload modus überhaupt nicht von aussen steuerbar ist, ausser über Hub-to-Hub? Ein teurer Spaß.

In Scratch stimmt das. In Python gibt es viele Möglichkeiten aber ich würde sagen, dass sich da noch keine komplett durchgesetzt hat. Beispielsweise kann man die Powered Up Fernbedienung nutzen (auch wenn diese spezielle Bibliothek glaube ich nicht mit der aktuellen Firmware vom Hub läuft - vielleicht gibts noch eine andere, die aktueller ist) oder man schickt "rohe" Signale, die man über uBluetooth verarbeitet. Es gibt beispielsweise Versuche und Beispielcode, die Hub2Hub Befehle auch in Python und mit einem Raspberry Pi zu nutzen.

Lok24 hat geschrieben:
Wie stoppe ich eine außer Rand und Band geratene Maschine?
Wie starte ich eine Fukntion?
Fragen über Fragen.

Im Downloadmodus entweder über die App oder über die Tasten am Hub. Wie beim EV3 auch. Im Streamingmodus kann man die Sachen natürlich nur in der App starten.



Lok24
23.02.2022, 15:43

Als Antwort auf den Beitrag von Technicmaster0

Editiert von
Lok24
23.02.2022, 15:45

Re: Unboxing: Mindstorms Robot Inventor (515151) ... and more

Hallo und vielen Dank.

Technicmaster0 hat geschrieben:

Im Download-Modus kann man entweder eigene Bibliotheken (also einfach Python-Dateien) auf den Hub laden (bspw. mit einem Dateibrowser wie rshell oder einem Programm, dass die Sachen in den internen Speicher vom Hub lädt). Außerdem gibt es einige Bibliotheken, die auf dem Hub vorinstalliert sind. uBluetooth, utime usw.

Diese Bibliotheken kann ich also mit der App erzeugen, aber nicht in das Hub laden?
Eher nicht, gerade probiert, .py speichern geht nicht.
Ich möchte eigentlich das erreichen, was beim EV3 unter "eigene Blöcke" läuft.
Also Subroutinen....

Technicmaster0 hat geschrieben:
In Scratch stimmt das. In Python gibt es viele Möglichkeiten aber ich würde sagen, dass sich da noch keine komplett durchgesetzt hat.

Meine Fragen beziehen sich ausschließlich auf die LEGO App und die LEGO Welt
Sorry, hätte ich dazuschreiben sollen.


Technicmaster0 hat geschrieben:
Lok24 hat geschrieben:
Wie stoppe ich eine außer Rand und Band geratene Maschine?
Wie starte ich eine Funktion?
Fragen über Fragen.

Im Downloadmodus entweder über die App oder über die Tasten am Hub. Wie beim EV3 auch.

Über die App kann ich dem Ding doch nicht sagen fahre links oder bleibe stehen?
EV3 hat eine Fernbedienung...
Hier im Einsatz (vorne rechts) Steuert den Stapler und das Spill - und Nothalt!
Da sind keine "Tasten am Hub", das ist eingebaut.

[image]



Technicmaster0
23.02.2022, 15:57

Als Antwort auf den Beitrag von Lok24

Editiert von
Technicmaster0
23.02.2022, 16:00

Re: Unboxing: Mindstorms Robot Inventor (515151) ... and more

Lok24 hat geschrieben:

Diese Bibliotheken kann ich also mit der App erzeugen, aber nicht in das Hub laden?
Eher nicht, gerade probiert, .py speichern geht nicht.
Ich möchte eigentlich das erreichen, was beim EV3 unter "eigene Blöcke" läuft.
Also Subroutinen....

Am einfachsten ist es, Subroutinen bzw. Funktionen einfach über dem eigenen Code in die Datei zu schreiben. Kann man in normalen Python Programmen ja auch so machen.
Man kann .py Dateien speichern, aber die Methode ist nicht straight forward. Klick dich mal durch den "die Powered Up Fernbedienung nutzen" Link von Nard, den ich in meinem letzten Post verlinkt habe, durch (bzw. lade den Installer herunter und schau ihn dir an) ;)
In Scratch gibts übrigens auch eigene Blöcke.


Lok24 hat geschrieben:
Meine Fragen beziehen sich ausschließlich auf die LEGO App und die LEGO Welt
Sorry, hätte ich dazuschreiben sollen.

Was ist denn für dich die LEGO App und LEGO Welt? Zählt Python dazu? Denn beide Links, die ich verlinkt habe, gehen grundsätzlich auch "nur in der LEGO Welt". Eben mit Python.
Ist Pybricks LEGO Welt?

Lok24 hat geschrieben:
Über die App kann ich dem Ding doch nicht sagen fahre links oder bleibe stehen?
EV3 hat eine Fernbedienung...

Dem EV3 kannst du auch nicht einfach so mit der Fernbedienung sagen "bleibe stehen". Da muss schon ein Programm laufen. Aber wie gesagt, schau dir mal den Link "die Powered Up Fernbedienung nutzen" an. Das finde ich zeigt ganz gut, was zumindest theoretisch im Lego Universum (aber mit Python) möglich ist.



Lok24
23.02.2022, 16:34

Als Antwort auf den Beitrag von Technicmaster0

Re: Unboxing: Mindstorms Robot Inventor (515151) ... and more

Moin,

danke!

Technicmaster0 hat geschrieben:

Am einfachsten ist es, Subroutinen bzw. Funktionen einfach über dem eigenen Code in die Datei zu schreiben. Kann man in normalen Python Programmen ja auch so machen.

Ja. Ich möchte sie aber auch einfach in anderen Projekten nutzen. Via Import.

Technicmaster0 hat geschrieben:
Man kann .py Dateien speichern, aber die Methode ist nicht straight forward. Klick dich mal durch den "die Powered Up Fernbedienung nutzen" Link von Nard, den ich in meinem letzten Post verlinkt habe, durch (bzw. lade den Installer herunter und schau ihn dir an) ;)

Da verstehe ich zu wenig, aber für Mindstorms geht der nicht, und testen kann ich nix, weil ich ja keine Hubs habe.....Aber wenn ich es recht verstehe könnte ich dann PU Hubs verbinden.
Nice, wollte ich aber gerade nicht.
Und die Spike "eigenen Blöcke" wabern wohl immer auf der Programmieroberfläche rum, man kann sie nicht getrennt speichern und wiederverwenden.

Technicmaster0 hat geschrieben:
Was ist denn für dich die LEGO App und LEGO Welt? Zählt Python dazu? Denn beide Links, die ich verlinkt habe, gehen grundsätzlich auch "nur in der LEGO Welt". Eben mit Python.
Ist Pybricks LEGO Welt?

RI kaufen, Mindstorms App starten, fertig. Das wäre mein Wunsch.

Technicmaster0 hat geschrieben:
Dem EV3 kannst du auch nicht einfach so mit der Fernbedienung sagen "bleibe stehen". Da muss schon ein Programm laufen.
Natürlich. Aber es gibt eine Fernbedienung, für das RI genau nicht.

Es scheint mir für das was ich möchte nicht zu tun.
Dennoch vielen Dank für Deine Hinweise.



Technicmaster0
23.02.2022, 16:48

Als Antwort auf den Beitrag von Lok24

Re: Unboxing: Mindstorms Robot Inventor (515151) ... and more

Lok24 hat geschrieben:

Ja. Ich möchte sie aber auch einfach in anderen Projekten nutzen. Via Import.

Wie gesagt, ein Beispiel dafür ist der Installer von der Lib. Oder um daraus mal ein paar Zeilen zu zeigen:
files = os.listdir()
filename = 'hub2hub.py'

if filename in files:
print('Delete old version of hub2hub library')
os.unlink(filename)

print('Start installation')
f = open(filename, 'w')
f.write('from micropython import const, alloc_emergency_exception_buf, schedulen')
f.write('from time import sleep_msn')
f.write('import ubluetoothn')
f.write('import ubinasciin')
f.write('import structn')
(...)
f.close()

os.sync()

print('Installation Successfull')

Mit so einem "Installer" kann man Bibliotheken mit der offiziellen App in den Speicher des Hubs schreiben.

Lok24 hat geschrieben:
Da verstehe ich zu wenig, aber für Mindstorms geht der nicht, und testen kann ich nix, weil ich ja keine Hubs habe.....Aber wenn ich es recht verstehe könnte ich dann PU Hubs verbinden.
Nice, wollte ich aber gerade nicht.

Wenn du die Hub Liste durchschaust, findest du da den Hub "Remote". Genau das ist es doch, was du wolltest.
Ich möchte jetzt aber auch nicht sagen, dass du auf Basis davon einen Hub kaufen solltest. Wie gesagt, ich glaube die Bibliothek läuft nicht auf der aktuellen Firmware, weil ein paar Befehle geändert wurden und diese Bibliothek bisher nicht aktualisiert wurde. Es geht mir halt eher darum zu zeigen, dass das schon grundsätzlich geht.

Lok24 hat geschrieben:
Und die Spike "eigenen Blöcke" wabern wohl immer auf der Programmieroberfläche rum, man kann sie nicht getrennt speichern und wiederverwenden.

Man kann die immerhin so an den Rand schieben, dass man sie nicht sieht. Außerdem kann man sie ziemlich sicher von einem Projekt ins nächste kopieren.



Lok24
23.02.2022, 18:17

Als Antwort auf den Beitrag von Technicmaster0

Re: Unboxing: Mindstorms Robot Inventor (515151) ... and more

Hallo,

Technicmaster0 hat geschrieben:

Wie gesagt, ein Beispiel dafür ist der Installer von der Lib. Oder um daraus mal ein paar Zeilen zu zeigen:
files = os.listdir()
filename = 'hub2hub.py'

Ah ja, das sieht übersichtlich aus.
Ich habe ja nur die Install_hub2hub_v011.llsp, und die kann ich zwar mit der Spike App öffnen, bekomme aber gar nichts angezeigt. Mit der Mindstorms App geht da gar nichts.

Technicmaster0 hat geschrieben:
Wenn du die Hub Liste durchschaust, findest du da den Hub "Remote". Genau das ist es doch, was du wolltest.

Aus alter Pybricks Gewohnheit bei den Devices geschaut....

Technicmaster0 hat geschrieben:
Es geht mir halt eher darum zu zeigen, dass das schon grundsätzlich geht.

Ich interessiere mich dafür eben rein gar nicht, für mich ist das Mittel zum Zweck, mehr nicht.
Ich möchte Modelle betreiben, nicht programmieren probieren. So wie sehr viele hier.

Insgesamt ist das Thema für ich eigentlich durch:
Powered Up hat viel zu viele Fehler und funktioniert schlecht bis gar nicht, Spike/RI ist weder mit sich noch mit anderem kompatibel, die Kabel sind zu kurz, und Pybricks macht nicht das Versprochene und erlaubt auch zuwenig.

Schade um die eigentlich schöne Idee.



Alegoxander
07.03.2022, 13:04

Als Antwort auf den Beitrag von Alegoxander

+2Re: Unboxing: Mindstorms Robot Inventor (515151) ... and more

5. GELERNT UND GELÖST

Erstmal freut es mich sehr, dass hier weiter geschrieben wurde.

A. MACKEN

In den letzten Tagen habe ich viel programmiert, getestet, gelesen und gelernt. Ihr erinnert euch an meine Liste der Macken weiter oben in einem Beitrag. Mittlerweile konnte ich alle Macken auflösen und hier gibt es die Lösungen (die natürlich für mich passend sind und für den ein oder anderen unzufriedenstellend sind) für euch:

kein Touchscreen-Controller, außer man nimmt die Verzögerung in Kauf

1. Durch die LEGO Remote Control (88010, bei Bricklink günstigt gekauft) und die Bibliothek von Vinzenz Weist kann ich nun problemlos und gefühlt in Echtzeit meine Mindstorms-Modelle steuern. Macht viel Spaß, besonders weil mein Söhnchen parallel mit dem Boost/MoveHub mitfährt.

Ausserdem habe ich dadurch sehr viel über Bluetooth und Micropython gelernt. Mein Weg führte mich von gatttool über pygatt hin zu ubluetooth. Dabei ist unter anderem eine eigene Bibliothek herausgekommen, mit der ich die LEGO Fernbedienung unter Linux für meine eigenen Programme nutzen kann.

unzuverlässig als Windows-Software in der virtuellen Maschine

2. Für kleine Programmier-Versuche nutze ich die Scratch-Umgebung der LEGO iOS-App auf dem iPad, aber größere Python-Projekte programmiere ich unter Linux mit vim/spike-tools oder VSCode/Spike-Extension.
Das läuft perfekt und passt zudem deutlich besser zu meinem sonstigen Workflow.

unter iOS kein gewohntes Copy & Paste sowie exaktes Bewegen zu einer Position mit Space

3. Wie oben unter (2) beschrieben nutze ich Python nicht mehr innerhalb der LEGO Software und daher: Erledigt.

bisher einmal nicht mehr funktionierendes Programm auf dem Hub, welches zuvor problemlos funktioniert hat

4. Das kam bisher nicht mehr vor und alle hochgeladenen Programme laufen stabil und zuverlässig auch noch nach dem 10. Durchlauf. Da es nur ein einziges Mal vorkam, vermute ich, dass es ein Fehler von mir war.

B. PROJEKTE

Ich hatte das Scratch-Tutorial von Technicmaster0 durchgearbeitet, danach einige Versuche meinerseits mit allen Motoren und Sensoren durchgeführt und habe auch die offiziellen LEGO-Modelle zum Teil ausprobiert (werde diese auch alle demnächst testen). Und ich kann wirklich sagen, dass sich meine erste Skepsis in großen Spaß mit dem Mindstorms gewandelt hat.

Die Motoren sind deutlich leiser als die vom Boost und alles arbeitet sehr genau für meine Begriffe. Durch die Programmierung mit Python habe ich viel mehr Paramter in der Hand als unter Scratch. Und nachdem ich alles auch ohne Windows und unter Linux erledigen kann, habe ich ehrlich eine riesen Freude mit dem Set.

C. WAS FOLGT?

Ich werde mir noch den Medium Motor besorgen, der nur im Spike Set enthalten ist, da ich finde, dass ein fünfter Motor sehr praktisch für einige Modelle sein könnte. Ebenso denke ich über einen zweiten Distanzsensor nach, um die Umgebung besser im "Blick" zu haben. Und natürlich freut es mich, dass es mittlerweile so viele kreative Modelle bei von anderen zu finden sind.

Und ganz sicher schreibe ich weiter von meinen Erfahrungen und beim nächsten Beitrag gibt es auch wieder Fotos.


80er und 90er, 12V Eisenbahn, ... bis Mindstorms RCX 1.0. Jetzt wieder mit Söhnchen dabei: Classic, Creator, Technik, Boost, Mindstorms/Spike.


Lok24 , JuL gefällt das


14 nachfolgende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen

Gesamter Thread: