Μπλοκ EV3: μενού, αισθητήρες προβολής, προγραμματισμός. LEGO Mindstorms Education EV3 - Αναθεώρηση κατασκευαστή. Διαβάστε τα τελευταία νέα από τον κόσμο του Lego – EduCube Lego mindstorms ev3 μπλοκ περιγραφή ήχου

Περιγραφή της παρουσίασης σε μεμονωμένες διαφάνειες:

1 διαφάνεια

Περιγραφή της διαφάνειας:

2 διαφάνεια

Περιγραφή της διαφάνειας:

Η διεπαφή EV3 Brick Το EV3 Brick είναι το κέντρο ελέγχου που τροφοδοτεί τα ρομπότ σας. Με μια οθόνη, κουμπιά ελέγχου Brick και τη διεπαφή EV3 Brick που διαθέτει τέσσερα κύρια παράθυρα, έχετε πρόσβαση σε μια εκπληκτική ποικιλία μοναδικών χαρακτηριστικών EV3 Brick. Αυτές μπορεί να είναι απλές λειτουργίες, όπως η εκκίνηση και η διακοπή ενός προγράμματος ή πολύπλοκες, όπως η σύνταξη του ίδιου του προγράμματος.

3 διαφάνεια

Περιγραφή της διαφάνειας:

Διασύνδεση: Μενού Το EV3 έχει ένα μενού που αποτελείται από 4 μέρη: Πρόσφατα προγράμματα Πλοήγηση αρχείων Τούβλο Εφαρμογές Ρυθμίσεις τούβλου

4 διαφάνεια

Περιγραφή της διαφάνειας:

Πρόσφατα προγράμματα Εκκινήστε προγράμματα που έχετε λάβει πρόσφατα από τον επιτραπέζιο υπολογιστή σας. Αυτό το παράθυρο θα παραμείνει κενό μέχρι να ξεκινήσετε τη λήψη και την εκτέλεση προγραμμάτων. Αυτό το παράθυρο θα εμφανίσει τα προγράμματα που ξεκινήσατε πρόσφατα. Το πρόγραμμα στην κορυφή της λίστας, το οποίο επιλέγεται από προεπιλογή, είναι το πρόγραμμα που εκκινήθηκε τελευταία φορά.

5 διαφάνεια

Περιγραφή της διαφάνειας:

File Manager Πρόσβαση και διαχείριση όλων των αρχείων που είναι αποθηκευμένα στη μνήμη του μικροϋπολογιστή καθώς και στην κάρτα μνήμης. Από αυτό το παράθυρο, θα έχετε πρόσβαση και θα διαχειρίζεστε όλα τα αρχεία στο EV3 Brick, συμπεριλαμβανομένων των αρχείων που είναι αποθηκευμένα στην κάρτα SD. Τα αρχεία είναι οργανωμένα σε φακέλους έργων, οι οποίοι, εκτός από τα πραγματικά αρχεία προγράμματος, περιέχουν και τους ήχους και τις εικόνες που χρησιμοποιούνται σε κάθε έργο. Τα αρχεία μπορούν να μετακινηθούν ή να διαγραφούν χρησιμοποιώντας το πρόγραμμα πλοήγησης αρχείων. Τα προγράμματα που δημιουργούνται χρησιμοποιώντας το περιβάλλον προγραμματισμού λειτουργικών μονάδων και τις εφαρμογές καταγραφής δεδομένων λειτουργιών αποθηκεύονται χωριστά στους φακέλους BrkProg_SAVE και BrkDL_SAVE.

6 διαφάνεια

Περιγραφή της διαφάνειας:

Το EV3 Control Brick Applications έχει 4 προεγκατεστημένες εφαρμογές: A. Port View. Β. Έλεγχος κινητήρα. Β. Έλεγχος υπερύθρων. Δ. Περιβάλλον προγραμματισμού ενοτήτων.

7 διαφάνεια

Περιγραφή της διαφάνειας:

A. Port View Στο πρώτο παράθυρο της εφαρμογής Port View, μπορείτε να δείτε γρήγορα ποιες θύρες είναι συνδεδεμένες με αισθητήρες ή κινητήρες. Χρησιμοποιήστε τα κουμπιά EV3 Brick Control για να πλοηγηθείτε σε μία από τις απασχολημένες θύρες και θα δείτε τις τρέχουσες ενδείξεις από τον αισθητήρα ή τον κινητήρα. Εγκαταστήστε μερικούς αισθητήρες και κινητήρες και πειραματιστείτε με διαφορετικές ρυθμίσεις. Για να δείτε ή να αλλάξετε τις τρέχουσες ρυθμίσεις για εγκατεστημένους κινητήρες και αισθητήρες, πατήστε το κεντρικό κουμπί. Για να επιστρέψετε στο κύριο παράθυρο εφαρμογής της μονάδας, κάντε κλικ στο κουμπί "Πίσω".

8 διαφάνεια

Περιγραφή της διαφάνειας:

B. Έλεγχος κινητήρα Ελέγξτε την κίνηση προς τα εμπρός ή προς τα πίσω οποιουδήποτε κινητήρα που είναι συνδεδεμένος σε μία από τις τέσσερις θύρες εξόδου. Υπάρχουν δύο διαφορετικοί τρόποι λειτουργίας. Σε μία λειτουργία, θα μπορείτε να ελέγχετε τους κινητήρες που είναι συνδεδεμένοι στη θύρα A (χρησιμοποιώντας τα κουμπιά πάνω και κάτω) και στη θύρα D (χρησιμοποιώντας το αριστερό και το δεξί κουμπί). Στην άλλη λειτουργία, ελέγχετε τους κινητήρες που είναι συνδεδεμένοι στη Θύρα Β (χρησιμοποιώντας τα κουμπιά Επάνω και Κάτω) και τη Θύρα C (χρησιμοποιώντας τα κουμπιά Αριστερά και Δεξιά). Η εναλλαγή μεταξύ αυτών των δύο λειτουργιών πραγματοποιείται χρησιμοποιώντας το κεντρικό κουμπί. Για να επιστρέψετε στο κύριο παράθυρο εφαρμογής της μονάδας, κάντε κλικ στο κουμπί "Πίσω".

9 διαφάνεια

Περιγραφή της διαφάνειας:

Έλεγχος υπερύθρων Ελέγχετε την κίνηση προς τα εμπρός ή προς τα πίσω οποιουδήποτε κινητήρα που είναι συνδεδεμένος σε μία από τις τέσσερις θύρες εξόδου χρησιμοποιώντας το τηλεχειριστήριο υπερύθρων ως τηλεχειριστήριο και τον αισθητήρα υπερύθρων ως δέκτη (ο αισθητήρας υπερύθρων πρέπει να συνδεθεί στη Θύρα 4 του EV3 Brick) . Υπάρχουν δύο διαφορετικοί τρόποι λειτουργίας. Σε μία λειτουργία, θα χρησιμοποιήσετε τα κανάλια 1 και 2 στον απομακρυσμένο υπέρυθρο φάρο. Στο κανάλι 1, θα μπορείτε να ελέγχετε τους κινητήρες που είναι συνδεδεμένοι στη θύρα Β (χρησιμοποιώντας τα κουμπιά 1 και 2 στο τηλεχειριστήριο υπέρυθρων φάρων) και τη θύρα C (χρησιμοποιώντας τα κουμπιά 3 και 4 στο τηλεχειριστήριο υπερύθρων). Στο κανάλι 2, θα μπορείτε να ελέγχετε τους κινητήρες που είναι συνδεδεμένοι στη θύρα A (χρησιμοποιώντας τα κουμπιά 1 και 2) και στη θύρα D (χρησιμοποιώντας τα κουμπιά 3 και 4). Στην άλλη λειτουργία, μπορείτε να ελέγξετε τους κινητήρες με τον ίδιο τρόπο, χρησιμοποιώντας τα κανάλια 3 και 4 στον απομακρυσμένο υπέρυθρο φάρο. Η εναλλαγή μεταξύ αυτών των δύο λειτουργιών πραγματοποιείται χρησιμοποιώντας το κεντρικό κουμπί. Για να επιστρέψετε στο κύριο παράθυρο εφαρμογής της μονάδας, κάντε κλικ στο κουμπί "Πίσω".

10 διαφάνεια

Περιγραφή της διαφάνειας:

Περιβάλλον προγραμματισμού Brick Το EV3 Brick συνοδεύεται από λογισμικό εγκατεστημένο σε αυτό. Η εφαρμογή είναι παρόμοια με το λογισμικό που είναι εγκατεστημένο στον υπολογιστή σας. Αυτές οι οδηγίες περιέχουν τις βασικές πληροφορίες που χρειάζεστε για να ξεκινήσετε.

11 διαφάνεια

Περιγραφή της διαφάνειας:

Ρυθμίσεις EV3 Brick Αυτό το παράθυρο σάς επιτρέπει να προβάλετε και να προσαρμόσετε διάφορες γενικές ρυθμίσεις στο EV3 Brick.

12 διαφάνεια

Περιγραφή της διαφάνειας:

Προσαρμογή της Έντασης Μπορείτε να αυξήσετε και να μειώσετε την Ένταση στην καρτέλα Ρυθμίσεις στο EV3.

13 διαφάνεια

Παραδοσιακά, τα ρομπότ κατασκευάζονται σε μια πλατφόρμα Lego Mindstorms EV3, προγραμματίζονται χρησιμοποιώντας το γραφικό περιβάλλον LabVIEW. Σε αυτήν την περίπτωση, τα προγράμματα εκτελούνται στον ελεγκτή EV3 και το ρομπότ λειτουργεί αυτόνομα. Εδώ θα μιλήσω για έναν εναλλακτικό τρόπο ελέγχου του ρομπότ - χρησιμοποιώντας την πλατφόρμα .NET που τρέχει στον υπολογιστή.

Αλλά προτού προχωρήσουμε απευθείας στον προγραμματισμό, ας δούμε περιπτώσεις όπου αυτό μπορεί να είναι χρήσιμο:

  • Απαιτεί τηλεχειρισμό του ρομπότ από φορητό υπολογιστή (για παράδειγμα, πατώντας κουμπιά)
  • Ανάγκη συλλογής δεδομένων από τον ελεγκτή EV3 και επεξεργασίας τους σε εξωτερικό σύστημα (για παράδειγμα, για συστήματα IoT)
  • Οποιαδήποτε άλλη περίπτωση θέλετε να γράψετε έναν αλγόριθμο ελέγχου στο .NET και να τον εκτελέσετε από έναν υπολογιστή συνδεδεμένο στον ελεγκτή EV3

LEGO MINDSTORMS EV3 API για .NET

Ο ελεγκτής EV3 ελέγχεται από εξωτερικό σύστημα στέλνοντας εντολές στη σειριακή θύρα. Η ίδια η μορφή εντολής περιγράφεται στο Communication Developer Kit.

Αλλά η εφαρμογή αυτού του πρωτοκόλλου με το χέρι είναι βαρετή. Επομένως, μπορείτε να χρησιμοποιήσετε το έτοιμο περιτύλιγμα .NET, το οποίο γράφτηκε προσεκτικά από τον Brian Peek. Ο πηγαίος κώδικας αυτής της βιβλιοθήκης φιλοξενείται στο Github και το έτοιμο προς χρήση πακέτο βρίσκεται στο Nuget.

Σύνδεση με τον ελεγκτή EV3

Η κλάση Brick χρησιμοποιείται για την επικοινωνία με τον ελεγκτή EV3. Κατά τη δημιουργία αυτού του αντικειμένου, ο κατασκευαστής πρέπει να περάσει μια υλοποίηση της διεπαφής ICCommunication, ένα αντικείμενο που περιγράφει τον τρόπο σύνδεσης με τον ελεγκτή EV3. Διατίθενται εφαρμογές UsbCommunication , BluetoothCommunication και NetworkCommunication (σύνδεση μέσω WiFi).

Η πιο δημοφιλής μέθοδος σύνδεσης είναι μέσω Bluetooth. Ας ρίξουμε μια πιο προσεκτική ματιά σε αυτήν τη μέθοδο σύνδεσης.

Για να μπορέσουμε να συνδεθούμε μέσω προγραμματισμού στο χειριστήριο μέσω Bluetooth, το χειριστήριο πρέπει να συνδεθεί στον υπολογιστή χρησιμοποιώντας τις ρυθμίσεις του λειτουργικού συστήματος.

Αφού συνδεθεί το χειριστήριο, μεταβείτε στις ρυθμίσεις Bluetooth και επιλέξτε την καρτέλα θύρες COM. Βρίσκουμε τον ελεγκτή μας, χρειαζόμαστε εξερχόμενοςΛιμάνι. Θα το καθορίσουμε κατά τη δημιουργία του αντικειμένου BluetoothCommunication.

Ο κωδικός για τη σύνδεση με τον ελεγκτή θα μοιάζει με αυτό:

Δημόσια ασύγχρονη Task Connect (επικοινωνία ICommunication) ( var επικοινωνία = νέα BluetoothCommunication("COM9"); var brick = _brick = new Brick(communication); await _brick.ConnectAsync(); )

Προαιρετικά, μπορείτε να καθορίσετε ένα χρονικό όριο σύνδεσης στον ελεγκτή:

Await_brick.ConnectAsync(TimeSpan.FromSeconds(5));

Η σύνδεση στη μονάδα μέσω USB ή WiFi είναι παρόμοια, εκτός από το ότι χρησιμοποιούνται τα αντικείμενα UsbCommunication και NetworkCommunication.

Όλες οι περαιτέρω ενέργειες που εκτελούνται με τον ελεγκτή εκτελούνται μέσω του αντικειμένου Brick.

Ας γυρίσουμε τους κινητήρες

Για να εκτελέσουμε εντολές στον ελεγκτή EV3, ας αποκτήσουμε πρόσβαση στην ιδιότητα DirectCommand του αντικειμένου Brick. Αρχικά, ας προσπαθήσουμε να ξεκινήσουμε τους κινητήρες.

Ας υποθέσουμε ότι ο κινητήρας μας είναι συνδεδεμένος στη θύρα Α του ελεγκτή, τότε η λειτουργία αυτού του κινητήρα με ισχύ 50% θα μοιάζει με αυτό:

Await _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50);

Υπάρχουν άλλες μέθοδοι ελέγχου του κινητήρα. Για παράδειγμα, μπορείτε να περιστρέψετε έναν κινητήρα σε μια δεδομένη γωνία χρησιμοποιώντας τις μεθόδους StepMotorAtPowerAsync() και StepMotorAtSpeedAsync(). Συνολικά, διατίθενται διάφορες μέθοδοι, οι οποίες είναι παραλλαγές στους τρόπους ενεργοποίησης των κινητήρων - κατά χρόνο, ταχύτητα, ισχύ κ.λπ.

Μια αναγκαστική διακοπή εκτελείται με τη μέθοδο StopMotorAsync():

Await _brick.DirectCommand.StopMotorAsync(OutputPort.A, true);

Η δεύτερη παράμετρος υποδεικνύει τη χρήση του φρένου. Εάν έχει ρυθμιστεί σε false, τότε ο κινητήρας θα σταματήσει.

Ανάγνωση τιμών από αισθητήρες

Το χειριστήριο EV3 έχει τέσσερις θύρες αισθητήρα. Εκτός από αυτό, οι κινητήρες διαθέτουν επίσης ενσωματωμένους κωδικοποιητές, που τους επιτρέπει να χρησιμοποιούνται ως αισθητήρες. Ως αποτέλεσμα, έχουμε 8 θύρες από τις οποίες μπορούν να διαβαστούν οι τιμές.

Οι θύρες για την ανάγνωση τιμών είναι προσβάσιμες μέσω της ιδιότητας Ports του αντικειμένου Brick. Οι θύρες είναι μια συλλογή θυρών που είναι διαθέσιμες στον ελεγκτή. Επομένως, για να εργαστείτε με μια συγκεκριμένη θύρα, πρέπει να την επιλέξετε. InputPort.One ... InputPort.Four είναι οι θύρες αισθητήρα και InputPort.A ... InputPort.D είναι οι κωδικοποιητές κινητήρα.

Var port1 = _brick.Ports;

Οι αισθητήρες στο EV3 μπορούν να λειτουργήσουν σε διαφορετικούς τρόπους λειτουργίας. Για παράδειγμα, ο αισθητήρας χρώματος EV3 μπορεί να χρησιμοποιηθεί για τη μέτρηση του φωτός περιβάλλοντος, τη μέτρηση του ανακλώμενου φωτός ή την ανίχνευση χρώματος. Επομένως, για να «πούμε» στον αισθητήρα πώς ακριβώς θέλουμε να τον χρησιμοποιήσουμε, πρέπει να ρυθμίσουμε τη λειτουργία του:

Brick.Ports.SetMode(ColorMode.Reflective);

Τώρα που ο αισθητήρας είναι συνδεδεμένος και έχει ρυθμιστεί ο τρόπος λειτουργίας του, μπορείτε να διαβάσετε δεδομένα από αυτόν. Μπορείτε να λάβετε ακατέργαστα δεδομένα, επεξεργασμένη αξία και ποσοστιαία αξία.

Float si = _brick.Ports.SIValue; int raw = _brick.Ports.RawValue; % byte = _brick.Ports.PercentValue;

Η ιδιότητα SIValue επιστρέφει τα επεξεργασμένα δεδομένα. Όλα εξαρτώνται από τον αισθητήρα που χρησιμοποιείται και σε ποια λειτουργία. Για παράδειγμα, κατά τη μέτρηση του ανακλώμενου φωτός, θα λάβουμε τιμές από 0 έως 100 ανάλογα με την ένταση του ανακλώμενου φωτός (μαύρο/άσπρο).

Η ιδιότητα RawValue επιστρέφει την πρωτογενή τιμή που λαμβάνεται από το ADC. Μερικές φορές είναι πιο βολικό να το χρησιμοποιήσετε για περαιτέρω επεξεργασία και χρήση. Παρεμπιπτόντως, το EV3 IDE έχει επίσης τη δυνατότητα να λαμβάνει "ακατέργαστες" τιμές - γι 'αυτό πρέπει να χρησιμοποιήσετε το μπλοκ από τον μπλε πίνακα.

Εάν ο μετρητής που χρησιμοποιείται αναμένει να λάβει τιμές ως ποσοστό, τότε μπορείτε επίσης να χρησιμοποιήσετε την ιδιότητα PercentValue.

Εκτέλεση εντολών κατά παρτίδες

Ας υποθέσουμε ότι έχουμε στη διάθεσή μας ένα καροτσάκι ρομπότ με δύο τροχούς και θέλουμε να το αναπτύξουμε επί τόπου. Σε αυτή την περίπτωση, οι δύο τροχοί πρέπει να περιστρέφονται προς την αντίθετη κατεύθυνση. Εάν χρησιμοποιήσουμε το DirectCommand και στείλουμε δύο εντολές διαδοχικά στον ελεγκτή, μπορεί να μείνει λίγος χρόνος μεταξύ της εκτέλεσής τους:

Await _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50); await _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, -50);

Σε αυτό το παράδειγμα, στέλνουμε μια εντολή για να περιστρέψουμε τον κινητήρα Α με ταχύτητα 50, αφού στείλουμε με επιτυχία αυτήν την εντολή, επαναλαμβάνουμε το ίδιο με τον κινητήρα που είναι συνδεδεμένος στη θύρα Β. Το πρόβλημα είναι ότι η αποστολή εντολών δεν είναι στιγμιαία, επομένως οι κινητήρες μπορούν να αρχίσουν να περιστρέφονται σε διαφορετικούς χρόνους - ενώ η εντολή μεταδίδεται για τη θύρα Β, κινητήρα Α ήδηθα αρχίσει να περιστρέφεται.

Εάν είναι κρίσιμο για εμάς να κάνουμε τους κινητήρες να περιστρέφονται ταυτόχρονα, μπορούμε να στείλουμε εντολές στον ελεγκτή σε ένα "πακέτο". Σε αυτήν την περίπτωση, θα πρέπει να χρησιμοποιήσετε την ιδιότητα BatchCommand αντί για το DirectCommand:

Brick.BatchCommand.TurnMotorAtPower(OutputPort.A, 50); _brick.BatchCommand.TurnMotorAtPower(OutputPort.B, -50); await _brick.BatchCommand.SendCommandAsync();

Τώρα προετοιμάζονται δύο εντολές ταυτόχρονα, μετά τις οποίες αποστέλλονται στον ελεγκτή σε ένα πακέτο. Ο ελεγκτής, έχοντας λάβει αυτές τις εντολές, θα ξεκινήσει την περιστροφή των κινητήρων ταυτόχρονα.

Τι άλλο μπορεί να γίνει

Εκτός από τους περιστρεφόμενους κινητήρες και την ανάγνωση των τιμών των αισθητήρων, υπάρχουν πολλές άλλες ενέργειες που μπορείτε να εκτελέσετε στον ελεγκτή EV3. Δεν θα σταθώ σε καθένα από αυτά λεπτομερώς, θα απαριθμήσω μόνο μια λίστα με το τι μπορεί να γίνει:

  • CleanUIAsync() , DrawTextAsync() , DrawLineAsync() κ.λπ. - χειρισμός της ενσωματωμένης οθόνης του ελεγκτή EV3
  • PlayToneAsync() και PlaySoundAsync() - χρήση του ενσωματωμένου ηχείου για αναπαραγωγή ήχων
  • WriteFileAsync() , CopyFileAsync() , DeleteFileAsync() (από SystemCommand) - εργασία με αρχεία

συμπέρασμα

Η χρήση του .NET για τον έλεγχο των ρομπότ Mindstorms EV3 είναι μια καλή απόδειξη του πώς μπορούν να συνεργαστούν τεχνολογίες από διαφορετικούς κόσμους. Ως αποτέλεσμα της έρευνας για το EV3 API για .NET, δημιουργήθηκε μια μικρή εφαρμογή που σας επιτρέπει να ελέγχετε το ρομπότ EV3 από τον υπολογιστή σας. Δυστυχώς, παρόμοιες εφαρμογές υπάρχουν και για το NXT, αλλά παρέκαμψαν το EV3. Ταυτόχρονα, είναι χρήσιμα σε αγώνες ελεγχόμενων ρομπότ, όπως το ποδόσφαιρο ρομπότ.

Μπορείτε να κατεβάσετε και να εγκαταστήσετε την εφαρμογή από αυτόν τον σύνδεσμο:

Επιλέξτε λειτουργία οθόνης

Επιλογή τρόπου λειτουργίας
Αποκλεισμός πλαισίου κειμένου
Εισροές
Κουμπί προεπισκόπησης

Επιλέξτε τον τύπο κειμένου ή γραφικών που θέλετε να δείτε χρησιμοποιώντας τον επιλογέα λειτουργίας. Αφού επιλέξετε τη λειτουργία, μπορείτε να επιλέξετε τις τιμές των εισόδων. Οι διαθέσιμες είσοδοι θα διαφέρουν ανάλογα με τη λειτουργία. Οι τρόποι λειτουργίας και οι είσοδοι περιγράφονται παρακάτω.

Μπορείτε να κάνετε κλικ στο κουμπί "Προεπισκόπηση" για να δείτε τι θα εμφανίσει το μπλοκ "Οθόνη" στην οθόνη του EV3. Μπορείτε να αφήσετε ανοιχτή την προβολή ενώ επιλέγετε τις τιμές εισαγωγής για το μπλοκ.

Συντεταγμένες οθόνης

Πολλές από τις λειτουργίες μπλοκ οθόνης χρησιμοποιούν συντεταγμένες X και Y για να καθορίσουν τη θέση ενός στοιχείου. Οι συντεταγμένες καθορίζουν τη θέση των pixel στην οθόνη EV3 Brick. Η θέση (0, 0) βρίσκεται στην επάνω αριστερή γωνία της οθόνης, όπως φαίνεται στο παρακάτω σχήμα.

Διαστάσεις οθόνης: 178 pixel πλάτος επί 128 pixel ύψος. Το εύρος τιμών συντεταγμένων X είναι από 0 στα αριστερά της οθόνης έως 177 στα δεξιά. Το εύρος τιμών συντεταγμένων Y είναι από 0 στην κορυφή έως 127 στο κάτω μέρος.

ΣΥΜΒΟΥΛΕΣ

Μπορείτε να χρησιμοποιήσετε το κουμπί Προεπισκόπηση στην επάνω αριστερή γωνία του μπλοκ οθόνης για να σας βοηθήσει να βρείτε τις σωστές συντεταγμένες οθόνης.

Κείμενο - Pixel

Η λειτουργία Text - Pixels σάς επιτρέπει να εμφανίζετε κείμενο οπουδήποτε στην οθόνη EV3 Brick.

Παράθυρο επαναφοράς

Η λειτουργία Reset Window επιστρέφει την οθόνη EV3 Brick στην τυπική οθόνη πληροφοριών που εμφανίζεται ενώ εκτελείται το πρόγραμμα. Αυτή η οθόνη εμφανίζει το όνομα του προγράμματος και άλλες πληροφορίες ανατροφοδότησης. Όταν εκτελείτε ένα πρόγραμμα στο EV3 Brick, αυτή η οθόνη εμφανίζεται μέχρι να εκτελεστεί το πρώτο μπλοκ οθόνης του προγράμματος.

Διασφάλιση της ορατότητας των εμφανιζόμενων στοιχείων

Όταν τελειώσει το Πρόγραμμα EV3, η οθόνη EV3 Brick διαγράφεται και επιστρέφει στην οθόνη του Μενού EV3 Brick. Οποιοδήποτε κείμενο ή γραφικά εμφανίζονται από το πρόγραμμα θα διαγραφούν. Εάν, για παράδειγμα, το πρόγραμμά σας έχει ένα μπλοκ "Οθόνη" και τίποτα άλλο, τότε η οθόνη θα διαγραφεί τόσο γρήγορα αμέσως μετά το τέλος του προγράμματος που δεν θα δείτε τα αποτελέσματα του μπλοκ "Οθόνη".

Εάν θέλετε η οθόνη να συνεχίσει μετά το τέλος του προγράμματος, πρέπει να προσθέσετε ένα μπλοκ στο τέλος του προγράμματος για να αποτρέψετε την άμεση λήξη του προγράμματος, όπως φαίνεται στα ακόλουθα παραδείγματα.

Εμφάνιση πολλών στοιχείων

Εάν θέλετε να εμφανίσετε πολλά στοιχεία κειμένου ή γραφικών στην οθόνη ταυτόχρονα, είναι σημαντικό να μην καθαρίσετε την οθόνη EV3 Brick μεταξύ των στοιχείων. Κάθε λειτουργία του μπλοκ Screen έχει μια είσοδο Clear Screen. Εάν το Clear Screen είναι αληθές, ολόκληρη η οθόνη θα διαγραφεί πριν εμφανιστεί το στοιχείο. Αυτό σημαίνει ότι για να εμφανίσετε πολλά στοιχεία, πρέπει να ορίσετε το Clear Screen σε False για κάθε block Screen εκτός από το πρώτο.

Εμφάνιση αριθμού

Για να εμφανίσετε μια αριθμητική τιμή στο πρόγραμμά σας, συνδέστε το δίαυλο δεδομένων στην είσοδο κειμένου του μπλοκ Εμφάνιση κειμένου. Ο δίαυλος αριθμητικών δεδομένων θα μετατραπεί αυτόματα σε κείμενο χρησιμοποιώντας τη μετατροπή τύπου διαύλου δεδομένων (για περισσότερες πληροφορίες, βλ.

Η ιδέα της αντικατάστασης του μικροϋπολογιστή στον κατασκευαστή με Beaglebone ή κάτι άλλο δεν είναι νέα. Αλλά με την κυκλοφορία του EV3, κατέστη δυνατό όχι μόνο να αποκτήσετε ένα 100% αναλογικό, αλλά και να αυξήσετε την απόδοση του Lerobot σας.

Βίντεο παρουσίασης του έργου:

Το E VB υποστηρίζει πλήρως το σύστημα Lego Mindstorms Ev3 τόσο σε υλικό όσο και σε λογισμικό και είναι 100% συμβατό με όλους τους αισθητήρες και τους κινητήρες Lego. Το μπλοκ λειτουργεί ακριβώς όπως το μπλοκ Lego Mindstorms EV3:

Beaglebone Μαύροέναν υπολογιστή Linux με μία πλακέτα.Είναι ανταγωνιστής του Raspberry Pi. Διαθέτει ισχυρό επεξεργαστή AM335x 720MHz ARM®, μεγάλο ο αριθμός των εισόδων / εξόδων, οι δυνατότητες μπορούν να επεκταθούν με πρόσθετες πλακέτες.

Το Lego Mindstorms EV3 διαθέτει επεξεργαστή ARM9 (TI Sitara AM180x) 300 MHz, επομένως, μεταβαίνοντας σε επεξεργαστή ARM Cortex-A8 (TI Sitara AM335x) 1GHz BeagleBone Black βελτιώνει την παραγωγικότητα, καθώς καθίσταται δυνατή η σύνδεση πρόσθετων καρτών επέκτασης!

Το πιο σημαντικό, το Lego Mindstorms EV3 έχει μια ανοιχτή περιγραφή όλου του λογισμικού και του υλικού!

Για παράδειγμα, συναρμολογήθηκε και επιδείχθηκε το γνωστό ρομπότ Rubik's Cube. Μόνο αντί για EV3 εγκατέστησαν το ανεπτυγμένο EVB. Σας προτείνουμε να δείτε το βίντεο:

Οι συντάκτες του έργου ήδη κυκλοφορούν και πωλούν το EVB. Σκοπεύουν να επεκτείνουν σημαντικά την παραγωγή μέχρι το τέλος Απριλίου 2015. Επιπλέον, έχουν αναπτύξει και παράγουν αρκετούς συμβατούς αισθητήρες.

Εάν, όπως εμείς, δεν έχετε τις δυνατότητες των τυπικών αισθητήρων EV3, οι 4 θύρες αισθητήρων στα ρομπότ σας δεν είναι αρκετές ή θέλετε να συνδέσετε μερικά εξωτικά περιφερειακά στο ρομπότ σας, αυτό το άρθρο είναι για εσάς. Πιστέψτε με, ένας σπιτικός αισθητήρας για το EV3 είναι πιο εύκολος από ό,τι φαίνεται. Ένα "πόμολο έντασης" από ένα παλιό ραδιόφωνο ή μερικά καρφιά κολλημένα στο έδαφος σε μια γλάστρα ως αισθητήρας υγρασίας εδάφους είναι εξαιρετικά για πειραματισμούς.

Παραδόξως, κάθε θύρα αισθητήρα EV3 κρύβει μια σειρά από διαφορετικά πρωτόκολλα, κυρίως για συμβατότητα με αισθητήρες NXT και αισθητήρες τρίτων κατασκευαστών. Ας ρίξουμε μια ματιά στο πώς λειτουργεί το καλώδιο EV3


Περίεργο, αλλά το κόκκινο καλώδιο είναι γείωση (GND), το πράσινο είναι 4,3V power plus. Το μπλε καλώδιο είναι και SDA για το δίαυλο I2C και TX για το πρωτόκολλο UART. Επιπλέον, το μπλε καλώδιο είναι η είσοδος του μετατροπέα A/D για το EV3. Το κίτρινο καλώδιο είναι και SCL για το δίαυλο I2C και RX για το πρωτόκολλο UART. Λευκό καλώδιο - Είσοδος μετατροπέα A/D για αισθητήρες NXT. Το μαύρο είναι μια ψηφιακή είσοδος, για αισθητήρες συμβατούς με NXT - αντιγράφει το GND. Δεν είναι εύκολο, σωστά; Πάμε με τη σειρά.

Αναλογική είσοδος EV3

Κάθε θύρα αισθητήρα έχει ένα κανάλι μετατροπέα A/D. Χρησιμοποιείται για αισθητήρες όπως αισθητήρας αφής (κουμπί), αισθητήρα φωτός NXT και αισθητήρα χρώματος σε λειτουργία ανακλώμενου φωτός και φωτός περιβάλλοντος, αισθητήρα ήχου NXT και θερμόμετρο NXT.

Η αντίσταση 910 ohm που συνδέεται όπως φαίνεται στο διάγραμμα λέει στον ελεγκτή ότι αυτή η θύρα πρέπει να αλλάξει σε λειτουργία αναλογικής εισόδου. Σε αυτήν τη λειτουργία, οποιοσδήποτε αναλογικός αισθητήρας μπορεί να συνδεθεί στο EV3, για παράδειγμα, από το Arduino. Η συναλλαγματική ισοτιμία με έναν τέτοιο αισθητήρα μπορεί να φτάσει αρκετές χιλιάδες δημοσκοπήσεις ανά δευτερόλεπτο, αυτός είναι ο ταχύτερος τύπος αισθητήρων.

Φωτοανιχνευτής

Θερμόμετρο

Αισθητήρας υγρασίας εδάφους

Μπορείτε επίσης να συνδέσετε: ένα μικρόφωνο, ένα κουμπί, έναν αποστασιόμετρο υπερύθρων και πολλούς άλλους κοινούς αισθητήρες. Εάν ο αισθητήρας δεν έχει αρκετή ισχύ 4,3 V, μπορείτε να τον τροφοδοτήσετε με 5 V από τη θύρα USB που βρίσκεται στο πλάι του ελεγκτή EV3.

Το "κουμπί έντασης" που αναφέρεται παραπάνω (γνωστός και ως μεταβλητή αντίσταση ή ποτενσιόμετρο) είναι ένα εξαιρετικό παράδειγμα αναλογικού αισθητήρα - μπορείτε να το συνδέσετε ως εξής:

Για να διαβάσετε τιμές από έναν τέτοιο αισθητήρα στο τυπικό περιβάλλον προγραμματισμού LEGO, πρέπει να χρησιμοποιήσετε το μπλε μπλοκ RAW

Πρωτόκολλο I2C

Αυτό είναι ένα ψηφιακό πρωτόκολλο, για παράδειγμα, ο αισθητήρας υπερήχων NXT, πολλοί αισθητήρες Hitechnic, όπως το IR Seeker ή το Color Sensor V2, δουλεύουν σε αυτό. Για άλλες πλατφόρμες, για παράδειγμα, για το Arduino, υπάρχουν πολλοί αισθητήρες i2c, μπορείτε επίσης να τους συνδέσετε. Το σχέδιο έχει ως εξής:

Η αντίσταση των 82 ohms συνιστάται από την ομάδα LEGO, αλλά υπάρχουν αναφορές σε 43 ohms ή λιγότερο σε διάφορες πηγές. Στην πραγματικότητα, προσπαθήσαμε να εγκαταλείψουμε εντελώς αυτές τις αντιστάσεις και όλα λειτουργούν, τουλάχιστον «στο τραπέζι». Σε ένα πραγματικό ρομπότ που λειτουργεί σε συνθήκες διαφόρων ειδών παρεμβολών, οι γραμμές SCL και SDA θα πρέπει να συνδέονται με την τροφοδοσία μέσω αντιστάσεων, όπως φαίνεται στο παραπάνω διάγραμμα. Η ταχύτητα του i2c στο EV3 είναι αρκετά χαμηλή, περίπου 10000 kbps, γι' αυτό και ο αγαπημένος σε όλους Hitechnic Color Sensor V2 είναι τόσο αργός :)

Δυστυχώς για το τυπικό LEGO EV3-G δεν υπάρχει πλήρες μπλοκ για αμφίδρομη επικοινωνία με τον αισθητήρα i2c, αλλά χρησιμοποιώντας περιβάλλοντα προγραμματισμού τρίτων όπως το RobotC, το LeJOS ή το EV3 Basic, μπορείτε να αλληλεπιδράσετε με σχεδόν οποιονδήποτε αισθητήρα i2c.

Η ικανότητα του EV3 να λειτουργεί με το πρωτόκολλο i2c ανοίγει μια ενδιαφέρουσα δυνατότητα σύνδεσης πολλαπλών αισθητήρων σε μία μόνο θύρα. Το πρωτόκολλο I2C σάς επιτρέπει να συνδέσετε έως και 127 slave συσκευές σε έναν δίαυλο. Φαντάζεσαι? 127 αισθητήρες για κάθε μία από τις θύρες EV3 :) Επιπλέον, συχνά μια δέσμη αισθητήρων i2c συνδυάζονται σε μια συσκευή, για παράδειγμα, στην παρακάτω φωτογραφία, ένας αισθητήρας 10 σε 1 (περιέχει πυξίδα, γυροσκόπιο, επιταχυνσιόμετρο, βαρόμετρο κ.λπ. )

UART

Σχεδόν όλοι οι τυπικοί αισθητήρες εκτός EV3, με εξαίρεση τον αισθητήρα αφής, λειτουργούν χρησιμοποιώντας το πρωτόκολλο UART, γι' αυτό δεν είναι συμβατοί με τον ελεγκτή NXT, ο οποίος, αν και έχει τους ίδιους συνδέσμους, δεν έχει ενσωματωμένο UART στο θύρες αισθητήρα. Ρίξτε μια ματιά στο διάγραμμα, είναι λίγο πιο απλό από τις προηγούμενες περιπτώσεις:

Οι αισθητήρες UART συντονίζονται αυτόματα με το EV3 για την ταχύτητά τους. Αρχικά, έχοντας συνδεθεί με ταχύτητα 2400 kbps, συμφωνούν για τους τρόπους λειτουργίας και τη συναλλαγματική ισοτιμία και μετά κινούνται σε αυξημένη ταχύτητα. Οι τυπικές συναλλαγματικές ισοτιμίες για διαφορετικούς αισθητήρες είναι 38400 και 115200 kbps.
Η LEGO έχει εφαρμόσει ένα μάλλον περίπλοκο πρωτόκολλο στους αισθητήρες UART της, επομένως δεν υπάρχουν αισθητήρες τρίτων που να μην έχουν σχεδιαστεί αρχικά για αυτήν την πλατφόρμα, αλλά να είναι συμβατοί με αυτήν. Ωστόσο, αυτό το πρωτόκολλο είναι πολύ βολικό για τη σύνδεση "σπιτικού"
αισθητήρες βασισμένοι σε μικροελεγκτές.
Για το Arduino, υπάρχει μια υπέροχη βιβλιοθήκη EV3UARTEmulation γραμμένη από τον διάσημο προγραμματιστή της LeJOS, Lawrie Griffiths, η οποία επιτρέπει σε αυτήν την πλακέτα να προσποιείται ότι είναι ένας αισθητήρας συμβατός με UART-LEGO. Το ιστολόγιό του LeJOS News έχει πολλά παραδείγματα σύνδεσης αισθητήρων αερίου, αισθητήρα IMU και ψηφιακή πυξίδα χρησιμοποιώντας αυτήν τη βιβλιοθήκη.

Το παρακάτω βίντεο είναι ένα παράδειγμα χρήσης ενός σπιτικού αισθητήρα. Δεν έχουμε αρκετούς αρχικούς αισθητήρες απόστασης LEGO, επομένως χρησιμοποιούμε έναν από τους αισθητήρες στο ρομπότ που κατασκευάσαμε:


Το καθήκον του ρομπότ είναι να ξεκινήσει από το πράσινο κελί, να βρει μια διέξοδο από τον λαβύρινθο (κόκκινο κελί) και να επιστρέψει στην αφετηρία με τον συντομότερο τρόπο, χωρίς να σταματήσει σε αδιέξοδα.