Ein LEGO Powered Up Set mit gutem Preis-Leistungsverhältnis + "Weihnachtsgeschenk" [Deutsch|HD]

Поділитися
Вставка
  • Опубліковано 3 жов 2024
  • Der eine oder andere hat vielleicht in meinem Video zu den besten Lego Robotersets schon gesehen, dass ich den Farb- und Abstandssensor aus den Lego Boost Sets sehr gerne mag. Man kann ihn auch einzeln mit der Artikelnummer 88007 kaufen.
    Außerdem zeige ich heute mein "Weihnachtsgeschenk" für alle SPIKE Prime und Roboter Erfinder-Nutzer. Es handelt sich um eine Bibliothek für den großen Technic Hub, mit der man WeDo 2.0 Sensoren und den Farb- und Abstandssensor (ohne den IR Modus) nutzen kann.
    Links:
    Bibliothek: github.com/Tcm...
    Power Functions mit Powered Up App nutzen: • Lego Powered Up Progra...
    Tool für Bibliotheken: / 1212362052475358
    Meine Website: tcm0.tk
  • Наука та технологія

КОМЕНТАРІ • 19

  • @peterfrantzen6482
    @peterfrantzen6482 3 роки тому +1

    Für Dich auch alles Gute und ein schönes und gesundes Weihnachtsfest im Kreis Deiner Familie.
    Bleib gesund und wir freuen uns schon jetzt auf viele, schöne Videos von Dir. LG

    • @Technicmaster0
      @Technicmaster0  3 роки тому

      Danke, da sollte auf jeden Fall noch einiges kommen :)

  • @EliasFärber
    @EliasFärber 6 місяців тому

    Könntest du ein Video über alle Power up Sensoren machen.

  • @STEINKING
    @STEINKING 3 роки тому +1

    Coole Sache 😅👍

  • @gapy187
    @gapy187 3 роки тому +1

    Wie viele lego sets hast du?

  • @wurstelei1356
    @wurstelei1356 3 роки тому +1

    Gutes Tutorial. Ich denke die Sensoren können auch direkt über hub.port.A/B/C/D/E/F.device.get() gelesen werden. Allerdings ist dann die device.mode(i) Funktion nicht limitiert.
    Mit github.com/dhylands/rshell kann man übrigen das Hub-Dateisystem herunterladen. Wenn du den Hub per USB-Kabel unter Linux angeschlossen hast, mit den Befehlen:
    > python3 r.py
    > connect serial /dev/ttyACM0 115200
    > rsync -a /pyboard ~/filesystem
    Das File-Device ist dabei /dev/ttyACM0 und kann auch anders heißen - z.B. /dev/ttyACM1 etc. Dann werden alle Dateien des Hub in den Ordner filesystem im Home-Verzeichnis kopiert. In programs/standalone/devices.py müssten dann die Klassen ergänzt werden. Lego speichert aber nicht die Ports als Strings. Der Ansatzt ist dort etwas anders: die Device-ID wird dort genommen. Dabei müssten 0x22(34) der WeDo2 Tilt-Sensor, 0x23(35) der WeDo2 Motion-Sensor und 0x25(37) der Boost-Vision-Sensor sein. Die normalen, grauen Technic-Motoren sind da übrigens auch nicht per default drinne - in der devices.py. Da sind nur die Spike-Devices gelistet (48,49,61,62,64,34). Mein Hub läuft übrigens mit stock Firmware und ist nicht aktuell.
    Offtopic: wer ist/war denn Gianluca Cannalire? Wikipedia kennt den nicht und die reguläre Suche gibt da nur Text auf Italienisch aus.
    hub.light_matrix.write(...) ist bei mir nicht implementiert. Ich denke das wird auch so bleiben, wenn keiner eine quelloffene Firmware veröffentlicht und diese leicht zu installieren ist. Bei mir muss dass hub.display.show('string') heissen. Um einen Text auszugeben, wähle ich mich auf dem Hub ein und schreibe:
    > screen /dev/ttyACM0
    > import hub
    > hub.display.show('string')
    Dann wird 'string' als Lauftext ausgegeben.

    • @Technicmaster0
      @Technicmaster0  3 роки тому

      Natürlich kann man direkt hub. ... nutzen. Das möchte ich mit der lib etwas vereinfachen und generell auf die Option hinweisen. Außerdem hoffe ich das schreiben zu vereinfachen. Und dann gibt es ja noch infos zu den Modi.
      Gianluca Cannalire war ein afol, der sehr aktiv rund um pup usw war. Wir hatten im Sommer Unterhaltungen über das uart protokoll usw.

    • @wurstelei1356
      @wurstelei1356 3 роки тому +1

      Nachtrag: mit rshell lässt sich auch die Library von Technicmaster0 permanent auf dem Hub speichern. Dazu sollte man als erstes mit den obigen Befehlen die Dateien vom Hub auf das lokale Dateisystem synchronisieren. Dann kopiert man PUPSensorLib.py in das Root-Verzeichnis (~/filesystem) des Hubs zurück mit:
      > rsync -a ~/filesystem /pyboard
      rsync löscht dabei keine alten Dateien auf dem Hub - d.h. man muss nicht zwingend all Dateien kopieren. Geänderte Dateien werden allerdings überschrieben. Löschen kann man dann (besser) indem man sich auf dem Hub einlogt mit:
      > screen /dev/ttyACM0
      ctrl+c drücken, um die Hauptschleife zu beenden, dann:
      > import os
      > os.listdir()
      > os.remove('filename')
      um später wieder die Hauptschleife mit dem Menu zu starten kann man dann noch:
      > from ui.system import loop
      > loop.run_forever()
      aufrufen. Dann werden die Sensor-Werte und die Motor-Ansteuerung wieder aktualisiert. Hat man alles soweit fertig, geht der Aufruf der Lib dann mit 'import PUPSensorLib'. Allerdings habe ich die alte Firmware wohlgemerkt. Will man nicht umständlich alle alten Dateien von Hand löschen kann man noch -m an rsync übergeben
      > rsync -a -m source/ dest/
      Was der Spike-Hub definitiv braucht, ist ein kleines Programm, um aus einem Custom-Verzeichnis heraus Dateien zu starten. Momentan muss man eigene Programme noch umständlich in meny.py integrieren. Vielleicht sollte ich da mal ein Github-Projekt starten.
      PS: falls einer weiß, wie man die Sensor-Farbe der LEDs am Ultraschall-Sensor ändert, bitte melden. Mit hub.port.X.device.pmw schlägt es leider fehl. Auch den Modus voher zu ändern.

    • @Technicmaster0
      @Technicmaster0  3 роки тому

      @@wurstelei1356 der PWM-Befehl steuert nur die Motorpins, die mit +/- 9V laufen. Die LEDs des Ultraschall-Sensors werden per UART gesteuert.
      Ich suche noch nach einem schöneren Weg aber man kann mit "hub.port.A.device.mode(3, b''+chr(1*9)+chr(0*9)+chr(1*9))" Werte an die Geräte schreiben, dieser Befehl steuert die RGB Werte der LED vom Farbsensor (Credits gehen an Nard Strijbosch). Die Zahl am Anfang ist der Modus, in den geschrieben werden soll. Ich denke, dass bei dem Sensor der Modus 5 benutzt wird. Man muss 4 bytes bei Modus 5 schreiben.
      Genaueres zur Ansteuerung kannst du vermutlich bei pybricks finden: github.com/pybricks/pybricks-micropython/blob/0b9b18a084ae72f419ce06b4168bc0dbb12d8a94/pybricks/pupdevices/pb_type_pupdevices_ultrasonicsensor.c
      Eigentlich bräuchte es mal ein Visual Studio Code Plugin für SPIKE Prime.

    • @wurstelei1356
      @wurstelei1356 3 роки тому

      Ich hab' mir den Hub kurz zerschossen. Beim Sync-Befehl stürzt er während den Sound-Dateien manchmal ab. Falls jemand an einer r.py mit --exclude support interessiert ist, kann ich diese auf github/gitlab stellen. Der delete (-m) switch von sync wird auch nur unzureichend unterstützt vom Spike-Prime-Hub.
      ​@Technicmaster0 danke für den Tip. mit:
      > hub.port.A.device.mode(5, b''+chr(0x0f)+chr(0xff)+chr(0x00)+chr(0xff))
      lässt sich die Helligkeit der 4 LEDs am Ultraschall-Sensor ändern. Die 4 Hex-Chars sind die 4 Helligkeiten. Funktioniert aber nur dort und an keinem anderen Sensor.
      Ich benutze kein Visual Studio - das von Microsoft. Stell dir vor, r.py wäre Closed-Source. Ich hätte kein --exclude implementieren können in ca. 1 Stunde und würde immer noch mit einem zerschossenen Board leben. Unvorstellbar. Besser wäre eine quelloffene Firmware mit Python3 Upload-Funktion, welche das Lego-Sensorprotokoll unterstützt. Ähnlich wie r.py für generelle Micropython-Boards.

    • @Technicmaster0
      @Technicmaster0  3 роки тому

      @@wurstelei1356 Also Softwareprobleme kann man bei dem Hub eigentlich notfalls immer mit der Firmware Reset-Tastenkombination beheben. Dann muss man natürlich eine neue Firmware auf den Hub spielen können :D
      Aber ja, es ging mir eher generell um eine einfache Python IDE für das Board, die einen Dateibrowser hat. Die offizielle IDE ist zwar soweit recht gut finde ich aber da fehlt einiges und sowas wie r.py ist zu low level.