GR1010562B - Συστημα και μεθοδος υβριδικης καθοδηγησης εκπαιδευτικου ρομποτ - Google Patents

Συστημα και μεθοδος υβριδικης καθοδηγησης εκπαιδευτικου ρομποτ Download PDF

Info

Publication number
GR1010562B
GR1010562B GR20220101017A GR20220101017A GR1010562B GR 1010562 B GR1010562 B GR 1010562B GR 20220101017 A GR20220101017 A GR 20220101017A GR 20220101017 A GR20220101017 A GR 20220101017A GR 1010562 B GR1010562 B GR 1010562B
Authority
GR
Greece
Prior art keywords
robot
command
base
commands
blocks
Prior art date
Application number
GR20220101017A
Other languages
English (en)
Inventor
Θεοδοσιος Σαπουνιδης
Παυλος Μαντζιαρης
Ιωαννης Κεδρος
Original Assignee
Αριστοτελειο Πανεπιστημιο Θεσσαλονικης - Ειδικος Λογαριασμος Κονδυλιων Ερευνας,
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Αριστοτελειο Πανεπιστημιο Θεσσαλονικης - Ειδικος Λογαριασμος Κονδυλιων Ερευνας, filed Critical Αριστοτελειο Πανεπιστημιο Θεσσαλονικης - Ειδικος Λογαριασμος Κονδυλιων Ερευνας,
Priority to GR20220101017A priority Critical patent/GR1010562B/el
Publication of GR1010562B publication Critical patent/GR1010562B/el
Priority to PCT/IB2023/062073 priority patent/WO2024121685A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/0053Computers, e.g. programming
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H33/00Other toys
    • A63H33/04Building blocks, strips, or similar building parts
    • A63H33/042Mechanical, electrical, optical, pneumatic or hydraulic arrangements; Motors
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H33/00Other toys
    • A63H33/04Building blocks, strips, or similar building parts
    • A63H33/046Building blocks, strips, or similar building parts comprising magnetic interaction means, e.g. holding together by magnetic attraction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/18Packaging or power distribution
    • G06F1/181Enclosures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2200/00Indexing scheme relating to G06F1/04 - G06F1/32
    • G06F2200/16Indexing scheme relating to G06F1/16 - G06F1/18
    • G06F2200/163Indexing scheme relating to constructional details of the computer
    • G06F2200/1635Stackable modules

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Power Engineering (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Toys (AREA)

Abstract

Η εφεύρεση αφορά ένα σύστημα και μέθοδο υβριδικού προγραμματισμού εκπαιδευτικού ρομπότ, που προτείνεται να έχει μορφή παιχνιδιού, το οποίο είναι εύκολο, ώστε να απευθύνεται σε ηλικίες από τριών ετών και πάνω. Αποτελείται από α) ρομπότ (23), β) βάση (1) και γ) μπλοκ με αποθηκευμένες εντολές (13), που συνδέονται στη βάση. Στα μπλοκ εντολών μπορούν να συνδέονται μπλοκ παραμέτρων (21), τα οποία παραμετροποιούν τις εντολές στα μπλοκ εντολών. Τα μπλοκ εντολών συνδέονται στη βάση διαδοχικά, οι εντολές διαβιβάζονται από τα μπλοκ, με κοινό δίαυλο επικοινωνίας, στη βάση, η οποία αφού συγκεντρώσει τις εντολές, τις στέλνει, με ασύρματο δίκτυο, στο ρομπότ προς εκτέλεση.

Description

ΠΕΡΙΓΡΑΦΗ
Σύστημα και μέθοδος υβριδικής καθοδήγησης εκπαιδευτικού ρομπότ
Τεχνικό πεδίο της εφεύρεσης
[001] Η παρούσα εφεύρεση αφορά ένα σύστημα και μέθοδο υβριδικής καθοδήγησης εκπαιδευτικού ρομπότ, που προτείνεται να έχει μορφή παιχνιδιού, το οποίο είναι εύκολο, ώστε να απευθύνεται σε ηλικίες από τριών ετών και πάνω.
[002] Οι γλώσσες προγραμματισμού και η δημιουργία αλγόριθμων, συνήθως, χρησιμοποιούν γραφικά περιβάλλοντα (GUIs), δηλαδή προϋποθέτουν τη χρήση ηλεκτρονικού υπολογιστή. Γ ια τη χρήση μίας γλώσσας προγραμματισμού απαιτείται εκπαίδευση του χρήστη. Η εκπαίδευση αυτή απευθύνεται, συνήθως, σε ενήλικες. Με την παρούσα εφεύρεση εισάγεται ένα απλοποιημένο εκπαιδευτικό σύστημα που βασίζεται, κατ' αρχήν, στην καθοδήγηση ενός ρομπότ με απτικά μέσα, ώστε να μπορεί να χρησιμοποιηθεί από παιδιά μικρής ηλικίας και να τα εισάγει στον κόσμο της δημιουργίας αλγορίθμων και του προγραμματισμού. Το σύστημα αυτό συνδυάζεται επιπρόσθετα με γραφικό περιβάλλον καθοδήγησης και μετατρέπεται σε υβριδικό σύστημα καθοδήγησης.
Στάθμη της τεχνικής
[003] Ως γλώσσα προγραμματισμού νοείται μια τεχνητή γλώσσα που μπορεί να χρησιμοποιηθεί για τον έλεγχο μιας μηχανής. Η συνήθης χρησιμότητα της γλώσσας προγραμματισμού είναι η παροχή εντολών στη μηχανή, προκειμένου η μηχανή να εκτελέσει κάποιες εργασίες. Οι γλώσσες προγραμματισμού πλαισιώνονται από ένα σύνολο συντακτικών και εννοιολογικών κανόνων, που ορίζουν τη δομή και το νόημα των προτάσεων της γλώσσας. Οι γλώσσες προγραμματισμού χρησιμοποιούνται για να διευκολύνουν την οργάνωση και διαχείριση πληροφοριών, αλλά και για την ακριβή διατύπωση αλγορίθμων. Διακρίνονται σε υπολογιστικές και μη-υπολογιστικές γλώσσες, όπως η HTML. Οι περισσότερες γλώσσες προγραμματισμού έχουν γραφική διεπαφή χρήστη (GUIs), δηλαδή ο χρήστης χρησιμοποιεί είτε γραφικά περιβάλλοντα είτε χαρακτήρες σε κειμενογράφους προκειμένου να δημιουργήσει το πρόγραμμα του.
[004] Οι γλώσσες προγραμματισμού είναι ένα είδος λογισμικού που χρησιμοποιείται στην επιστήμη της πληροφορικής για την ανάπτυξη άλλου λογισμικού, ιδίως προγραμμάτων και εφαρμογών, καθώς και για την ανάπτυξη τεχνητής νοημοσύνης.
[005] Η χρήση μίας γλώσσας προγραμματισμού δεν είναι απλή. Συνήθως, απαιτείται εκπαίδευση, ακόμη και για τις πιο απλές γλώσσες προγραμματισμού. Η εκπαίδευση μπορεί να συνίσταται σε έναν κύκλο σεμιναρίων που οδηγούν ή δεν οδηγούν σε απόκτηση τίτλου σπουδών. Κάποιοι προγραμματιστές μπορεί να είναι και αυτοδίδακτοι. Σε κάθε περίπτωση, η χρήση μίας γλώσσας προγραμματισμού απαιτεί, κατ' αρχήν, ειδική αντίληψη για τον τρόπο λειτουργίας της, η οποία αναπτύσσεται σε ανθρώπους που είναι τουλάχιστον στην εφηβική ηλικία. Σε νεότερες ηλικίες, συνήθως, δεν γίνεται αντιληπτός ο τρόπος με τον οποίο χρησιμοποιείται η γλώσσα προγραμματισμού. Ωστόσο, μπορεί να γίνει αντιληπτό πως λειτουργεί η αποστολή εντολών. Υπάρχουν πολλά ηλεκτρονικά παιχνίδια, για παιδιά, τα οποία παίζονται με χειριστήρια, όπως για παράδειγμα τηλεκατευθυνόμενα οχήματα ή παιχνιδομηχανές που συνδέονται με την τηλεόραση. Αυτά τα παιχνίδια, βέβαια, δεν έχουν εκπαιδευτικό χαρακτήρα, απευθύνονται σε παιδιά ηλικίας 10 ετών και άνω, ενώ η διαβίβαση εντολών από το χειριστήριο είναι σχετικά απλοποιημένη. Ανάμεσα στη χρήση γλώσσας προγραμματισμού, γραφικού χαρακτήρα, και το απλοποιημένο ηλεκτρονικό παιχνίδι που παίζεται με χειριστήριο, που στερείται εκπαιδευτικού χαρακτήρα και απευθύνεται σε μεγάλα παιδιά, υπάρχει ένα στάδιο, στο οποίο ακόμη και ένα παιδί μικρής ηλικίας μπορεί να στέλνει εντολές σε μηχανές, χρησιμοποιώντας απτικά μέσα καθοδήγησης.
[006] Κάποιοι κατασκευαστές παιχνιδιών έχουν κατασκευάσει παιχνίδια που περιέχουν απτικές εντολές και τα οποία απευθύνονται σε ηλικίες μικρότερες των 10 ετών. Τα περισσότερα από αυτά τα παιχνίδια παίζονται σε ένα προκαθορισμένο ταμπλό, στα πλαίσια του οποίου αποστέλλονται και εκτελούνται κάποιες προκαθορισμένες εντολές. Στην καλύτερη περίπτωση, ο χρήστης επιλέγει ανάμεσα σε περιορισμένο αριθμό εντολών και εκτελεί την κάθε μία ξεχωριστά.
Η ευρωπαϊκή αίτηση ΕΡ3375503Α1 αφορά ένα εκπαιδευτικό παιχνίδι που αποτελείται από πλακίδια, τα οποία ενώνονται μεταξύ τους, σχηματίζοντας διάδρομο, και πάνω τους κινείται ένα ρομπότ. Τα πλακίδια είναι τετράγωνα και χάρτινα, με ενσωματωμένες εντολές, οι οποίες αφορούν και κινητικές ιδιότητες. Ενώνονται μεταξύ τους σχηματίζοντας είτε ευθεία γραμμή είτε ορθές γωνίες. Το δε ρομπότ, πατώντας σε ένα χάρτινο πλακίδιο, λαμβάνει εντολή κίνηση από αυτό και κινείται μόνο πάνω στον διάδρομο που σχηματίζουν.
Η αμερικάνικη αίτηση US20170007915A1 αφορά ένα διαδραστικό ρομποτικό παιχνίδι που αποτελείται, επίσης από πλακίδια, που ενώνονται μεταξύ τους και σχηματίζουν, διάδρομο, καθώς, επίσης, και ένα ρομπότ που κινείται πάνω στον διάδρομο. Η διαφορά σε αυτό το παιχνίδι είναι ότι τα πλακίδια ενώνονται μεταξύ τους με ένα σύστημα συμπλεκόμενων εξοχών που κουμπώνουν σε αντικρυστές εσοχές, ενώ το σχήμα των πλακιδίων μπορεί να είναι τετράγωνο ή εξάγωνο. Όταν ενώνονται τα εξάγωνα πλακίδια, δημιουργούν διαδρόμους, οι οποίοι δεν περιορίζονται σε ευθείες γραμμές και ορθές γωνίες, αλλά μπορεί να είναι και διαγώνιοι. Το ρομπότ κινείται, επίσης, μόνο πάνω στον διάδρομο που σχηματίζεται από τα πλακίδια.
Η διεθνής αίτηση διπλώματος ευρεσιτεχνίας WO2018229797A1 αφορά ένα εκπαιδευτικό διαδραστικό παιχνίδι που αποτελείται, επίσης, από πλακίδια που ενώνονται μεταξύ τους και σχηματίζουν, διάδρομο, καθώς, επίσης, και ένα ρομπότ που κινείται πάνω στον διάδρομο. Η διαφορά σε αυτή την αίτηση είναι ότι το ρομπότ δέχεται εντολές και από τον χρήστη και από τα πλακίδια. Οι εντολές αφορούν μόνο την κίνηση πάνω στον διάδρομο, πχ πήγαινε από το πλακίδιο Α στο πλακίδιο Γ.
Εκτός από τα παραπάνω, υπάρχουν παιχνίδια, που δεν φέρονται να ενσωματώνουν κάποιο δίπλωμα ευρεσιτεχνίας, και τα οποία διαθέτουν ένα ταμπλό, πάνω στο οποίο κουμπώνουν τα πλακάκια εντολών. Το δε ρομπότ, συνήθως, κινείται πάνω στο ίδιο ταμπλό λαμβάνοντας τις κινητικές εντολές από τα πλακάκια μέσω του ταμπλό. Τέλος υπάρχει παιχνίδι με ταμπλό που, σε ένα τμήμα του, διαθέτει τρύπες με προκαθορισμένες εντολές, στις οποίες ο χρήστης τοποθετεί τουβλάκια με τα οποία ενεργοποιεί την εντολή και την στέλνει στο ρομπότ, το οποίο κινείται.
Σε όλες τις παραπάνω περιπτώσεις, το ρομπότ κινείται είτε πάνω στον διάδρομο που σχηματίζουν τα πλακίδια είτε χρησιμοποιεί προκαθορισμένο ταμπλό για να προγραμματιστεί. Το ρομπότ εκτελεί κυρίως κινητικές εντολές, ενώ οι εντολές είναι προκαθορισμένες και δεν ελέγχονται από τη βάση διότι είναι παθητικές (χωρίς ευφυΐα). Στα συστήματα αυτά, συνήθως, οι εντολές διαβιβάζονται από το ίδιο το ταμπλό, το οποίο ενίοτε λειτουργεί και ως κέντρο ελέγχου. Όλα τα ανωτέρω παιχνίδια απευθύνονται σε παιδιά, ενώ οι δυνατότητες τους είναι περιορισμένες, καθώς κινούνται ή προγραμματίζονται μόνο πάνω σε προκαθορισμένη επιφάνεια, δηλαδή διάδρομο ή ταμπλό. Το σημαντικότερο και κοινό χαρακτηριστικό όλων των ανωτέρω συστημάτων είναι ότι εφαρμόζουν απτικό σύστημα με προκαθορισμένες εντολές. Κανένα δεν εφαρμόζει ταυτόχρονα γραφικό προγραμματισμό και, πολύ περισσότερο, δεν συνδυάζει τον απτικό με τον γραφικό προγραμματισμό. Επομένως, από τα γνωστά, μέχρι σήμερα, συστήματα, κανένα δεν διαθέτει ενεργές εντολές (με ευφυΐα) οι οποίες ελέγχονται από την βάση με κοινό δίαυλο επικοινωνίας, κανένα δεν διαθέτει παραμέτρους με όψεις (πλευρές) οι οποίες αναπαριστούν διαφορετικές προγραμματιστικές έννοιες, κανένα δεν διαθέτει εντολές που ρυθμίζουν και διαβάζουν τις παραμέτρους, κανένα δεν μπορεί να προγραμματιστεί από απόσταση, κανένα δεν έχει δυνατότητα αναβάθμισης λογισμικού μέσω διαδικτύου στη βάση και στο ρομπότ, κανένα δεν είναι υβριδικό, δηλαδή να συνδυάζει ταυτόχρονα τον απτικό με τον γραφικό προγραμματισμό. Η παρούσα εφεύρεση επιλύει τα ανωτέρω προβλήματα, εφαρμόζοντας, για πρώτη φορά, το συνδυασμό καινοτόμων τεχνικών χαρακτηριστικών.
Παρουσίαση της εφεύρεσης
[007] Η παρούσα εφεύρεση συνίστσται σε ένα σύστημα υβριδικής καθοδήγησης εκπαιδευτικού ρομπότ που αποτελείται από μηχανήματα με κυκλώματα και λογισμικό. Τα μηχανήματα είναι α) ρομπότ, β) βάση, γ) μπλοκ με αποθηκευμένες εντολές δ) κοινό δίαυλο επικοινωνίας (9) της βάσης με τα μπλοκ εντολών, ε) μπλοκ παραμέτρων και στ) οθόνη με λειτουργικό σύστημα.
Το βασικό σύστημα καθοδήγησης περιλαμβάνει α) ρομπότ, β) βάση και γ) μπλοκ εντολών με αποθηκευμένες εντολές, που συνδέονται στη βάση. Τα μπλοκ εντολών συνδέονται στη βάση διαδοχικά, οι εντολές διαβιβάζονται από τα μπλοκ και στέλνονται με κοινό δίαυλο επικοινωνίας, στη βάση, η οποία αφού συγκεντρώσει και ελέγξει τις εντολές, τις στέλνει, με ασύρματο δίκτυο, στο ρομπότ προς εκτέλεση. Αυτό το σύστημα είναι σύστημα απτικής καθοδήγησης , καθώς στηρίζεται στην αφή. Ο χρήστης πιάνει τα μπλοκ και τα συνδέει στη βάση, δημιουργώντας μία αλληλουχία εντολών.
Στο βασικό αυτό απτικό σύστημα, μπορούν να συνδεθούν και μπλοκ παραμέτρων, τα οποία συνδέονται στα μπλοκ εντολών και παραμετροποιούν τις αποθηκευμένες σε αυτά εντολές. Επίσης, οι εντολές που είναι αποθηκευμένες στα μπλοκ εντολών μπορούν να μεταβάλλονται με γραφική καθοδήγηση, δηλαδή μέσω λειτουργικού συστήματος που επικοινωνεί ασύρματα, μέσω της βάσης, με τα μπλοκ εντολών.
Η βάση, που έχει, ενδεικτικά, ορθογώνιο σχήμα, είναι το κέντρο ελέγχου, στο οποίο συγκεντρώνονται οι εντολές από τα μπλοκ εντολών και παραμέτρων και διαβιβάζονται στο ρομπότ προς εκτέλεση. Η βάση έχει δύο κουμπιά, εκ των οποίων το ένα χρησιμοποιείται για να αποθηκεύει σε μπλοκ εντολών, η βάση τις εντολές που έχει συγκεντρώσει και το άλλο για να διαβιβάζει τις εντολές στο ρομπότ. Τα μπλοκ εντολών, που έχουν, ενδεικτικά, τετράγωνο σχήμα και, είναι μικρότερα από τη βάση, έχουν το κάθε ένα από μία ενσωματωμένη εντολή ή έχουν αποθηκευμένη αλληλουχία εντολών. Τα μπλοκ εντολών ενώνονται με τη βάση και μεταξύ τους με μαγνήτες, σχηματίζοντας μία σειρά από εντολές. Κάθε ένα μπλοκ εντολών μπορεί να δεχθεί μέχρι και μία παράμετρο. Η παράμετρος, που μπορεί να αφορά πχ επανάληψη 2 φορές της εντολής, δίδεται στο μπλοκ εντολών μέσω ενός μπλοκ παραμέτρου, το οποίο, συνήθως, έχει ορθογώνιο σχήμα. Το μπλοκ παράμετρος ενώνεται, επίσης, με μαγνήτη, με το μπλοκ εντολής.
Το κύκλωμα της βάσης και τα κυκλώματα των μπλοκ εντολών διαθέτουν κονέκτορες με τέσσερις όμοιες ακίδες που συνδέονται μεταξύ τους, όταν η βάση συνδέεται με τα μπλοκ, εκ των οποίων η πρώτη ακίδα χρησιμοποιείται για τροφοδοσία με ηλεκτρική ενέργεια από τη βάση προς τα μπλοκ, η δεύτερη ακίδα χρησιμοποιείται για διαβίβαση εντολών από τη βάση προς τα μπλοκ, η τρίτη ακίδα χρησιμοποιείται προκειμένου τα μπλοκ να επιστρέφουν τις εντολές που έχουν αποθηκευμένες, και η τέταρτη ακίδα χρησιμοποιείται για γείωση. Οι ακίδες στους κονέκτορες μπορεί να είναι περισσότερες ή λιγότερες, αλλά είναι τουλάχιστον τρεις.
Επίσης, η βάση, τα μπλοκ εντολών και τα μπλοκ παραμέτρων διαθέτουν μαγνήτες προκειμένου να συνδέονται μεταξύ τους. Η βάση διαθέτει μαγνήτες βόρειας πολικότητας. Κάθε μπλοκ εντολών από τη μία πλευρά μαγνήτες νότιας πολικότητας, ώστε να μπορούν να συνδεθούν με τη βάση, και από την άλλη πλευρά μαγνήτες βόρειας πολικότητας, ώστε να συνδέεται με την πλευρά που έχει μαγνήτες νότιας πολικότητας άλλου μπλοκ εντολών. Κάθε μπλοκ εντολών έχει μαγνήτες και σε τρίτη πλευρά, στην οποία μπορεί να συνδεθεί ένα μπλοκ με παράμετρο.
Εκτός από τους μαγνήτες, στη συνδεσιμότητα εφαρμόζεται και ένα σύστημα φυσικού εμποδίου, που στηρίζεται σε εσοχές και εξοχές. Η βάση στις πλευρές που συνδέεται με τα μπλοκ εντολών διαθέτει τουλάχιστον ένα φυσικό εμπόδιο, προκειμένου να επιτυγχάνεται η ορθή σύνδεση των καλωδιώσεων, το οποίο αποτελείται από μία εξοχή και μία εσοχή. Επίσης, κάθε μπλοκ εντολών στις πλευρές που συνδέεται με άλλο μπλοκ και με τη βάση, διαθέτει φυσικό εμπόδιο, προκειμένου να επιτυγχάνεται η ορθή σύνδεση των καλωδιώσεων, το οποίο αποτελείται τουλάχιστον από μία εξοχή και τουλάχιστον μία εσοχή. Ο μηχανισμός λειτουργεί ως εξής. Στην πλευρά της βάσης, που θα συνδεθεί ένα μπλοκ εντολών, υπάρχει μία εσοχή και μία εξοχή. Στο μπλοκ εντολών, υπάρχουν, επίσης, μία εσοχή και μία εξοχή, αλλά αντιδιαμετρικά, δηλαδή αντικρυστά από την εσοχή της βάση υπάρχει η εξοχή του μπλοκ, ενώ αντικρυστά από την εξοχή της βάσης υπάρχει η εσοχή του μπλοκ. Με τον μηχανισμό αυτό εξασφαλίζεται ότι οι καλωδιώσεις της βάσης και των μπλοκ θα συνδεθούν σωστά, χωρίς να υπάρχει κίνδυνος να καεί το κύκλωμα. Έτσι, αν ο χρήστης προσπαθήσει να εφαρμόσει ανάποδα τη βάση με ένα μπλοκ ή δύο μπλοκ μεταξύ τους, χωρίς η κάθε εξοχή να κουμπώνει σε μία εσοχή, τότε δεν επιτυγχάνει σύνδεση. Ο μηχανισμός αυτός περιέχει και εκπαιδευτική λειτουργία, αφού ο χρήστης αντιλαμβάνεται ότι δεν εφαρμόζει σωστά τα επιμέρους τμήματα του συστήματος και ότι πρέπει να αντιστρέφει το μπλοκ για να το κουμπώσει, μαθαίνοντας έτσι από τα λάθη του.
Ο χρήστης ενώνοντας απτικά τα μπλοκ εντολών με τη βάση, και πατώντας το κουμπί της διαβίβασης των εντολών, οι εντολές στέλνονται στο ρομπότ, το οποίο τις εκτελεί με τη σειρά που έχουν δοθεί στη βάση, δηλαδή με τη σειρά που ενώθηκαν τα μπλοκ εντολών στη βάση. Ο χρήστης μπορεί να διαφοροποιεί τον συνδυασμό εντολών και παραμέτρων όπως θέλει.
Το σύστημα αυτό μπορεί να ενωθεί με οθόνη που διαθέτει λειτουργικό σύστημα, όπως πχ ένας ηλεκτρονικός υπολογιστής, ένα τάμπλετ ή ένα κινητό. Το σύστημα διαθέτει λογισμικό που αναπαριστά ψηφιακά τη βάση και τα μπλοκ εντολών. Ο χρήστης μπορεί να ενώνει ψηφιακά τα μπλοκ εντολών στη βάση και να στέλνει τις εντολές στο ρομπότ μέσω ηλεκτρονικού υπολογιστή, του τάμπλετ ή του κινητού τηλεφώνου. Επίσης, μέσω του λογισμικού, μπορεί να μεταβάλει τις εντολές που έχει το κάθε μπλοκ εντολών. Πρόκειται δηλαδή για ένα σύστημα που είναι δυναμικό, μεταβαλλόμενο και διαδραστικό, αλλά, πάνω από όλα, είναι ένα σύστημα υβριδικό, καθώς συνδυάζει την καθοδήγηση του ρομπότ με απτικά και γραφικά μέσα.
Το ρομπότ
[008] Το ρομπότ διαθέτει ρόδες, κορμό, κινητήρα (ή κινητήρες), οθόνη, φώτα, ηχεία και μπορεί να κινείται σχεδόν σε οποιαδήποτε σταθερή επιφάνεια. Η κίνηση του ρομπότ δεν περιορίζεται σε προκαθορισμένο διάδρομο, ταμπλό ή άλλη προκαθορισμένη επιφάνεια. Οι ρόδες είναι ενδεικτικά δύο, μία από κάθε πλευρά, αλλά μπορεί να είναι και περισσότερες. Ο κορμός έχει ενδεικτικό ύψος 5 εκατοστά, αλλά μπορεί να έχει και μεγαλύτερο ή μικρότερο ύψος. Επίσης, το ρομπότ διαθέτει οθόνη στο πάνω μέρος του κορμού, στο οποίο εμφανίζονται πρόσωπα με διάφορα χαρακτηριστικά και διάφορες εκφράσεις. Το πλαίσιο γύρω από την οθόνη μπορεί να αποτελείται από μαγνητισμένο μέταλλο, προκειμένου να εφαρμόζονται διάφορα μεταλλικά πράγματα και αξεσουάρ, όπως μαλλιά, καπέλα κλπ. Κάτω από την οθόνη διαθέτει ποδιά αλουμινίου, στην οποία μπορεί ο χρήστης να γράφει, να ζωγραφίζει και να σβήνει. Επίσης, το ρομπότ διαθέτει ηχεία, από τα οποία μπορούν να εκπέμπονται ήχοι, φωνές και μουσική, καθώς και φώτα τα οποία μπορούν να αλλάζουν χρώματα και να αναβοσβήνουν. Ακόμη, το ρομπότ μπορεί να διαθέτει πυκνωτικό αισθητήρα αφής, μετρητή θερμοκρασίας, αισθητήρα για τη μέτρηση φωτός, απόστασης και την αναγνώριση χειρονομιών, αισθητήρα χρώματος, καθώς επίσης ενισχυτή μικροφώνου για την αναγνώριση ήχου και κάρτα SD για την ανάγνωση και το γράψιμο αρχείων.
Η τροφοδοσία του ρομπότ γίνεται με κάθε γνωστό τρόπο, υφιστάμενο ή μελλοντικό. Ενδεικτικά, μπορεί να γίνει ως εξής. Μπορεί να γίνει από μπαταρία Ιόντων Λιθίου τύπου 18650. Για τη φόρτιση της χρησιμοποιείται το ολοκληρωμένο κύκλωμα ΤΡ4056, και για την προστασία της το σύστημα διαχείρισης μπαταρίας DW01 σε συνδυασμό με το πακέτο mosfet FS8205A. Η τάσης της μπαταρίας στο πρώτο στάδιο της αυξάνεται με το booster, στα 5vDC, και έπειτα μειώνεται στα 3.3vDC. Αυτό γίνεται για να έχουμε σταθερή τροφοδοσία στα 3.3vDC σε όλο το φάσμα λειτουργίας της μπαταρίας (4,2vDC - 3,7vDC). Η μπαταρία του ρομπότ έχει προστασίες overcharge, over discharge και overcurrent.
Το ρομπότ διαθέτει θύρα USB, η οποία λειτουργεί αφενός ως θύρα φόρτισης και αφετέρου ως θύρα σύνδεσης με συσκευή από την οποία λαμβάνει εντολές, όπως υπολογιστή, ταμπλέτα, έξυπνο κινητό ή οποιαδήποτε άλλη συσκευή μέσα από την οποία μπορεί κάποιος να καθοδηγήσει γραφικά το ρομπότ.
Το ρομπότ και η βάση επικοινωνούν αμφίδρομα, καθώς η βάση διαθέτει αλγόριθμο αμφίδρομης επικοινωνίας με το ρομπότ. Το ρομπότ και η βάση διαθέτουν από ένα σημείο πρόσβασης (access point), έναν εξυπηρετητή (Webserver), που φιλοξενεί μία ή περισσότερες ιστοσελίδες (websites), μέσω των οποίων γίνεται η παραμετροποίησή τους. Η σύνδεση του ρομπότ με τη βάση γίνεται με απόδοση ονόματος και κωδικού στη βάση, μέσω του σημείου πρόσβασης της, και καταχώριση του ίδιου ονόματος και κωδικού στο ρομπότ, μέσω του δικού του σημείου πρόσβασης.
Επιπλέον, το ρομπότ αποτελείται από τέσσερα αυτόνομα κυκλώματα εξόδου : α) ελεγκτή μοτέρ για τον έλεγχο των δύο μοτέρ, β) σύνδεσμο οθόνης για τη σύνδεση της οθόνης του ρομπότ, γ) ενισχυτή ήχου για την οδήγηση του ηχείου του ρομπότ και δ) Led RGB. Στην καρδιά του ρομπότ βρίσκεται ένας μικροελεγκτής, ενδεικτικά, διπύρηνος τύπου ESP-32, ο οποίος είναι υπεύθυνος για ολόκληρη τη λειτουργίας του ρομπότ.
Ο μικροελεγκτής διαχειρίζεται ακόμα τη σύνδεση στο ίντερνετ, τις συνδέσεις με τις βάσεις, την κάρτα SD για την αποθήκευση αρχείων, τις εξόδους και τις εισόδους του ρομπότ και παρακολουθεί τη στάθμη της μπαταρίας.
Η SD και η Οθόνη, συνδέονται στο ρομπότ μέσω της διεπαφής SPI του μικροελεγκτή. Η έξοδος του ηχείου, ελέγχετε μέσω της διεπαφή I<2>S. Ο έλεγχος των μοτέρ γίνεται μέσω PWM σημάτων που οδηγούν το Η-Bridge. To RGB LED ελέγχεται μέσω της βιβλιοθήκης WS2812. Ο Αισθητήρας φωτός, χώματος, απόστασης και χειρονομιών (APDS Sensor) συνδέεται μέσω της διεπαφής I<2>C , και ενεργοποιείται μόνο όταν χρειάζεται να διαβαστούν οι είσοδοί του. Ο αισθητήρας θερμοκρασίας διαβάζεται μέσω ενός αναλογικού ενισχυτή τάσης. Ο αισθητήρας touch, ελέγχεται από το ίδιο τον μικροελεγκτή, μέσω της διεπαφής αφής. Το μικρόφωνο διαβάζεται μέσω ενός αναλογικού ενισχυτή τάσης.
Το ρομπότ έχει ενδεικτικά 520KB RAM και 4ΜΒ εσωτερική μνήμη που είναι χωρισμένοι ως εξής:
Bootloader: Είναι υπεύθυνο για την σωστή εκκίνηση.
Partition Table: Περιέχει την δομή της flash.
NVS: Περιέχει ρυθμίσεις συστήματος
ota_data : Είναι υπεύθυνο για τον πιο θα είναι το επόμενο partition που θα εκτελεστεί.
Factory: Είναι υπεύθυνο για την αναβάθμιση λογισμικού τους συστήματος
Main Αρρ: Το κύριο πρόγραμμα του ρομπότ
Images: Περιέχει την εικόνες και τα εικονίδια που χρησιμοποιούνται από το κύριο πρόγραμμα.
Settings: Αποθήκευση ρυθμίσεων χρήστη.
[009] Το ρομπότ έχει τη δυνατότητα να κινείται πάνω στις ρόδες προς τα μπροστά, προς τα πίσω, να στρίβει αριστερά ή δεξιά. Στην οθόνη, εμφανίζονται πρόσωπα τα οποία μπορεί να αλλάζουν χαρακτηριστικά και έκφραση, αλλά και λέξεις, εκφράσεις και προτάσεις. Το ρομπότ μπορεί, επίσης, να εκπέμπει ήχους, φωνές ή/και μουσική, να αναβοσβήνει σε διάφορες αποχρώσεις τα φώτα που βρίσκονται πάνω του, ενώ μπορεί να στέλνει εντολές σε άλλες συσκευές ή/και μηχανισμούς, πχ για να ανάψει ή να σβήσει ένα φως ή να ενεργοποιήσει ένα ραδιόφωνο. Όσον αφορά τις φωνές, υπάρχει η δυνατότητα, με γραφική καθοδήγηση, να γράφει ο χρήστης κείμενο και το ρομπότ να εκπέμπει το κείμενο με φωνητική ανάγνωση.
Ο τοπικός χρήστης, για τη σύνδεση του στο ρομπότ, μπορεί είτε να συνδεθεί απευθείας στο Σημείο Πρόσβασης του ρομπότ, είτε να συνδεθεί στο τοπικό δρομολογητή που έχει συνδεθεί το ρομπότ. Με αυτό τον τρόπο μπορεί ο τοπικός χρήστης να έχει πρόσβαση, μέσω φυλλομετρητή ιστοσελίδων, στις ιστοσελίδες που φιλοξενούνται τοπικά στον εξυπηρετητή του ρομπότ. Οι ιστοσελίδες που φιλοξενούνται στο ρομπότ είναι: α) ιστοσελίδες ρυθμίσεων του ρομπότ με τις οποίες οι χρήστες μπορούν να ρυθμίσουν τις λειτουργίες του ρομπότ, ενδεικτικά, όπως την ταχύτατα του, τις εικόνες και τα προφίλ που θα χρησιμοποιεί, την ένταση των ήχων και τους ήχους που αναπαράγει το ρομπότ, τα στοιχεία του τοπικού δρομολογητή που θα συνδεθεί το ρομπότ, την ευαισθησία των αισθητήρων κ.λπ. β) ιστοσελίδα η οποία επιτρέπει στον τοπικό χρήστη να αλλάξει τις αποθηκευμένες εντολές στα μπλοκ εντολών, γ) ιστοσελίδα αποστολής εντολών, η οποία επιτρέπει στον τοπικό χρήστη να στέλνει, με γραφικό περιβάλλον, στο ρομπότ εντολές καθοδήγησης ή και ακόμα να στείλει, μέσω του ρομπότ, στη βάση εντολές που αποθηκεύονται σε μπλοκ πολλαπλών εντολών.
Ο τοπικός δρομολογητής επιτρέπει στο ρομπότ να συνδεθεί στο ίντερνετ, και επομένως σε απομακρυσμένο διαδικτυακό εξυπηρετητή. Η σύνδεση αυτή γίνεται μέσω WebSocket, μετά από την διαδικασία ενεργοποίησης του ρομπότ, και την δημιουργία κλειδιού ταυτοποίησης, μέσα από τον διαδικτυακό εξυπηρετητή. Το κάθε ρομπότ μπορεί να διεκδικηθεί από μόνο έναν χρήστη, στον οποίο ανήκει Τα WebSocket επιτρέπουν σε απομακρυσμένο διαδικτυακό εξυπηρετητή, να έχει αμφίδρομη επικοινωνία με το ρομπότ να στέλνει και να λαμβάνει εντολές σε πραγματικό χρόνο. Με αυτό τον τρόπο το ρομπότ καθοδηγείται από έναν γραφικό περιβάλλον, το οποίο φιλοξενείται στον απομακρυσμένο διαδικτυακό εξυπηρετητή αρκεί ο απομακρυσμένος χρήστης να έχει πρόσβαση σε αυτόν τον διαδικτυακό εξυπηρετητή. Ταυτόχρονα, το ρομπότ μπορεί να στέλνει και να λαμβάνει ρυθμίσεις, αρχεία, καθώς και να στέλνει καταγραφικά, για την δημιουργία στατιστικών χρήσης.
Προκειμένου το ρομπότ να αξιοποιήσει τις λειτουργίες των WebSocket, ο χρήστης πρέπει να έχει ενεργοποιημένο τον απομακρυσμένο έλεγχο στο ρομπότ του και ενεργή σύνδεση στο διαδίκτυο. Η διαδικασία σύνδεσης ακολουθεί επακριβώς τη διαδικασία σύνδεσης του πρωτοκόλλου WebSocket, δηλαδή αρχικοποίηση και δέσμευση επικοινωνιακού καναλιού, και ο απομακρυσμένος εξυπηρετητής ελέγχοντας το κλειδί ταυτοποίησης, που στάλθηκε με το πακέτο χειραψίας αποφασίζει να δεχτεί ή να απορρίψει τη σύνδεση. Εάν η σύνδεση γίνει αποδεκτή, το κανάλι παραμένει ανοιχτό για την αμφίδρομη ανταλλαγή δεδομένων μεταξύ του απομακρυσμένου εξυπηρετητή και του ρομπότ.
Η σύνδεση στο ίντερνετ επιτρέπει το ρομπότ να ελέγχει συσκευές του διαδικτύου των πραγμάτων (ΙοΤ) ή να ενεργοποιεί γεγονότα ή και προγράμματα στέλνοντας και λαμβάνοντας δεδομένα από διαδικτυακάς υπηρεσίες (αιτήματα POST ή/και GET) Η διαδικτυακή υπηρεσία με τη σειρά της αναλαμβάνει να χειριστεί κατάλληλα τα αιτήματα του ρομπότ προκειμένου να παράγει τις ενέργειες που επιθυμεί ο χρήστης. Ενδεικτικά, τέτοιες διαδικτυακάς υπηρεσίες θα μπορούσε να είναι πλατφόρμες λογισμικού που συνδέουν συσκευές και υπηρεσίες, από διαφορετικούς χρήστες προκειμένου να ενεργοποιήσει έναν ή περισσότερους αυτοματισμούς που αφορούν αυτές τις εφαρμογές, συσκευές και υπηρεσίες
[010] Το ρομπότ μπορεί να δέχεται εντολές ασύγχρονες ή σύγχρονες. Ασύγχρονες είναι οι εντολές οι οποίες δεν απενεργοποιούνται μόνες τους, δηλαδή υπάρχει άλλη εντολή που τις απενεργοποιεί. Σύγχρονες είναι οι εντολές με συγκεκριμένο χρόνο εκτέλεσης, μετά τον οποίο απενεργοποιούνται.
Οι βασικές εντολές είναι οι εξής α) «STEP», β) «MOTOR_ADV», γ) «DISPLAY_PRESET », δ) « DI SP LAY_FACE» , ε) «PRINT TEXT», στ) «AUDIO_ΜP3», ζ) «AUDIO_RADIO», η) «AUDIO_T2S», θ) «RGB», ι) «ΙΟΤ» και κ) «DELAY». Όλες οι εντολές μπορούν να σταλούν στο ρομπότ, και να εκτελεστούν, είτε από μια βάση (από μπλοκ μονής εντολής ή πολλαπλών εντολών), είτε μέσω από τη σελίδα που φιλοξενείται στο ρομπότ, είτε απομακρυσμένα από (websocket).
Η εντολή «STEP», κινεί το ρομπότ σε προκαθορισμένα βήματα, με παραμετροποιήσιμο αριθμό επανάληψης. Χωρίζεται σε τέσσερις υπό-εντολές :
• Μπροστά - Αναγνωριστικό : 64 (0x40)
• Πίσω - Αναγνωριστικό : 65 (0x41)
• Αριστερά- Αναγνωριστικό : 66 (0x42)
• Δεξιά - Αναγνωριστικό : 67 (0x43)
Η εντολή δέχεται παράμετρο τύπου byte, με όρια: 1-9 περιεκτικά, που δηλώνει το αριθμό βημάτων (επαναλήψεων).
Την εντολή επηρεάζουν τέσσερις ρυθμίσεις: I) η ρύθμιση 'stepSize', που καθορίζει το χρόνο του βήματος, II) η ρύθμιση 'stepSpeed', που καθορίζει τον κύκλο λειτουργίας (duty cycle) του PWM σήματος των κινητήρων, III) η ρύθμιση 'motorOffset', που καθορίζει την απόκλιση του δεξιού με τον αριστερό κινητήρα και IV) η ρύθμιση 'turnSize', που καθορίζει τον χρόνο της στροφής.
Η εντολή έχει μεταβλητό χρόνο εκτέλεσης, που εξαρτάται από τις ρυθμίσεις και τον αριθμό των βημάτων. Η εντολή είναι σύγχρονη.
Η εντολή «MOTOR_ADV», ελέγχει τους κινητήρες του ρομπότ και αποτελείται από μία εντολή:
• Motor ADV- Αναγνωριστικό: (0x40)
Η εντολή παίρνει 3 παραμέτρους:
• Κατεύθυνση (εμπρός, πίσω)
• Κινητήρα (δεξί ή αριστερό ή και τους δύο)
· Ταχύτητα (0-255)
Την εντολή επηρεάζει η ρύθμιση MotorOffset (Καθορίζει την απόκλιση του δεξιού με τον αριστερό κινητήρα)
Η εντολή έχει σταθερό χρόνο εκτέλεσης. Η εντολή είναι ασύγχρονη.
Η εντολή «DISPLAY_PRESET», εμφανίζει στην οθόνη μία από τις εικόνες του συστήματος, ή του χρήστη εάν έχει ρυθμιστεί. Η εντολή χωρίζεται σε :
• Απλή (simple) - Αναγνωριστικό: (0x47)
• Προχωρημένη (adv) - Αναγνωριστικό: (0xΑ1)
Η εντολή δέχεται 2 παραμέτρους:
• Τον αριθμό της εικόνας (1-9 περιεκτικά)
• Τον χρόνο που θα παραμείνει η εικόνα στην οθόνη (σε millisecond)
Η εντολή έχει μεταβλητό χρόνο εκτέλεσης, που εξαρτσται από την παράμετρο χρόνου, συν περίπου 500ms για την εκτέλεση της. Η παράμετρος χρόνου είναι προαιρετική και η προκαθορισμένη τιμή της ρυθμίζεται από τη ρύθμιση<'>ImageTime<'>. Η εντολή είναι σύγχρονη. Η απλή εντολή αγνοεί την παράμετρο χρόνου, ενώ η προχωρημένη τη χρειάζεται.
Η εντολή «PRINT_TEXT», γράφει στην οθόνη κείμενο. Το ρομπότ έχει τη δυνατότητα τύπωσης μόνο λατινικών χαρακτήρων, οποιοσδήποτε άλλος χαρακτήρας θα εμφανίζεται με την μορφή '?'' . Η εντολή χωρίζεται σε :
• Απλή (simple) - Αναγνωριστικό: (0xΑ2)
• Προχωρημένη (adv) - Αναγνωριστικό: (0xΑ4)
Η εντολή δέχεται 7 παραμέτρους:
Το κείμενο
Το μέγεθος της γραμματοσειράς (1-4 περιεκτικά)
Το αρχικό 'X'
Το αρχικό 'Y'
Τον χρόνο που θα παραμείνει στην οθόνη
Το χρώμα της γραμματοσειράς
Το χρώμα του υποβάθρου
Η εντολή έχει μεταβλητό χρόνο εκτέλεσης, που ορίζεται από την μεταβλητή χρόνου (σε ms), συν περίπου 200ms για την εκτέλεση της. Η παράμετρος χρόνου είναι προαιρετική και η προκαθορισμένη τιμή της ρυθμίζεται από την ρύθμιση<'>PrintTime<'>. Η εντολή είναι σύγχρονη.
Η απλή εντολή αγνοεί την παράμετρο χρόνου, ενώ η προχωρημένη τη χρειάζεται.
Η εντολή «AUDIO_MP3», παίζει στο ηχείο τους ήχους συστήματος ή του χρήστη εάν έχουν ρυθμιστεί. Η εντολή χωρίζεται σε μία κατηγορία :
• Audio - Αναγνωριστικό : (0x48)
Η εντολή δέχεται μία παραμέτρο:
• Το αναγνωριστικό του ήχου (1-9 περιεκτικά)
Η εντολή έχει μεταβλητό χρόνο εκτέλεσης, που ορίζεται από το μέγεθος του αρχείου ήχου, συν περίπου 200ms για την εκτέλεση της. Η εντολή είναι σύγχρονη, παρόλα αυτά υπάρχει επιλογή ασύγχρονης αλλά μόνο για το σύστημα. Η εντολή επηρεάζεται από την ρύθμιση<'>audioVolume<'>.
Η εντολή «AUDIO_RADIO», συνδέεται και παίζει έναν διαδικτυακό ραδιοφωνικό σταθμό, επιλογής του χρήστη. Η εντολή χωρίζεται σε δύο υπό-εντολές :
• Radio Start - Αναγνωριστικό: (0x49)
• Radio Stop - Αναγνωριστικό: (0x50)
Η εντολή δέχεται 2 παραμέτρους:
• To αναγνωριστικό του σταθμού (1-9 περιεκτικά)
· Αρχή (true ή false)
Η παράμετρος 'Αρχή' ρυθμίζεται από την εντολή. Στην περίπτωση εντολής «Radio Start» η παράμετρος 'Αρχή' έχει τιμή 'true', ενώ στην περίπτωση εντολής «Radio Stop» η παράμετρος έχει τιμή 'false' .
Η εντολή έχει σταθερό χρόνο εκτέλεσης, αφού είναι ασύγχρονη. Η εντολή επηρεάζεται από την ρύθμιση 'audioVolume' . Σε περίπτωση που η εντολή «Radio Start» είναι εν λειτουργία, και μία εντολή «AUDIO_MP3» εκτελεστεί τότε η εντολή «Radio Start» αυτομάτως σταματά.
Η εντολή «AUDIO_T2S», παίρνει ως παράμετρο κείμενο, το οποίο το μετατρέπει, μέσω του απομακρυσμένου διαδικτυακό εξυπηρετητή, σε mp3 ήχο τον οποίο παίζει. Η εντολή απστελείται από μία υπό-εντολή:
• T2S - Αναγνωριστικό: (0xΑ5)
Η εντολή δέχεται 1 παραμέτρο:
• Το κείμενο προς μετατροπή
Η Εντολή έχει μεταβλητό χρόνο εκτέλεσης, που καθορίζεται από το κείμενο προς μετατροπή. Η εντολή επηρεάζεται από την ρύθμιση 'audioVolume' και από την ρύθμισή 't2sLang'. Η εντολή απαιτεί πρόσβαση στο διαδίκτυο. Σε περίπτωση που η εντολή «Radio Start» είναι εν λειτουργία, και μία εντολή «AUDIO_T2S» εκτελεστή τότε η εντολή «Radio Start» αυτομάτως σταματά.
Η εντολή «RGB», ελέγχει το χρώμα του LED στο ρομπότ. Η εντολή χωρίζεται σε τρεις υπό εντολές:
• Απλή (simple) - Αναγνωριστικό (0x44)
• Σβήσιμο - Αναγνωριστικό (0x45)
• Προχωρημένη (adv) - Αναγνωριστικό (0xΑ6)
Η εντολή είναι ασύγχρονη. Η εντολή στην απλή της μορφή δέχεται μία παράμετρο αριθμού που αντιστοιχεί σε προκαθορισμένα χρώματα.
Η εντολή δέχεται 3 παραμέτρους :
• Red - Ποσότητα κόκκινου φωτός
• Green - Ποσότητα πράσινου φωτός
• Blue - Ποσότητα μπλε φωτός
Η εντολή σβησίματος δεν δέχεται παραμέτρους. Η εντολή στην προχωρημένη της μορφής δέχεται 3 παραμέτρους που αντιστοιχούν στην ποσότητα του κόκκινου, πράσινου και μπλε φωτός. Η εντολή έχει σταθερό χρόνο εκτέλεσης. Η εντολή είναι ασύγχρονη.
Η εντολή «ΙΟΤ», χρειάζεται ενεργή σύνδεση στο διαδίκτυο για να εκτελεστεί και κάνει ένα αίτημα στη διεύθυνση (url) που έχει ορίσει ο χρήστης. Η εντολή αποτελείται από μία υπό-εντολή :
• «ΙΟΤ» - Αναγνωριστικό : (0xΑ7)
Η εντολή παίρνει 2 παραμέτρους :
• Το αναγνωριστικό της διεύθυνσης (URL) (1-9 περιεκτικά),
• Και ένα δυαδικό τελεστής (boolean), που ορίζει εάν το αίτημα θα είναι POST (true), ή GET (false)
Η εντολή είναι σύγχρονη και έχει μεταβαλλόμενο χρόνο εκτέλεσης ανάλογο με τη διάρκεια απάντησης του αιτήματος. Ο μέγιστος χρόνος αναμονής είναι 60 δευτερόλεπτα.
Η εντολή «DELAY», τρέχει μία χρονοκαθυστέρηση στο ρομπότ. Η εντολή αποτελείται από μία υπό-εντολή:
• Delay - Αναγνωριστικό : (0x56)
Η εντολή παίρνει 1 παράμετρο.
• Τον χρόνο της χρονοκαθυστέρησης σε ms
Η εντολή έχει μεταβαλλόμενο χρόνο εκτέλεσης που καθορίζεται από την μεταβλητή χρονοκαθυστέρησης συν 200ms.
Η εντολή «NET_IMAGE» κατεβάζει μία εικόνα από το διαδίκτυο και την εμφανίζει στην οθόνη του ρομπότ. Η εντολή χρειάζεται ενεργή σύνδεση στο διαδίκτυο για να εκτελεστεί καθώς και πιστοποιημένη σύνδεση στον απομακρυσμένο διαδικτυακό εξυπηρετητή.
Η εντολή αποτελείται από μία υπο-εντολή:
• «NET_IMAGE» -αναγνωριστικό (0xC0)
Η εντολή παίρνει 3 παραμέτρους:
Το αναγνωριστικό της εικόνας (0-32767 περιεκτικά),
Και ένα δυαδικό τελεστή (boolean), που ορίζει εάν η εικόνα θα παρθεί ή όχι από τις προσωπικές εικόνες του χρήστη.
Τον χρόνο που θα παραμείνει στην οθόνη
Η εντολή έχει μεταβαλλόμενο χρόνο εκτέλεσης, που καθορίζεται από τον χρόνο ανάκτησης της εικόνας συν τον χρόνο παραμονής της στην οθόνη συν περίπου 500ms για την εκτέλεση της.
Την εντολή επηρεάζει η ρύθμιση «imageTime». Η εντολή είναι σύγχρονη. Σε περίπτωση που δεν υπάρχει εικόνα με το αναγνωριστικό αυτό κατεβαίνει μία προκαθορισμένη εικόνα.
Η εντολή «NET_SOUND» κατεβάζει από το διαδίκτυο και παίζει ένα αρχείο ήχου. Η εντολή χρειάζεται ενεργή σύνδεση στο διαδίκτυο για να εκτελεστεί καθώς και πιστοποιημένη σύνδεση στον απομακρυσμένο διαδικτυακό εξυπηρετητή.
Η εντολή αποτελείται από μία υπο-εντολή:
• «NET_SOUND» - αναγνωριστικό (OxC1)
Η εντολή παίρνει 2 παραμέτρους :
· Το αναγνωριστικό του ήχου (0-32767 περιεκτικά),
• Και ένα δυαδικό τελεστή (boolean), που ορίζει εάν ο ήχος θα παρθεί ή όχι από τους προσωπικούς ήχους του χρήστη.
Η εντολή έχει μεταβλητό χρόνο εκτέλεσης, που ορίζεται από το μέγεθος του αρχείου ήχου, συν περίπου 200ms για την εκτέλεση της. Η εντολή είναι σύγχρονη, παρόλα αυτά υπάρχει επιλογή ασύγχρονης αλλά μόνο για το σύστημα. Η εντολή επηρεάζεται από τη ρύθμιση 'audioVolume' . Σε περίπτωση που δεν υπάρχει ήχος με το αναγνωριστικό αυτό κατεβαίνει ένας προκαθορισμένος ήχος.
[Oil] Η σύνδεση του ρομπότ στο διαδίκτυο επιτρέπει στο ρομπότ να συνδεθεί σε απομακρυσμένο διαδικτυακό εξυπηρετητή προκειμένου να αναβαθμίσει λογισμικό για το ρομπότ και τη βάση.
Η διαδικασία ενημέρωσης λογισμικού συμπεριλαμβάνει α) την ενημέρωση λογισμικού του ρομπότ, β) την ενημέρωση του αρχείου λογισμικού της βάσης, το οποίο βρίσκεται αποθηκευμένο στην μνήμη του ρομπότ και αξιοποιείται αποκλειστικά για την εξυπηρέτηση της διαδικασίας ενημέρωσης λογισμικού της βάσης, και γ) τα αρχεία πόρων του ρομπότ. Τα αρχεία πόρων περιλαμβάνουν τα εικονίδια και τις εκφράσεις που εμφανίζονται στην οθόνη του ρομπότ, τους βασικούς ήχους και εικόνες καθώς και τα αρχεία που απαιτούνται για την εξυπηρέτηση του τοπικού εξυπηρετητή του ρομπότ.
Η διαδικασία ενημέρωσης του λογισμικού του ρομπότ, ξεκινάει όταν ο χρήστης, μέσω του γραφικού περιβάλλοντος, που φιλοξενείται στον τοπικό εξυπηρετητή του ρομπότ, πατήσει το κουμπί αναβάθμισης λογισμικού.
Το ρομπότ μέσω αιτήματος HTTP στέλνει τον αριθμό έκδοσης λογισμού του στον απομακρυσμένο εξυπηρετητή, ο οποίος ελέγχει από τη βάση δεδομένων του εάν η έκδοση λογισμικού είναι η τελευταία. Σε περίπτωση που είναι, απαντάει στο ρομπότ ότι έχει την τελευταία έκδοση και το ρομπότ ενημερώνει τον χρήστη.
Σε περίπτωση που υπάρχει νεότερη έκδοση λογισμικού, το ρομπότ κατεβάζει και αποθηκεύει στη μνήμη του το αρχείο ενημέρωσης. Αν και εφόσον, η λήψη του αρχείου λογισμικού νέας έκδοσης ολοκληρωθεί, το ρομπότ εκκινεί το ’Factory Αρρ'.
Το λογισμικό που είναι υπεύθυνο για τη διαδικασία ενημέρωσης του συστήματος, αποσυμπιέζει το αρχείο νέας έκδοσης λογισμικού, διαγράφει τα παλιά αρχεία από την μνήμη του ρομπότ, και στη συνέχεια γράφει τα αρχεία που αποσυμπίεσε στη μνήμη του.
Εάν, υπάρχει αρχείο ενημέρωσης πόρων οθόνης τότε, το λογισμικό ενημέρωσης, διαγράφη την περιοχή μνήμης 'Images' και αφού αντιγράψει το αρχείο εικόνων σε αυτή την περιοχή διαγράφει το αρχείο που αντέγραψε.
Σε αυτό το σημείο έχει τελειώσει η διαδικασία ενημέρωσης του λογισμικού, και το ρομπότ εκκινεί το κύριο λογισμικό που βρίσκεται στην περιοχή μνήμης 'Main Αρρ'. Η βάση
[012] Η βάση είναι το κέντρο ελέγχου του απτικού συστήματος. Σε αυτήν συγκεντρώνονται οι εντολές με τη σειρά που τις έχει συνδέσει και παραμετροποιήσει ο χρήστης. Από τη βάση διαβιβάζονται οι εντολές στο ρομπότ, το οποίο τις εκτελεί με τη σειρά που έχει συνδέσει ο χρήστης τα αντίστοιχα μπλοκ εντολών στη βάση. Η βάση αποτελείται από α) κυκλώματα φόρτισης, τροφοδοσίας, β) κύκλωμα USB, γ) πόρτες επικοινωνίας, δ) κουμπιά ελέγχου και ε) υλικολογισμικό (firmware).
[013] Η τροφοδοσία της βάσης γίνεται με κάθε γνωστό τρόπο, υφιστάμενο ή μελλοντικό. Ενδεικτικά, μπορεί να γίνει ως εξής. Μπορεί να γίνει από μπαταρία Ιόντων Λιθίου τύπου 18650. Για τη φόρτιση της χρησιμοποιείται το ολοκληρωμένο κύκλωμα ΤΡ4056, και για την προστασία της το σύστημα διαχείρισης μπαταρίας DW01 σε συνδυασμό με το πακέτο mosfet FS8205A. Η τάσης της μπαταρίας στο πρώτο στάδιο της αυξάνεται με το booster, στα 5vDC, και έπειτα μειώνεται στα 3.3vDC. Αυτό γίνεται για να έχουμε σταθερή τροφοδοσία στα 3.3vDC σε όλο το φάσμα λειτουργίας της μπαταρίας (4,2vDC - 3,7vDC). Η μπαταρία της βάσης έχει προστασίες overcharge, over discharge και overcurrent.
Η θύρα USB, ενδεικτικά Type-C, είναι υπεύθυνη για την τροφοδοσία του κυκλώματος φόρτισης, καθώς και για την λήψη εντολών από τη βάση.
Η βάση έχει δύο πόρτες επικοινωνίας: α) την πόρτα «αποθήκευσης» για την αποθήκευση προγράμματος ή την αλλαγή εντολής του μπλοκ εντολής , και β) την πόρτα «εκτέλεσης» για σύνδεση μπλοκ εντολών προς εκτέλεση στο ρομπότ. Οι 2 αυτές πόρτες περιέχουν εσωτερικές pull-down αντιστάσεις οι οποίες βοηθούν στην απόρριψη σφαλμάτων δεδομένων κατά την σύνδεση των μπλοκ εντολών στην βάση.
Η βάση έχει δύο κουμπιά ελέγχου. Το κουμπί «αποθήκευσης» ξεκινάει τη διαδικασία αποθήκευσης προγραμμάτων από την πόρτα «εκτέλεσης» στην πόρτα «αποθήκευσης». Το κουμπί «εκτέλεσης» ξεκινάει τη διαδικασία εκτέλεσης προγράμματος.
Η βάση διαθέτει ένα βομβητή (buzzer) για την ηχητική αναπληροφόρηση του χρήστη, το οποίο ελέγχει, χρησιμοποιώντας ήχο διαφορετικής διάρκειας και συχνότητας.
Στην καρδιά του συστήματος βρίσκεται ένας μικροελεγκτής, ενδεικτικά, διπύρηνος τύπου ESP-32, ο οποίος είναι υπεύθυνος για ολόκληρη τη λειτουργία του συστήματος.
Όσον αφορά το κουμπί «αποθήκευσης», η βάση έχει τη δυνατότητα να αποθηκεύει σε ένα μπλοκ εντολών, το οποίο συνδέεται στην πλευρά της πόρτας «αποθήκευσης», μία σειρά εντολών που είναι αποθηκευμένες σε περισσότερα από ένα μπλοκ εντολών και συνδέονται στην πόρτα «εκτέλεσης» της βάσης, στην οποία καταλήγει ο κοινός δίαυλος επικοινωνίας της βάσης με τα μπλοκ εντολών..
[014] Το υλικολογισμικό της βάσης (firmware), δηλαδή το μόνιμο λογισμικό που είναι προγραμματισμένο για εκτέλεση και βρίσκεται μέσα σε μνήμη (flash memory), είναι γραμμένο στη γλώσσα προγραμματισμού C++, και αποτελείται από 2 μέρη. Το κύριο πρόγραμμα, που τρέχει συνεχόμενα, και το Factory-Αρρ, που είναι υπεύθυνο για την αναβάθμιση του κυρίου προγράμματος από τη μνήμη.
Η βάση έχει ενδεικτικά 520KB RAM και 4ΜΒ εσωτερική μνήμη που είναι χωρισμένη ως εξής:
[015] Η εκτέλεση του προγράμματος του χρήστη ξεκινάει όταν πατηθεί το κουμπί "εκτέλεσης", με το οποίο η βάση ξεκινά τη διαδικασία ανάγνωσης προγράμματος.
Ο μικροελεγκτής της βάσης, ετοιμάζει ένα πακέτο στο οποίο το command byte έχει την τιμή "0x50", που αντιπροσωπεύει την τιμή της εντολής «ανάγνωση ταυτοτήτων», και παράμετρο ("parameterl byte") την τιμή "0x00" (Μηδέν). Οι υπόλοιπες μεταβλητές του πακέτου δεν χρησιμοποιούνται. Στην συνέχεια στέλνει το πακέτο στην πόρτα «εκτέλεσης» και περιμένει το πακέτο απάντησης του μπλοκ εντολής στο 'COMMON BUS' μέχρι και δύο δευτερόλεπτα.
Αν πάρει απάντηση, αποθηκεύει την απάντηση στην μνήμη του και αυξάνει την τιμή της παραμέτρου του πακέτου ("parameterl byte") κατά 1. Στέλνει ξανά ολόκληρο το νέο πακέτο στην πόρτα «εκτέλεσης» και περιμένει για νέα απάντηση από το επόμενο συνδεδεμένο μπλοκ εντολής. Συνεπώς, η τιμή της παραμέτρου, συν ένα, αντιστοιχεί στη θέση του φυσικού μπλοκ εντολής της αλληλουχίας που είναι συνδεδεμένη στη βάση.
Όταν δεν πάρει καμία απάντηση, η βάση θεωρεί ότι έχει φτάσει στο τέλος του προγράμματος του χρήστη.
Αφού τελειώσει η διαδικασία ανάγνωσης ξεκινά η διαδικασία εκτέλεσης προγράμματος.
Η βάση διαβάζει από τη μνήμη της την εντολή με δείκτη την εντολή στην οποία βρίσκεται. Στην συνέχεια αποκωδικοποιεί την εντολή, και στέλνει την εντολή με τον κατάλληλο τρόπο στο ρομπότ. Ταυτόχρονα στέλνει την εντολή «ανάματος Led» με δείκτη το μπλοκ εντολής από το οποίο προήλθε η εντολή, έτσι ώστε το συγκεκριμένο μπλοκ εντολής να ανάψει τα LED του.
Στην συνέχεια περιμένει την απάντηση του ρομπότ. Όταν πάρει απάντηση στέλνει την εντολή «σβησίματος led» με δείκτη το μπλοκ εντολής από το οποίο η εντολή προήλθε, έτσι ώστε το συγκεκριμένο μπλοκ εντολής να σβήσει.
Στην συνέχεια ελέγχει εάν υπάρχει επόμενη εντολή στην μνήμη του, και αν υπάρχει επαναλαμβάνει την ίδια διαδικασία.
Αν δεν υπάρχει οι εντολές έχουν εκτελεστεί και η διαδικασία εκτέλεσης προγράμματος τερματίζεται.
Σε περίπτωση που η ρύθμιση «'Ελεγχος Συντακτικού Σφάλματος» είναι ενεργοποιημένη , τότε πριν ξεκινήσει η διαδικασία εκτέλεσης προγράμματος, η βάση τρέχει την διαδικασία ελέγχου σφαλμάτων.
Κατά την εκκίνηση της διαδικασίας ελέγχου σφαλμάτων, η βάση αναζητά για πιθανά σφάλματα. Τα σφάλματα αυτά μπορεί να είναι, α) συντακτικά ή β) παραμετροποίησης.
Συντακτικά σφάλματα μπορεί να είναι : α) η αρχικοποίηση της εντολής «IF» χωρίς να υπάρχει η κατάλληλη εντολής «IF_END» β) η αρχικοποίηση της εντολής «FOR» χωρίς να υπάρχει η κατάλληλη εντολή «FOR_END» γ) ορφανή εντολή «IF_END» χωρίς πρωταρχική εντολή «IF» δ) ορφανή εντολή «FOR_END» χωρίς πρωταρχική εντολή «FOR_END».
Λάθη παραμετροποίησης συμβαίνουν όταν ο χρήστης συνδέει λάθος μπλοκ παραμέτρων σε εντολές α) λάθος τύπου ή β) σε μπλοκ εντολών που δεν παίρνουν μπλοκ παραμέτρων.
Σε περίπτωση ανάγνωσης σφάλματος, η βάση ακυρώνει την διαδικασία εκτέλεσης προγράμματος, και στην συνέχεια στέλνει την εντολή «LED Animation» στα μπλοκ εντολών στα οποία ανίχνευσε λάθη για την εικονική αναπληροφόριση του χρήστη.
[016] Η διαδικασία αποθήκευσης εντολών αφορά μόνο συγκεκριμένα μπλοκ τα οποία επιτρέπουν την αποθήκευση εντολών.
Η αποθήκευση μπορεί να γίνει με δύο τρόπους α) από το γραφικό περιβάλλον και β) από την βάση. Η διαδικασία αποθήκευσης εντολών από την βάση αρχίζει όταν ο χρήστης πατήσει το κουμπί «αποθήκευσης».
Στην αρχή η βάση, στέλνει την εντολή «ανάγνωσης εντολής» στα μπλοκ εντολών, και αποθηκεύει τις εντολές που έχει λάβει σε έναν πίνακα.
Η βάση ελέγχει το πλήθος των byte που θα προσπαθήσει να αποθηκεύσει στο μπλοκ πολλαπλών εντολών, σε περίπτωση που υπερβαίνουν τα 250, τότε απορρίπτει την αποθήκευση.
Στην συνέχεια ελέγχει, στέλνοντας την εντολή «alive» στο μπλοκ εντολής που βρίσκεται στην πόρτα «αποθήκευσης». Εάν υπάρχει μπλοκ εντολής, τότε απαντάει με επιβεβαίωση (ACKNOWLEDGE)», και η βάση ξέρεις ότι υπάρχει μπλοκ εντολής.
Η βάση διαβάζει το 'Settings Byte' του μπλοκ εντολής στην πόρτα «αποθήκευσης».
Και ελέγχει εάν το μπλοκ εντολής είναι πολλαπλών εντολών, και είναι διαθέσιμο για εγγραφή. Σε περίπτωση που δεν είναι, απορρίπτεται η αποθήκευση.
Στη συνέχεια ένα προς ένα η βάση στέλνει τα byte των εντολών με την εντολή «WRITE EEPROM». Για κάθε byte υπάρχει λήξη χρόνου (timeout) 1 δευτερόλεπτο, και μέχρι 3 προσπάθειες. Αυτό γίνεται σε περίπτωση που ο χρήστης αφαιρέσει το μπλοκ εντολής , ή η EEPROM έχει φτάσει το μέγιστο κύκλο εγγραφών.
Αφού, και εάν, εγγραφούν όλα τα byte, τότε η βάση στέλνει την εντολή «WRITE _LENGTH» για να γράψει και το πλήθος των byte στο μπλοκ εντολής.
Η διαδικασία σε αυτό το σημείο έχει ολοκληρωθεί.
[017] Η διαδικασία αποθήκευσης εντολών από το γραφικό περιβάλλον αρχίζει όταν ο χρήστης πατήσει το κουμπί «Save» του γραφικού περιβάλλοντος.
Στην αρχή, το γραφικό περιβάλλον μέσω του Blockly, μαζεύει τις εντολές του προγράμματος που έχει γράψει ο χρήστης. Στην συνέχεια, ζητάει από τον χρήστη να επιλέξει τη βάση στην οποία έχει σύνδεση το μπλοκ πολλαπλών εντολών στο οποίο επιθυμεί να αποθηκεύσει.
Αφού επιλέξει τη σωστή βάση, από την λίστα συνδεδεμένων βάσεων, πατάει το κουμπί «DONE» του γραφικού περιβάλλοντος.
Το ρομπότ στέλνει το πρόγραμμα προς αποθήκευση στην βάση, και η βάση με την σειρά της αρχίζει την διαδικασία αποθήκευσης προγράμματος.
Στην αρχή η βάση, αποθηκεύει τις εντολές που έχει λάβει σε έναν πίνακα.
Η βάση ελέγχει το πλήθος των byte που θα προσπαθήσει να αποθηκεύσει στο μπλοκ πολλαπλών εντολών, σε περίπτωση που υπερβαίνουν τα 250, τότε απορρίπτει την αποθήκευση.
Στην συνέχεια ελέγχει, στέλνοντας την εντολή «alive» στον μπλοκ εντολής που βρίσκεται στην πόρτα «αποθήκευσης». Εάν υπάρχει μπλοκ εντολής τότε απαντάει με επιβεβαίωση (ACKNOWLEDGE), και η βάση ξέρει ότι υπάρχει μπλοκ εντολής.
Η βάση διαβάζει το Settings Byte του μπλοκ στην πόρτα «αποθήκευσης», και ελέγχει εάν το μπλοκ είναι μπλοκ πολλαπλών εντολών, και είναι διαθέσιμο για εγγραφή. Σε περίπτωση που δεν είναι απορρίπτεται η αποθήκευση.
Στην συνέχεια ένα προς ένα η βάση στέλνει τα byte των εντολών με την εντολή «WRITE EEPROM», με δείκτη τη θέση μνήμης. Η βάση περιμένει μέχρι και 1 δευτερόλεπτο απάντηση από το μπλοκ πολλαπλών εντολών. Σε περίπτωση που δεν την λάβει γίνεται λήξη χρόνου (timeout). Η προσπάθεια επαναλαμβάνεται έως και τρεις φορές. Αυτό γίνεται σε περίπτωση που ο χρήστης αφαιρέσει το μπλοκ εντολής , ή η EEPROM έχει φτάσει το μέγιστο κύκλο εγγραφών.
Αφού, και εάν , γραφούν όλα τα byte, τότε η βάση στέλνει την εντολή «WRITE _LENGTH», με τιμή τον αριθμό των εντολών. Έτσι το μπλοκ πολλαπλών εντολών έχει καταγράψει και τις εντολές αλλά και το πλήθος τους.
Η διαδικασία σε αυτό το σημείο έχει ολοκληρωθεί και η βάση απαντάει στο ρομπότ.
Με την σειρά του το ρομπότ εμφανίζει στο γραφικό περιβάλλον, μήνυμα ανάλογα με τον αν ήταν ή όχι επιτυχής η αποθήκευση.
[018] Η διαδικασία αλλαγής εντολής σε μπλοκ εντολής αφορά μόνο μπλοκ μεταβλητής εντολής, τα οποία επιτρέπουν την αλλαγή της εντολής που είναι αποθηκευμένη στα μπλοκ εντολής.
Η διαδικασία αλλαγής εντολής των μπλοκ μεταβλητής εντολής ξεκινάει, συνδέοντας ένα μπλοκ στην πόρτα «αποθήκευσης» της βάσης. Η επιτυχής σύνδεση του μπλοκ φαίνεται από το animation των LED του μπλοκ.
Στην συνέχεια ο χρήστης συνδέεται στο ρομπότ, στο οποίο είναι συνδεδεμένη η βάση που έχει συνδεδεμένο το μπλοκ εντολών με τον κατάλληλο τύπο, ανοίγει την ιστοσελίδα που φιλοξενείται στο τοπικό εξυπηρετητή του ρομπότ (ή την εφαρμογή) και πλοηγείτε στην ιστοσελίδα αλλαγής αποθηκευμένων εντολών.
Έπειτα επιλέγει την εντολή που θέλει να εφαρμόσει στο μπλοκ μεταβλητής εντολής, και προχωράει ακολουθώντας τις οδηγίες στην οθόνη.
Αφού επιλέξει τη επιθυμητή βάση, από την λίστα συνδεδεμένων βάσεων, πατάει το κουμπί «DONE».
Το ρομπότ στέλνει την εντολή, που επέλεξε ο χρήστης, στην βάση και η βάση με την σειρά της αρχίζει τη διαδικασία αλλαγής της αποθηκευμένης εντολής στο συνδεδεμένο μπλοκ.
Όταν ολοκληρωθεί η διαδικασία, η βάση απαντάει στο ρομπότ και το ρομπότ, στέλνει μήνυμα επιτυχίας ή αποτυχίας στην οθόνη του χρήστη.
Τα βήματα έχουν, λεπτομερώς, ως εξής:
- Η εφαρμογή στέλνει ένα αίτημα HTTP στον εξυπηρετητή του ρομπότ, στο endpoint που είναι υπεύθυνο για τη διαδικασία. Δίνοντας το ' LocalIP' της επιλεγμένης βάσης, καθώς και την επιλεγμένη εντολή ως παραμέτρους 'query'. Το ρομπότ περιμένει για απάντηση στο αίτημα.
- Το ρομπότ στέλνει ένα αίτημα στο 'LocalIP' στο Endpoint που είναι υπεύθυνο για την διαδικασία, δίνοντας την επιλεγμένη εντολή, ως παράμετρο query.
- Η βάση λαμβάνοντας το αίτημα , στέλνει στην πόρτα «αποθήκευσης» την εντολή «ανάγνωσης εντολής», για να ελέγξει εάν υπάρχει συνδεδεμένο μπλοκ.
- Εάν δεν υπάρχει μπλοκ επιστρέφει λάθος.
- Η βάση στέλνει εντολή ανάγνωσης του 'Setting Byte', και ελέγχει εάν το μπλοκ, είναι μπλοκ μεταβλητής εντολής.
- Εάν δεν είναι επιστρέφει λάθος.
- Στην συνέχεια στέλνει εντολή αποθήκευσης EEPROM, με διεύθυνση Ό' και value την εντολή.
- Αν δεν ήταν επιτυχής η ενέργεια επιστρέφει λάθος.
- Εάν ήταν επιτυχής, επιστρέφει με μήνυμα επιτυχίας.
- Το ρομπότ παίρνει την απάντηση και επιστρέφει το ίδιο μήνυμα στο αίτημα . - To Dashboard παίρνει την απάντηση και εμφανίζει το μήνυμα στην οθόνη του χρήστη.
[019] Η βάση έχεις τρεις τοπικές ρυθμίσεις οι οποίες αποθηκεύονται και ρυθμίζονται από το χρήση μέσω της ιστοσελίδας ή των ιστοσελίδων του εξυπηρετητή (Webserver) που τρέχει στην βάση.
• Name - Το όνομα του ρομπότ που θα προσπαθήσει να συνδεθεί
• Password - Ο κωδικός με τον οποίο θα προσπαθήσει να συνδεθεί στο ρομπότ
• Friendly Name - Αναγνωριστικό όνομα για να μπορεί ο χρήστης να ξεχωρίσει πολλαπλές βάσεις συνδεδεμένες σε ένα ρομπότ.
Η βάση κατά τη σύνδεση της στο ρομπότ παίρνει ρυθμίσεις οι οποίες είναι αποθηκευμένες στο ρομπότ, και είναι παραμετροποιήσημες από το χρήστη μέσα από την ιστοσελίδα ή τις ιστοσελίδες του εξυπηρετητή του ρομπότ. Αυτές οι ρυθμίσεις χάνονται από τη βάση μετά από κάθε επανεκκίνηση και εφαρμόζονται ξανά κατά την επιτυχημένη σύνδεση με ρομπότ.
• 'Buzzer Enabled' - Ενεργοποιεί το βομβητή (buzzer) της βάσης
• 'Delay Between Commands' - Χρονοκαθυστέρηση μεταξύ εντολών κατά την εκτέλεση προγράμματος.
[020] Η διαδικασία αναβάθμισης του λογισμικού (firmware update) της βάσης ξεκινάει αυτόματα με τη σύνδεση της βάσης σε ένα ρομπότ, αν η έκδοση λογισμικού της βάσης δεν συμφωνεί με την έκδοση που απαιτεί το ρομπότ.
Στην αρχή η βάση κατεβάζει το αρχείο λογισμικού από το ρομπότ και το αποθηκεύει στην περιοχή μνήμης 'Update'. Στην συνέχεια, εκκινεί το λογισμικό που βρίσκεται στην περιοχή μνήμης 'Factory Αρρ', αντιγράφει από την περιοχή μνήμης ' Update' στην περιοχή μνήμης ' Main Αρρ' , σβήνει το περιεχόμενο της περιοχής μνήμης ' Update' και εκκινεί το λογισμικό που βρίσκεται στην περιοχή μνήμης ' Main Αρρ' .
Στην περίπτωση εσφαλμένου λογισμικού (firmware), η βάση εκκινεί την εφαρμογή που βρίσκεται στην περιοχή μνήμης ' Factory Αρρ' . Στη συνέχεια, αντιγράφει την εφαρμογή που βρίσκεται στην περιοχή μνήμης ' Backup' , στην περιοχή μνήμης ' Main Αρρ' και εκκινεί το λογισμικό που βρίσκεται στην περιοχή μνήμης ' Main Αρρ' . Στην περιοχή μνήμης ' Backup' βρίσκεται από τον κατασκευαστή η τελευταία σταθερή έκδοση λογισμικού της βάσης.
Τα μπλοκ εντολών έκδοση 1η
[021] Τα μπλοκ εντολών όλων των τύπων περιέχουν έναν μικροελεγκτή που είναι υπεύθυνος για όλες τις διαδικασίες που εκτελεί το μπλοκ.
Η σύνδεση του μπλοκ γίνεται από τα αριστερά προς τα δεξιά. Άρα το κάθε μπλοκ στην αριστερή του πλευρά μπορεί να είναι συνδεδεμένο είτε σε μία βάση είτε σε ένα άλλο μπλοκ. Στην δεξιά του πλευρά πάντα όμως, όταν υπάρχει σύνδεση, είναι συνδεδεμένο με άλλο μπλοκ.
Το κάθε μπλοκ έχει μία πόρτα παραμέτρου στο κάτω μέρος του, στην οποία συνδέονται μόνο μπλοκ παραμέτρων.
Η τροφοδοσία του μπλοκ γίνεται από την αριστερή πόρτα και υποβαθμίζεται στα 3.3vDC.
Το κύκλωμα του μπλοκ αποτελείται από τα εξής μέρη:
• Τον κεντρικό μικροελεγκτή (ενδεικτικά ATmega328)
• Τον σταθεροποιητή τάσης
• Της πόρτες σύνδεσης
• Τα LED αναπληροφόρησης
· Την πύλη επιλογής εξόδου δεδομένων
[022] To firmware του μπλοκ είναι γραμμένο στη γλώσσα προγραμματισμού C++.
Το κάθε μπλοκ εντολών χρειάζεται 2 σειριακές θύρες, εκ των οποίων από την δεύτερη χρειάζεται μόνο τον ακροδέκτη αποστολής.
Συγκεκριμένα, το μπλοκ διαβάζει από την ακίδα 'ATMEL_RX' του κυκλώματος, από το προηγούμενο μπλοκ. Γράφει δεδομένα στο επόμενο μπλοκ μέσα από την ακίδα 'NEXT_CUBE'. Στέλνει δεδομένα στη βάση, μέσω μιας πύλη τριών καταστάσεων, από την ακίδα 'ATMEL_TX'. Η έξοδος της πύλης είναι αυτή που δίνει τα δεδομένα στο 'COMMON BUS' μέσα από την ακίδα 'GATE_OUT'. Ο έλεγχος της πύλης γίνεται από την ακίδα 'GATE_CTNL'.
[023] Η παραμετροποίηση των μπλοκ εντολών, γίνεται από ένα byte που βρίσκεται αποθηκευμένο στη μνήμη EEPROM στην θέση OxFF.
Η επικοινωνία μεταξύ των μπλοκ αλλά και των μπλοκ με την βάση γίνεται σειριακά με την μορφή πακέτων. Υπάρχουν δύο διαφορετικές μορφές πακέτων α) τα πακέτα από την βάση προς τα μπλοκ και από τα μπλοκ προς άλλο μπλοκ και β) τα εξερχόμενα πακέτα των μπλοκ προς την βάση.
Συγκεκριμένα:
α) για την επικοινωνία μεταξύ των μπλοκ αλλά και των μπλοκ με την βάση τα πακέτα αποτελούνται από έξι byte και έχουν την εξής μορφή:
1. 'header byte'
2. 'command byte'
3. 'parameter!, byte'
4. 'parameter byte'
5. 'parameter3 byte'
6. 'checksum byte'
Το πρώτο byte αποτελεί το header byte, και πρέπει να έχει τη συγκεκριμένη τιμή OxAC (172<10>). Σε περίπτωση που δεν έχει αυτήν την τιμή, ολόκληρο το πακέτο απορρίπτεται από το μπλοκ εντολής που θα το λάβει.
Το δεύτερο byte αποτελεί το command byte, και ορίζει την εντολή την οποία η βάση ζητάει από το μπλοκ να εκτελέσει.
To τρίτο, τέταρτο και πέμπτο byte αποτελούν τις παραμέτρους για την συγκεκριμένη εντολή.
Το έκτο byte αποτελεί το 'checksum byte'.
Β) Τα εξερχόμενα πακέτα των μπλοκ προς την βάση δεν έχουν περιορισμό μνήμης αφού η μνήμη του ESP επαρκεί για μεγάλο μέγεθος πακέτου.
Έτσι το πακέτο δεν έχει σταθερό μέγεθος. Το μέγεθος ορίζεται από το μπλοκ εντολής πριν στείλει το πακέτο.
Τα πακέτα που λαμβάνει από τα μπλοκ η βάση έχουν την εξής μορφή :
1. Το πρώτο byte αποτελεί το header byte, και πρέπει να είναι πάντα OxAC (172<10>). Σε περίπτωση που το header byte δεν έχει αυτήν την συγκεκριμένη τιμή, ολόκληρο το πακέτο απορρίπτεται από την βάση.
2. Το δεύτερο byte αποτελεί το μέγεθος (Ν) των δεδομένων (χωρίς το 'header byte', και 'checksum byte')·
3. Ακολουθούν<'>Ν<'>byte, ακριβώς ανάλογα με τον αριθμό που πήρε από τον δεύτερο byte.
4. Το τελευταίο byte αποτελεί το 'checksum byte'.
Το άθροισμα ελέγχου (checksum) χρησιμοποιείται για να γίνεται έλεγχος απώλειας δεδομένων κατά την μεταφορά.
Στο άθροισμα ελέγχου συμπεριλαμβάνονται όλο το πακέτο, εκτός από το 'header byte' και το ίδιο το 'checksum byte'.
Για τον υπολογισμό του αθροίσματος ελέγχου, το πρόγραμμα αρχικοποιεί ένα byte με τιμή OxFF (255<10>). Στη συνέχεια και για κάθε byte του πακέτου αφαιρεί την τιμή του byte. Σε περίπτωση υπερχείλιση η τιμή γυρίζει στα 0xFF (255<10>).
Στην περίπτωση που το μπλοκ εντολών είναι μονής εντολής, κατά την εκκίνηση του, ρυθμίζει την τροφοδοσία της πόρτας της παραμέτρου του ανάλογα με την σημαία 'isSpecial'.
Σε περίπτωση ενεργοποιημένης σημαίας, η ακίδα 'VP_1' είναι η θετική τροφοδοσία ενώ η ακίδα 'VP_2' είναι η γείωση. Στην περίπτωση απενεργοποιημένης σημαίας, συμβαίνει ακριβώς το αντίθετο.
Αν η σημαία 'enableVP' είναι απενεργοποιημένη (ανεξάρτητα από την τιμή της σημαίας 'isSpecial'), τότε η τροφοδοσία της παραμέτρου απενεργοποιείται, δηλαδή θέτονται οι ακίδες VP_1 και VP_2 σε γείωση.
Για την αποφυγή φόρτωσης του 'COMMON BUS' με ανεπιθύμητα δεδομένα, κάθε μπλοκ εντολών έχει μια πύλη τριών καταστάσεων , η οποία ελέγχεται από τον μικροελεγκτή του κάθε μπλοκ από την ακίδα 'GATE_CTNL'. Η πύλη τριών καταστάσεων ενεργοποιείται με λογικό '1', και βρίσκεται συνέχεια σε κατάσταση απενεργοποίησης, μέσω μιας pull-down αντίστασης, και ενεργοποιείται μόνο όταν το μπλοκ εντολής χρειάζεται να στείλει δεδομένα στο bus. Για την αποφυγή σύγκρουσης δεδομένων, μετά από κάθε αποστολή δεδομένων στο 'COMMON BUS', το κάθε μπλοκ εντολής τρέχει μια χρονοκαθυστέρηση.
[024] Το κάθε μπλοκ εντολών, συνεχόμενα, περιμένει να βρεθούν δεδομένα στη σειριακή στοίβα. Όταν βρεθούν δεδομένα διαβάζει 6 byte.
Σε περίπτωση που τα δεδομένα είναι λιγότερο από έξι, τότε 100ms αφού λάβει το τελευταίο byte, γίνεται λήξη χρόνου (timeout), και τα υπόλοιπα byte, για να συμπληρωθούν, γίνονται αυτόματα '0' .
Αφού το μπλοκ εντολής διαβάσει τα δεδομένα, ελέγχει εάν το header byte έχει τη σωστή τιμή. Σε περίπτωση που δεν είναι σωστό, τότε το πακέτο αγνοείται, και το μπλοκ εντολών αρχίζει πάλι να περιμένει για δεδομένα στην σειριακή του.
Αν το header byte είναι σωστό, τότε το μπλοκ εντολών ελέγχει το 'checksum byte'. Σε περίπτωση που δεν είναι σωστό, τότε το πακέτο αγνοείται, και το μπλοκ εντολής αρχίζει πάλι να περιμένει για δεδομένα στην σειριακή του.
Εάν το 'checksum byte' είναι σωστό, τότε το μπλοκ εντολής ελέγχει το 'command byte'. Σε περίπτωση που η εντολή είναι τύπου ' βασική' , κατευθείαν το ρομπότ αρχίζει τη διαδικασία αποκωδικοποίησης και εκτέλεσης της εντολής.
Σε περίπτωση που το 'command byte' είναι εντολή τύπου ' προώθησης' τότε ελέγχει το 'parameterl byte', αν είναι διάφορο του μηδενός. Τότε μειώνει κατά μια μονάδα αυτό το byte, και έπειτα στέλνει ένα νέο πακέτο με το ίδιο command byte που παρέλαβε, υπολογίζοντας ξανά το νέο άθροισμα ελέγχου, και το μειωμένο κατά ένα 'parameter1, byte’, στο μπλοκ εντολής που είναι συνδεδεμένο στην επόμενη θέση.
Εάν το 'parameter1, byte' είναι μηδέν, τότε το μπλοκ εντολής αρχίζει τη διαδικασία εκτέλεσης της εντολής που έλαβε..
[025] Οι εντολές που λαμβάνουν τα μπλοκ χωρίζονται στις εξής κατηγορίες :
1. Βασικές εντολές
Εντολές οι οποίες εκτελούνται κατευθείαν από το μπλοκ εντολής.
Οι εντολές αυτού του τύπου είναι :
• Ανάγνωση ρυθμίσεων
· Εγγραφή ρυθμίσεων
• Ανάγνωση μεγέθους
• Εγγραφή μεγέθους
• Ανάγνωση μνήμης
• Εγγραφή μνήμης
2. Εντολές προώθησης
Εντολές αυτές εκτελούνται αν η παράμετρος 'parameter1 byte' είναι 0. Αν η παράμετρος 'parameter1 byte' δεν είναι 0 τότε προωθούνται στο επόμενο μπλοκ.
Οι εντολές αυτού του τύπου είναι :
• Ανάγνωση Ταυτότητας
· 'Ελεγχος LED
• LED Animation
[026] Στην περίπτωση εντολής Ανάγνωσης Ταυτότητας, το μπλοκ αρχικά ενεργοποιεί την έξοδο της πύλης τριών καταστάσεων .
Στην συνέχεια διαβάζει από την EEPROM το πλήθος των δεδομένων (' length' ), που πρέπει να στείλει. Γράφει στην σειριακή το ’header byte', και το ' length' των δεδομένων που πρόκειται να σταλούν.
Στην περίπτωση μπλοκ μονής εντολής, το ' length' αυξάνεται κατά ένα, για να μπορέσει να σταλεί και η τιμή που θα διαβαστεί από το μπλοκ παραμέτρου, που ενδεχομένως είναι συνδεδεμένο στο μπλοκ εντολής. Αν δεν υπάρχει συνδεδεμένο μπλοκ παραμέτρου τότε η τιμή γίνετε αυτόματα "1".
Στη συνέχεια στέλνει τα δεδομένα που διαβάζει από την EEPROM και ελέγχει αν είναι μπλοκ μονής εντολής. Αν είναι διαβάζει και στέλνει την τιμή του μπλοκ παραμέτρου. Στο τέλος στέλνει το υπολογισμένο άθροισμα ελέγχου, και απενεργοποιεί την πύλη τριών καταστάσεων.
Στην περίπτωση εντολής ελέγχου led, το μπλοκ διαβάζει από την παράμετρο 'parameter byte' τα τέσσερα τελευταία bit, και αναλόγως ανάβει ή σβήνει τα LED 1,2, 3, 4, και στο τέλος απαντάει με επιβεβαίωση (ACKNOWLEDGE).
Η εντολή 'LED Animation' εκτελεί το προκαθορισμένο εφέ στο μπλοκ .
Η εντολή 'Ανάγνωση μνήμης' αφορά ανάγνωση τιμής συγκεκριμένης θέσης από την EEPROM.
Η εντολή Έγγραφή μνήμης' αφορά εγγραφή τιμής σε συγκεκριμένη θέση στην EEPROM.
Η εντολή Έγγραφή μεγέθους' αφορά εγγραφή, συγκεκριμένης τιμής στην θέση 'length' της EEPROM.
Η εντολή 'Ανάγνωση μεγέθους'αφορά ανάγνωση τιμής από την θέση ' length 'της EEPROM,
Η εντολή Έγγραφή ρυθμίσεων' αφορά εγγραφή συγκεκριμένης τιμής στην θέση ' setting' της EPPROM.
Η εντολή 'Ανάγνωση ρυθμίσεων' αφορά ανάγνωση τιμής από τη θέση ' setting' της EEPROM.
Τα μπλοκ εντολών έκδοση 2η
[027] Το μπλοκ εντολών αποτελείται από έναν μικροελεγκτή που είναι υπεύθυνος για όλες τις διαδικασίες που εκτελεί το μπλοκ. Το κύκλωμα των μπλοκ εντολών μπορεί να διαθέτει πολυπλεξία, ώστε με μια ακίδα στο εσωτερικό του μπλοκ να επιτυγχάνεται μεταβαλλόμενη κατεύθυνση των δεδομένων προς τη σωστή έξοδο.
Η σύνδεση του μπλοκ γίνεται από τα αριστερά προς τα δεξιά. Άρα το κάθε μπλοκ στην αριστερή του πλευρά μπορεί να είναι συνδεδεμένο είτε σε μία βάση είτε σε ένα άλλο μπλοκ. Στην δεξιά του πλευρά πάντα όμως, όταν υπάρχει σύνδεση, είναι συνδεδεμένο με άλλο μπλοκ.
Το κάθε μπλοκ έχει μία πόρτα παραμέτρου στο κάτω μέρος του, στην οποία συνδέονται μόνο μπλοκ παραμέτρων.
Η τροφοδοσία του μπλοκ γίνεται από την αριστερή πόρτα και υποβαθμίζεται στα 3.3vDC.
Το κύκλωμα του μπλοκ αποτελείται από τα εξής μέρη:
• Τον κεντρικό μικροελεγκτή (ενδεικτικά ATmega328)
• Τον σταθεροποιητή τάσης
· Της πόρτες σύνδεσης
• Τα LED αναπληροφόρησης
• Τις πύλες επιλογής πόρτας εξόδου δεδομένων
[028] To firmware του μπλοκ είναι γραμμένο στη γλώσσα προγραμματισμού C++.
Το κάθε μπλοκ χρειάζεται 1 σειριακή θύρα, για την επικοινωνία του με τη βάση και το επόμενο σε σειρά μπλοκ εντολής.
Συγκεκριμένα, το μπλοκ διαβάζει από την ακίδα 'ATMEL_RX' του κυκλώματος, από το προηγούμενο μπλοκ . Γράφει δεδομένα στο επόμενο μπλοκ καθώς και στη βάση μέσω της ακίδας ΆΤΜΕL_ΤΧ'.
Η επιλογή του καναλιού που θα γράψει γίνεται από τις πύλες τριών καταστάσεων. Η πύλη U3 επιλέγει ως έξοδο το 'COMMON BUS', και επιτρέπει την εγγραφή δεδομένων στην ακίδα 'GATE_FB_OUT'. Ενώ η πύλη U4 επιλέγει ως έξοδο το επόμενο σε σειρά μπλοκ εντολών, και επιτρέπει την εγγραφή δεδομένων στην ακίδα 'GATE_NEXT_OUT'. Ο έλεγχος της πύλης γίνεται από την ακίδα 'GATE_FB_CTNL' και την ακίδα 'GATE_NEXT_CNTL' αντίστοιχα.
FI παραμετροποίηση των μπλοκ εντολών, γίνεται από ένα byte που βρίσκεται αποθηκευμένο στην EEPROM στη θέση OxFF.
[029] Τα πακέτα δεδομένων δεν έχουν σταθερό μέγεθος. Το μέγεθος ορίζεται από το αποστολέα πριν στείλει το πακέτο.
Τα πακέτα ακολουθούν την εξής μορφή
1. Το πρώτο byte αποτελεί το 'header byte', και πρέπει να είναι πάντα OxAC (172<10>). Σε περίπτωση που το 'header byte' δεν έχει αυτήν την συγκεκριμένη τιμή, ολόκληρο το πακέτο απορρίπτεται από το ρομπότ.
2. Το δεύτερο byte αποτελεί το μέγεθος των δεδομένων (χωρίς το 'header byte', και 'checksum byte7)·
3. Ακολουθούν ' Ν' byte, ακριβώς ανάλογα με τον αριθμό που πήραν από τον δεύτερο byte.
4. Το τελευταίο byte αποτελεί το 'checksum byte'.
Συγκεκριμένα τα πακέτα εντολών έχουν τουλάχιστον ένα byte δεδομένων που είναι το αναγνωριστικό της εντολής προς εκτέλεσης. Τα υπόλοιπα byte, αν υπάρχουν, είναι οι παράμετροι της εντολής ('parameterl byte', 'parameter byte' etc.) αριθμούνται από το ένα και αυξάνουν ανάλογα με το πόσες παραμέτρους χρειάζεται η εντολή.
Επειδή τα μπλοκ έχουν περιορισμένη μνήμη, η στοίβα τους, έχει μέγεθος 10 byte, που σημαίνει το μέγιστο μέγεθος πακέτου είναι 7 byte, συν το 'header byte', 'length byte' και 'checksum byte'. Σε περίπτωση πακέτου μεγαλύτερου μεγέθους το πακέτο δεν αποθηκεύεται στη στοίβα, αλλά αποκωδικοποιείται byte-byte.
Το άθροισμα ελέγχου χρησιμοποιείται για να γίνεται έλεγχος απώλειας δεδομένων κατά την μεταφορά.
Στον υπολογισμό του αθροίσματος ελέγχου συμπεριλαμβάνεται όλο το πακέτο, εκτός από το 'header byte' και το ίδιο το 'checksum byte'.
Για τον υπολογισμό του αθροίσματος ελέγχου, το πρόγραμμα αρχικοποιεί ένα byte με τιμή 0xFF (255<10>). Στη συνέχεια και για κάθε byte του πακέτου αφαιρεί την τιμή του byte. Σε περίπτωση υπερχείλισης η τιμή γυρίζει στα 0xFF (255<10>).
Στην περίπτωση που ο μπλοκ εντολών είναι μονής εντολής, κατά την εκκίνηση του, ρυθμίζει την τροφοδοσία της πόρτας παραμέτρου του (ακίδες VP_1, VP_2) ανάλογα με την σημαία 'isSpecial'.
Σε περίπτωση ενεργοποιημένης σημαίας, η ακίδα VP_1 είναι η θετική τροφοδοσία ενώ η ακίδα VP_2 είναι η γείωση. Στην περίπτωση απενεργοποιημένης σημαίας, συμβαίνει ακριβώς το αντίθετο.
Αν η σημαία 'enableVP' είναι απενεργοποιημένη (ανεξάρτητα από την τιμή της σημαίας 'isSpecial'), τότε η τροφοδοσία της παραμέτρου απενεργοποιείται (ακίδα VP_1, VP_2), δηλαδή θέτονται και το VP_1 και το VP_2 σε γείωση.
[030] Λόγω του ότι το μπλοκ εντολών γράφει δεδομένα σε δύο διαφορετικές εξόδους, η επιλογή της εξόδου των δεδομένων γίνεται από τις δύο πύλες τριών καταστάσεων.
Σε περίπτωση που το μπλοκ εντολών θέλει να στείλει δεδομένα στην βάση τότε ενεργοποιεί (θέτει σε λογικό 1) την ακίδα 'GATE_FB_CTNL'. Ενώ σε περίπτωση που θέλει να γράψει δεδομένα στο επόμενο σε σειρά μπλοκ εντολών, ενεργοποιεί την ακίδα 'GATE_NEXT_CTNL'.
Αφού γίνει η επιλογή της εξόδου το μπλοκ εντολών γράφει δεδομένα στην ακίδα ΆΤΜΕL_ΤΧ'. Τα δεδομένα αυτά περνούν μέσα από την πύλη τριών καταστάσεων, και φτάνουν στον παραλήπτη τους.
Διαδικασία Ανάγνωσης εντολής
Το κάθε μπλοκ εντολής, συνεχόμενα, περιμένει να βρεθούν δεδομένα στη σειριακή στοίβα. Όταν βρεθούν δεδομένα αρχίζει να διαβάζει.
Το μπλοκ περιμένει να διαβάσει το πρώτο byte το οποίο πρέπει να είναι 0xAC. Αφού διαβαστεί το πρώτο byte (0xAC), τότε το επόμενο byte είναι το μέγεθος του πακέτου που πρόκειται να λάβει.
Διαβάζει τόσα byte όσο και το μέγεθος του πακέτου, και στη συνέχεια ένα ακόμα byte το οποίο είναι το άθροισμα ελέγχου.
Σε περίπτωση που δεν βρεθούν δεδομένα μετά από 100ms αφού λάβει το τελευταίο byte, γίνεται λήξη χρόνου (timeout).
Το μπλοκ εντολών ελέγχει το 'checksum byte'. Σε περίπτωση που δεν είναι σωστό, τότε το πακέτο αγνοείται, και το μπλοκ εντολών αρχίζει πάλι να περιμένει για δεδομένα στην σειριακή του.
Οι εντολές που λαμβάνει το μπλοκ εντολών έχουν διαφορετικό μέγεθος ανάλογα με την εντολή που λαμβάνετε. Πάντα το τρίτο byte του πακέτου είναι η εντολή προς εκτέλεση ('command byte').
Σε περίπτωση που η εντολή είναι τύπου ' βασική' , κατευθείαν το μπλοκ αρχίζει τη διαδικασία αποκωδικοποίησης και εκτέλεσης της εντολής.
Σε περίπτωση που το 'command byte' είναι εντολή τύπου ' προώθησης' τότε ελέγχει το 'parameter1 byte' (τέταρτο byte πακέτου), αν είναι διάφορο του μηδενός, μειώνει κατά ένα την τιμή του 'parameter1, byte'. Έπειτα στέλνει ένα νέο πακέτο μπλοκ εντολής που είναι συνδεδεμένο στην επόμενη θέση με το ίδιο 'command byte' που παρέλαβε, υπολογίζοντας ξανά το νέο άθροισμα ελέγχου, και το μειωμένο κατά μία μονάδα 'parameter1, byte'.
Εάν το 'parameter1, byte' είναι μηδέν, τότε το μπλοκ αρχίζει τη διαδικασία αποκωδικοποίησης της εντολής που έλαβε.
[031] Οι εντολές που λαμβάνουν τα μπλοκ χωρίζονται στις εξής κατηγορίες :
1. Βασικές εντολές
Εντολές οι οποίες εκτελούνται κατευθείαν από το μπλοκ εντολής,
Οι εντολές αυτού του τύπου είναι :
• Ανάγνωση ρυθμίσεων
• Εγγραφή ρυθμίσεων
• Ανάγνωση μεγέθους
• Εγγραφή μεγέθους
· Ανάγνωση μνήμης
• Εγγραφή μνήμης
2. Εντολές προώθησης
Εντολές αυτές εκτελούνται αν η παράμετρος 'parameter1 byte' είναι 0. Αν η παράμετρος 'parameter1 byte' δεν είναι 0 τότε προωθούνται στο επόμενο μπλοκ.
Οι εντολές αυτού του τύπου είναι :
• Ανάγνωση Ταυτότητας
• Έλεγχος LED
• LED Animation
[032] Στην περίπτωση εντολής Ανάγνωσης Ταυτότητας, το μπλοκ αρχικά ενεργοποιεί την έξοδο της πύλης τριών καταστάσεων .
Στην συνέχεια διαβάζει από την EEPROM το πλήθος των δεδομένων (' length' ), που πρέπει να στείλει. Γράφει στην σειριακή το ’header byte', και το ' length' των δεδομένων που πρόκειται να σταλούν.
Στην περίπτωση μπλοκ μονής εντολής, το ' length' αυξάνεται κατά ένα, για να μπορέσει να σταλεί και η τιμή που θα διαβαστεί από το μπλοκ παραμέτρου, που ενδεχομένως είναι συνδεδεμένο στο μπλοκ εντολής. Αν δεν υπάρχει συνδεδεμένο μπλοκ παραμέτρου τότε η τιμή γίνετε αυτόματα "1".
Στη συνέχεια στέλνει τα δεδομένα που διαβάζει από την EEPROM και ελέγχει αν είναι μπλοκ μονής εντολής. Αν είναι διαβάζει και στέλνει την τιμή του μπλοκ παραμέτρου. Στο τέλος στέλνει το υπολογισμένο άθροισμα ελέγχου, και απενεργοποιεί την πύλη τριών καταστάσεων.
Στην περίπτωση εντολής ελέγχου led, το μπλοκ διαβάζει από την παράμετρο 'parameter2 byte' τα τέσσερα τελευταία bit, και αναλόγως ανάβει ή σβήνει τα LED 1,2, 3, 4, και στο τέλος απαντάει ΜΕ ΕΠΙΒΕΒΑΊΩΣΗ (ACKNOWLEDGE).
Η εντολή 'LED Animation' εκτελεί το προκαθορισμένο εφέ στο μπλοκ .
Η εντολή 'Ανάγνωση μνήμης' αφορά ανάγνωση τιμής συγκεκριμένης θέσης από την EEPROM.
Η εντολή Έγγραφή μνήμης' αφορά εγγραφή τιμής σε συγκεκριμένη θέση στην EEPROM.
Η εντολή Έγγραφή μεγέθους' αφορά εγγραφή, συγκεκριμένης τιμής στην θέση 'length' της EEPROM.
Η εντολή 'Ανάγνωση μεγέθους' αφορά ανάγνωση τιμής από την θέση ' length' της EEPROM,
Η εντολή Έγγραφή ρυθμίσεων' αφορά εγγραφή συγκεκριμένης τιμής στην θέση ' setting' της EPPROM.
Η εντολή 'Ανάγνωση ρυθμίσεων' αφορά ανάγνωση τιμής από τη θέση ' setting' της EEPROM.
Τα μπλοκ παραμέτρων
[033] Η παραμετροποίηση του μπλοκ παραμέτρων γίνεται από το μπλοκ εντολής στο οποίο είναι συνδεδεμένο.
Σε περίπτωση που η σημαία 'enableVP' του μπλοκ εντολής είναι απενεργοποιημένη, τότε το μπλοκ εντολών δε δέχεται παράμετρο και θέτει τις ακίδες 'VP1' και 'VP2' σε OvDC. Αλλιώς τα θέτει ως εξής:
α) Σε περίπτωση εντολής τύπου 'IF', το μπλοκ εντολών θέτει την ακίδα 'VP2', σε τάση 3.3vDC, και την ακίδα 'VP1' σε τάση OvDC.
β) Σε οποιαδήποτε άλλη περίπτωση, το μπλοκ εντολών θέτει την ακίδα 'VP1', σε τάση 3.3vDC, και την ακίδα 'VP2' σε τάση OvDC.
[034] Η ανάγνωση του μπλοκ παραμέτρων γίνεται μέσω των ακίδων 'Sense1' και 'Sense2'. Τα 'Sense1' και 'Sense2' συνδέονται εσωτερικά στον αναλογικό σε ψηφιακό μετατροπέα του μπλοκ εντολών.
Όταν αρχίζει η διαδικασία ανάγνωσης, το μπλοκ εντολών διαβάζει τις αναλογικές ακίδες 'Sense1' και 'Sense2'. Ανάλογα με τον τύπο της εντολής αναμένει να διαβάσει μια προκαθορισμένη τιμή τάσης στην ακίδα 'Sense1' ή 'Sense2'. Η τιμή αυτή καθορίζεται από τον διαιρέτη τάσης που δημιουργείται, από την αντίσταση της παραμέτρου και την εσωτερική αντίσταση του μπλοκ εντολής.
Σε περίπτωση που το μπλοκ εντολής είναι τύπου 'IF' τότε το μπλοκ εντολών περιμένει την σταθερή τιμή να βρίσκεται στην ακίδα 'Sense2'. Ενώ σε οποιαδήποτε άλλη περίπτωση η σταθερή τιμή βρίσκεται στην ακίδα 'Sense1'.
Σε περίπτωση που δεν υπάρχει μπλοκ παραμέτρων συνδεδεμένο, τότε δεν δημιουργείται διαιρέτης τάσης, και το μπλοκ εντολής το αναγνωρίζει και επιστρέφει την κατάλληλη τιμή στην βάση.
Αν βρεθεί ο διαιρέτης τάσης στην αναμενόμενη ακίδα, τότε η τιμή της παραμέτρου της εντολής καθορίζεται από την τιμή της άλλης ακίδας 'Sense', στο οποίο δημιουργείται ένας διαιρέτης τάσης ανάλογος με την τιμή της αντίστασης ' RVariable' .
Με αυτό το μηχανισμό (σταθερή τάση στις ακίδες 'Sense1' ή 'Sense2' και μέτρηση τιμής στις ακίδες 'Sense2' ή 'Sense1' αντίστοιχα) επιτρέπεται: α) οι παράμετροι να μπορούν να συνδεθούν και με τις 2 πλευρές τους, δηλαδή ανεστραμμένοι, παριστάνοντας διαφορετικές έννοιες σε κάθε πλευρά, δηλαδή από τη μία πλευρά έχει αριθμό ως παράμετρο και από την άλλη αισθητήρα ως παράμετρο, β) να υπάρχουν διαφορετικά είδη παραμέτρων που έχουν πάνω τους διακόπτες, ποτενσιόμετρα LDR, τα οποία με κάποιο τρόπο μεταβάλλουν την 'RVariable'.
Έτσι, το κάθε μπλοκ παράμετρος μπορεί να ενσωματώνει ταυτόχρονα παράμετρο αριθμό και παράμετρο αισθητήρα. Η έννοια που παραμετροποιεί το μπλοκ εντολών είναι ο αριθμός ή ο αισθητήρας, ανάλογα με τον τρόπο σύνδεσης της παραμέτρου στο μπλοκ εντολής. Συνήθως, σε κάθε οριζόντια πλευρά απεικονίζεται η έννοια (αριθμός ή αισθητήρας) και η παραμετροποίηση της εντολής γίνεται ανάλογα με το ποια πλευρά της παραμέτρου είναι προς τα πάνω και απεικονίζει την έννοια.
Συγκεκριμένα η 'RVariable' μπορεί να είναι ένα από τα εξής :
• Σταθερή αντίσταση με διακριτή, προκαθορισμένη τιμή
• Ποτενσιόμετρο με εύρος τιμών την κλίμακα των διακριτών τιμών
• Διακόπτη (ON-OFF) σε λειτουργία ενεργοποίησης και απενεργοποίησης.
Συγκεκριμένα ο διακόπτης έχει μια διακριτή αντίσταση. Σε περίπτωση που ο διακόπτης είναι απενεργοποιημένος (ανοιχτό κύκλωμα) τότε το μπλοκ εντολών διαβάζει την τιμή της αντίστασης. Σε περίπτωση που ο διακόπτης είναι ενεργοποιημένος (κλειστό κύκλωμα) τότε το μπλοκ εντολών διαβάζει τάση 3.3vDC.
Σύνδεση ρομπότ- βάσης
[035] Η σύνδεση μεταξύ της βάσης και του ρομπότ γίνεται μέσω του Σημείου Πρόσβασης (access point) που διαχειρίζεται το ρομπότ. Αυτό επιτρέπει άμεση και γρήγορη σύνδεση μεταξύ των δύο συσκευών, χωρίς να χρειάζεται κάποια τρίτη συσκευή να λειτουργεί ως μεσολαβητής μεταξύ των δύο.
Για να έχουμε επιτυχή σύνδεση ανάμεσα σε ρομπότ και βάση θα πρέπει το όνομα του ρομπότ να συμπίπτει με το όνομα της βάσης. Σε διαφορετική περίπτωση ο χρήστης θα πρέπει να συνδεθεί στο Σημείο Πρόσβασης (access point) της βάσης, έτσι ώστε να δηλώσει τα στοιχεία (όνομα και κωδικό) του ρομπότ.
FI επικοινωνία γίνεται μέσω ΗΤTP, μεταξύ της βάσης και του ρομπότ.
Στο πρώτο στάδιο της σύνδεσης, η βάση ζητάει τα στοιχεία του ρομπότ, την έκδοση του λογισμικού βάσης, που το ρομπότ απαιτεί να έχει η βάση, καθώς και τις ρυθμίσεις του χρήστη. Η βάση συγκρίνει την έκδοση λογισμικού της με την έκδοση που ζήτησε το ρομπότ. Σε περίπτωση που η έκδοση είναι ίδια τότε η σύνδεση καθιερώνεται, και η επικοινωνία έχει πραγματοποιηθεί επιτυχώς. Μετά τη σύνδεση της βάσης με το ρομπότ, η βάση απενεργοποιεί το Σημείο Πρόσβασης της.
Σε περίπτωση που οι εκδόσεις δεν είναι ίδιες, η βάση ζητάει και κατεβάζει την έκδοση που ζήτησε το ρομπότ από τοπ εξυπηρετητή του ρομπότ. Μετά ακολουθείται η διαδικασία αναβάθμισης λογισμικού της βάσης. Με δεδομένο τον παραπάνω τρόπο επικοινωνίας είναι δυνατή η σύνδεση πολλαπλών βάσεων σε ένα ρομπότ.
Σύνδεση Βάσης - μπλοκ εντολών
[036] Η σύνδεση Βάσης - Μπλοκ εντολών γίνεται μέσω αρσενικών και θηλυκών μαγνητικών συνδέσμων.
Οι τέσσερις ακίδες των συνδέσμων, με την σειρά από πάνω προς τα κάτω έχουν ως εξής:
Η πρώτη ακίδα είναι η θετική σύνδεση της τροφοδοσίας, που εσωτερικά στην βάση συνδέεται με τον θετικό πόλο της μπαταρίας, μέσω του διακόπτη απενεργοποίησης της βάσης.
Η δεύτερη ακίδα του συνδέσμου είναι για την ανταλλαγή δεδομένων. Με αυτή την ακίδα η βάση στέλνει, σειριακά, δεδομένα στο μπλοκ εντολής, που είναι συνδεδεμένο στην πόρτα.
Η τρίτη ακίδα του συνδέσμου είναι για την επιστροφή δεδομένων. Με αυτή την ακίδα τα μπλοκ εντολών στέλνουν, σειριακά, δεδομένα στην βάση. Αυτή η ακίδα είναι κοινή για όλα τα μπλοκ εντολών, αποτελώντας ένα 'COMMON BUS'. Για να μην υπάρχουν παρεμβολές στην ανταλλαγή δεδομένων, το κάθε μπλοκ εντολής, έχει μια πύλη τριών καταστάσεων, το οποίο απομονώνει (θέτει το 'GATE_OUT' σε υψηλή αντίσταση) το 'COMMON BUS' από όλα τα μπλοκ εντολών, εκτός του μπλοκ εντολής το οποίο γράφει δεδομένα στο 'COMMON BUS'.
Η τέταρτη ακίδα είναι η γείωση της τροφοδοσίας.
Για να αποφεύγονται λάθη κατά τη διάρκεια της σύνδεσης-αποσύνδεσης των μπλοκ εντολών, σε κάθε μπλοκ εντολής υπάρχει μία αντίσταση 'pull-down', ακριβώς στην αρχή της γραμμής παραλαβής δεδομένων. Η αντίσταση έχει τιμή 10k.
Επίσης για να αποφεύγονται λάθη στο 'COMMON BUS', υπάρχει μία 'pull-down' αντίσταση στη βάση, ακριβώς στην αρχή της γραμμής παραλαβής δεδομένων.
Περιγραφή των σχεδίων
[037] Το σχήμα 1 δείχνει τη βάση (1), με το κουμπί «Εκτέλεσης» (2) και το κουμπί «Αποθήκευσης» (3). Η βάση (1) διαθέτει εσοχές (4), εξοχές (5), μαγνήτες (6), ακίδα με οποία συνδέεται η γείωση της τροφοδοσίας (7), ακίδα με οποία συνδέεται ο κοινος δίαυλος επικοινωνίας (8), ακίδα με οποία γίνεται η μεταφορά δεδομένων (9) και ακίδα με οποία συνδέεται η τροφοδοσία με ενέργεια (10). Η βάση διαθέτει δύο ομάδες ακίδων α) στην πόρτα «Εκτέλεσης» (11) και β) στην πόρτα «Αποθήκευσης» (12).
[038] Το σχήμα 2 δείχνει ένα μπλοκ εντολών (13), με εσοχές (4), εξοχές (5), μαγνήτες (6), ακίδα με οποία συνδέεται η γείωση της τροφοδοσίας (7), ακίδα με οποία συνδέεται ο κοινός δίαυλος επικοινωνίας (8), ακίδα με οποία γίνεται η μεταφορά δεδομένων (9) και ακίδα με οποία συνδέεται η τροφοδοσία με ενέργεια (10), πόρτα σύνδεσης προηγούμενου μπλοκ εντολών ή βάσης (14). Επίσης το μπλοκ εντολών (13) διαθέτει πόρτα σύνδεσης επόμενου μπλοκ εντολών (16), πόρτα ανάγνωσης παραμέτρου (15) η οποία διαθέτει ακίδα με οποία συνδέεται η τροφοδοσία της παραμέτρου με ενέργεια (VP2) (17), ακίδα με οποία γίνεται η ανάγνωσης πληροφοριών από την παράμετρο (Sense2) (18), ακίδα με οποία γίνεται ανάγνωσης πληροφοριών από την παράμετρο (Sense1) (19) και ακίδα με οποία συνδέεται η τροφοδοσία της παραμέτρου (VP1) (20).
[039] Το σχήμα 3 δείχνει ένα μπλοκ παράμετρου (21), την πόρτα σύνδεσης της παραμέτρου με μπλοκ εντολών (22), η οποία διαθέτει ακίδα με οποία συνδέεται η τροφοδοσία της παραμέτρου με ενέργεια (VP2) (17), ακίδα με οποία γίνεται η ανάγνωσης πληροφοριών από την παράμετρο (Sense2) (18), ακίδα με οποία γίνεται ανάγνωσης πληροφοριών από την παράμετρο (Sense1) (19) και ακίδα με οποία συνδέεται η τροφοδοσία της παραμέτρου (VP1) (20).
[040] Το σχήμα 4 δείχνει το ρομπότ (23) υπό γωνία, το οποίο διαθέτει οθόνη (24), μαγνητικό πλαίσιο γύρω από την οθόνη (25), ποδιά αλουμινίου (26), ρόδες (27), αισθητήρα πολλαπλών λειτουργιών, δηλαδή αισθητήρα χειρονομιών, χρωμάτων, φωτός και απόστασης (28), πυκνωτικό αισθητήρα αφής (29), αισθητήρα θερμοκρασίας (30) και φώτα (31).
[041] Το σχήμα 5 δείχνει το ρομπότ (23) σε προφίλ και τις εξόδους των ηχείων (32) που διαθέτει.
[042] Το σχήμα 6 δείχνει την πίσω όψη του ρομπότ (23), όπου φαίνονται τρύπες (32) οι οποίες επιτρέπουν στο ηχείο να μεταδίδει τον ήχο που παράγει, καθώς και τρύπες (33) πίσω από τις οποίες υπάρχει ο αισθητήρας ήχου.
[043] Το σχήμα 7 δείχνει ολόκληρο το σύστημα, όπου φαίνεται η βάση (1), με το κουμπί «Εκτέλεσης» (2) και το κουμπί «Αποθήκευσης» (3), τα μπλοκ εντολών (13), τα μπλοκ παραμέτρων (21) που συνδέονται στα μπλοκ εντολών, το ρομπότ (23), και συσκευή σύνδεσης του ρομπότ για καθοδήγηση με γραφικό περιβάλλον (35). Επίσης, φαίνεται μπλοκ εντολών συνδεδεμένο στην πόρτα «Αποθήκευσης» της βάσης με ακίδα γείωση της τροφοδοσίας (7), ακίδα με οποία συνδέεται ο κοινος δίαυλος επικοινωνίας (8), ακίδα με οποία γίνεται η μεταφορά δεδομένων (34) στο επόμενο σε σειρά μπλοκ εντολών, ακίδα με οποία συνδέεται η τροφοδοσία με ενέργεια (10) και πόρτα σύνδεσης επόμενου μπλοκ εντολών (16).
[044] Το σχήμα 8 δείχνει τον τρόπο σύνδεση των κυκλωμάτων, όπου ένας μικροελεγκτής (100) βρίσκεται μέσα στη βάση, συνδέεται εσωτερικά, από τη μία πλευρά, με το κουμπί «Εκτέλεσης» (101) και το κουμπί «Αποθήκευσης» (102) και, από την άλλη πλευρά, με την πόρτα «Εκτέλεσης» (103) και την πόρτα «Αποθήκευσης» (104). Σε κάθε έξοδο υπάρχουν τέσσερις ακίδες, εκ των οποίων η πρώτη χρησιμοποιείται για τροφοδοσία με ενέργεια (105), η δεύτερη για αποστολή πληροφοριών (106), η Τρίτη ως κοινός δίαυλος επικοινωνίας (108) και η τέταρτη ως γείωση (107). Μέσω της πόρτα Εκτέλεσης τα μπλοκ εντολών (109) επιστρέφουν εντολές στη βάση, ενώ κάποια μπλοκ εντολών είναι συνδεδεμένα με μπλοκ παραμέτρων (110). Μέσω της πόρτας «Αποθήκευσης» (104) η βάση μπορεί να αποθηκεύει κώδικα στο μπλοκ εντολών (109) που είναι συνδεδεμένο.
[045] Στο σχήμα 9, φαίνεται η γραφική αναπαράσταση του κυκλώματος του ρομπότ, το οποίο αποτελείται από τον μικροελεγκτή (111), τις εξόδους, τις εισόδους, την εξωτερική μνήμη (122) και το κύκλωμα για την σύνδεση του WiFi (123). Οι είσοδοι αποτελούνται από τον αισθητήρας θερμοκρασίας (113), αφής (114), το μικρόφωνο (115) που λειτουργεί ως αισθητήρας ήχων, και το APDS (112), που λειτουργεί ως αισθητήρας απόστασης (123), χειρονομιών (125), φωτός (126). Οι έξοδοι αποτελούνται από τον οδηγό κινητήρων (116) τους κινητήρες (117), τα φώτα LED (118), τον οδηγό του ηχείου (119), το ηχείο (220) καθώς και την οθόνη (221).
[046] Το σχήμα 10 απεικονίζει τις συνδέσεις του σύστηματος. Το ρομπότ (127) συνδέεται με βάση (128). Μέσω του τοπικού δρομολογητή (130) το ρομπότ συνδέεται στο Διαδίκτυο (131), για να αποκτήσει πρόσβαση στον απομακρυσμένος δικτυακό εξυπηρετητή (133) καθώς και σε διαδικτυακές υπηρεσίες (134). Ο τοπικός χρήστης (129) συνδέεται είτε κατευθείαν στο ρομπότ (127), είτε μέσω του τοπικού δρομολογητή (130). Ο απομακρυσμένος χρήστης (132), για την επικοινωνήσει με το ρομπότ (127), συνδέεται μέσω του διαδικτύου (131) στον απομακρυσμένο δικτυακό εξυπηρετητή (133) στον οποίο βρίσκεται συνδεδεμένο το ρομπότ (127).
[047] Το σχήμα 11 δείχνει τον αλγόριθμο εκτέλεσης των εντολών από το σύστημα. Αφού ενεργοποιηθεί το σύστημα, δηλαδή μετά την ένωση των μπλοκ με τη βάση, πιέζεται το κουμπί εκτέλεσης (134), αρχικοποιείται ο δείκτης (parameter_1 byte) με τιμή '0' (135), αποστέλλεται εντολή ανάγνωσης στην πόρτα «εκτέλεσης» (μπλοκ) με την τιμή του δείκτη (136), εάν υπάρχει συνδεδεμένο μπλοκ εντολής (137), τότε το μπλοκ εντολής ενεργοποιεί τη σύνδεση με τον κοινό δίαυλο επικοινωνίας (138), και αποστέλλει το αναγνωριστικό εντολής και παραμέτρου (139), η βάση αποθηκεύει την εντολή και παράμετρο που έλαβε και αυξάνει τον δείκτη κστά μία μονάδα (140). Αυτό (136 έως 140) επαναλαμβάνεται μέχρις ότου αναγνωστούν όλα τα μπλοκ. Όταν δεν υπάρχει άλλο μπλοκ εντολής συνδεδεμένο προς ανάγνωση (137), γιατί αναγνώστηκαν όλα, το σύστημα προχωράει σε αρχικοποίηση νέου δείκτη με τιμή '0' (141), γίνεται στην βάση αποκωδικοποίηση της αποθηκευμένης εντολής με τιμή του δείκτη (142), αποστέλλεται εντολή ονόματος του φωτός LED του μπλοκ εντολής (143), αποστέλλεται και εκτελείται η εντολή από το ρομπότ (144), την ώρα που το ρομπότ εκτελεί μία εντολή, ανάβει το LED στο αντίστοιχο μπλοκ εντολής του οποίου η εντολή εκτελείται και, μετά την εκτέλεση της εντολής, αποστέλλεται εντολή σβησίματος του LED του μπλοκ εντολής (145). Έπειτα, το σύστημα αναζητά αν υπάρχει και άλλη αποθηκευμένη εντολή προς εκτέλεση (146). Εάν υπάρχει και άλλη εντολή, αυξάνεται ο δείκτης κατά μία μονάδα και επαναλαμβάνεται η ίδια διαδικασία (142-147) μέχρις ότου εξαντληθούν οι εντολές προς εκτέλεση που έχει αποθηκεύσει η βάση. Όταν τελειώσουν οι εντολές προς εκτέλεση, τότε επέρχεται το τέλος εκτέλεσης (148). Πραγματοποίηση της εφεύρεσης
[048] Το παράδειγμα 1 (σχήμα 7) δείχνει το σύστημα με το οποίο γίνεται η αποστολή εντολών για καθοδήγηση του ρομπότ με απτικά μέσαως εξής: α) στη βάση (1) συνδέονται μπλοκ με αποθηκευμένες εντολές (13), με ένωση που επιτυγχάνεται με τους μαγνήτες και το μηχανισμό εξοχών-εσοχών, β) ευθυγραμμίζονται οι καλωδιώσεις της τροφοδοσίας, της διαβίβασης εντολών, της γείωσης και του κοινού δίαυλου επικοινωνίας, μέσω του οποίου επιστρέφονται οι αποθηκευμένες εντολές από τα μπλοκ στη βάση, γ) συνδέονται παράμετροι στα μπλοκ εντολών (21), δ) πιέζεται το κουμπί της εκτέλεσης (2) ε) η βάση (1) στέλνει διαδοχικά αίτημα ανάγνωσης στα μπλοκ εντολών (13), στ) το αίτημα διαβιβάζεται από το εγγύτερο στη βάση (1) μπλοκ στο απώτερο, μέσω των ευθυγραμμισμένων καλωδιώσεων, ζ), το κάθε μπλοκ εντολών (13), λαμβάνοντας υπόψη και τυχόν μπλοκ παράμετρο (21) που έχει συνδεδεμένη, στέλνει την εντολή που έχει αποθηκευμένη, που μπορεί να είναι παραμετροποιημένη ή όχι, στον κοινό δίαυλο επικοινωνίας (108), μέσω του οποίου διαβιβάζονται όλες οι εντολές από τα μπλοκ στη βάση (1) και η βάση (1) στέλνει μια προς μια τις εντολές στο ρομπότ (23) προς εκτέλεση, η) το ρομπότ (23) εκτελεί τις εντολές, θ) κάθε φορά που το ρομπότ (23) εκτελεί μία εντολή ανάβει φως στο αντίστοιχο μπλοκ εντολών (13), του οποίου η εντολή εκτελείται.

Claims (1)

  1. ΑΞΙΩΣΕΙΣ
    Αξίωση 1<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ που αποτελείται από α) ρομπότ (23), β) βάση (1), γ) μπλοκ με αποθηκευμένες εντολές (13), δ) κοινό δίαυλο επικοινωνίας (9) της βάσης με τα μπλοκ εντολών και ε) μπλοκ παραμέτρων (21).
    Αξίωση 2<η>Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στην αξίωση 1, και χαρακτηρίζεται από το ότι το κύκλωμα της βάσης (1) και τα κυκλώματα των μπλοκ εντολών (13) διαθέτουν κονέκτορες που διαθέτουν τουλάχιστον τρεις ακίδες.
    Αξίωση 3<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι το κύκλωμα των μπλοκ εντολών (13) μπορεί να διαθέτει πολυπλεξία.
    Αξίωση 4<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι η βάση (1), τα μπλοκ εντολών (13) και τα μπλοκ παραμέτρων (21) διαθέτουν μαγνήτες (6) προκειμένου να συνδέονται μεταξύ τους.
    Αξίωση 5<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι η βάση (1) στις πλευρές που συνδέεται με τα μπλοκ εντολών (13) διαθέτει φυσικό εμπόδιο, το οποίο αποτελείται τουλάχιστον από μία εξοχή (5) και τουλάχιστον μία εσοχή (4), προκειμένου να επιτυγχάνεται η ορθή σύνδεση των ακίδων του κονέκτορα.
    Αξίωση 6<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι κάθε μπλοκ εντολών (13) στις πλευρές που συνδέεται με άλλο μπλοκ και με τη βάση (1), διαθέτει τουλάχιστον ένα φυσικό εμπόδιο, προκειμένου να επιτυγχάνεται η ορθή σύνδεση των καλωδιώσεων, το οποίο αποτελείται από μία εξοχή (5) και μία εσοχή (4).
    Αξίωση 7<η>: Σύστημα προγραμματισμού για χρήση σε εκπαιδευτικό ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι το κάθε μπλοκ παράμετρος (21) μπορεί να ενσωματώνει ταυτόχρονα παράμετρο αριθμό και παράμετρο αισθητήρα.
    Αξίωση 8<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι το ρομπότ (23) διαθέτει οθόνη (24).
    Αξίωση 9<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι το ρομπότ (23) διαθέτει ηχεία (32).
    Αξίωση 10<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι το ρομπότ (23) διαθέτει φώτα (31).
    Αξίωση 11<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι το ρομπότ (23) διαθέτει πυκνωτικό αισθητήρα αφής (29).
    Αξίωση 12<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι το ρομπότ (23) διαθέτει αισθητήρα χειρονομιών (28).
    Αξίωση 13<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι το ρομπότ (23) διαθέτει αισθητήρα ήχο (33).
    Αξίωση 14<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι το ρομπότ (23) διαθέτει αισθητήρα φωτός (28).
    Αξίωση 15<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι το ρομπότ (23) διαθέτει αισθητήρα χρώματος (28).
    Αξίωση 16<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις αξιώσεις 4 έως 11, και χαρακτηρίζεται από το ότι η οθόνη του ρομπότ (23) διαθέτει πλαίσιο από μαγνήτες (6).
    Αξίωση 17<η>: Σύστημα καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι το ρομπότ (23) διαθέτει ποδιά αλουμινίου (25).
    Αξίωση 18<η>: Μέθοδος καθοδήγησης εκπαιδευτικού ρομπότ με τη χρήση του συστήματος, όπως περιγράφεται στις προηγούμενες αξιώσεις, και χαρακτηρίζεται από το ότι η καθοδήγηση γίνεται απτικά ως εξής: α) στη βάση (1) συνδέονται μπλοκ με αποθηκευμένες εντολές (13), με ένωση που επιτυγχάνεται με τους μαγνήτες και το μηχανισμό εξοχών (5) - εσοχών (4), β) ευθυγραμμίζονται οι ακίδες της τροφοδοσίας (6), της διαβίβασης εντολών (7), της γείωσης (10) και του κοινού δίαυλου επικοινωνίας (9), μέσω του οποίου επιστρέφονται οι αποθηκευμένες εντολές από τα μπλοκ στη βάση (1), γ) συνδέονται παράμετροι στα μπλοκ εντολών (13), δ) πιέζεται το κουμπί της εκτέλεσης (2) ε) η βάση (1) στέλνει αίτημα ανάγνωσης στα μπλοκ εντολών (13), στ) το αίτημα διαβιβάζεται από το εγγύτερο στη βάση (1) μπλοκ στο απώτερο, μέσω των ευθυγραμμισμένων καλωδιώσεων, ζ), το κάθε μπλοκ εντολών (13), λαμβάνοντας υπόψη και τυχόν μπλοκ παράμετρο (21) που έχει συνδεδεμένη, στέλνει την εντολή που έχει αποθηκευμένη, που μπορεί να είναι παραμετροποιημένη ή όχι, στον κοινό δίαυλο επικοινωνίας (108), μέσω του οποίου διαβιβάζονται όλες οι εντολές από τα μπλοκ στη βάση (1) και η βάση (1) στέλνει τις εντολές στο ρομπότ (23) προς εκτέλεση, η) το ρομπότ (23) εκτελεί τις εντολές, θ) κάθε φορά που το ρομπότ (23) εκτελείται μία εντολή και η βάση στέλνει εντολή για να ανάψει το ανάβει φως στο αντίστοιχο μπλοκ εντολών (13), του οποίου η εντολή εκτελείται.
    Αξίωση 19<η>: Μέθοδος καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στην αξίωση 18, και χαρακτηρίζεται από το ότι ο προγραμματισμός μπορεί να γίνει γραφικά, με τη χρήση λειτουργικού συστήματος σε γραφικό περιβάλλον (35), με το οποίο μπορούν να αποστέλλονται εντολές στο ρομπότ (23) προς εκτέλεση.
    Αξίωση 20<η>: Μέθοδος καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις αξιώσεις 18 και 19, και χαρακτηρίζεται από το ότι ο προγραμματισμός μπορεί να γίνει υβριδικά, με τον συνδυασμό απτικού και γραφικού προγραμματισμού, χρησιμοποιώντας μπλοκ εντολών (13) λειτουργικό σύστημα σε γραφικό περιβάλλον (35) για την αποστολή ή μεταβολή των εντολών που αποθηκεύονται στα μπλοκ, τα οποία διαβιβάζουν τις εντολές στη βάση (1), η οποία, αφού συγκεντρώσει και ελέγξει τις εντολές, τις στέλνει στο ρομπότ (23) προς εκτέλεση.
    Αξίωση 21<η>: Μέθοδος καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις αξιώσεις 18, 19 και 20, και χαρακτηρίζεται από το ότι η βάση (1) τροφοδοτεί με ηλεκτρική ενέργεια τα μπλοκ (13) μέσω της πρώτης ακίδας (7), διαβιβάζει εντολές προς τα μπλοκ μέσω της δεύτερης ακίδας (8), επιστρέφονται εντολές από τα μπλοκ στη βάση μέσω της τρίτης ακίδας (9) και χρησιμοποιεί ως γείωση την τέταρτη ακίδα.
    Αξίωση 22<η>: Μέθοδος καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις αξιώσεις 18, 19, 20 και 21 και χαρακτηρίζεται από το ότι τα μπλοκ εντολών (13) συνδέονται στη βάση (1) διαδοχικά, οι εντολές διαβιβάζονται από τα μπλοκ, με κοινό δίαυλο επικοινωνίας (108), στη βάση (1), η οποία αφού συγκεντρώσει τις εντολές, τις στέλνει, με ασύρματο δίκτυο, στο ρομπότ (23) προς εκτέλεση.
    Αξίωση 23<η>Μέθοδος καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις αξιώσεις 18, 19, 20, 21 και 22, και χαρακτηρίζεται από το ότι το ρομπότ (23) μπορεί να συνδέεται σε απομακρυσμένο εξυπηρετητή (133) για να διαβιβάζει εντολές προς εκτέλεση και για να κατεβάζει αναβάθμιση λογισμικού.
    Αξίωση 24<η>: Μέθοδος καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις αξιώσεις 18, 19, 20, 21, 22 και 23, και χαρακτηρίζεται από το ότι η βάση (1) διαθέτει αλγόριθμο αμφίδρομης επικοινωνίας με το ρομπότ (23).
    Αξίωση 25<η>: Μέθοδος καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις αξιώσεις 18, 19, 20, 21, 22, 23 και 24, και χαρακτηρίζεται από το ότι η βάση (1) μπορεί να αναβαθμίζει το λογισμικό της.
    Αξίωση 26<η>: Μέθοδος καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις αξιώσεις 18, 19, 20, 21, 22, 23, 24 και 25, και χαρακτηρίζεται από το ότι το ρομπότ (23) και η βάση (1) διαθέτουν από ένα σημείο πρόσβασης και μία ιστοσελίδα, μέσω των οποίων γίνεται η παραμετροποίησή τους.
    Αξίωση 27<η>: Μέθοδος καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις αξιώσεις 18, 19, 20, 21, 22, 23, 24, 25 και 26, και χαρακτηρίζεται από το ότι η σύνδεση του ρομπότ (23) με τη βάση (1) γίνεται με απόδοση ονόματος και κωδικού στη βάση (1), μέσω του σημείου πρόσβασης της, και αντιστοίχιση του ίδιου ονόματος και κωδικού στο ρομπότ (23), μέσω του δικού του σημείου πρόσβασης.
    Αξίωση 28<η>: Μέθοδος καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις αξιώσεις 18, 19, 20, 21, 22, 23, 24, 25, 26 και 27, και χαρακτηρίζεται από το ότι η βάση (1) έχει τη δυνατότητα να αποθηκεύει σε ένα μπλοκ εντολών (13), το οποίο συνδέεται στην πλευρά που υπάρχει η πόρτα «αποθήκευσης», μία σειρά εντολών που είναι αποθηκευμένες σε ένα ή περισσότερα μπλοκ εντολών (13) και συνδέονται στην πόρτα «εκτέλεσης» της βάσης (1), στην οποία καταλήγει ο κοινός δίαυλος επικοινωνίας (108) της βάσης (1) με τα μπλοκ εντολών (13) που έχουν τις αποθηκευμένες εντολές.
    Αξίωση 29<η>: Μέθοδος καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις αξιώσεις 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 και 28, και χαρακτηρίζεται από το ότι μπορεί να μεταβάλλεται η κατεύθυνση των δεδομένων προς τη σωστή έξοδο.
    Αξίωση 30<η>: Μέθοδος καθοδήγησης εκπαιδευτικού ρομπότ, όπως περιγράφεται στις αξιώσεις 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 και 29, και χαρακτηρίζεται από το ότι η επικοινωνία πολλών μπλοκ με μία βάση (1) γίνεται με αμφίδρομο σειριακό τρόπο, όπου το πλάτος της πληροφορίας που πηγαινοέρχεται είναι μεταβλητό και προς τις δύο κατευθύνσεις.
GR20220101017A 2022-12-08 2022-12-08 Συστημα και μεθοδος υβριδικης καθοδηγησης εκπαιδευτικου ρομποτ GR1010562B (el)

Priority Applications (2)

Application Number Priority Date Filing Date Title
GR20220101017A GR1010562B (el) 2022-12-08 2022-12-08 Συστημα και μεθοδος υβριδικης καθοδηγησης εκπαιδευτικου ρομποτ
PCT/IB2023/062073 WO2024121685A1 (en) 2022-12-08 2023-11-30 System and method for hybrid guidance of an educational robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GR20220101017A GR1010562B (el) 2022-12-08 2022-12-08 Συστημα και μεθοδος υβριδικης καθοδηγησης εκπαιδευτικου ρομποτ

Publications (1)

Publication Number Publication Date
GR1010562B true GR1010562B (el) 2023-10-31

Family

ID=88922094

Family Applications (1)

Application Number Title Priority Date Filing Date
GR20220101017A GR1010562B (el) 2022-12-08 2022-12-08 Συστημα και μεθοδος υβριδικης καθοδηγησης εκπαιδευτικου ρομποτ

Country Status (2)

Country Link
GR (1) GR1010562B (el)
WO (1) WO2024121685A1 (el)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9755357B1 (en) * 2016-03-07 2017-09-05 Luxrobo Module assembly
CN110706556A (zh) * 2019-11-14 2020-01-17 深圳少年创客科技有限公司 幼儿机器人编程教育用的智能硬件编程器及电路和控制系统
KR20200063602A (ko) * 2018-11-28 2020-06-05 주식회사 로지브라더스 모듈화된 인공지능 코딩교육 시스템
EP3842107A1 (en) * 2019-12-26 2021-06-30 Luxrobo Co., Ltd. System for coding without compilation and module assembly
CN116131116A (zh) * 2023-03-07 2023-05-16 湖北睿捷科技有限公司 一种基于远程控制的智能化弱电箱

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7316567B2 (en) * 2003-08-01 2008-01-08 Jennifer Chia-Jen Hsieh Physical programming toy
KR101037901B1 (ko) * 2011-03-21 2011-05-30 권대용 텐저블 프로그래밍 블록에 기반한 로봇 시스템
US20170007915A1 (en) 2015-07-10 2017-01-12 Play Works Studio, Inc. Systems and methods for an interactive robotic game
US10885801B2 (en) * 2016-05-24 2021-01-05 Tangible Play, Inc. Virtualized tangible programming
IL246551A (en) * 2016-06-30 2017-07-31 Algobrix Ltd Physical programming interface in the three-dimensional plane that includes multi-layer and parameters
JP7138314B2 (ja) 2017-03-15 2022-09-16 株式会社Icon 学習用玩具
WO2018229797A1 (en) 2017-06-15 2018-12-20 Grasp Io Innovations Pvt Ltd. Interactive system for teaching sequencing and programming

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9755357B1 (en) * 2016-03-07 2017-09-05 Luxrobo Module assembly
KR20200063602A (ko) * 2018-11-28 2020-06-05 주식회사 로지브라더스 모듈화된 인공지능 코딩교육 시스템
CN110706556A (zh) * 2019-11-14 2020-01-17 深圳少年创客科技有限公司 幼儿机器人编程教育用的智能硬件编程器及电路和控制系统
EP3842107A1 (en) * 2019-12-26 2021-06-30 Luxrobo Co., Ltd. System for coding without compilation and module assembly
CN116131116A (zh) * 2023-03-07 2023-05-16 湖北睿捷科技有限公司 一种基于远程控制的智能化弱电箱

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XP058945586 *

Also Published As

Publication number Publication date
WO2024121685A1 (en) 2024-06-13

Similar Documents

Publication Publication Date Title
CN107358007B (zh) 控制智能家居系统的方法、装置和计算可读存储介质
US6939192B1 (en) Programmable toy with communication means
CN204631493U (zh) 采用多重身份验证的受控终端
JP7090837B2 (ja) 仮想ペットの情報表示方法および装置、端末、サーバ並びにそのコンピュータプログラム
KR20200136482A (ko) 가상 펫의 디스플레이 방법, 장치, 단말기 및 저장 매체
US20130059284A1 (en) Interactive electronic toy and learning device system
US20160151909A1 (en) Reconfigurable robotic system
CN109791446A (zh) 使用虚拟射线控制对象
CN108495695A (zh) 玩具
CN107168754A (zh) 有关多模块编译的系统及方法
KR101427377B1 (ko) 미러월드 기반 체감형 디지털 보드 게임 서비스 제공 방법 및 장치
US20140358986A1 (en) Cloud Database-Based Interactive Control System, Method and Accessory Devices
KR20170104306A (ko) 모듈 시스템 및 모듈기반 로봇 시스템, 그리고 모듈 시스템의 업데이트 방법
EP3103527B1 (en) Information processing device and assignment method for input device
CN107261490A (zh) 实现智能玩具互动的方法、客户端及智能玩具
KR102569918B1 (ko) 코딩된 프로그램을 기반으로 외형을 변경시키는 교육용 코딩 로봇 장치
KR102044516B1 (ko) 스마트 블록 시스템, 스마트 블록 제어 방법 및 스마트 블록 제어 단말
CN115668126B (zh) 图形化编程方法和处理器、终端及计算机程序产品
CN108931984A (zh) 路径规划方法、控制方法、系统、介质、控制站和无人机
KR101502271B1 (ko) 3차원 디지털 보드 게임 서비스 제공 방법 및 장치
JP6666955B2 (ja) 電子機器の充電器を活用して電子機器が位置する空間を把握する方法、その電子機器及び充電器
WO2024121685A1 (en) System and method for hybrid guidance of an educational robot
JP2005202075A (ja) 対話制御システム及びその方法並びにロボット装置
CN113442134A (zh) 机器人编程控制系统
EP4685622A1 (en) Interaction method and apparatus, device, medium and program

Legal Events

Date Code Title Description
PG Patent granted

Effective date: 20231113