Αποστολέας Θέμα: Επικοινωνία Scratch 3 (Scratux) με LEGO WeDo 2.0 και EV3 στο Linux  (Αναγνώστηκε 464 φορές)

markakis

  • Working Dead
  • Βετεράνος
  • ****
  • Μηνύματα: 85
Στο δικτυακό τόπο του Scratch βλέπουμε ότι επίσημα δεν υποστηρίζεται η σύνδεση του Scratch 3 με τα  LEGO WeDo 2.0 (https://scratch.mit.edu/wedo) και LEGO MINDSTORMS EV3 (https://scratch.mit.edu/ev3) σε Linux.
Βέβαια ξέρουμε ότι μπορούμε να τα συνδέσουμε με το Scratch 2 χρησιμοποιώντας την εφαρμογή lins2bot/S2Bot (βλέπε https://blogs.sch.gr/plinetaioa/wedo-linux/).

To Scratch 3 για να συνδεθεί με WeDo, EV3 κ.α. σε Windows και macOS χρησιμοποιεί το scratch-link (https://github.com/LLK/scratch-link).

Ψάχνοντας λύση για Linux + Scratch 3 (και κατ’ επέκταση το Scratux) για το WeDo 2.0, εντόπισα στο GitHub το Pyscrlink (https://github.com/kawasaki/pyscrlink), που όπως λέει ο δημιουργός του:  “Pyscrlink is a Scratch-link for Linux”.  Για την σύνδεση bluetooth χρησιμοποιεί τα PyBluez και bluepy.

Το δοκίμασα στο laptop μου (με Ubuntu MATE 20.04) που υποστηρίζει Bluetooth 4.0 και όπως διαπίστωσα δουλεύει μια χαρά τόσο με το WeDO 2.0 όσο και το EV3 που έχω στη διάθεσή μου. Πειραματιζόμενος κατάφερα να συνδέσω και ένα Raspberry Pi 4 με το EV3, όχι όμως και το WeDo 2.0 (άνοιξα σχετικό issue στο GitHub).

Το BLED112, όπως αναφέρεται από τον δημιουργό, δεν υποστηρίζεται (μάλλον λόγω των ιδιαιτεροτήτων που έχει το συγκεκριμένο USB dongle), όμως λογικά θα δουλέψουν όλα τα υπόλοιπα που υποστηρίζουν Bluetooth 4.0. Προσωπικά έχω παραγγείλει για το εργαστήριο το https://www.skroutz.gr/s/12906349/BT-004.html με λιγότερα από 4 ευρώ, θα ενημερώσω σχετικά μόλις το έχω στα χέρια μου.

Για να δοκιμάσω το Pyscrlink ακολούθησα τις οδηγίες στο GitHub, όπου επιπλέον στο Βήμα 2 του Installation χρειάστηκε να εγκαταστήσω τα πακέτα python3-pip και libglib2.0-dev (το θέλει το bluepy)
Κώδικας: [Επιλογή]
sudo apt-get install python3-pip libglib2.0-dev
Για χρήση του online Scratch 3 με Firefox ή Chrome δώστε προσοχή στο “In Case You Fail to Connect”. Για το Scratux, ξεκινήστε το πρόγραμμα με
Κώδικας: [Επιλογή]
scratux –ignore-certificate-errors
Η εμπειρία μου: στο laptop μου σε Ubuntu και με το συνδυασμό  lins2bot + Scratch 2 χρησιμοποιώντας το  BLED112 είχα πάρα πολλές αποσυνδέσεις και αυτός ήταν ο λόγος που άρχισα να ψάχνω εναλλακτικές. Σε περιβάλλον windows το επίσημο Scratch Link με το Scratch 3 συχνά έτρωγαν φρίκη και αποσυνδέονταν από το hub και χρειαζόταν επανεκκίνηση των windows για να συνέλθουν. Εδώ και μερικές μέρες που χρησιμοποιώ το Pyscrlink  δεν είχα αποσυνδέσεις με το hub, ούτε διαπίστωσα κάποιο πρόβλημα. Δοκιμάστε το και εσείς, προσωπικά πιστεύω ότι είναι το κομμάτι που μου έλειπε από το παζλ.
« Τελευταία τροποποίηση: 27 Ιαν 2021, 07:49:21 μμ από markakis »

ddimakis

  • Θαμώνας
  • ***
  • Μηνύματα: 32
Απ: Επικοινωνία Scratch 3 (Scratux) με LEGO WeDo 2.0 και EV3 στο Linux
« Απάντηση #1 στις: 28 Ιαν 2021, 02:40:11 μμ »
Καλημέρα, πολύ ενδιαφέρον!
Θα ήθελα να ρωτήσω αν έχεις δοκιμάσει να συνδέσεις πάνω από ένα hub.

markakis

  • Working Dead
  • Βετεράνος
  • ****
  • Μηνύματα: 85
Απ: Επικοινωνία Scratch 3 (Scratux) με LEGO WeDo 2.0 και EV3 στο Linux
« Απάντηση #2 στις: 28 Ιαν 2021, 04:50:38 μμ »
Έχω συνδέσει και χειριστεί ταυτόχρονα στο ίδιο πρόγραμμα ένα WeDo 2.0 και ένα EV3. Δύο συσκευές του ίδιου τύπου δεν έχω προσπαθήσει να συνδέσω, θα το δοκιμάσω. Το Scratch3 το υποστηρίζει, πιστεύω ότι θα δουλέψει.

Διόρθωση: Το είχα δει σε Scratch2 με S2bot (βλέπε https://www.youtube.com/watch?v=zH2cT7tV_qA) και είχα την εντύπωση ότι το είχα δει σε Scratch3. Λάθος.
« Τελευταία τροποποίηση: 29 Ιαν 2021, 04:42:01 μμ από markakis »

markakis

  • Working Dead
  • Βετεράνος
  • ****
  • Μηνύματα: 85
Απ: Επικοινωνία Scratch 3 (Scratux) με LEGO WeDo 2.0 και EV3 στο Linux
« Απάντηση #3 στις: 29 Ιαν 2021, 04:43:35 μμ »
Ο περιορισμός φαίνεται να προέρχεται από το Scratch 3: από ό,τι βλέπω η επέκταση (extension) του EV3 εντοπίζει τα δύο διαφορετικά EV3 αλλά σου επιτρέπει να συνδεθείς μόνο στο ένα από αυτά, το ίδιο και η επέκταση του WeDo 2.0 που όταν κάνει αναζήτηση και πατήσεις το κουμπί και στα δύο hub, θα συνδεθεί μόνο σε ένα από αυτά, χωρίς να σου δίνουν δυνατότητα για κάτι άλλο.

Επομένως, αυτό που μπορώ να επιβεβαιώσω είναι η ταυτόχρονη χρήση στο ίδιο πρόγραμμα Scratch 3 ενός EV3 και ενός WeDo 2.0, όχι όμως δύο συσκευών του ίδιου τύπου.
Ενδεχομένως να μπορεί να συνδεθεί ταυτόχρονα και ένα micro:bit και ένα LEGO BOOST, δηλαδή μια συσκευή ανά επέκταση, όμως δεν διαθέτω τέτοιες συσκευές για να δοκιμάσω.

markakis

  • Working Dead
  • Βετεράνος
  • ****
  • Μηνύματα: 85
Απ: Επικοινωνία Scratch 3 (Scratux) με LEGO WeDo 2.0 και EV3 στο Linux
« Απάντηση #4 στις: 05 Φεβ 2021, 09:56:25 πμ »
Επανέρχομαι στο θέμα του USB Bluetooth dongle καθώς ήρθαν στα χέρια μου αυτά που παρήγγειλα και μπόρεσα να τα δοκιμάσω στο εργαστήριο (Ubuntu LTSP 20.04). Οι δοκιμές έγιναν σε δύο (fat) client ταυτόχρονα με καθένα από αυτούς να συνδέεται και να χειρίζεται στο ίδιο πρόγραμμα από ένα WeDo 2.0 και ένα EV3. Έπειτα από δοκιμές μερικών ωρών, δεν διαπίστωσα προβλήματα αποσυνδέσεων.

Το USB dongle που δοκίμασα ήταν το BT-004 (https://www.skroutz.gr/s/12906349/BT-004.html) με τιμή 3,65 ευρώ το ένα, το οποίο περιλαμβάνει activity LED. Διάλεξα το συγκεκριμένο λόγω συνδυασμού τιμής/κριτικών. Δεν ξέρω αν έχει εμβέλεια 20 μέτρα, όπως γράφει η συσκευασία, αλλά στα 5-6 μέτρα μέσα στο εργαστήριο λειτούργησε μια χαρά. Όπως έχω γράψει λογικά θα δουλέψει κάθε Blutooth 4.0, όχι όμως με το BLED112, όπως αναφέρεται στη σελίδα του project και διαπίστωσα και εγώ.

Για εγκατάσταση σε εργαστήριο με LTSP, για να μπορεί να χρησιμοποιηθεί σε server ή client και από όλους τους χρήστες:

Ικανοποίηση εξαρτήσεων:
Κώδικας: [Επιλογή]
sudo apt install bluez libbluetooth-dev libnss3-tools libcap2-bin python3-pip libglib2.0-dev
Εγκατάσταση pyscrlink για όλους τους χρήστες
Κώδικας: [Επιλογή]
sudo pip3 install pyscrlink
Ενεργοποίηση του bluepy-helper για συσκευές Bluetooth Low Energy (BLE):

Κώδικας: [Επιλογή]
sudo /usr/local/bin/bluepy_helper_cap
και έπειτα δημοσίευση εικονικού δίσκου, κατά τα γνωστά


Στο PC που θα γίνει η σύνδεση (server ή client):

Σύνδεση USB dongle και από εκεί εκτέλεση σε τερματικό, για να βλέπουμε και τυχόν μηνύματα. Σε LTSP client μπορεί να γίνει και από τον Επόπτη στο Server με Εκτέλεση -> Άνοιγμα κονσόλας -> Χρήστη, τοπικά:

Κώδικας: [Επιλογή]
/usr/local/bin/scratch_link
Εκκίνηση Scratux με:

Κώδικας: [Επιλογή]
scratux --ignore-certificate-errors
Στο πρόγραμμά μας επιλέγουμε την επέκταση (π.χ. LEGO Education WeDo 2.0 ή LEGO MINDSTORMS EV3) για την σύνδεση της αντίστοιχης συσκευής και ακολουθούμε τις οδηγίες της.

Για το EV3: την πρώτη φορά που θα συνδέσουμε ένα EV3 σε PC, να γίνει πρώτα σύζευξη μέσα από το Blueman (εικονίδιο στην γραμμή εργασιών) ώστε να οριστεί ως έμπιστη συσκευή και να δοθεί και ο κωδικός για τη σύζευξη.
« Τελευταία τροποποίηση: 29 Μαρ 2021, 10:37:22 πμ από markakis »