5. Κάνοντας τα δάχτυλα να κινούνται

Õpikeskkond: Bios4You
Kursus: (4) Ρομποτική στη Βιοτεχνολογία
Raamat: 5. Κάνοντας τα δάχτυλα να κινούνται
Printija: Guest user
Kuupäev: laupäev, 22. august 2026, 04.38 AM

Επισκόπηση

Όπως έχει ήδη παρουσιαστεί, ένας από τους πιο εύκολους τρόπους για να υλοποιηθούν οι κινήσεις του βιονικού χεριού είναι με τη χρήση σερβοκινητήρων που τραβούν νήματα (“τένοντες”), τα οποία συνδέονται με το πιο απομακρυσμένο κινούμενο μέρος ενός δακτύλου (βλ. Εικ. 35).

Εικόνα 35. Κίνηση δακτύλου του βιονικού χεριού

Οι κινητήρες μπορούν να ελέγχονται από μια σχετικά αυτόνομη ηλεκτρονική συσκευή - έναν υπολογιστή μονού κυκλώματος (SBC) με μέγεθος πιστωτικής κάρτας. Υπάρχουν πολλές τέτοιες συσκευές στην αγορά, αλλά η προτεινόμενη είναι ο μικροελεγκτής Arduino UNO (βλ. Εικ. 36), επειδή:

  • Είναι βασισμένος σε ανοιχτό κώδικα, σχετικά φθηνός και εξαιρετικά δημοφιλής μεταξύ των ενθουσιωδών της ηλεκτρονικής και της μικρής αυτοματοποίησης.
  • Συμπεριλαμβάνεται ως μία από τις προσομοιωμένες εικονικές συσκευές στο Tinker CAD – μια δωρεάν διαδικτυακή πλατφόρμα για εκμάθηση σχεδιασμού. Αυτό αποτελεί ιδιαίτερο πλεονέκτημα, καθώς ο τρισδιάστατος σχεδιασμός, ο σχεδιασμός κυκλωμάτων και λογισμικού μπορούν να πραγματοποιηθούν στο ίδιο περιβάλλον. Επιπλέον, ο εικονικός σχεδιασμός, η μοντελοποίηση και η δοκιμή του υλικού και του λογισμικού θα βοηθήσουν στην αποφυγή ζημιών στον εξοπλισμό (και συνεπώς εξόδων), καθώς τα εικονικά στοιχεία υλικού δεν χαλάνε, ακόμα κι αν συνδεθούν ή χρησιμοποιηθούν λανθασμένα. Ορισμένα προτεινόμενα βήματα προληπτικής προετοιμασίας πριν από την υλοποίηση του σχεδιασμού σε πραγματικό υλικό θα αναφερθούν παρακάτω.

Εικόνα 36. Μικροελεγκτής Arduino UNO (πραγματική όψη- αριστερά, εικονικοποιημένος στο TinkerCAD- δεξιά)

Μικροελεγκτής Arduino UNO

Ο μικροελεγκτής Arduino UNO (εφεξής αναφερόμενος ως “UNO”) διαθέτει περιορισμένους υπολογιστικούς πόρους σε σύγκριση με επιτραπέζιους υπολογιστές, φορητούς υπολογιστές, tablets ή ακόμη και κινητά τηλέφωνα, αλλά είναι απολύτως κατάλληλος για την εργασία μας – την υλοποίηση ελεγχόμενης κίνησης:

  • Το UNO μπορεί να συνδεθεί με έναν υπολογιστή Windows μέσω καλωδίου USB, για την παροχή ρεύματος και τη φόρτωση ενός λογισμικού προγράμματος.
  • Το λογισμικό συνήθως αναπτύσσεται σε μια περιορισμένη έκδοση της γλώσσας προγραμματισμού C μέσα σε ένα ειδικό περιβάλλον ανάπτυξης λογισμικού Arduino που ονομάζεται SKETCH. Αξίζει να σημειωθεί ότι το λογισμικό μπορεί επίσης να σχεδιαστεί και να δοκιμαστεί στο Tinker CAD, στη συνέχεια να εξαχθεί ως αρχείο, να διαβαστεί από το SKETCH, να μεταγλωττιστεί και να φορτωθεί σε μια συσκευή UNO.
  • Το UNO με φορτωμένο πρόγραμμα μπορεί να λειτουργεί χωρίς υπολογιστή και να ελέγχει συνδεδεμένες συσκευές, όταν τροφοδοτείται ανεξάρτητα (συνιστάται τροφοδοσία ρεύματος DC 7-12 Volt ή μπαταρία 9V).

A close-up of a computer

Description automatically generated

Σχήμα 37. Περιβάλλον ανάπτυξης προγράμματος SKETCH και μικροελεγκτής Arduino UNO. Μπορεί να παρατηρήσει κανείς τις δύο μόνο διαδικασίες που εκτελούνται από το UNO και πρέπει να σχεδιαστούν: setup() – αρχικοποίηση του SBC· και loop() – επαναλαμβάνεται όσο παρέχεται ρεύμα.

A screenshot of a computer

Description automatically generated

Σχήμα 38. Ενότητα „Circuits“ (αριστερή στήλη) στο Tinker CAD

Arduino UNO στο Tinker CAD

Η μοντελοποίηση του σχεδιασμού ηλεκτρονικών και λογισμικού πραγματοποιείται εισερχόμενοι στην ενότητα “Κυκλώματα” (“Circuits”) (Εικ. 38) στο Tinker CAD (η ενότητα “3D design” μπορεί να έχει χρησιμοποιηθεί προηγουμένως για τη μοντελοποίηση τμημάτων των δακτύλων). Μπορεί κανείς να βρει μια εκτενή βιβλιοθήκη παραδειγμάτων και σχεδίων του Tinker CAD για μάθηση.

Το γραφικό περιβάλλον ανάπτυξης του Tinker Cad περιλαμβάνει 2 μέρη: τα εικονικά ηλεκτρονικά στα αριστερά και συλλογές ηλεκτρονικών στοιχείων ή τον επεξεργαστή προγραμματισμού στα δεξιά (όπως φαίνεται στην Εικ. 39). Το τελευταίο μπορεί να χρησιμοποιηθεί σε δύο εναλλακτικές λειτουργίες:

  • Επεξεργαστής προγράμματος C, όπως στο SKETCH – μπορεί κανείς να εξάγει ένα αρχείο προγράμματος C για να φορτωθεί σε ένα πραγματικό UNO·
  • Γραφικό περιβάλλον προγραμματισμού “CodeBlocks”, εξαιρετικά παρόμοιο με το SCRATCH2. Το πρόγραμμα CodeBlocks μετατρέπεται αυτόματα σε πρόγραμμα C (αλλά δεν ισχύει το αντίστροφο, οπότε πρέπει να προσέχετε να μην χάσετε τη δουλειά σας).

Θα χρησιμοποιηθούν 5 σερβοκινητήρες για να κινούν τα δάχτυλα του βιονικού χεριού στο εικονικό πείραμα, όπως φαίνεται σχηματικά στις Εικόνες 39 και 40. Οι κινητήρες θα ελέγχονται και θα οδηγούνται από το UNO, και 10 κουμπιά (5 δάχτυλα x 2 κατευθύνσεις = 2 σειρές κουμπιών) θα χρησιμοποιούνται για την έναρξη της κίνησης.

Εικόνα 40. Το εικονικό πείραμα - κίνηση 5 σερβοκινητήρων (δακτύλων) με το UNO. Υπάρχουν επιπλέον πολύμετρα που χρησιμοποιούνται για τον έλεγχο του ρεύματος μέσω των κουμπιών και ενός σερβοκινητήρα, ώστε να αποφευχθεί πιθανή υπερφόρτωση

Ο σερβοκινητήρας είναι μια ψηφιακή συσκευή, που περιστρέφει έναν άξονα σε μια συγκεκριμένη θέση (συνήθως από 0 έως 180 μοίρες). Οι κινητήρες (ακίδες ελέγχου) πρέπει να συνδεθούν σε PWM (Pulse-Width Modulation – ο τρόπος καθορισμού της θέσης περιστροφής) σημειωμένες ψηφιακές εξόδους του UNO. Συνολικά, υπάρχουν 6 τέτοιες (PWM) ψηφιακές έξοδοι σε ένα UNO.

Ένα σετ κουμπιών (π.χ. “Πάνω”) θα συνδεθεί σε αναλογικές εισόδους ενός UNO, ενώ ένα άλλο σετ (π.χ. “Κάτω”) κουμπιών - σε ψηφιακές εισόδους του UNO. Πρέπει να αναφερθεί ότι η σύνδεση ενός κουμπιού σε αναλογική είσοδο και η ανάγνωση της τιμής απαιτεί ελαφρώς περισσότερη προσπάθεια από ό,τι σε ψηφιακή είσοδο.


2 Γραφικό περιβάλλον προγραμματισμού, σχεδιασμένο από το MIT.EDU και ευρέως χρησιμοποιούμενο για τη διδασκαλία προγραμματισμού στα σχολεία https://scratch.mit.edu/

Ανάπτυξη προγράμματος

Το γραφικό περιβάλλον προγραμματισμού Tinker CAD (GPE) περιορίζεται μόνο στην ανάπτυξη της συνάρτησης loop(), ενώ η setup() αναπτύσσεται ως προεπιλογή. Αυτός ο μικρός περιορισμός μπορεί να ξεπεραστεί συνεχίζοντας την περαιτέρω ανάπτυξη μόνο σε C (χωρίς CodeBlocks), κάτι που μπορεί να είναι αποδεκτό για μεγαλύτερες πρακτικές εφαρμογές. Το GPE περιέχει 6 είδη λειτουργιών “CodeBlocks”, κωδικοποιημένες με διαφορετικά χρώματα (Εικ. 41α): μεταβλητές, έλεγχος, έξοδος, είσοδος, μαθηματικά (περιλαμβάνει τον υπολογισμό ικανοποίησης μιας συνθήκης, τις λεγόμενες Boolean πράξεις, που χρησιμοποιούνται σε εντολές ελέγχου), σημειώσεις (σχόλια). Οι εντολές διαφορετικών ειδών συνδυάζονται μεταξύ τους ανάλογα με το σχήμα τους.

Το πρόγραμμα που κινεί τους σερβοκινητήρες (“δάχτυλα”) αποτελείται από ένα μικρό και δύο κύρια μέρη (Εικ. 41β), τα οποία διαχωρίζονται με σχόλια σε γκρι χρώμα:

  • Ορισμός της ταχύτητας περιστροφής (μεταβλητή rotationStep, ροζ) – κατά τη μεταφορά του προγράμματος σε πραγματικό UNO, αυτή η εντολή μπορεί να μεταφερθεί στη διαδικασία setup().

  • Δίνονται εντολές σε κάθε σερβοκινητήρα να περιστραφεί σε συγκεκριμένη θέση – 5 έξοδοι (μπλε), όπου πρέπει να δοθεί προσοχή στον σωστό ορισμό του ακροδέκτη εξόδου (στην πλακέτα UNO) και της θέσης (διαφορετικές μεταβλητές, ροζ). Καθώς αυτές οι μεταβλητές ορίζονται εξ ορισμού στο 0 κατά τη setup(), δεν συμβαίνει τίποτα μετά την ενεργοποίηση, μέχρι να πατηθεί κάποιο κουμπί.

  • Έλεγχος των ζευγών κουμπιών και επαναϋπολογισμός της θέσης των σερβοκινητήρων. Αυτό το μέρος επαναλαμβάνεται (φαίνεται μόνο ένα στην Εικ. 41β) 5 φορές για κάθε σετ 2 κουμπιών και έναν σερβοκινητήρα.

    • Η κατάσταση (τάση) του κουμπιού “Up” διαβάζεται από μια αναλογική είσοδο. Το πιθανό εύρος ανάγνωσης είναι από 0 έως 1023 μονάδες, που αντιστοιχούν σε 0 και 5 Volt αντίστοιχα. Πρέπει να δοθεί προσοχή στον σωστό ορισμό του ακροδέκτη εισόδου στην πλακέτα UNO.

    • Αν η τιμή που διαβάστηκε είναι μεγαλύτερη από 256 (1,25V), τότε η θέση του συγκεκριμένου σερβοκινητήρα πρέπει να επαναϋπολογιστεί, αυξάνοντάς την κατά την τιμή του rotationStep.

    • Η υπολογισμένη θέση δεν πρέπει να υπερβαίνει τις 180°. Αν συμβεί αυτό, ορίζεται σε αυτή την οριακή τιμή.

    • Αν το κουμπί “Up” δεν πατήθηκε, εκτελείται ο κλάδος else.

    • Η κατάσταση του κουμπιού “Down” διαβάζεται από μια ψηφιακή είσοδο (0 = Όχι, ή 1 = Ναι). Πρέπει να δοθεί προσοχή στον σωστό ορισμό του ακροδέκτη εισόδου στην πλακέτα UNO.

    • Αν η τιμή που διαβάστηκε είναι μεγαλύτερη ή ίση με 1, τότε η θέση του συγκεκριμένου σερβοκινητήρα πρέπει να επαναϋπολογιστεί, μειώνοντάς την κατά την τιμή του rotationStep. Απαιτήθηκε επιπλέον αριθμητική (μαθηματική, πράσινη κατηγορία) πράξη για να προκύψει αρνητική τιμή του rotationStep.

    • Η υπολογισμένη θέση δεν πρέπει να πέσει κάτω από τις 0°. Αν συμβεί αυτό, ορίζεται σε αυτή την οριακή τιμή.

Εικόνα 41. Μέρος του γραφικού προγράμματος για την κίνηση σερβοκινητήρων

Συνεχίζοντας περαιτέρω

Υπάρχουν ορισμένες προφυλάξεις που πρέπει να λάβει κανείς υπόψη όταν προσπαθεί να συναρμολογήσει ένα πραγματικό λειτουργικό μοντέλο υλικού:

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

Για να ξεκινήσετε μόνοι σας…

Υπάρχει ένα σχέδιο με το οποίο προτείνεται να ξεκινήσετε (στο Tinker CAD) που παρουσιάζεται στο Σχ. 42:

  • Απλά πάρτε ένα εικονικό UNO και έναν εικονικό σερβοκινητήρα.
  • Συνδέστε την τροφοδοσία και τη γείωση από την πλακέτα UNO στις αντίστοιχες ακίδες του σερβοκινητήρα και την έξοδο με σήμανση PWM του UNO στην ακίδα “Signal” του σερβοκινητήρα.  Δημιουργήστε ένα πρόγραμμα που περιστρέφει τον σερβοκινητήρα σε κάποια θέση και πίσω.

Σχήμα 42. Προτεινόμενο κύκλωμα για την πρώτη προσομοίωση

Προτεινόμενη ανάγνωση

Προσομοιώσεις κίνησης με βάση την επαυξημένη πραγματικότητα (AR)

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