2. Εισαγωγή
• To αντικείμενο της εργασίας ήταν η κατασκευή και ο
προγραμματισμός ενός τηλεκατευθυνόμενου οχήματος
το οποίο είναι εξοπλισμένο με ένα smartphone με
σκοπό την εκμετάλλευση της κάμερας του για λήψη και
μετάδοση εικόνας. Η κίνηση του οχήματος βασίζεται σε
δύο κινητήρες οι οποίοι ελέγχονται από ένα συνδυασμό
ημιαγωγών και μιας πλακέτας Arduino.
• Πηγή έμπνευσης για την ονομασία του οχήματος
υπήρξε ο μυθικός φύλακας της Κρήτης Τάλως που ήταν
κατασκευασμένος από χαλκό και θεωρείται το πρώτο
ρομπότ της ιστορίας.
4. Τεχνικά Χαρακτηριστικά του Τάλω
• 12V τροφοδοσία από 6 AA μπαταρίες
• 2 κινητήρες με λειτουργία στα 5V DC
• Ηλεκτρικός καθρέπτης (βάση smartphone, 2 μοτέρ) 12V DC
• 6 led υψηλής με λειτουργία στα 12V DC
• Πλακέτα Arduino D1 R2 η οποία βασίζεται στο Arduino Uno
με γρηγορότερο επεξεργαστή (με κωδικό ESP8266) και
ενσωματωμένο WiFi.
• 4 transistor και 4 ρελέ διπλής επαφής.
5. Ο χειριστής του εγκεφάλου
Ο χειρισμός μπορεί να γίνει με 2 τρόπους, είτε μέσω μιας εφαρμογής σε Java για Android
και που γράφτηκε στο Android Studio, είτε μέσω ενός προγράμματος για Windows, που
γράφτηκε σε Visual Studio χρησιμοποιώντας την C#.
6. Λίγα λόγια για το πρόγραμμα του κινητού που
ελέγχει τον Τάλω
Στην εφαρμογή υπάρχουν πολλά Buttons (κουμπιά), τα οποία κατευθύνουν την κίνηση
του Τάλω, αλλά και την κίνηση της βάσης της κάμερας του.
Π.χ. το button up το οποίο όσο πατιέται, κατευθύνει το όχημα μπροστά. Αυτό στο
Android studio ορίζεται στην θέση που θέλουμε, ως εξής:
7. Στον κώδικα της Java, ουσιαστικά του λέω, ότι όσο πατιέται να στείλει στην στατική
διεύθυνση του arduino που βρίσκεται στον Τάλω μια συγκεκριμένη εντολή. Στην
περίπτωση του up το upon.
8. Η επικοινωνία γίνεται με την χρήση της μεθόδου connect της κλάσης MainActivity, της
βασικής δηλαδή κλάσης της εφαρμογής. Η connect καλεί με την σειρά της, το εξωτερικό
πρόγραμμα curl (το πιο διάσημο ίσως πρόγραμμα για αποστολή αιτημάτων σε Web
Server) με παράμετρο την διεύθυνση που έχει φτιαχτεί από τα Buttons κίνησης και
ουσιαστικά είναι αυτή που στέλνει στο Arduino την επιθυμία του χειριστή
9. Στο Arduino γίνεται κάτι παρόμοιο. Αφού «φτιάξουμε» έναν web server στον κώδικα,
τον προγραμματίζουμε να αντιδράσει όταν ανοιχτεί το συγκεκριμένο URL /upon
10. Ο χειριστής του εγκεφάλου σε C# (.NET Framework για
λειτουργικό σύστημα, Windows)
Ο χειρισμός στην C# γίνεται με παρόμοιο τρόπο, χωρίς όμως την χρήση του προγράμματος cURL
αλλά με μια από τις «βιβλιοθήκες» του .NET Framework
11. Στην περίπτωση των Windows, έχουμε 2 φόρμες, μια για την κάμερα και μια για να
«ακούει» το πάτημα του πληκτρολογίου.
12. Η κάμερα λειτουργεί με JavaScript λόγω της αδυναμίας υποστήριξης της HTML5
χρησιμοποιώντας τον web browser της .NET (βασισμένο στον Internet Explorer) σε
αντίθεση με το android που λειτουργεί με HTML5. Τα κουμπιά για έλεγχο του
προγράμματος είναι τα εξής:
• Up, down, left, right βελάκια για την κίνηση του οχήματος
• WASD για την κίνηση της κάμερας
• B για όπισθεν
• L για φώτα
13. Το μάτι του Τάλω
Το μάτι του Τάλω είναι η κάμερα του smartphone που βρίσκεται πάνω στην κινούμενη
βάση. Στο smartphone εκτελείται η εφαρμογή “IP Webcam” που μεταδίδει την εικόνα
της κάμερας χρησιμοποιώντας HTML5 ή Javascript στο πρόγραμμα ελέγχου για να την
βλέπει ο χειριστής με σκοπό τον απομακρυσμένο έλεγχο.
14. Όπως έχω αναφέρει και παραπάνω, για την επίτευξη της επικοινωνίας αλλά και για
απλότητα του προγραμματισμού, πρέπει στο κινητό που παίζει το ρόλο του ματιού του
Τάλω, στην πλακέτα Arduino (όχημα Τάλω) αλλά και στο κινητό (έλεγχος του Τάλω) να
έχουν δοθεί στατικές διευθύνσεις IP, προφανώς για να μην χρειάζεται να τις βάζουμε
ξανά κάθε φορά που αλλάζουν.
15. Ηλεκτρικό κύκλωμα συνδεμένο με το Arduino
Αφού φτάσουν οι εντολές στον web server του Arduino, αυτό βάση του προγράμματος που εκτελείται
συνέχεια, ορίζει μία αναλογική τιμή στην ζητούμενη έξοδο. Σε όλες τις εξόδους υπάρχει ένα transistor που
συνδέεται με ένα ρελέ διπλής επαφής με σκοπό την εύκολη αλλαγή στον πολισμό με στόχο την αντίστροφη
κίνηση των μοτέρ. Έτσι κατάφερα και μείωσα τον αριθμό των PWM θυρών που χρησιμοποιώ για την κίνηση
του οχήματος, στο μισό.
16. Ευχαριστίες
Ευχαριστώ τους καθηγητές της Πληροφορικής Δημήτρη Γαϊτανίδη και Γιάννη Δασκαλάκη
για την υποστήριξη και την βοήθεια που μου παρείχαν.
Βιβλιογραφία-Δικτυογραφία
1. www.wemos.cc
2. developer.android.com