Καταγραφή δεδομένων με εγκέφαλο VEX και αισθητήρες χρησιμοποιώντας Python

Εισαγωγή

Σε αυτό το άρθρο, θα συζητήσουμε πώς να δημιουργήσετε ένα έργο καταγραφής δεδομένων που δίνει εντολή στο ρομπότ VEX να συλλέγει δεδομένα με το VEX Brain και να τα αποθηκεύει σε ένα αρχείο CSV στην κάρτα SD για ανάλυση δεδομένων.

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

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

Δεξιότητες κωδικοποίησης που απαιτούνται για την ανάπτυξη ενός έργου καταγραφής δεδομένων

  • Χρησιμοποιήστε διάφορες εντολές για να συλλέξετε δεδομένα με το VEX Brain/Sensors και να τα προσθέσετε σε μια δομή δεδομένων.
  • Γράψτε τα δεδομένα σε ένα αρχείο τιμών διαχωρισμένων με κόμμα (CSV) στην κάρτα SD.

Απαιτούμενο υλικό για την καταγραφή δεδομένων:

  • Ένας εγκέφαλος VEX (IQ, V5, EXP)
  • Μια κάρτα SD
  • Ένας αισθητήρας ή πολλαπλοί αισθητήρες (Προαιρετικά, ανάλογα με τα απαιτούμενα δεδομένα)

Λήψη δεδομένων από τον αισθητήρα

Μπορούμε να προγραμματίσουμε το ρομπότ VEX (IQ, V5, EXP) ώστε να καταγράφει δεδομένα από τους ακόλουθους αισθητήρες:

  • Αδρανειακός αισθητήρας
  • Αισθητήρας απόστασης
  • Οπτικός αισθητήρας
  • Αισθητήρας όρασης
  • Αισθητήρας περιστροφής (V5, EXP)
  • Αισθητήρας GPS (V5)

Σημείωση: τα VEX IQ (2ης γενιάς) Brain και VEX EXP Brain διαθέτουν ενσωματωμένο αδρανειακό αισθητήρα. Μπορούμε να συλλέξουμε τα δεδομένα του αδρανειακού αισθητήρα με αυτούς τους εγκεφάλους VEX.

Σε αυτό το άρθρο, θα αναπτύξουμε ένα έργο καταγραφής δεδομένων που συλλέγει τα δεδομένα επιτάχυνσης με το VEX IQ Brain (2ης γενιάς) και τα αποθηκεύει σε μια κάρτα SD. 

Αρχικά, πρέπει να γράψουμε ένα σύντομο πρόγραμμα για να λαμβάνουμε μετρήσεις από τον Χρονοδιακόπτη και τον Αδρανειακό Αισθητήρα που είναι ενσωματωμένοι στο VEX IQ Brain (2ης γενιάς).

  • Στην αρχή αυτού του προγράμματος, θα χρειαστεί να εισαγάγουμε τις ενότητες Python για τον έλεγχο του VEX IQ Brain (2ης γενιάς) και να ανακτήσουμε τα δεδομένα από αυτό. Έτσι, ξεκινήστε προσθέτοντας αυτές τις οδηγίες στο έργο.

    # Εισαγωγές βιβλιοθήκης
    από την εισαγωγή vex *
    
    # Ο εγκέφαλος θα πρέπει να οριστεί από προεπιλογή
    brain = Brain()
    brain_inertial = Inertial()
  • Στη συνέχεια, προσθέστε τον κώδικα για να δηλώσετε μια μεταβλητή numOfDataEntries για να αποθηκεύσετε τον αριθμό των καταχωρίσεων δεδομένων για καταγραφή, δηλώστε μια μεταβλητή polling_delay_msec για να αποθηκεύσετε την τιμή του χρονικού διαστήματος για την ανάγνωση δεδομένων και δημιουργήστε μια κενή συμβολοσειρά μεταβλητή data_buffer για να αποθηκεύσετε τα δεδομένα που διαβάζονται από τον αισθητήρα.

    numOfDataEntries = 100
    polling_delay_msec = 50
    data_buffer = ""
  • Καθώς θα χρησιμοποιήσουμε την τρέχουσα τιμή του χρονοδιακόπτη για να προσθέσουμε τη χρονική σήμανση στα δεδομένα, πρέπει να επαναφέρουμε την τιμή του χρονοδιακόπτη στα 0 δευτερόλεπτα πριν ξεκινήσουμε τη συλλογή δεδομένων.

    # Προσθήκη κωδικού αρχικοποίησης χρονοδιακόπτη
    brain.timer.clear()
  • Πριν χρησιμοποιήσουμε την εντολή που ανακτά τα δεδομένα από το VEX IQ Brain (2η) και τα καταγράφει στο buffer, πρέπει πρώτα να την κατανοήσουμε.
    Η ακόλουθη εντολή προσαρτά την τρέχουσα τιμή του χρονιστή στη μεταβλητή data_buffer σε μια συγκεκριμένη μορφή.

    Μια γραμμή κώδικα Python επισημαίνεται σε τμήματα για να εξηγηθεί λεπτομερώς. Η γραμμή κώδικα αναφέρει data_buffer += 1.3f % brain.timer.value() + κόμμα. Αρχικά, ο τελεστής += επισημαίνεται και επισημαίνεται με την ένδειξη Προσάρτηση δεδομένων στη συμβολοσειρά data_buffer. Στη συνέχεια, η συμβολοσειρά 1.3f επισημαίνεται και φέρει την ένδειξη Μορφοποίηση συμβολοσειράς. Στη συνέχεια, το σύμβολο του ποσοστού επισημαίνεται και ονομάζεται String modulo operator. Στη συνέχεια, η εντολή brain.timer.value() επισημαίνεται και επισημαίνεται με την ένδειξη Η τρέχουσα τιμή του χρονοδιακόπτη. Τέλος, η προσθήκη της συμβολοσειράς κόμμα στο τέλος επισημαίνεται και αναφέρει Προσθήκη κόμματος στο τέλος για διαχωρισμό δεδομένων.

    Ας αναλύσουμε τη συμβολοσειρά μορφής “%1.3f”

    • “%”: Εισάγει τον προσδιοριστή μετατροπής.
    • «1»: Υποδεικνύει τον ελάχιστο αριθμό ψηφίων που πρέπει να υπάρχουν στη συμβολοσειρά.
    • “.3”: Καθορίζει τον αριθμό των δεκαδικών ψηφίων που θα συμπεριληφθούν στον μορφοποιημένο αριθμό.
    • «f»: Υποδεικνύει ότι η τιμή που θα μορφοποιηθεί είναι αριθμός κινητής υποδιαστολής.

    Έτσι, μπορούμε να χρησιμοποιήσουμε τη συμβολοσειρά μορφοποίησης "%1.3f" για να μορφοποιήσουμε έναν αριθμό κινητής υποδιαστολής με ελάχιστο πλάτος 1 ψηφίο και ακρίβεια 3 δεκαδικών ψηφίων.

  • Τώρα, μπορούμε να διαβάσουμε τον Χρονοδιακόπτη και την τιμή επιτάχυνσης του Αδρανειακού Αισθητήρα που είναι ενσωματωμένος στο VEX IQ Brain (2ης γενιάς) και στη συνέχεια να προσθέσουμε τα δεδομένα στη μεταβλητή data_buffer στην καθορισμένη μορφή.

    # Εντολές για την εγγραφή των δεδομένων στο buffer
    data_buffer += "%1.3f" % brain.timer.value() + "\n"
    data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

    Ο προηγούμενος κώδικας εξηγείται λεπτομερώς. Η πρώτη γραμμή data_buffer που χρησιμοποιεί το brain.timer.value() έχει την ετικέτα Προσθήκη χρονικής σήμανσης στο buffer. Οι επόμενες τρεις γραμμές φέρουν την ένδειξη Προσθήκη της τιμής επιτάχυνσης κατά μήκος των αξόνων X, Y και Z στην προσωρινή μνήμη.

    Σημείωση: «\n» είναι ο χαρακτήρας Νέας Γραμμής. Υποδεικνύει ότι η γραμμή τελειώνει εδώ και την αρχή μιας νέας γραμμής.

  • Στη συνέχεια, για να καταγράψουμε έναν ορισμένο αριθμό καταχωρήσεων δεδομένων στη μεταβλητή data_buffer , μπορούμε να χρησιμοποιήσουμε έναν βρόχο για για να εκτελέσουμε επανειλημμένα τις εντολές που ανακτούν τα δεδομένα και τα προσαρτούν στη μεταβλητή data_buffer για έναν αριθμό επαναλήψεων. Η στρατηγική μας είναι να χρησιμοποιήσουμε την τιμή της μεταβλητής numOfDataEntries για να προσδιορίσουμε τον αριθμό των επαναλήψεων.

    # Δημιουργία Δεδομένων
    για i στο εύρος(0, numOfDataEntries):
    
        # Εντολές για την εγγραφή των δεδομένων στο buffer
        data_buffer += "%1.3f" % brain.timer.value() + "\n"
        data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
        data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
        data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"
  • Μέχρι στιγμής, το πρόγραμμά μας καταγράφει δεδομένα όσο πιο γρήγορα γίνεται. Ωστόσο, θέλουμε να καταγράφουμε δεδομένα σε συγκεκριμένα χρονικά διαστήματα. Επομένως, μπορούμε να χρησιμοποιήσουμε μια συνάρτηση wait() στον βρόχο for για να διακόψουμε προσωρινά το πρόγραμμα και να προσθέσουμε το συγκεκριμένο χρονικό διάστημα μεταξύ δύο μετρήσεων. Χρησιμοποιούμε την τιμή της μεταβλητής polling_delay_msec για να προσδιορίσουμε την τιμή του χρονικού διαστήματος.

    # Δημιουργία Δεδομένων
    για i στο εύρος(0, numOfDataEntries):
    
        # Εντολές για την εγγραφή των δεδομένων στο buffer
        data_buffer += "%1.3f" % brain.timer.value() + "\n"
        data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
        data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
        data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"
    
        wait(polling_delay_msec, MSEC)

Συγχαρητήρια! Ολοκληρώσαμε το πρόγραμμα για να λάβουμε μετρήσεις (δεδομένα επιτάχυνσης) από τον Αδρανειακό Αισθητήρα που είναι ενσωματωμένος στον εγκέφαλο VEX. Στη συνέχεια, θα εξερευνήσουμε πώς να γράψουμε τα δεδομένα σε ένα αρχείο CSV στην κάρτα SD.

# Εισαγωγές βιβλιοθήκης
από την εισαγωγή vex *

# Το Brain θα πρέπει να οριστεί από προεπιλογή
brain = Brain()
brain_inertial = Inertial()

numOfDataEntries = 100
polling_delay_msec = 50
data_buffer = ""

# Προσθήκη κώδικα αρχικοποίησης χρονιστή
brain.timer.clear()

# Δημιουργία δεδομένων
για i στο range(0, numOfDataEntries):

    # Εντολές για την εγγραφή των δεδομένων στο buffer
    data_buffer += "%1.3f" % brain.timer.value() + "\n"
    data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

    αναμονή(polling_delay_msec, MSEC)

Σύνδεση της κάρτας SD στον εγκέφαλο VEX

Πριν από την εγγραφή των δεδομένων σε ένα αρχείο σε μια κάρτα SD, τοποθετήστε πρώτα την κάρτα SD στην υποδοχή κάρτας SD του VEX Brain.

Το V5 Brain εμφανίζεται με επισημασμένη την υποδοχή κάρτας SD. Η υποδοχή κάρτας SD βρίσκεται στο πλάι του Brain, δεξιά από τη θύρα USB-C.

Σημείωση: Μορφοποιήστε την κάρτα SD σε FAT32 για εγγραφή δεδομένων. Συνιστούμε τη χρήση καρτών SD μεγέθους 32 GB ή μικρότερου.

Για να διασφαλίσουμε ότι η εγγραφή δεδομένων σε ένα αρχείο στην κάρτα SD μπορεί να πραγματοποιηθεί υπό τις κατάλληλες συνθήκες, θα χρειαστεί να προσθέσουμε κώδικα για να ελέγξουμε εάν η κάρτα SD έχει τοποθετηθεί σωστά στο VEX IQ Brain (2ης γενιάς).

  • Χρησιμοποιήστε τη συνάρτηση brain.sdcard.is_inserted() για να ελέγξετε αν έχει τοποθετηθεί η κάρτα SD. Εάν η κάρτα SD δεν έχει τοποθετηθεί, εμφανίστε το αντίστοιχο μήνυμα στην οθόνη VEX IQ Brain και πατήστε παρατεταμένα το πρόγραμμα.

    # Διακοπή του προγράμματος εάν η κάρτα SD δεν έχει εισαχθεί
    εάν δεν έχει εισαχθεί brain.sdcard.is_inserted():
        brain.screen.set_cursor(1,1)
        brain.screen.print("Λείπει η κάρτα SD")
        while(True):
            wait(5, MSEC)


    Σημείωση: η συνάρτηση brain.sdcard.is_inserted() επιστρέφει True εάν εισαχθεί κάρτα SD στον εγκέφαλο.

Εγγραφή των δεδομένων σε ένα αρχείο CSV στην κάρτα SD

Μέχρι στιγμής, το πρόγραμμά μας μπορεί να συλλέγει δεδομένα με το VEX IQ Brain (2ης γενιάς). Για να ολοκληρώσουμε το έργο καταγραφής δεδομένων, πρέπει να εγγράψουμε τα δεδομένα σε ένα αρχείο τιμών διαχωρισμένων με κόμμα (CSV) στην κάρτα SD για μελλοντική εξέταση και ανάλυση.

  • Όταν γράφουμε διαφορετικούς τύπους δεδομένων σε ένα αρχείο CSV, θέλουμε να γνωρίζουμε τον τύπο δεδομένων που περιέχει κάθε στήλη. Για να το κάνουμε αυτό, μπορούμε να προσαρτήσουμε το κείμενο της κεφαλίδας CSV στη μεταβλητή data_buffer πριν από την καταγραφή δεδομένων.
    Έτσι, προσθέτουμε τον κώδικα για να δηλώσουμε μια μεταβλητή csvHeaderText για να αποθηκεύσουμε το κείμενο της κεφαλίδας CSV για να καθορίσουμε τα ονόματα των στηλών για το αρχείο CSV και να δηλώσουμε μια μεταβλητή sd_file_name για να διατηρήσουμε το όνομα του αρχείου CSV που θα εγγραφεί στην κάρτα SD.

    csvHeaderText = "ώρα, x, y, z"
    sd_file_name = "myDataPY.csv"

Σημείωση: Βεβαιωθείτε ότι οι κεφαλίδες είναι στην ίδια σειρά με τα δεδομένα που είναι αποθηκευμένα στη μεταβλητή data_buffer.

  • Στη συνέχεια, προσθέστε το κείμενο της κεφαλίδας CSV στη συμβολοσειρά data_buffer πριν από το για τον βρόχο για τη συλλογή δεδομένων.

    # Δημιουργία Κεφαλίδας CSV
    data_buffer = csvHeaderText + "\n"
    
    # Δημιουργία Δεδομένων CSV
    για i στο range(0, numOfDataEntries):
    
        # Εντολές για την εγγραφή των δεδομένων στο buffer
        data_buffer += "%1.3f" % brain.timer.value() + "\n"
        data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
        data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
        data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"
    
        wait(polling_delay_msec, MSEC)
  • Πριν γράψουμε δεδομένα σε ένα αρχείο στην κάρτα SD, ας κατανοήσουμε πρώτα πώς να χρησιμοποιήσουμε τη συνάρτηση brain.sdcard.savefile().

    Μια γραμμή κώδικα Python επισημαίνεται σε τμήματα για να εξηγηθεί λεπτομερώς. Η γραμμή κώδικα αναφέρει brain.sdcard.savefile(sd_file_name, bytearray(data_buffer, 'utf-8')). Αρχικά, η ενότητα brain.sdcard.savefile επισημαίνεται και φέρει την ένδειξη Αποθήκευση ενός bytearray σε ένα επώνυμο αρχείο στην κάρτα SD. Στη συνέχεια, η ενότητα sd_file_name επισημαίνεται και επισημαίνεται με την ένδειξη Filename. Τέλος, το bytearray(data_buffer, 'utf-8') στο τέλος επισημαίνεται και φέρει την ένδειξη Buffer.


    Αυτή η εντολή γράφει τα δεδομένα που είναι αποθηκευμένα στη μεταβλητή data_buffer σε ένα επώνυμο αρχείο CSV στην κάρτα SD.
    Ας το αναλύσουμε:

    • brain.sdcard.savefile(): Η συνάρτηση αποθηκεύει έναν πίνακα byte σε ένα επώνυμο αρχείο στην κάρτα SD. Η συνάρτηση επιστρέφει τον αριθμό των byte που έχουν γραφτεί στο αρχείο.
    • sd_file_name: Η πρώτη παράμετρος της συνάρτησης. Υποδεικνύει το όνομα του αρχείου που θα γραφτεί. Σε αυτό το έργο, το όνομα αρχείου αποθηκεύεται στη μεταβλητή
    • bytearray(datat_buffer,'utf-8'): Η δεύτερη παράμετρος της συνάρτησης. Αντιπροσωπεύει το bytearray που θα εγγραφεί στο αρχείο.
      •  
        • bytearray(): Η μέθοδος δημιουργεί ένα μεταβλητό bytearray. Σε αυτήν την εντολή, τη χρησιμοποιούμε για να μετατρέψουμε μια συμβολοσειρά σε bytearray καθορίζοντας την κωδικοποίηση.
        • data_buffer: Η πρώτη παράμετρος της μεθόδου. Υποδεικνύει την πηγή που θα μετατραπεί σε bytearray. Σε αυτό το έργο, η πηγή είναι τα δεδομένα που είναι αποθηκευμένα στη μεταβλητή  
        • 'utf-8': Η ​​δεύτερη παράμετρος της μεθόδου. Υποδεικνύει την καθορισμένη κωδικοποίηση που χρησιμοποιείται για την κωδικοποίηση της συμβολοσειράς. Η κωδικοποίηση σε αυτήν την εντολή είναι 'utf-8'. 
  • Μετά τον βρόχο για συλλογή δεδομένων, χρησιμοποιήστε τη συνάρτηση brain.sdcard.savefile() για να γράψετε τα δεδομένα που είναι αποθηκευμένα στη μεταβλητή data_buffer στο αρχείο CSV στην κάρτα SD. Επιπλέον, προσθέστε τον κώδικα για να ελέγξετε την τιμή επιστροφής από τη συνάρτηση brain.sdcard.savefile() για να επαληθεύσετε εάν τα δεδομένα έχουν εγγραφεί στο αρχείο με επιτυχία και να εμφανίσετε το αντίστοιχο μήνυμα στην οθόνη VEX IQ Brain για να λάβετε σχόλια σε πραγματικό χρόνο.

    # Δημιουργία Δεδομένων CSV
    για i στο εύρος(0, numOfDataEntries):
    
        # Εντολές για την εγγραφή των δεδομένων στο buffer
        data_buffer += "%1.3f" % brain.timer.value() + "\n"
        data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
        data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
        data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"
    
        wait(polling_delay_msec, MSEC)
    
    # Εγγραφή των δεδομένων στην κάρτα SD
    brain.screen.set_cursor(4,1)
    if brain.sdcard.savefile(sd_file_name, bytearray(data_buffer,'utf-8')) ==
        brain.screen.print("Σφάλμα εγγραφής SD")
    αλλιώς:
        brain.screen.print("Εγγραφή δεδομένων")


    Σημείωση: Η συνάρτηση brain.sdcard.savefile() επιστρέφει τον αριθμό των byte που έχουν γραφτεί στο αρχείο. Σε αυτό το έργο, το χρησιμοποιούμε για να γράψουμε τα δεδομένα που συλλέχθηκαν σε ένα αρχείο CSV, επομένως ο αριθμός των byte που γράφονται στο αρχείο πρέπει να είναι μεγαλύτερος από μηδέν. Με άλλα λόγια, αν η συνάρτηση brain.sdcard.savefile() επιστρέψει 0, μπορούμε να συμπεράνουμε ότι τα δεδομένα δεν έχουν εγγραφεί στο αρχείο με επιτυχία. Διαφορετικά, τα δεδομένα έχουν εγγραφεί στο αρχείο.

Συγχαρητήρια! Έχουμε αναπτύξει ένα έργο καταγραφής δεδομένων που συλλέγει τα δεδομένα επιτάχυνσης με το VEX IQ Brain (2ης γενιάς) και τα αποθηκεύει σε ένα αρχείο CSV στην κάρτα SD. Στη συνέχεια, θα εξερευνήσουμε πώς να ανοίξουμε το αρχείο CSV για ανάλυση δεδομένων. 

# Εισαγωγές βιβλιοθήκης
από την εισαγωγή vex *

# Το Brain θα πρέπει να οριστεί από προεπιλογή
brain = Brain()
brain_inertial = Inertial()

csvHeaderText = "time, x, y, z"
sd_file_name = "myDataPY.csv"
polling_delay_msec = 50
numOfDataEntries = 100
data_buffer = ""

# Διακοπή του προγράμματος εάν η κάρτα SD δεν έχει εισαχθεί
εάν δεν έχει εισαχθεί brain.sdcard.is_inserted():
    brain.screen.set_cursor(1,1)
    brain.screen.print("Λείπει η κάρτα SD")
    while(True):
        wait(5, MSEC)

# Προσθήκη οποιουδήποτε αισθητήρα & κώδικα αρχικοποίησης χρονοδιακόπτη εδώ
brain.timer.clear()

# Δημιουργία κεφαλίδας CSV
data_buffer = csvHeaderText + "\n"

# Δημιουργία Δεδομένων CSV
για το i στο εύρος(0, numOfDataEntries):

    # Εντολές για την εγγραφή των δεδομένων στο buffer
    data_buffer += "%1.3f" % brain.timer.value() + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

    wait(polling_delay_msec, MSEC)

# Εγγραφή των δεδομένων στην κάρτα SD
brain.screen.set_cursor(4,1)
if brain.sdcard.savefile(sd_file_name, bytearray(data_buffer,'utf-8')) == 0:
    brain.screen.print("Σφάλμα εγγραφής SD")
αλλιώς:
    brain.screen.print("Εγγραφή δεδομένων")

 

Άνοιγμα του αρχείου CSV για ανάλυση δεδομένων

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

Σημείωση: Δύο από τις πιο κοινές εφαρμογές υπολογιστικών φύλλων είναι τα Google Sheets και το Microsoft Excel. Σε αυτό το άρθρο, θα χρησιμοποιήσουμε τα Φύλλα Google (Web-Based) για να ανοίξουμε το αρχείο CSV στην κάρτα SD. Η διαδικασία χρήσης άλλων εφαρμογών είναι παρόμοια.

  • Αφαιρέστε την κάρτα SD από την υποδοχή κάρτας SD του VEX IQ Brain. Εάν ο υπολογιστής διαθέτει ενσωματωμένη υποδοχή κάρτας Micro SD, μπορούμε να τοποθετήσουμε την κάρτα SD απευθείας σε αυτήν την υποδοχή. Διαφορετικά, τοποθετήστε την κάρτα SD σε έναν προσαρμογέα κάρτας SD και, στη συνέχεια, συνδέστε τον προσαρμογέα στον υπολογιστή. 
  • Συνδεθείτε στον λογαριασμό μας Google και ανοίξτε τα Υπολογιστικά Φύλλα Google. Δημιουργήστε ένα νέο υπολογιστικό φύλλο.
  • Στο υπολογιστικό φύλλο, ανοίξτε το μενού «Αρχείο» , επιλέξτε το κουμπί «Εισαγωγή» «Μεταφόρτωση» -> «Αναζήτηση» -> «Αναζήτηση» και, στη συνέχεια, επιλέξτε το αρχείο CSV στον υπολογιστή. Αφού ανεβάσετε το αρχείο CSV, κάντε κλικ στο κουμπί «Εισαγωγή δεδομένων». Μετά την εισαγωγή δεδομένων, κάντε κλικ στο "Άνοιγμα τώρα" για να δείτε τα δεδομένα που συλλέχθηκαν στο αρχείο CSV.

    Τα δεδομένα CSV του έργου άνοιξαν σε ένα έγγραφο Υπολογιστικών Φύλλων Google. Υπάρχουν τέσσερις στήλες που αναφέρουν τον Χρόνο, το X, το Y και το Z. Υπάρχουν πολλές γραμμές δεδομένων που καταγράφουν την επιτάχυνση σε κάθε χρονική σήμανση.

  • (Προαιρετικό) Ένας εύκολος τρόπος για να αναλύσετε τα δεδομένα είναι να σχεδιάσετε ένα γράφημα και, στη συνέχεια, να αναζητήσετε τις τάσεις στα δεδομένα. Στο υπολογιστικό φύλλο, ανοίξτε το μενού «Εισαγωγή» και επιλέξτε «Γράφημα» για να σχεδιάσετε ένα γράφημα χρησιμοποιώντας τα δεδομένα στο αρχείο CSV. Το ακόλουθο γράφημα είναι το αποτέλεσμα των δεδομένων επιτάχυνσης που συλλέχθηκαν με το VEX IQ Brain (2ης γενιάς).

    Το διάγραμμα των δεδομένων ανοίγει στα Φύλλα Google, το οποίο δείχνει την επιτάχυνση των αξόνων X, Y και Z με την πάροδο του χρόνου. Η τιμή Z παραμένει κοντά στο -1, και οι τιμές X και Y παραμένουν κοντά στο μηδέν.


    Σημείωση: Μπορούμε να χρησιμοποιήσουμε τον επεξεργαστή γραφημάτων για να επιλέξουμε διαφορετικό Τύπο Γραφήματος ή να επεξεργαστούμε το γράφημα με βάση τις ανάγκες μας.

Μέχρι αυτό το σημείο, έχουμε ολοκληρώσει το έργο καταγραφής δεδομένων που συλλέγει δεδομένα με το VEX IQ Brain (2ης γενιάς) και τα αποθηκεύει σε αρχείο CSV στην κάρτα SD. Επίσης, μάθαμε πώς να διαβάζουμε το αρχείο CSV στην κάρτα SD χρησιμοποιώντας τα Φύλλα Google, ακόμη και πώς να δημιουργούμε ένα γράφημα για περαιτέρω ανάλυση. Τι ακολουθεί; Ας προσπαθήσουμε να σχεδιάσουμε πιο συναρπαστικά πειράματα χρησιμοποιώντας το ρομπότ VEX για την καταγραφή δεδομένων, για να παρατηρήσουμε πώς οι μεταβαλλόμενοι περιβαλλοντικοί παράγοντες επηρεάζουν διάφορους τύπους δεδομένων και να κατανοήσουμε σε βάθος τον κόσμο γύρω μας.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: