Δομή λογισμικού

Η πλατφόρμα λογισμικού εκτελείται στο cloud και υποστηρίζει τη λειτουργία των έξυπνων συσκευών προσφέρoντας τη δυνατότητα εύκολης ανάπτυξης εφαρμογών με χρήση block προγραμματισμού.

Δικτυακές υπηρεσίες (cloud services)

Αλγοριθμικές υπηρεσίες νέφους TekTrain

  • Αναφορά καιρού
  • Εντοπισμός συναισθήματος (sentiment analysis) από ήχο, εικόνα ή κείμενο
  • Εντοπισμός ηλικίας/φύλου από εικόνα
  • Εντοπισμός χαρακτήρων από εικόνα (OCR)
  • Εντοπισμός QR-Code και Bar-Code
  • Εντοπισμός κυρίαρχου χρώματος
  • Αναγνώριση κίνησης από εικόνα
  • Μετάφραση κειμένου ή ήχου
  • Εντοπισμός γλώσσας από ήχο ή κείμενο
  • Αναγνώριση εντολής από ήχο
  • Ανίχνευση ήχου
  • Εντοπισμός προσώπου από εικόνα

Παραδείγματα

Application store

 

Το TekTrain App Store αναλαμβάνει την αποθήκευση, επεξεργασία και απόκτηση εκπαιδευτικών αποστολών που έχουν πραγματοποιηθεί από τρίτους χρήστες. Κάθε χρήστης του συστήματος (εκπαιδευτικός ή μαθητής), θα μπορεί να αποθηκεύει μία νέα εκπαιδευτική αποστολή, διατηρώντας διαφορετικές εκδόσεις, ώστε να είναι ευκολότερη η διαχείρισή της. Οι λειτουργικότητες που περιλαμβάνει είναι:

  • Δημιουργία/μεταβολή/διαγραφή εκπαιδευτικής αποστολής
  • Αναζήτηση εκπαιδευτικής αποστολής με λέξεις κλειδιά ή με tags
  • Εμφάνιση πληροφοριών συγκεκριμένης εκπαιδευτικής αποστολής

Το TekTrain Application Store είναι διαθέσιμο στη διεύθυνση https://tektrain-cloud.ddns.net/

 

Παραδείγματα με στιγμιότυπα οθόνης του App

Πλατφόρμα προγραμματισμού TekTrain

 

Ο χρήστης βλέπει στο προφίλ του τις ασκήσεις του, τα ρομπότ και τις επιδόσεις του. Η πλατφόρμα TekTrain παρέχει ένα σύνολο από εκπαιδευτικές αποστολές οι οποίες στοχεύουν στην επεξήγηση των γραφικών εντολών που παρέχονται. Οι παρεχόμενες εκπαιδευτικές αποστολές είναι κλιμακούμενης δυσκολίας. Προκειμένου να επιλυθεί μια συγκεκριμένη εκπαιδευτική αποστολή, ο χρήστης πρέπει να κάνει αριστερό κλικ στην επιλογή “Άνοιγμα” της επιθυμητής αποστολής. Τότε, εμφανίζεται η εξειδικευμένη οθόνη-περιγραφή της αποστολής που περιλαμβάνει αναλυτικές οδηγίες σε μορφή κειμένου, υπερσύνδεσμο για οδηγίες σε μορφή οπτικοακουστικού υλικού (εφόσον παρέχεται από το δημιουργό της) και δύο επιλογές επίλυσης.

Με κλικ στην επιλογή “Γραφική επίλυση”, εμφανίζεται το περιβάλλον σχεδίασης εφαρμογών του TekTrain που αποτελείται από τρία διακριτά μέρη: Την εργαλειοθήκη, τις γραφικές εντολές και τον καμβά σχεδίασης εφαρμογών

 

Παραδείγματα

Οθόνη εισόδου στο σύστημα

Οθόνη παρεχόμενων Εκπαιδευτικών Αποστολών

Αρχική οθόνη σχεδίασης ρομποτικής εφαρμογής

Ενδεικτική, πλήρης, ρομποτική εφαρμογή με χρήση της πλατφόρμας

Λογισμικό Ελέγχου Περιφερειακών Συσκευών

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

Η ανεπτυγμένη βιβλιοθήκη έχει ονομαστεί Pidevices και σκοπός της είναι η εύκολη διαχείριση των συνδεδεμένων περιφερειακών συσκευών με ένα Raspberry Pi 3 (RPI3), το οποίο είναι η κύρια υπολογιστική μονάδα της ρομποτικής συσκευής TekTrain. Μία συσκευή μπορεί να είναι οτιδήποτε το οποίο ενώνεται με ένα RPI3 και χωρίζονται σε δύο γενικές κατηγορίες, τους αισθητήρες (sensors) οι οποίοι λαμβάνουν πληροφορία από το περιβάλλον και τους ενεργοποιητές (actuators), οι οποίοι δρουν στο περιβάλλον και αλλάζουν τις ιδιότητές του. Η βιβλιοθήκη Pidevices χρησιμοποιεί ένα κοινό interface για όλες τις συσκευές, το οποίο απαρτίζεται από τρεις κλήσεις, την start(), την stop() και την restart(). Η διαφοροποίηση μεταξύ αισθητήρων και ενεργοποιητών είναι ότι οι αισθητήρες διαθέτουν μία κλήση read(), ενώ οι ενεργοποιητές μία κλήση write(). Έτσι, ο εκάστοτε προγραμματιστής μπορεί να επεκτείνει την βιβλιοθήκη, απλά υλοποιώντας τις παραπάνω τέσσερις συναρτήσεις, χωρίς να χρειάζεται να γνωρίζει την συνολικότερη διαχείριση των συσκευών.

Μία διεπαφή υλικού συνενώνει δύο συσκευές με τέτοιο τρόπο ώστε να μπορούν να αποστείλουν δεδομένα. Στην Pidevices κάθε διεπαφή υλικού διαθέτει τέσσερις βασικές μεθόδους, την initialize(), την read(), την write() και την close(). Με αυτό τον τρόπο, ο εκάστοτε προγραμματιστής μπορεί να επεκτείνει τις διεπαφές υλικού απλά υλοποιώντας τις παραπάνω μεθόδους.

Η γενίκευση (abstraction) των διεπαφών υλικού γίνεται με χρήση κληρονομικότητας κλάσεων τύπου abstract protocol. Για παράδειγμα η κλάση SPI ορίζει τις παραμέτρους και τις γενικές κλήσεις του πρωτοκόλλου SPI και στη συνέχεια η κλάση SPI_Implementation την κληρονομεί και υλοποιεί τις μεθόδους της χρησιμοποιώντας μία συγκεκριμένη βιβλιοθήκη η οποία υλοποιεί το πρωτόκολλο SPI (π.χ. την spidev2).

 

 

Αρχιτεκτονική Λογισμικού νέφους TekTrain

 

To TekTrain περιλαμβάνει υποσυστήματα που εκτελούνται στο νέφος. Όλα τα υποσυστήματα εκτελούνται σε docker containers, κάτι το οποίο επιτρέπει την εύκολη διαχείριση και επέκταση και υποστηρίζεται από τις όλες τις  σύγχρονες υποδομές cloud (AWS, Google Cloud Platform, κ.α.). 

Η πλατφόρμα νέφους TekTrain (TekTrain Cloud Platform) αποτελείται από τα ακόλουθα επτά υποσυστήματα:

  1. το backend της πλατφόρμας, το οποίο υποστηρίζει την πλατφόρμα TekTrain (TekTrain Platform Front-End),
  2. μια βάση δεδομένων, στην οποία αποθηκεύονται τα στοιχεία χρηστών, αποστολών, εφαρμογών κτλ (TekTrain database),
  3. το backend της μηχανής MDE που πραγματοποιεί ελέγχους ορθότητας των εφαρμογών που σχεδιάζονται στην πλατφόρμα TekTrain και εκτελεί τους M2T μετασχηματισμούς ώστε να παραχθεί ο εκτελέσιμος κώδικας τους,
  4. υποσύστημα πιστοποίησης και εξουσιοδότησης (authentication backend), το οποίο χρησιμοποιείται από τα υπόλοιπα υποσυστήματα,
  5. υπηρεσία για το “πακετάρισμα” (packaging) των εφαρμογών (application packager),
  6. υποσύστημα σύνδεσης και επικοινωνίας των συσκευών (message broker) και
  7. διαδικτυακές υπηρεσίες νέφους, όπως αναγνώριση προσώπων, αντικειμένων, διάθεσης κτλ.
Μετάβαση στο περιεχόμενο