Γενικά > Linux

Επικοινωνία Scratch 3 (Scratux) με LEGO WeDo 2.0 και EV3 στο Linux

(1/2) > >>

markakis:
Στο δικτυακό τόπο του 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, ούτε διαπίστωσα κάποιο πρόβλημα. Δοκιμάστε το και εσείς, προσωπικά πιστεύω ότι είναι το κομμάτι που μου έλειπε από το παζλ.

ddimakis:
Καλημέρα, πολύ ενδιαφέρον!
Θα ήθελα να ρωτήσω αν έχεις δοκιμάσει να συνδέσεις πάνω από ένα hub.

markakis:
Έχω συνδέσει και χειριστεί ταυτόχρονα στο ίδιο πρόγραμμα ένα WeDo 2.0 και ένα EV3. Δύο συσκευές του ίδιου τύπου δεν έχω προσπαθήσει να συνδέσω, θα το δοκιμάσω. Το Scratch3 το υποστηρίζει, πιστεύω ότι θα δουλέψει.

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

markakis:
Ο περιορισμός φαίνεται να προέρχεται από το Scratch 3: από ό,τι βλέπω η επέκταση (extension) του EV3 εντοπίζει τα δύο διαφορετικά EV3 αλλά σου επιτρέπει να συνδεθείς μόνο στο ένα από αυτά, το ίδιο και η επέκταση του WeDo 2.0 που όταν κάνει αναζήτηση και πατήσεις το κουμπί και στα δύο hub, θα συνδεθεί μόνο σε ένα από αυτά, χωρίς να σου δίνουν δυνατότητα για κάτι άλλο.

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

markakis:
Επανέρχομαι στο θέμα του 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 (εικονίδιο στην γραμμή εργασιών) ώστε να οριστεί ως έμπιστη συσκευή και να δοθεί και ο κωδικός για τη σύζευξη.

Πλοήγηση

[0] Λίστα μηνυμάτων

[#] Επόμενη σελίδα

Μετάβαση στην πλήρη έκδοση