Ηλεκτρονικός Βοηθός Οδηγού Μοτοσυκλέτας

Σχετικά έγγραφα
«Ο συγγραφέας στα σύγχρονα ΜΜΕ: ο λόγος και η απήχηση του»

«Συλλογή, μεταφορά και διαχείριση επικίνδυνων στερεών αποβλήτων της Γ.Μ.Μ.Α.Ε. ΛΑΡΚΟ»

Συνοπτική Παρουσίαση. Ελλάδα


...ακολουθώντας τη ροή... ένα ημερολόγιο εμψύχωσης

ΚΩΔΙΚΑΣ ΔΕΟΝΤΟΛΟΓΙΑΣ

Ατομικό ιστορικό νηπίου

ΚΩ ΙΚΑΣ ΕΟΝΤΟΛΟΓΙΑΣ ΤΗΣ ΕΤΑΙΡΕΙΑΣ ΜΕ ΤΗΝ ΕΠΩΝΥΜΙΑ «ΠΑΠΟΥΤΣΑΝΗΣ ΑΝΩΝΥΜΗ ΒΙΟΜΗΧΑΝΙΚΗ ΚΑΙ ΕΜΠΟΡΙΚΗ ΕΤΑΙΡΕΙΑ ΚΑΤΑΝΑΛΩΤΙΚΩΝ ΑΓΑΘΩΝ»

ΚΕΦ. 1 Η ΛΟΓΙΣΤΙΚΗ ΚΑΙ Η ΣΗΜΑΣΙΑ ΤΗΣ ΣΤΙΣ ΕΠΙΧΕΙΡΗΣΕΙΣ

Αγαπητοί φίλοι, συνάδελφισσες, συνάδελφοι,

Η ΨΥΧΗ ΚΑΙ Ο ΘΑΝΑΤΟΣ ( 1 )

Ταυτοποίηση Κυπριακής Φιλοξενίας. Πρότυπο κάτω από το εθνικό σήμα: «φ»

Μια «γριά» νέα. Εύα Παπώτη

ΤΙΤΛΟΣ ΒΙΒΛΙΟΥ: Συνδικαλιστική εκπαίδευση, Συλλογικές συμβάσεις, Συλλογικές διαπραγματεύσεις.

Α. ΟΡΓΑΝΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΕΦΑΡΜΟΓΗΣ

ΦΙΛΟΣΟΦΙΑ ΤΟΥ ΔΙΚΑΙΟΥ. Ενότητα 7: Σχέση δικαίου-ηθικής-πολιτικής. Παρούσης Μιχαήλ. Τμήμα Φιλοσοφίας

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

Κρύων της Μαγνητικής Υπηρεσίας. Πνευματική Ανατομική. Μάθημα 3ο ~ Εργασία με το Κόλον

Κατερίνα Παναγοπούλου: Δημιουργώντας κοινωνικό κεφάλαιο την εποχή της κρίσης

Απόφαση του Δ.Σ. για το προσχέδιο του νόμου για την Ανώτατη Εκπαίδευση

Τοποθέτηση Δημάρχου Γ. Πατούλη. για τεχνικό πρόγραμμα 2010

ΕΦΑΡΜΟΣΜΕΝΗ ΗΘΙΚΗ. Ενότητα 3: Το παράδειγμα της Τρέισι Λάτιμερ (συνέχεια) Παρούσης Μιχαήλ. Τμήμα Φιλοσοφίας

ΤΕΙ ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Η Ψυχοπαθολογία του Πολιτικού Του Φ.Μωρόγιαννη *

ΟΜΙΛΙΑ ΕΥΑΓ.ΜΠΑΣΙΑΚΟΥ, ΕΙΔΙΚΟΥ ΕΙΣΗΓΗΤΗ ΝΕΑΣ ΔΗΜΟΚΡΑΤΙΑΣ, ΚΑΤΑ ΤΗ ΣΥΖΗΤΗΣΗ ΣΤΗ ΒΟΥΛΗ ΤΟΥ ΚΡΑΤΙΚΟΥ ΠΡΟΥΠΟΛΟΓΙΣΜΟΥ

Α. Πολιτιστικοί φορείς Πλήθος φορέων Έδρα Γεωγραφική κατανομή φορέων Νομική μορφή Έτος ίδρυσης...

ΕΝΗΜΕΡΩΤΙΚΟ ΈΓΓΡΑΦΟ Σ.Ε.Ε.Δ.Δ.Ε. ΟΙ ΕΠΙΒΑΡΥΝΣΕΙΣ ΤΟΥ ΝΕΟΥ ΦΟΡΟΛΟΓΙΚΟΥ

ΔΕΛΤΙΟ ΤΥΠΟΥ. Ελλείψεις στο φορολογικό νομοσχέδιο. Σοβαρές ελλείψεις στη νέα μορφή του φορολογικού νομοσχεδίου

ΑΣΦΑΛΙΣΗ ΑΥΤΟΚΙΝΗΤΟΥ

Σοφία Γιουρούκου, Ψυχολόγος Συνθετική Ψυχοθεραπεύτρια

8 Μάρτη. Η βία κατά των γυναικών

ΑΙΤΙΟΛΟΓΙΚΗ ΕΚΘΕΣΗ. στο σχέδιο νόμου «Συγκέντρωση και αδειοδότηση επιχειρήσεων Μέσων Ενημέρωσης και άλλες διατάξεις» Προς τη Βουλή των Ελλήνων

Ηλεκτρονική διακυβέρνηση με ανθρώπινη διάσταση. Καθηγητής B. Ασημακόπουλος

ΘΕΣΕΙΣ ΠΡΟΤΑΣΕΙΣ ΠΡΟΤΕΡΑΙΟΤΗΤΕΣ

Ασυντήρητες και επικίνδυνες οικοδομές

ΣΥΖΗΤΗΣΗ ΝΟΜΟΣΧΕΔΙΟΥ ΥΠ.ΓΕΩΡΓΙΑΣ

ΠΡΟΣΩ ΟΛΟΤΑΧΩΣ! ΑΝΑΓΕΝΝΗΣΗ ΤΗΣ ΕΛΛΑΔΑΣ

Εκδήλωση-Συζήτηση. για τις φυλακές και τους κρατούμενους αγωνιστές. όσο υπαρχουν φυλακές κανείς δεν είναι ελεύθερος. Εισήγηση

Ευρετήριο πινάκων. Ασκήσεις και υπομνήματα

ΕΡΓΑΣΙΑ ΤΕΧΝΟΛΟΓΙΑΣ «ΚΑΤΟΙΚΙΔΙΑ ΖΩΑ»

Πρόταση για το νέο Σύνταγμα του Ελληνικού Κράτους.

Φλωρεντία, 10 Δεκεμβρίου 1513 Προς τον: ΦΡΑΓΚΙΣΚΟ ΒΕΤΤΟΡΙ, Πρέσβη της Φλωρεντίας στην Αγία Παπική Έδρα, Ρώμη. Εξοχώτατε Πρέσβη,

ΚΕΦΑΛΑΙΟ 3 ο ΤΟ ΜΕΛΛΟΝ ΤΗΣ ΕΥΡΩΠΑΪΚΗΣ ΕΝΩΣΗΣ. 3.1 Εισαγωγή

ΧΡΗΣΤΟΣ ΒΟΥΔΟΥΡΗΣ Η ΑΝΑΤΡΟΠΗ ΤΗΣ ΣΚΕΨΗΣ ΣΤΟ ΑΣΥΛΗΠΤΟ ΑΝΑΤΡΕΠΟΝΤΑΣ ΤΗ ΣΚΕΨΗ ΤΟΥ ΧΑΙΝΤΕΓΚΕΡ ΣΤΟ ΤΙ ΕΙΝΑΙ ΜΕΤΑΦΥΣΙΚΗ

Αθήνα, 25 η Απριλίου Αξιότιμη κ. Καραμάνου,

ΜΑΘΗΤΙΚΕΣ ΔΙΑΔΡΟΜΕΣ. Θράκη - Θεσσαλονίκη

Για το παρόν και το μέλλον της εθνικής!

ΜΗ ΤΥΠΙΚΟΤΗΤΑ ΚΑΙ ΜΗ ΠΡΑΓΜΑΤΙΚΟΤΗΤΑ ΣΤΙΣ ΑΓΟΡΕΣ

109(Ι)/2014 ΝΟΜΟΣ ΠΟΥ ΠΡΟΝΟΕΙ ΓΙΑ ΤΟ ΕΛΑΧΙΣΤΟ ΕΓΓΥΗΜΕΝΟ ΕΙΣΟΔΗΜΑ ΚΑΙ ΓΕΝΙΚΟΤΕΡΑ ΠΕΡΙ ΚΟΙΝΩΝΙΚΩΝ ΠΑΡΟΧΩΝ ΤΟΥ 2014 ΚΑΤΑΤΑΞΗ ΑΡΘΡΩΝ

Το ολοκαύτωμα της Κάσου

συνήλθε στην Αίθουσα των συνεδριάσεων του Βουλευτηρίου η Βουλή σε ολομέλεια για να συνεδριάσει υπό την προεδρία του Ε Αντιπροέδρου αυτής κ.

289 ον Σύστημα Αεροπροσκόπων Αγίας Φύλας ΟΜΑΔΑ ΠΡΟΣΚΟΠΩΝ ΕΓΧΕΙΡΙΔΙΟ ΧΑΛΚΙΝΟΥ ΤΡΙΦΥΛΛΟΥ

Συνέντευξη Υπουργού Δικαιοσύνης στον ραδιοφωνικό σταθμό Real Fm και στον κ. Νίκο Χατζηνικολάου

Τίτλος Ειδικού Θεματικού Προγράμματος: «Διοίκηση, Οργάνωση και Πληροφορική για Μικρο-μεσαίες Επιχειρήσεις»

ΑΝΑΚΥΚΛΩΣΗ ΤΗΓΑΝΕΛΑΙΟΥ ΓΙΑΤΙ - ΠΩΣ - ΠΟΤΕ

Το σύμπαν μέσα στο οποίο αναδύεστε

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

ΜΕ ΤΗ ΔΙΚΗ ΜΟΥ ΒΟΗΘΕΙΑ, ΤΟΥ ΑΥΤΟΚΡΑΤΟΡΙΚΟΥ ΚΗΠΟΥΡΟΥ ΔΗΛΑΔΗ, ΘΑ ΤΑ ΚΑΛΛΙΕΡΓΗΣΕΤΕ...

ΚΕΙΜΕΝΑ ΓΙΑ ΣΚΕΨΗ ΚΑΙ ΕΦΑΡΜΟΓΗ ΟΡΘΕΣ ΑΠΟΦΑΣΕΙΣ. του. Σουάμι Παραμάναντα. Περιεχόμενα

«ΤΑ ΧΕΛΙΔΟΝΙΣΜΑΤΑ»- ΤΟ ΤΡΑΓΟΥΔΙ ΤΗΣ ΧΕΛΙΔΟΝΑΣ

ΠΡΩΤΟ ΚΕΦΑΛΑΙΟ. Γενικές πληροφορίες Πού βρίσκομαι;

ΔΙΑΔΟΣΗ ΘΕΡΜΟΤΗΤΑΣ Φυσική Β' Γυμνασίου. Επιμέλεια: Ιωάννης Γιαμνιαδάκης

Εσωτερικοί Κανονισμοί Τοπικής Αυτοδιοίκησης

προβλήματα, εγώ θέλω να είμαι συγκεκριμένος. Έχω μπροστά μου και σας την αναφέρω την

Η ΕΞΕΤΑΣΗ ΜΑΡΤΥΡΩΝ ΚΑΙ Η ΠΑΡΟΥΣΙΑΣΗ ΥΠΟΘΕΣΕΩΝ ΕΝΩΠΙΩΝ ΔΙΚΑΣΤΗΡΙΟΥ

Κέντρα φιλοξενίας... και άλλα παραμύθια για μεγάλους

ΠΑΡΑΡΤΗΜΑ 7 ΔΙΑΔΙΚΑΣΙΕΣ ΠΑΡΟΧΗΣ ΔΙΑΣΥΝΔΕΣΗΣ

Ο αθλητισμός εμπνέεται από την ειρήνη. Η ειρήνη εμπνέεται από τον αθλητισμό.

Οι ιοί και οι ιογενείς λοιμώξεις του αναπνευστικού συστήματος στα παιδιά

ΠΑΡΟΥΣΙΑΣΗ ΤΩΝ ΓΕΝΙΚΩΝ ΚΑΙ ΕΙΔΙΚΩΝ ΟΡΩΝ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ «ΑΣΦΑΛΩΣ ΚΑΤΟΙΚΕΙΝ» ΚΟΙΝΟΧΡΗΣΤΟΙ ΧΩΡΟΙ

Ενώνουμε δυνάμεις. Δείγματα Γραφής. Δυναμικά μπροστά ΑΝΔΡΕΑΣ Ζ. ΚΥΠΡΙΑΝΟΥ. Βουλευτής

ΚΕΙΜΕΝΟ-ΑΠΑΝΤΗΣΗ ΤΩΝ ΜΑΧΟΜΕΝΩΝ ΛΑΪΚΩΝ ΕΠΑΝΑΣΤΑΤΙΚΩΝ ΔΥΝΑΜΕΩΝ ΓΙΑ ΔΗΜΟΣΙΕΥΜΑΤΑ ΠΟΥ ΑΦΟΡΟΥΣΑΝ ΣΤΗΝ ΕΠΙΘΕΣΗ ΤΗΣ ΟΡΓΑΝΩΣΗΣ ΣΤΟ ΝΕΟ ΗΡΑΚΛΕΙΟ

Σεπτέμβριος 2011: Εφημερίδα μηνός Αυγούστου, έκδ. 34 η

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

Πολύ συχνά λαμβάνω με τις εξής ερωτήσεις:

Το ρολόι που κρατάς στα χέρια σου κρύβει ένα μυστικό: το μυστικό της κόκκινης ομάδας. Αν είσαι αρκετά τολμηρός, μπορείς κι εσύ να ενημερωθείς για τα

ΠΡΟΒΛΗΜΑΤΑ ΤΗΣ ΔΗΜΟΣΙΑΣ ΖΩΗΣ, ΜΙΑ ΨΥΧΑΝΑΛΥΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ

Kεντρικός συντονισμός πολιτικών, μόνιμοι υφυπουργοί, μείωση ειδικών συμβούλων, κατάργηση αναπληρωτών.

Οδηγός Σπουδών Βασικής Εκπαίδευσης Α ΚΥΚΛΟΣ. ( ιάρκεια 200 ώρες) Πρόγραµµα Τηλεκπαίδευσης Μετατασσόµενου Προσωπικού ΕΛΤΑ

ΙΕΘΝΗΣ ΣΥΜΒΑΣΗ ΕΡΓΑΣΙΑΣ 183 «για την αναθεώρηση της (αναθεωρηµένης) σύµβασης για την προστασία της µητρότητας,»

Παγκόσμια Ημέρα Ψυχικής Υγείας

ΕΘΙΜΑ ΤΟΥ ΚΟΣΜΟΥ. Αγγελική Περιστέρη Α 2

Ο έρωτας ήρθε από την στέπα Μυθιστόρημα - Περίληψη

Παραμύθια. που γράφτηκαν από εκπαιδευόμενους / ες του πρώτου επιπέδου κατά τη σχολική χρονιά στο 1ο Σχολείο Δεύτερης Ευκαιρίας Λάρισας

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΙΣΘΟΛΟΓΙΚΕΣ ΔΙΑΦΟΡΕΣ ΑΝΔΡΩΝ ΚΑΙ ΓΥΝΑΙΚΩΝ ΣΤΗΝ ΚΥΠΡΟ, ΕΛΛΑΔΑ ΚΑΙ ΕΥΡΩΠΑΪΚΗ ΈΝΩΣΗ

Διασυνοριακά νερά και διαχειριστικά σχέδια λεκανών

Παιδαγωγική ή Εκπαίδευση ΙΙ

Η ΔΙΑΘΕΜΑΤΙΚΗ ΤΗΣ ΔΙΑΘΕΜΑΤΙΚΗΣ

Ο Στρατηγικός Ρόλος της Αστυνοµίας στις Σύγχρονες Απαιτήσεις της Ελληνικής Κοινωνίας

ΣΥΓΚΡΙΣΗ ΣΥΜΒΑΤΙΚΗΣ ΚΑΙ ΜΗΧΑΝΟΠΟΙΗΜΕΝΗΣ ΜΕΘΟΔΟΥ ΣΠΟΡΑΣ ΚΑΙ ΜΕΤΑΦΥΤΕΥΣΗΣ ΣΠΟΡΟΦΥΤΩΝ ΛΑΧΑΝΙΚΩΝ

Από το ξεκίνημά του ο ΤΙΤΑΝ εκφράζει

Το Ταξίδι Απελευθέρωσης

Να µαστε λοιπόν µε καφέ και τσιγάρα στης φίλης µου της Ρίτας,

Εργαστηριακή εξάσκηση στις διαταραχές της κίνησης και της οπτικής αντίληψης. Διδάσκων :Α.Β.Καραπέτσας

Εκπαιδευτική Προσέγγιση Ψηφιδωτού «Θησέας και μινώταυρος» για παιδιά προσχολικής ηλικίας

ΥΠΑΡΧΟΥΝ ΑΝΘΡΩΠΟΙ που γεννιούνται με χαρακτήρα δυναμικό και φιλόδοξο, που χαράζουν μόνοι τους την πορεία τους στον κόσμο. Υπάρχουν όμως και άλλοι,

Προδημοσιεύτηκαν τα τέσσερις πρώτα προγράμματα του νέου ΕΣΠΑ που αφορούν

ΕΥΡΥΖΩΝΙΚΟ ΔΙΑΔΙΚΤΥΟ ΚΑΙ

Ομιλία του Προέδρου της Νέας Δημοκρατίας Αντώνη Σαμαρά. Η Νέα Δημοκρατία παίρνει σήμερα μια κορυφαία πολιτική πρωτοβουλία:

Φιλοσοφία και επιστήμες στον 20ό αιώνα: Γόνιμες αλλά δύσκολες σχέσεις

Transcript:

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ Ηλεκτρονικός Βοηθός Οδηγού Μοτοσυκλέτας ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Χειμώνας Θ. Δημήτριος Επιβλέπων Καθηγητής Πατρικάκης Χαράλαμπος Επίκουρος Καθηγητής ΤΕΙ Πειραιά Επιβλέπων Καθηγητής Πρέκας Κλεάνθης Καθηγητής Εφαρμογών ΤΕΙ Πειραιά ΦΕΒΡΟΥΑΡΙΟΣ 2012

TECHNOLOGICAL EDUCATIONAL INSTITUTE OF PIRAEUS FACULTY OF ENGINEERING DEPARTMENT OF ELECTRONICS ENGINEERING Motorcycle Rider s Electronic Assistant THESIS PAPER Cheimonas Th. Dimitrios Supervisor Charalampos Patrikakis Assistant Professor TEI of Piraeus Supervisor Prekas Kleanthis Lecturer TEI of Piraeus 2013 FEBRUARY ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 2

Copyright Χειμώνας Θ. Δημήτριος, 2012. Με επιφύλαξη παντός δικαιώματος, All rights reserved Απαγορεύεται η αντιγραφή, αποθήκευση και διανομή της παρούσας εργασίας, εξ ολοκλήρου ή τμήματος αυτής, για εμπορικό σκοπό. Επιτρέπεται η ανατύπωση, αποθήκευση και διανομή για σκοπό μη κερδοσκοπικό, εκπαιδευτικής ή ερευνητικής φύσης, υπό την προϋπόθεση να αναφέρεται η πηγή προέλευσης και να διατηρείται το παρόν μήνυμα. Ερωτήματα που αφορούν τη χρήση της εργασίας για κερδοσκοπικό σκοπό πρέπει να απευθύνονται προς τον συγγραφέα. Οι απόψεις και τα συμπεράσματα που περιέχονται σε αυτό το έγγραφο εκφράζουν τον συγγραφέα και δεν πρέπει να ερμηνευθεί ότι αντιπροσωπεύουν τις επίσημες θέσεις του Τεχνολογικού Εκπαιδευτικού Ιδρύματος Πειραιά. ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ dimitrios@ximonas.com ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 3

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΠΕΙΡΑΙΑ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ Ηλεκτρονικός Βοηθός Οδηγού Μοτοσυκλέτας ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Χειμώνας Θ. Δημήτριος Επιβλέπων Καθηγητής Πατρικάκης Χαράλαμπος Επίκουρος Καθηγητής ΤΕΙ Πειραιά Επιβλέπων Καθηγητής Πρέκας Κλεάνθης Καθηγητής Εφαρμογών ΤΕΙ Πειραιά......... Πατρικάκης Χαράλαμπος Πρέκας Κλεάνθης Βασιλειάδης Σάββας ΦΕΒΡΟΥΑΡΙΟΣ 2012 ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 4

Ευχαριστίες Θα ήθελα να ευχαριστήσω τον επιβλέποντα καθηγητή μου και Επίκουρο Καθηγητή του τμήματος Ηλεκτρονικής του Τ.Ε.Ι Πειραιά, τον κύριο Χαράλαμπο Πατρικάκη, που από την πρώτη στιγμή της συνεργασίας μας, μου έδειξε απόλυτη εμπιστοσύνη και μου ανέθεσε την συγκεκριμένη πτυχιακή εργασία. Επίσης αναγνωρίζω το γεγονός ότι σε οποιαδήποτε δυσκολία που αντιμετώπιζα σχετικά με την ανάπτυξη και υλοποίηση της πτυχιακής εργασίας, ήταν πάντα δίπλα μου και με καθοδηγούσε με τις γνώσεις του είτε μέσω ηλεκτρονικών μηνυμάτων, είτε μέσω επισκέψεων που έκανα στον γραφείο του. Ένα επίσης πρόσωπο που θέλω να ευχαριστήσω είναι ο κύριος Πρέκας Κλεάνθης, Καθηγητή Εφαρμογών του τμήματος Ηλεκτρονικής του Τ.Ε.Ι Πειραιά, που εκτιμώ και σέβομαι για τις μεταπτυχιακές γνώσεις που έχει και που μου μετέφερε απλόχερα, καθώς και για την άριστη συνεργασία που είχαμε για την μελέτη και ανάπτυξη του ηλεκτρονικού κομματιού της πτυχιακής εργασίας. Τέλος, ένα μεγάλο ευχαριστώ οφείλω να πω στους κοντινούς μου φίλους και ανθρώπους, αλλά πάνω από όλα στους γονείς μου και στην υπόλοιπη οικογένεια μου, που καθ όλη την διάρκεια των σπουδών μου, στάθηκαν δίπλα μου και με στηρίξανε, ο καθένας με τον δικό του μοναδικό τρόπο. ΕΥΧΑΡΙΣΤΩ ΠΟΛΥ ΟΛΟΥΣ ΣΑΣ ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 5

Περίληψη Στην παρούσα πτυχιακή εργασία παρουσιάζεται η ιδέα και η δημιουργία μιας νέας και καινοτόμας εφαρμογής στον κλάδο των μοτοσυκλετών. Πιο συγκεκριμένα, δημιουργήσαμε μία εφαρμογή, η οποία εκμεταλλευόμενη το λειτουργικό των έξυπνων τηλεφώνων, μπορεί να παρέχει μία σειρά απαραίτητων και χρήσιμων πληροφοριών στον αναβάτη της μοτοσυκλέτας. Οι πληροφορίες αυτές καλύπτουν ένα ευρύ φάσμα των αναγκών των αναβατών όπως είναι η ενημέρωση τους για πιθανές βλάβες της μοτοσυκλέτας, τα επίπεδα του καυσίμου τους, ακόμα και τα κοντινότερα σημεία πώλησης βενζίνης, προκειμένου οι αναβάτες να εξυπηρετούνται άμεσα όπου και αν βρίσκονται. Πέρα όμως από τα παραπάνω, αξίζει να αναφέρουμε τη σημαντικότητα της εφαρμογής μας που συνάδει με την ασφάλεια τόσο της μοτοσυκλέτας όσο και του κατόχου της. Πρακτικά αυτό σημαίνει ότι μπορούμε να ξεκινάμε και να σβήνουμε την μηχανή της μοτοσυκλέτα μας με τη χρήση του κινητού μας τηλεφώνου και ενός μοναδικού κωδικού. Κάτι τέτοιο βεβαίως με τη σειρά του μας περιορίζει κατά μεγάλο ποσοστό την περίπτωση της κλοπής. Αναφορικά με την ασφάλεια του αναβάτη, έχουν μελετηθεί μελλοντικές αναβαθμίσεις της εφαρμογής που θα αφορούν όχι μόνο την ενημέρωση του για την τοποθέτηση κράνους, αλλά ακόμα και τον εντοπισμό του μέσω GPS και Social Media σε περίπτωση ατυχήματος. Παρακάτω θα έχετε την ευκαιρία να κατανοήσετε ακόμα καλύτερα τόσο την ιδέα και τους σκοπούς της εφαρμογής, όσο και την τεχνική κατασκευή της. Λέξεις κλειδιά Android, Bluetooth, OBD-II, GPS, τηλεμετρία, μοτοσυκλέτα, έξυπνα κινητά τηλέφωνα, εντοπισμός θέσης μέσω GPS ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 6

Abstract In this thesis paper we are presenting an idea and the creation of a fresh and innovative application in the motorcycle industry. More specifically, we created an application, which with the help of the smartphone s operating system, is capable to provide a series of necessary information. These ones are covering a wide range of the necessaries of motorcycle riders like possible motorcycle errors notification, the fuel levels, even more the closest fuel stations, in order to make the rider s life simpler and easier. Apart from the above, it is worth to mention the importance of our application, which is consistent with the safety of both the motorcycle and the owner. Practically, this means that we can start and stop the motorcycle s engine via our smartphone using a unique verification key for each motorcycle. Something like this, helps to reduce the possibility of our motorcycle robbery. Talking about the safety of riders, some future updates are already in progress, which are associated not only with the information of helmet wearing, but also with the motorcycle tracking through GPS and Social Media in an emergency situation. Reading next pages, you will have the opportunity to understand in depth both the whole idea and the target of this application, but also the construction of. Keywords Android, Bluetooth, OBD-II, GPS, telemetry, motorbikes, smartphones, GPS geopoint calculation ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 7

ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 9 1.1 Στόχος της πτυχιακής... 9 1.2 Η τηλεμετρία και οι εφαρμογές της.... 9 1.3 Τα έξυπνα κινητά στην ζωή μας... 10 2 ΥΛΟΠΟΙΗΣΕΙΣ ΕΦΑΡΜΟΓΩΝ ΑΥΤΟΜΑΤΙΣΜΟΥ ΓΙΑ ΤΗΝ ΒΟΗΘΕΙΑ ΟΔΗΓΩΝ... 11 2.1 Έξυπνα κινητά στον κλάδο του αυτοματισμού... 11 2.2 Περιγραφή παρόμοιων εφαρμογών με αυτή της πτυχιακής... 11 3 ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΠΡΟΔΙΑΓΡΑΦΕΣ... 13 3.1 Βασική απαίτηση και προδιαγραφή... 13 3.2 Επίπεδο Hardware... 14 3.3 Επίπεδο Software... 14 4 ΕΙΣΑΓΩΓΗ ΣΤΟ ΤΕΧΝΙΚΟ ΚΟΜΜΑΤΙ... 15 4.1 Απόκτηση μετρήσεων σε επίπεδο Hardware... 15 4.1.1 Η OBD-II θύρα... 15 4.1.2 Τα OBD-II πρωτόκολλα... 17 4.1.3 Απόκτηση πληροφορίας για οποιοδήποτε πρωτόκολλο... 18 4.1.4 Το ολοκληρωμένο κύκλωμα ELM327... 18 4.1.5 Περιγραφή των συνδέσεων του ολοκληρωμένου κυκλώματος ELM327... 19 4.1.6 Τρόπος επικοινωνίας με το ολοκληρωμένο κύκλωμα ELM327... 22 4.1.7 Εντολές επικοινωνίας (ΑΤ commands) με τον μεταφραστή ELM327... 23 4.1.8 Εντολές επικοινωνίας (OBD commands) με τον κεντρικό υπολογιστή της μοτοσυκλέτας.. 25 4.1.9 Το ηλεκτρονικό κύκλωμα της πτυχιακής... 41 4.2 Τεχνικές και μηχανισμοί σε επίπεδο Software... 44 4.2.1 Αρχιτεκτονική εφαρμογών σε λειτουργικό σύστημα Android... 45 4.2.2 Το αρχείο MANIFEST των εφαρμογών Android... 47 4.2.3 Ο κατασκευαστής (Constructor) INTENT των εφαρμογών Android... 48 4.2.4 Ο κατασκευαστής (Constructor) HANDLER των εφαρμογών Android... 48 4.2.5 Η λειτουργία της εφαρμογής μέσω δορυφόρου (GPS)... 49 4.2.6 Η λειτουργία της εφαρμογής μέσω Bluetooth... 49 4.2.7 Οι βάσεις δεδομένων ( SQLite) της εφαρμογής... 51 5 ΥΛΟΠΟΙΗΣΗ... 56 5.1 Ηλεκτρονική πλακέτα... 56 5.2 Κατασκευή εφαρμογής σε πλατφόρμα Android... 57 6 ΠΑΡΟΥΣΙΑΣΗ ΓΡΑΦΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΤΗΣ ΕΦΑΡΜΟΓΗΣ... 60 7 ΜΕΛΛΟΝΤΙΚΕΣ ΑΝΑΒΑΘΜΙΣΕΙΣ... 65 ΑΝΑΦΟΡΕΣ - LINKS... 66 ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 8

ΕΙΣΑΓΩΓΗ 1.1 Στόχος της πτυχιακής Στόχος της παρούσας πτυχιακής εργασίας, είναι να βοηθήσει τους οδηγούς μοτοσυκλετών σε δρόμους εντός και εκτός πίστας. Πιο συγκεκριμένα, επιχειρείται η δημιουργία μιας εφαρμογής, η οποία να παρέχει βοήθεια σε οδηγούς μοτοσυκλετών, κάνοντας χρήση των τεχνολογιών κινητού υπολογισμού και έξυπνων κινητών τηλεφώνων, σε συνεργασία με πρωτόκολλα τηλεμετρίας [1] ό,που είναι δυνατό. Με άλλα λόγια, όσον αφορά τους οδηγούς μοτοσυκλετών εκτός πίστας, στόχος είναι η εξοικονόμηση καυσίμου, η ασφάλεια, και η ενημέρωση του αναβάτη με πληροφορίες σχετικά με την πορεία της μοτοσυκλέτας. Αλλά και στους οδηγούς εντός πίστας, δίνει την ευκαιρία να γίνουν καλύτεροι και πιο ανταγωνιστικοί. 1.2 Η τηλεμετρία και οι εφαρμογές της. Η τηλεμετρία είναι ένας τρόπος με τον οποίο μπορούμε να στείλουμε και να ανακτήσουμε μία μέτρηση ή κάποια πληροφορία από απόσταση, είτε ενσύρματα, είτε ασύρματα, σε πραγματικό χρόνο. Η τεχνολογία αυτή μετράει πολλά χρόνια, καθώς έχει τόσες πολλές εφαρμογές στην καθημερινή μας ζωή, όπου μπορούμε να πούμε ότι χάρη σε αυτήν βασίστηκαν τα μεγαλύτερα και περισσότερα τεχνολογικά επιτεύγματα μέχρι σήμερα. Η πρώτη εφαρμογή τηλεμετρίας έγινε τον 19 ο αιώνα. Συγκεκριμένα, το 1845 αναπτύχθηκε το πρώτο τηλεμετρικό σύστημα μεταξύ του Winter Palace της Ρωσίας και της έδρας του Ρωσικού στρατού. Την σκυτάλη πήραν Γάλλοι μηχανικοί που κατασκεύασαν ένα σύστημα για καιρικές συνθήκες με αισθητήρες βάθους χιονιού, το οποίο εγκατέστησαν στο Mont Blanc, το ψηλότερο βουνό των Άλπεων, και από εκεί έστελναν τις μετρήσεις τους σε πραγματικό χρόνο στο Παρίσι. Το 1912 η εταιρεία Commonwealth Edison ή αλλιώς ComEd, μια από τις μεγαλύτερες εταιρίες παροχής ηλεκτρικής ενέργειας στο Σικάγο των Ηνωμένων Πολιτειών, ανέπτυξε ένα σύστημα τηλεμετρίας για την παρακολούθηση των ηλεκτρικών φορτίων στο δίκτυο της ηλεκτρικής της ενέργειας. Λίγα χρόνια αργότερα, και συγκεκριμένα το 1930 κατασκευάστηκε από δύο εφευρέτες το Γάλλο Robert Bureau και το Ρώσο Pavel Molchanov, το πρώτο τηλεμετρικό σύστημα το οποίο έστελνε πληροφορίες ασύρματα. Ειδικότερα, έπαιρνε μετρήσεις της θερμοκρασία και της πίεση, τις μετέτρεπε και τις έστελνε με σήματα Mors. Στην καθημερινή μας ζωή την χρησιμοποιούμε σχεδόν παντού. Η εφαρμογή της έχει εισχωρήσει σε πάρα πολλούς κλάδους και κυρίως σε κλάδους που έχουν να κάνουν με την καλύτερη διαβίωση του ανθρώπου. Οι τηλεπικοινωνίες για παράδειγμα, είναι ο πιο σημαντικός κλάδος. Με την βοήθεια της τηλεμετρίας μπορούμε σήμερα να έχουμε σταθερή και κινητή τηλεφωνία. Επιπλέον χωρίς αυτήν, δεν θα υπήρχε ο παγκόσμιος ιστός που όλοι μας γνωρίζουμε ότι χάρη σε αυτόν έχουν επιτευχθεί αρκετά άλλα σημαντικά τεχνολογικά έργα. Ακόμη όσον αφορά τον κλάδο της τηλεπικοινωνίας, μια επίσης αξιόλογη εφαρμογή της τηλεμετρίας είναι η διαστημική επιστήμη. Για παράδειγμα η NASA μπορεί να επικοινωνεί με διαστημόπλοια και δορυφόρους, τα οποία βρίσκονται τουλάχιστον δέκα δισεκατομμύρια χιλιόμετρα μακριά από το κέντρο της γης. Ένας άλλος κλάδος τον οποίο έχει βοηθήσει πολύ η τεχνολογία της τηλεμετρίας, είναι αυτός που ασχολείται με τα καιρικά και τα σεισμικά φαινόμενα. Συγκεκριμένα, έχουν τοποθετηθεί αισθητήρες σε διάφορα μέρη της γης οι οποίοι στέλνουν σχετικές πληροφορίες σε αντίστοιχα κέντρα. Άλλωστε, ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 9

υπάρχουν πολλές ακόμα εφαρμογές που αξίζει να αναφερθούν. Μία από αυτές, είναι εκείνη των μοτοσυκλετών και γενικότερα των μηχανοκίνητων οχημάτων. Έχετε σκεφτεί ποτέ πώς οι αυτοκινητοβιομηχανίες ολοένα και βελτιώνουν τα αυτοκίνητα; Η απάντηση όσο και αν ακούγεται παράξενο είναι η Formula1. Για να γίνω πιο σαφής, οι τεχνικοί της κάθε εταιρίας παίρνουν μετρήσεις επιδόσεων εντός και εκτός αγώνα, με την βοήθεια της τηλεμετρίας. Τους βοηθάει πολύ η λήψη πληροφοριών σε πραγματικό χρόνο, γιατί με αυτόν τον τρόπο ξέρουν τι πρέπει να αναβαθμίσουν ή τι να ξανασχεδιάσουν για να κάνουν ένα αυτοκίνητο πιο ασφαλές, πιο οικονομικό και πιο γρήγορο. 1.3 Τα έξυπνα κινητά στην ζωή μας Αναμφισβήτητα, τα κινητά τηλέφωνα έχουν εξελιχθεί κατά πολύ τα τελευταία χρόνια. Σήμερα βρισκόμαστε στην εποχή των έξυπνων κινητών (smartphones), και του μεγάλου ανταγωνισμού μεταξύ των εταιριών κινητής τηλεφωνίας, γεγονός που επιβεβαιώνει την μεγάλη πρόοδο στις συσκευές αυτές. Η τεχνολογία των κινητών ολοένα και αυξάνει όχι μόνο σε επίπεδο λειτουργικού συστήματος, αλλά και σε υλικού (Hardware). Πλέον το κινητό τηλέφωνο έχει μπει για τα καλά στην καθημερινότητα μας. Έχει γίνει η προέκταση των χεριών μας χωρίς αυτό να σημαίνει ότι είναι πάντα κακό. Τα σημερινά έξυπνα κινητά διαθέτουν πληθώρα εφαρμογών που διευκολύνουν την ζωή μας, την κάνουν ευχάριστη, οικονομική και ασφαλή. Καταρχάς, μας δίνουν την δυνατότητα να κάνουμε δουλειές γραφείου με αυτό. Μπορούμε να σερφάρουμε στο διαδίκτυο, να ελέγξουμε τα email μας, ακόμα και να διαβάσουμε ή να φτιάξουμε αρχεία κειμενογράφου. Έπειτα, υπάρχουν εκατοντάδες παιχνίδια που μπορούν να μας διασκεδάσουν στον ελεύθερο μας χρόνο, καθώς και εφαρμογές αναπαραγωγής εικόνας και ήχου για να μας χαλαρώσουν από το στρες της καθημερινής ρουτίνας. Μιλώντας για οικονομία, με την βοήθεια του διαδικτύου μπορούμε να μιλήσουμε και να ανταλλάξουμε μηνύματα με αγαπημένα μας πρόσωπα, ή με την οικογένεια μας σε πραγματικό χρόνο ανέξοδα. Τέλος, έχουν κατασκευαστεί χιλιάδες εφαρμογές με γνώμονα την ασφάλεια μας. Το γεγονός αυτό αποδεικνύεται από το ότι μπορούμε οποιαδήποτε στιγμή που νοιώσουμε ότι απειλούμαστε ή ότι βρισκόμαστε σε κατάσταση κινδύνου να πατήσουμε ένα κουμπί στην οθόνη του κινητού μας και να ειδοποιήσουμε άμεσα κάποιον συνάνθρωπό μας. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 10

2 ΥΛΟΠΟΙΗΣΕΙΣ ΕΦΑΡΜΟΓΩΝ ΑΥΤΟΜΑΤΙΣΜΟΥ ΓΙΑ ΤΗΝ ΒΟΗΘΕΙΑ ΟΔΗΓΩΝ 2.1 Έξυπνα κινητά στον κλάδο του αυτοματισμού Ο αυτοματισμός αποτελεί ένα κλάδο απαραίτητο σε πολλούς εργασιακούς τομείς, εργοστάσια και βιομηχανίες. Έχει βοηθήσει πολύ στην ζωή των ανθρώπων κάνοντάς την πιο εύκολη, βολική και κυρίως πιο ποιοτική. Βλέπουμε καθημερινά αυτοκινητοβιομηχανίες να προσθέτουν ολοένα και περισσότερες τεχνολογίες στα οχήματα μας, με απώτερο σκοπό την διευκόλυνση των οδηγών και την ασφάλεια τους σε περιπτώσεις κινδύνου. Τα έξυπνα κινητά όπως ήδη αναφέραμε, μπορούν να υποστηρίξουν εφαρμογές οι οποίες διευκολύνουν στην καθημερινότητα μας και την κάνουν πιο απλή και πιο λειτουργική. Η χρήση συνδέσεων όπως είναι το Bluetooth ή το Wi-Fi, τα κάνει ακόμα πιο συναρπαστικά καθώς μας δίνουν τη δυνατότητα να χειριστούμε από απόσταση ακόμα και ένα ολόκληρο σπίτι. Βέβαια σε τόσο μεγάλες αυτοματοποιήσεις απαραίτητη προϋπόθεση είναι και το ηλεκτρονικό κομμάτι. 2.2 Περιγραφή παρόμοιων εφαρμογών με αυτή της πτυχιακής Αντίστοιχες τελειοποιημένες εφαρμογές με επιπλέον χαρακτηριστικά και δυνατότητες από αυτές της συγκεκριμένης πτυχιακής, είναι δύο. Την πρωτιά κατέχει η OPEL [2], η οποία είναι η πρώτη κατασκευάστρια εταιρία αυτοκινήτων που δίνει την δυνατότητα στους πελάτες της να παρακολουθούν τις λειτουργίες του αυτοκινήτου τους, όπως για παράδειγμα την ταχύτητα που έχουν αναπτύξει, τις στροφές του κινητήρα, την θερμοκρασία εντός και εκτός της καμπίνας, και πάρα πολλές ακόμα πληροφορίες οι οποίες αντλούνται από τον κεντρικό εγκέφαλο του αυτοκινήτου μέσω CAN-BUS. Η δεύτερη εφαρμογή αντίστοιχη με αυτή της πτυχιακής, αλλά πρώτη για το είδος της, είναι αυτή της PIAGGIO [3]. Έχει σχεδόν τις ίδιες δυνατότητες με την εφαρμογή της OPEL, καθώς και οι δύο αντλούν πληροφορίες σχετικές με την λειτουργία της μοτοσυκλέτας με τον ίδιο τρόπο. Αυτό που έχει σημασία να αναφερθεί είναι ότι και οι δύο αυτές εφαρμογές έχουν σχεδιαστεί για να υποστηρίζονται από το λειτουργικό σύστημα ios όπως αυτό των iphones, σε αντίθεση με αυτή της πτυχιακής που έχει σχεδιαστεί να υποστηρίζεται από κινητά τηλέφωνα με λειτουργικό σύστημα Android. Εξάλλου, και οι δύο αναφερθείσες εταιρίες προς το παρόν παρέχουν το συγκεκριμένο σύστημα στον επιπλέον εξοπλισμό τους. Πολύ σύντομα όμως αυτή η νέα τάση θα υιοθετηθεί και από άλλες εταιρίες κα θα συμπεριλαμβάνεται στον στάνταρ εξοπλισμό τόσο για το αυτοκίνητο όσο και για τη μοτοσυκλέτα. Επιπλέον, θα ήθελα να αναφέρω ότι ένα ακόμη κίνητρο για την υλοποίηση της παρούσας πτυχιακής εργασίας δόθηκε από την εφαρμογή της PIRELLI [4], την Diablo Super Biker, καθώς πριν ξεκινήσει η έρευνα για την δημιουργία αυτής, οι παραπάνω εφαρμογές δεν είχαν ακόμη δημοσιευθεί. Ένα τελευταίο project το οποίο βοήθησε στην έμπνευση αυτής της πτυχιακής εργασίας είναι αυτού Detroid [5]. Αποτελεί ένα από τα πιο αξιόλογα project της Microsoft. Έχει βασιστεί σε ένα παλιό αυτοκίνητο μάρκας Mustung το οποίο και έχει μετατρέψει σε μια κινούμενη παιχνιδομηχανή. Χαρακτηριστικό είναι ότι μπορείς να εκκινήσεις τη μηχανή του από το κινητό τηλέφωνο. Το ταμπλό του έχει αντικατασταθεί από ένα tablet της Microsoft το οποίο τρέχει μια εφαρμογή που μπορεί να ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 11

υπολογίζει και να δείχνει πληροφορίες ίδιες με αυτές των αναλογικών καντράν, μόνο που σε αυτή την περίπτωση οι πληροφορίες αυτές παρουσιάζονται σε ψηφιακή μορφή. Επιπλέον ο χρήστης μπορεί να διαλέξει το καντράν που του αρέσει. Βέβαια, το αυτοκίνητο αυτό δεν είναι τίποτα άλλο παρά ένα concept. Αυτό σημαίνει ότι ακόμα βρίσκεται σε δοκιμαστικό επίπεδο και δε μπορεί να βγει άμεσα στην παραγωγή. Ακόμη, στο πορτμπαγκάζ του αυτοκινήτου έχουν τοποθετηθεί 2 Xbox360 τα οποία ο χρήστης μπορεί να χρησιμοποιήσει για τη διασκέδαση του έχοντας πάντα το tablet ως οθόνη. Συνοψίζοντας λοιπόν θα λέγαμε ότι πρόκειται για ένα αυτοκίνητο το οποίο είναι πλήρως χειριζόμενο από το κινητό τηλέφωνο του χρήστη, χρησιμοποιώντας κάθε δυνατή τεχνολογία. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 12

3 ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΠΡΟΔΙΑΓΡΑΦΕΣ Η κύρια ιδέα αυτής της εργασίας, είναι να δώσει την δυνατότητα στους λάτρεις των μοτοσυκλετών να έχουν ένα οπτικά διαθέσιμο ψηφιακό καντράν κατά τη διάρκεια της οδήγησης. Το ψηφιακό καντράν θα είναι το ίδιο τους το κινητό τηλέφωνο το οποίο θα μπορούν να το τοποθετούν σε ειδική βάση, στο τιμόνι της μοτοσυκλέτας. Μέσω της εφαρμογής του κινητού τους, θα έχουν την δυνατότητα να παίρνουν μετρήσεις για την πορεία τους με δύο τρόπους. Ο ένας τρόπος είναι μέσω δορυφόρου και ο δεύτερος μέσω του κεντρικού εγκεφάλου της μοτοσυκλέτας. Μια επιπρόσθετη ιδέα είναι να καταγράφει το στίγμα της μοτοσυκλέτας μέσω δορυφόρου και να αποθηκεύει την μέγιστη ταχύτητα, την μέση ταχύτητα, την διάρκεια της διαδρομής καθώς και την απόσταση της. Παράλληλα, με τις λειτουργικές πληροφορίες της μοτοσυκλέτας που παρέχονται μέσω της εφαρμογής, ο αναβάτης είναι σε θέση να γνωρίζει ακόμα και την κατανάλωση των καυσίμων του. Για αυτό το λόγο με οποιοδήποτε τρόπο και αν επιλέξει ο χρήστης να παίρνει μετρήσεις για την μοτοσυκλέτα του, θα μπορεί να βλέπει σε πραγματικό χρόνο την κατανάλωση των καυσίμων του καθώς και το πόσα λίτρα έχουν απομείνει εκείνη την στιγμή στο ρεζερβουάρ του. Μια τελευταία σκέψη, ήταν να κατασκευαστεί μία ξεχωριστή αλλά όχι μεμονωμένη κατηγορία, όπου ο οδηγός θα μπορεί σε κάθε του στάση σε βενζινάδικο να γράφει την τιμή του λίτρου της βενζίνης και το χρηματικό αντίτιμο που έδωσε και αμέσως να ενημερώνεται με το πόσα λίτρα βενζίνης έβαλε, τα συνολικά λίτρα που έχει τώρα η μοτοσυκλέτα καθώς και με το ιστορικό των στάσεων σε άλλα βενζινάδικα. 3.1 Βασική απαίτηση και προδιαγραφή Η βασική προδιαγραφή της συγκεκριμένης πτυχιακής εργασίας ήταν η δημιουργία της εφαρμογής για πλατφόρμες Android [6]. Αυτό, γιατί η πλατφόρμα Android βρίσκεται σε συνεχή εξέλιξη τα τελευταία χρόνια. Επίσης οι εφαρμογές που μπορούν να εκτελεστούν γράφονται σε γλώσσα προγραμματισμού Java, η οποία είναι η πιο διαδεδομένη και δημοφιλής γλώσσα προγραμματισμού για την υλοποίηση εφαρμογών είτε λειτουργικών συστημάτων, είτε ακόμα και διαδικτυακών εφαρμογών. Ο κύριος στόχος ήταν η αλληλεξάρτηση της μοτοσυκλέτας με το κινητό τηλέφωνο μέσω της σύνδεσης Bluetooth. Αυτός ο τρόπος είναι ο πιο βολικός, ο πιο αξιόπιστος και ο πιο ασφαλής. Σε περίπτωση όπου μεταφέρονταν τα δεδομένα μέσω καλωδίου, θα ήταν πολύ πιθανό σε οποιοδήποτε ανωμαλία του εδάφους το καλώδιο να έφευγε από την θέση του και έτσι να χάναμε μερικά από αυτά. Επιπλέον, εάν το καλώδιο ήταν σε κοινή θέα για να μπορούμε οποιαδήποτε στιγμή να το συνδέουμε με το κινητό μας, θα ήταν πολύ επικίνδυνο να φθαρεί από τις καιρικές συνθήκες, ή να υποστεί οποιαδήποτε ζημιά. Τέλος, ο κάτοχος αυτής της εφαρμογής θα μπορεί να ξεκινήσει τη μοτοσυκλέτα του με το πάτημα ενός κουμπιού στην οθόνη του κινητού του. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 13

3.2 Επίπεδο Hardware Όσον αφορά το ηλεκτρονικό κομμάτι αυτής της εργασίας, μια από τις απαιτήσεις μας ήταν η κατασκευή μιας ηλεκτρονικής πλακέτας η οποία θα μπορεί να εγκατασταθεί στην μοτοσυκλέτα με σκοπό να αντλεί όλες τις πληροφορίες που σχετίζονται με την λειτουργία της και να τις στέλνει μέσω Bluetooth στο κινητό. Επίσης η εν λόγο πλακέτα θα πρέπει να έχει μικρές διαστάσεις για να μπορεί να εγκατασταθεί εύκολα και να είναι παράλληλα και προφυλαγμένη από τις καιρικές συνθήκες. Για να μπορέσουμε να στείλουμε όμως αυτές τις μετρήσεις που θέλουμε και να κάνουμε την πτυχιακή μας πιο universal, βασική μας προϋπόθεση είναι να τις πάρουμε από τον κεντρικό εγκέφαλο της κάθε μοτοσυκλέτας. 3.3 Επίπεδο Software Αυτό που θέλουμε να πετύχουμε στην δημιουργία της εφαρμογής, είναι να την κάνουμε όσο πιο ελκυστική γίνεται προς τους οδηγούς, και κυρίως όσο το δυνατόν πιο γρήγορη. Επιπλέον, σκοπός της εφαρμογής αυτής είναι να δείχνει τις μετρήσεις στην οθόνη του κινητού μας σε πραγματικό χρόνο. Πολύ σημαντική προϋπόθεση είναι και η απεικόνιση των μετρήσεων σε συνεχή προβολή τύπου τοπίου (landscape), χωρίς αυτή να αλλάζει μέσω του αισθητήρα του κινητού. Και αυτό γιατί μας δίνει περισσότερο χώρο στην οθόνη του κινητού να τακτοποιήσουμε και να ομαδοποιήσουμε τις μετρήσεις. Ωστόσο αν το καλοσκεφτούμε, δεν είναι ιδιαιτέρως πρακτικό διότι ανά πάσα στιγμή σε μία πολύ κλειστή στροφή μπορεί η οθόνη να αλλάξει σε οριζόντια προβολή, πράγμα το οποίο είναι πολύ επικίνδυνο για τον οδηγό, γιατί μπορεί να του αποσπάσει στιγμιαία την προσοχή. Όσον αφορά την έναρξη της εφαρμογής, θα χρειάζεται 4-ψήφιος κωδικός, τον οποίο θα έχει ρυθμίσει ο οδηγός. Έτσι σε περίπτωση κλοπής του κινητού να αποφευχθεί και η επιπλέον κλοπή της μοτοσυκλέτας. Τέλος, ο χρήστης θα μπορεί να κάνει τις δικές του ρυθμίσεις. Αυτό σημαίνει ότι θα μπορεί να αλλάξει τον 4-ψηφιο κωδικό ασφαλείας του, να διαλέξει το μοντέλο της μοτοσυκλέτας του, να διαλέξει ανάμεσα σε χιλιόμετρα και μίλια σαν μονάδα μέτρησης της απόστασης, να αλλάξει την φωτεινότητα της οθόνης και πολλές άλλες ρυθμίσεις που δίνουν μία προσωπικότητα στην εφαρμογή. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 14

4 ΕΙΣΑΓΩΓΗ ΣΤΟ ΤΕΧΝΙΚΟ ΚΟΜΜΑΤΙ Ίσως το πιο εντυπωσιακό με αυτή την πτυχιακή εργασία είναι ότι πρέπει να κατασκευάσουμε ένα ολόκληρο σύστημα το οποίο αποτελείται από Hardware και Software ταυτόχρονα, πράγμα το οποίο απαιτεί όχι μόνο γνώσεις περί ηλεκτρονικών και συγκεκριμένα ψηφιακών ηλεκτρονικών, αλλά και γνώσεις προγραμματισμού σε γλώσσα Java, C++ καθώς και assembly. 4.1 Απόκτηση μετρήσεων σε επίπεδο Hardware Τα τελευταία 30 χρόνια οι περισσότερες μοτοσυκλέτες, για να μην πούμε σχεδόν όλες χρησιμοποιούν έναν κεντρικό υπολογιστή ο οποίος συγκεντρώνει όλες τις τεχνικές πληροφορίες που έχουν σχέση με την λειτουργία της μοτοσυκλέτας. Ο υπολογιστής αυτός μπορεί να μας ενημερώσει για οποιαδήποτε βλάβη υπάρχει σε ηλεκτρονικά κομμάτια της μοτοσυκλέτας όπως την μίζα, τα φώτα, την τρόμπα βενζίνης και πολλά ακόμα. Στη δική μας πτυχιακή εργασία χρησιμοποιήσαμε ακριβώς αυτή δυνατότητα που μας δίνει η μοτοσυκλέτα, μόνο που προς το παρόν χρειαστήκαμε μόνο λίγες από αυτές τις πληροφορίες που μπορεί συνολικά να μας παρέχει. Ο υπολογιστής αυτός είναι γνωστός ως On-Board Computer και σε οποιοδήποτε όχημα είναι ακριβώς ο ίδιος. Είναι αρκετά δύσκολο να τον ξεχωρίσουμε ανάμεσα σε πολλά άλλα ηλεκτρονικά κυκλώματα που πλέον χρησιμοποιούν οι μοτοσυκλέτες, παρόλα αυτά μπορούμε να συνδεθούμε σε αυτόν μέσω της θύρας OBD-I ή με την πιο πρόσφατη OBD-II [7]. 4.1.1 Η OBD-II θύρα Τη συγκεκριμένη θύρα ως επί το πλείστον, μπορούμε να την βρούμε ανοίγοντας την σέλα της μοτοσυκλέτας μας. Τοποθετείται εκεί για να προφυλάσσετε κυρίως από τις καιρικές συνθήκες. Το όνομα OBD είναι μία συντομογραφία του On Board Diagnostic, και έχει δοθεί λόγω του υπολογιστή με τον οποίο επικοινωνεί (On Board Computer). Αυτό που πρέπει να αναφέρουμε είναι ότι η OBD-II θύρα μπορεί να είναι universal, δηλαδή να είναι η ίδια σε όλες τις μοτοσυκλέτες και αυτοκίνητα, αλλά προς το παρόν υποστηρίζονται πέντε διαφορετικά πρωτόκολλα. Το κάθε ένα έχει τις δικές του ιδιαιτερότητες και η κάθε βιομηχανία κατασκευής μοτοσυκλετών χαρτογραφεί το ηλεκτρονικό κομμάτι της κάθε μοτοσυκλέτας με διαφορετικό πρωτόκολλο. Το μόνο πράγμα το οποίο τα συνδέει αυτά τα πέντε πρωτόκολλα μεταξύ τους είναι ότι οι πληροφορίες που μεταφέρονται μέσω αυτών είναι κωδικοποιημένες σε μία σειρά από bits. Τα πέντε πρωτόκολλα που υποστηρίζονται από την θύρα OBD-II είναι τα εξής : 1. SAE J1850 PWM. 2. SAE J1850 VPW. 3. ISO 9141-2. 4. ISO 14230 KWP2000 (Keyword Protocol 2000). 5. ISO 15765 CAN BUS. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 15

Η θύρα OBD-II αποτελείται από 16 pins, όπου κάθε ένα έχει την δική του σύνδεση και σημασία. Στην παρακάτω εικόνα (Εικόνα 1) απεικονίζεται η θύρα OBD-II, ενώ μπορούμε να δούμε και από τον σχετικό πίνακα (Πίνακας 1) τις συνδέσεις αυτής, περιγραφικά. Εικόνα 1. OBD-II Connector Pinout 1. Manufacturer discretion. GM: J2411 GMLAN/SWC/Single-Wire CAN. 2. Bus positive Line of SAE-J1850 PWM and SAE- 1850 VPW 9. - 10. Bus negative Line of SAE-J1850 PWM only (not SAE-1850 VPW) 3. Ford DCL(+) Argentina, Brazil (pre OBD-II) 1997-2000, USA, Europe, etc. Chrysler CCD Bus(+) 4. Chassis ground 12. - 5. Signal ground 13. - 11. Ford DCL(-) Argentina, Brazil (pre OBD-II) 1997-2000, USA, Europe, etc. Chrysler CCD Bus(-) 6. CAN high (ISO 15765-4 and SAE-J2284) 14. CAN low (ISO 15765-4 and SAE-J2284) 7. K line of ISO 9141-2 and ISO 14230-4 15. L line of ISO 9141-2 and ISO 14230-4 8. - 16. Battery voltage Πίνακας 1. Σύντομη επεξήγηση επαφών της θύρας OBD-II Όπως μπορούμε να διακρίνουμε από τον παραπάνω πίνακα, η επαφή με το νούμερο 16 μας δίνει την τάση της μπαταρίας, ενώ η επαφή με το νούμερο 4 μας δίνει τη γείωση της μπαταρίας. Όσον αφορά τα πρωτόκολλα, λόγο του ότι έχουμε να κάνουμε με κανάλια, δηλαδή μπορούμε και να λάβουμε αλλά και να στείλουμε κάποια πληροφορία, χρησιμοποιούνται δύο επαφές για κάθε κανάλι. Θα μπορούσαμε να το παρομοιάσουμε σαν το κανάλι του USB που χρησιμοποιεί μία Transmit και μια Receive σύνδεση. Έτσι και στην περίπτωση μας με την θύρα OBD-II υπάρχει η ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 16

επαφή με το νούμερο 5, η οποία είναι η γείωση των πέντε αυτών διαφορετικών σημάτων που μπορεί να διαχειριστεί. Από τις επαφές με νούμερο 2 και 10 μπορούμε να διαχειριστούμε τα δύο πρώτα πρωτόκολλα που αναφέρθηκαν, τα SAE J1850 PWM και SAE J1850 VPW. Από τις επαφές 7 και 15 μπορούμε να πάρουμε πληροφορίες οι οποίες υποστηρίζουν το τρίτο και τέταρτο πρωτόκολλο που αναφέραμε, τα ISO 9141-2 και ISO 14230-4. Τέλος το πιο δημοφιλές πρωτόκολλο, το ISO 15765 CAN BUS μπορούμε να το διαχειριστούμε μέσω των επαφών 6 και 14. 4.1.2 Τα OBD-II πρωτόκολλα Τα πέντε αυτά πρωτόκολλα, διαφέρουν μεταξύ τους κυρίως ως προς την ταχύτητα μετάδοσης της πληροφορίας και του τρόπου αποστολής της. 1. SAE J1850 PWM Το πρωτόκολλο αυτό χρησιμοποιεί την τεχνική PWM για να μπορεί να επικοινωνήσει με τον κεντρικό εγκέφαλο. Μεταφέρει την πληροφορία με ρυθμό 41.6 kb/sec, καθώς η πληροφορία κάθε στιγμή είναι περιορισμένη στα 12 bytes. Πλέον το συγκεκριμένο πρωτόκολλο χρησιμοποιείται εδώ και χρόνια από την εταιρία FORD. 2. SAE J1850 VPW Το SAE J1850 VPW δεν διαφέρει και τόσο πολύ από το παραπάνω. Χρησιμοποιεί την ίδια ταχύτητα για να μεταφέρει την κάθε πληροφορία, καθώς και το ίδιο μέγεθος (12 bytes). Η μόνη διαφορά είναι ότι χρησιμοποιεί τεχνική VPW, όπου διαφέρει ως προς την συχνότητα μετάδοσης της πληροφορίας, και ότι είναι το μοναδικό πρωτόκολλο που χρησιμοποίει μία επαφή για την επικοινωνία με τον κεντρικό υπολογιστή. 3. ISO 9141-2 & ISO 142300 Αυτό το πρωτόκολλο ISO 9141-2 θα λέγαμε είναι σχεδόν ίδιο με αυτό του RS232, καθώς χρησιμοποιεί ασύγχρονη μετάδοση δεδομένων (UART Universal Asychronous Receive Transmit), με ρυθμό που μπορεί να φτάσει μέχρι και 10.4 kbaud. Η μόνη διαφορά μεταξύ αυτών των δύο είναι το μέγεθος που μπορεί να έχει η κάθε πληροφορία. Συγκεκριμένα το ISO 9141-2 είναι και αυτό περιορισμένο στα 12 bytes ανά μήνυμα, ενώ από την άλλη το ISO 142300 μπορεί να περιέχει περισσότερο από 255 bytes. 4. ISO 15765 CAN BUS Το ISO 15765 ή αλλιώς CAN BUS είναι το πιο γνωστό και διαδεδομένο πρωτόκολλο. Ο ρυθμός με τον οποίο μεταφέρει την πληροφορία κυμαίνεται από 250 έως και 500 kbits/sec. Κατασκευάστηκε από την εταιρεία Bosch για αυτοκινητοβιομηχανίες και εργοστάσια. Πλέον χρησιμοποιείται ως στάνταρ πρωτόκολλο από το 2008 σε όλα τα αυτοκίνητα των Ηνωμένων Πολιτειών της Αμερικής. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 17

4.1.3 Απόκτηση πληροφορίας για οποιοδήποτε πρωτόκολλο Αυτό που θέλουμε στην δική μας περίπτωση είναι να υλοποιήσουμε τη συγκεκριμένη πτυχιακή εργασία με τέτοιο τρόπο ώστε να έχουμε οποιαδήποτε στιγμή με οποιοδήποτε πρωτόκολλο υποστηρίζει η μοτοσυκλέτα μας, τις πληροφορίες από τον κεντρικό υπολογιστή. Για αυτό τον λόγο χρειάστηκε να κάνουμε μία έρευνα αγοράς σχετικά με ολοκληρωμένα κυκλώματα τα οποία μπορούν να μας φανούν χρήσιμα. Αυτή την στιγμή τα δύο πιο γνωστά ολοκληρωμένα κυκλώματα τα οποία κυκλοφορούν στην αγορά είναι τα ELM327 [9] και STN1110 [8]. Και τα δύο κάνουν ακριβώς την ίδια δουλειά, με την διαφορά ότι το STN1110 είναι θα λέγαμε ο απόγονος του ELM327 ενώ είναι πιο γρήγορο, πιο σπάνιο και πολύ πιο ακριβό. Για τις δικές μας προδιαγραφές, μας ταίριαζε να ασχοληθούμε με το ELM327, καθώς για το σκοπό που το χρειαζόμαστε, η συγκριτικά χαμηλότερη ταχύτητα από αυτή του STN1110, είναι αρκετή για να μας καλύψει στην μεταφορά δεδομένων. 4.1.4 Το ολοκληρωμένο κύκλωμα ELM327 Τί πραγματικά είναι το ELM327; O ELM327 είναι ένας υβριδικός προγραμματισμένος μικροελεγκτής ο οποίος είναι απόκτημα της ELM Electronics, και ο προορισμός του είναι να λαμβάνει σήματα από διαφορετικά πρωτόκολλα από την θύρα OBD-II και να τα μεταφράζει σε μία δική του γλώσσα. Είναι ο πιο παλιός και διάσημος μεταφραστής OBD σημάτων, καθώς υπάρχει μία τεράστια γκάμα από εντολές, τύπου μόντεμ (ΑΤ), που μπορούμε να του δώσουμε και έτσι να αλλάξουμε την συμπεριφορά του ακόμα και να του ζητήσουμε να μας δώσει συγκεκριμένες πληροφορίες από τον κεντρικό υπολογιστή του οχήματος, είτε αυτό είναι μοτοσυκλέτα, είτε αυτοκίνητο. Υποστηρίζει όλα τα OBD πρωτόκολλα που υπάρχουν, έτσι το μόνο που πρέπει να κάνουμε είναι να συνδέσουμε όλες τις πιθανές επαφές, δηλαδή όλα τα πρωτόκολλα, από την θύρα OBD του οχήματος, στα κατάλληλα άκρα του ολοκληρωμένου κυκλώματος. Παρακάτω απεικονίζεται το διάγραμμα σύνδεσης (Εικόνα 2) [10] του δημοφιλούς ολοκληρωμένου κυκλώματος και ένα περιγραφικό μπλοκ διάγραμμα (Εικόνα 3) [10] για την σωστή σύνδεση και λειτουργία αυτού με τα περιφερειακά κυκλώματα. Εικόνα 2. Διάγραμμα σύνδεσης του ELM327 (Pinout) ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 18

J1850 Bus- IgnMon / RTS Block Diagram 4.00 MHz RS232Rx RS232Tx PwrCtrl / Busy IgnMon / RTS Baud Rate LFmode 18 17 16 15 6 7 RS232 Interface Power Control Memory 5 XT1 9 10 Command and Protocol Interpreter XT2 MCLR 1 A/D Converter ISO 15765-4 SAE J1939 Vmeasure 2 ISO 9141-2 ISO 14230-4 SAE J1850 PWM & VPW 25 26 27 28 status LEDs 23 24 21 22 12 3 4 14 13 11 OBD interfaces ELM327DSH Εικόνα 3. Μπλοκ διάγραμμα σύνδεσης με περιφερειακά κυκλώματα Elm Electronics Circuits for the Hobbyist www.elmelectronics.com 1 of 76 4.1.5 Περιγραφή των συνδέσεων του ολοκληρωμένου κυκλώματος ELM327 Παρακάτω ακολουθεί μια σύντομη περιγραφή [11] της κάθε επαφής του ολοκληρωμένου κυκλώματος ELM327. Ο σκοπός αυτής της σύνδεσης είναι να επαναφέρει την λειτουργία του ELM327 στην αρχική του κατάσταση. Αυτό γίνεται αν εφαρμοστεί σε αυτή μία στιγμιαία χαμηλή λογική τάση της τάξης των 5 volts. Vmeasure Ο ρόλος αυτής της σύνδεσης, είναι καθαρά για λόγους ασφαλείας. Όπως βλέπουμε και από πιο πάνω μπλοκ διάγραμμα μεταξύ αυτής της εισόδου και του πυρήνα του ολοκληρωμένου κυκλώματος, υπάρχει ένας μετατροπέας σήματος. Ο μετατροπέας αυτός δέχεται αναλογικά σήματα από την συγκεκριμένη επαφή και τα μετατρέπει σε ψηφιακά. Αυτό γίνεται για να προστατέψει την λειτουργία του, από εξωτερικά σήματα τα οποία μπορούν να το καταστρέψουν. J1850 Volts Α συγκεκριμένος ακροδέκτης αυτός παίζει τον ρόλο του ελεγκτή. Η έξοδος αυτή γίνεται λογικό 1 όταν απαιτείται 8V για το πρωτόκολλο J1850 VPW, ενώ 0 όταν απαιτείται 5V για το πρωτόκολλο J1850 PWM. J1850 Bus + Όπως μπορούμε να καταλάβουμε και από τον τίτλο του συγκεκριμένου ακροδέκτη, είναι μία έξοδος η οποία συνδέεται με τον αντίστοιχο ακροδέκτη της OBD θύρας. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 19

Memory Η σύνδεση αυτή ελέγχει την κατάσταση της εσωτερικής μνήμης του ολοκληρωμένου κυκλώματος. Όταν το ELM327 είναι σε λειτουργία ή σε κατάσταση επαναφοράς (reset), τότε η είσοδος αυτή θα πρέπει να είναι σε λογικό υψηλό επίπεδο (5V ή λογικό 1 ). Αντιθέτως αν δεν θέλουμε να χρησιμοποιήσουμε τις δυνατότητες της μνήμης, τότε η είσοδος αυτή θα πρέπει να είναι γειωμένη. Baud Rate Όπως είδαμε και από το διάγραμμα σύνδεσης παραπάνω (Εικόνα 2), το ειδικό αυτό ολοκληρωμένο κύκλωμα έχει την δυνατότητα σύνδεσης με άλλη συσκευή μέσω καναλιού RS232. Για παράδειγμα μπορούμε να οδηγήσουμε τις μεταφρασμένες μετρήσεις σε έναν μικροελεγκτή ή μία κεραία Bluetooth. Λόγο του ότι τέτοιου είδους περιφερειακές συνδέσεις μεταφέρουν τα δεδομένα με συγκεκριμένο ρυθμό, αυτός ο ακροδέκτης μας δίνει την δυνατότητα να ορίσουμε εμείς τον ρυθμό (BaudRate) που επιθυμούμε. Έτσι, εάν αυτή η είσοδος είναι συνδεδεμένη σε συνεχή τάση υψηλού επιπέδου (5V), τότε η ταχύτητα μας είναι τα 38400 kbits/s. Στην περίπτωσή μας διαλέξαμε τον δεύτερο ρυθμό μετάδοσης, ο οποίος είναι τα 9600 kbits/s, γειώνοντας αυτή την επαφή. LF mode Σε κάθε τέλος από όλα τα μηνύματα που ανταλλάσσονται μεταξύ του ολοκληρωμένου κυκλώματος και άλλων συσκευών μέσω της RS232 θύρας, περιέχονται ειδικοί χαρακτήρες που υποδηλώνουν το τέλος αυτών. Αυτό γίνεται γιατί δεν είμαστε σε θέση να γνωρίζουμε πάντα το τέλος κάθε μηνύματος καθώς η πληροφορία είναι κάθε φορά διαφορετική. Εξαιτίας αυτού, τοποθετούνται αυτοί οι χαρακτήρες, γνωστοί σε όλους μας και ως carriage return. Ο ακροδέκτης αυτός μας δίνει την δυνατότητα να επιλέξουμε αν θέλουμε απλά να έχουμε στο τέλος κάθε μηνύματος έναν τέτοιο χαρακτήρα ή και έναν επιπλέον χαρακτήρα αλλαγής γραμμής. V SS Όπως και στα υπόλοιπα ηλεκτρονικά κυκλώματα, με το σύμβολο V SS συνηθίζουμε να συμβολίζουμε την γείωση. XT1 & XT2 Για την ορθή λειτουργία του δημοφιλούς ολοκληρωμένου κυκλώματος, αυτό πρέπει να συντονιστεί σε μία συγκεκριμένη συχνότητα. Έτσι, αυτό στα δύο άκρα χρειάζεται να συνδέσουμε έναν κρύσταλλο (ταλαντωτή) στα 4MHz. VPW In & ISO In & PWM In Τα τρία αυτά άκρα του ELM327 σχετίζονται με τα πρωτόκολλα της OBD θύρας. Καθένα από αυτά θα πρέπει να είναι συνδεδεμένα με λογικό 1 όταν χρησιμοποιούνται. Όταν δεν χρησιμοποιούνται θα πρέπει με κάποιο τρόπο να γειώνονται. Για αυτό τον λόγο θα πρέπει να υπάρχει κατάλληλο κύκλωμα στο παρασκήνιο, έτσι ώστε ανά πάσα στιγμή που το κάθε πρωτόκολλο δεν χρησιμοποιείται, να γειώνεται. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 20

J1850 Bus Όπως γίνεται εύκολα αντιληπτό και από τον τίτλο του συγκεκριμένου ακροδέκτη, πρόκειται μία έξοδος η οποία συνδέεται με τον αντίστοιχο ακροδέκτη της OBD θύρας. (Ακροδέκτης 10 της θύρας OBD). IgnMon / Ο ακροδέκτης νούμερο 15 έχει οικολογικό χαρακτήρα. Με λίγα λόγια, εξοικονομεί ενέργεια και ρεύμα από την μπαταρία της μοτοσυκλέτας όταν η θύρα δεν χρησιμοποιείται ή όταν χρησιμοποιείται και ο διακόπτης της μοτοσυκλέτας είναι ανοιχτός. Μία δεύτερη ιδιότητα που έχει αυτή η επαφή, με την κατάλληλη βεβαίως συνδεσμολογία, είναι να μπορεί να διακόπτει την μετάφραση των OBD σημάτων για να στείλει μια καινούργια εντολή (ΑΤ). PwrCtrl / Busy Η επαφή PwrCtrl / Bysy είναι καταρχάς έξοδος και είναι το αποτέλεσμα της εισόδου IgnMon /. Με πιο απλά λόγια, ο ακροδέκτης μπορεί να παρέχει δύο διαφορετικές τάσεις. Μία υψηλού επιπέδου που σημαίνει ότι η θύρα OBD χρησιμοποιείται και μεταφέρει δεδομένα στην RS232 έξοδο, και μια πολύ μικρή που σημαίνει ότι η θύρα OBD βρίσκεται σε κατάσταση αναμονής. RS232Tx & RS323Rx Όπως αναφέραμε και προηγουμένως το ολοκληρωμένο κύκλωμα ELM327 χρησιμοποιεί σαν έξοδο του ένα κανάλι τύπου RS232, του οποίου η επικοινωνία με αυτό είναι αμφίδρομη. Η επαφή Tx είναι η έξοδος αυτού του καναλιού, ενώ η Rx επαφή είναι η είσοδος των δεδομένων. V DD Για να λειτουργήσει και να ενεργοποιηθεί το ολοκληρωμένο κύκλωμα θα πρέπει να είναι συνδεδεμένο με κάποια τροφοδοσία. Όπως αναφερθήκαμε πιο πριν στην επαφή V SS πρέπει να συνδέσουμε την γείωση του συνολικού κυκλώματός μας. Το ποδαράκι V DD είναι η θετική τροφοδοσία του, και για το συγκεκριμένο ολοκληρωμένο κύκλωμα, η τιμή που ενδείκνυται σύμφωνα με τον κατασκευαστή, είναι τα +5V. ISO K & ISO L Οι δύο αυτές επαφές σχετίζονται με τα πρωτόκολλα ISO 9141 και ISO 14230. Είναι οι έξοδοι οι οποίοι οδηγούν τις πληροφορίες από και προς την θύρα OBD στις επαφές 7 και 15 αντίστοιχα. CAN Tx & CAN Rx Το ίδιο ισχύει και με αυτές τις δύο συνδέσεις. Με την διαφορά μεταξύ αυτών των εξόδων και των επαφών της θύρας OBD μεσολαβεί ένα επιπλέον ολοκληρωμένο κύκλωμα. RS232Rx LED & RS232Tx &OBD Rx LED & OBD Tx LED Στα τέσσερα αυτά άκρα συνδέονται LED για δική μας ευκολία, έτσι ώστε να γνωρίζουμε ανά πάσα στιγμή εάν λειτουργεί το ολοκληρωμένο κύκλωμα και πότε μεταφέρει δεδομένα. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 21

4.1.6 Τρόπος επικοινωνίας με το ολοκληρωμένο κύκλωμα ELM327 Για να μπορέσουμε να εισχωρήσουμε στις τεχνικές πληροφορίες της μοτοσυκλέτας, αρκεί να επικοινωνήσουμε με τον μεταφραστή ELM327. Η επικοινωνία μαζί του μπορεί να γίνει μέσω ηλεκτρονικού υπολογιστή ή μέσω κατάλληλης εφαρμογής για έξυπνα κινητά τηλέφωνα. Η επικοινωνία με ηλεκτρονικό υπολογιστή, ως επί το πλείστον γίνεται μέσω της θύρας USB, ενώ όταν μιλάμε για επικοινωνία μέσω εφαρμογής, αυτή γίνεται ασύρματα με την βοήθεια της τεχνολογίας Bluetooth. Και στις δύο όμως περιπτώσεις έχουμε να κάνουμε με φυσικές συνδέσεις τύπου RS232. Το βασικότερο εργαλείο που χρειαζόμαστε για να μπορούμε να στείλουμε και να λάβουμε οποιαδήποτε πληροφορία από και προς τον μεταφραστή, είναι ένα πρόγραμμα τερματικού ή αλλιώς γνωστό στην γλώσσα της πληροφορικής ως terminal και command prompt. Όσον αφορά την επικοινωνία μέσω προσωπικού υπολογιστή μπορούμε να χρησιμοποιήσουμε ένα από τα πιο γνωστά προγράμματα τέτοιου τύπου, όπως είναι το putty [12]. Από την άλλη πλευρά, υπάρχουν πάρα πολλές εφαρμογές για κινητά τηλέφωνα που μπορούν να κάνουν ακριβώς το ίδιο, αλλά δύο μόνο συγκεκριμένες εφαρμογές έχουν σχεδιαστεί ακριβώς για τα δικά μας δεδομένα. Αυτές είναι η Bluetooth Chat [13] και η Amarino [14], των οποίων το γραφικό τους περιβάλλον βοηθάει πολύ στην ανταλλαγή μηνυμάτων. Αφού μπορέσουμε και συνδεθούμε με τον μεταφραστή μέσω κάποιου τερματικού προγράμματος έχουμε την επιλογή να εκτελέσουμε πάρα πολλές συγκεκριμένες εντολές. Παρακάτω μπορούμε να δούμε ένα διάγραμμα (Εικόνα 4) των βαθμίδων που απαιτούνται για την επικοινωνία μεταξύ του κεντρικού υπολογιστή και ενός έξυπνου κινητού τηλεφώνου, με λειτουργικό σύστημα Android. Motorcycle's OBD-II Computer OBD-II Port ELM 327 IC Bluetooth Modem Android Smartphone Εικόνα 4. Διάγραμμα βαθμίδων επικοινωνίας κινητού τηλεφώνου και κεντρικού υπολογιστή μοτοσυκλέτας ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 22

Αφού μπορέσουμε και συνδεθούμε με τον μεταφραστή μέσω κάποιου τερματικού προγράμματος έχουμε την επιλογή να εκτελέσουμε συγκεκριμένες εντολές. Αυτές οι εντολές κατηγοριοποιούνται σε δύο ομάδες. Η πρώτη ομάδα εντολών, έχει το χαρακτηριστικό ότι ξεκινάει πάντα με το πρόθεμα ΑΤ, και για αυτό τον λόγο συνήθως λέγονται εντολές ΑΤ [15]. Όπως είναι γνωστό οι εντολές ΑΤ χρησιμοποιούνται κατά κόρον για τον προγραμματισμό και την παραμετροποίηση συσκευών μόντεμ. Ακριβώς την ίδια ιδιότητα έχουν και στην περίπτωση της συγκεκριμένης πτυχιακής εργασίας, καθώς στέλνοντας εντολές ΑΤ προς τον μεταφραστή, ορίζουμε τις δικές μας ρυθμίσεις. Πιο συγκεκριμένα, μπορούμε για παράδειγμα να προγραμματίσουμε το ολοκληρωμένο μας κύκλωμα έτσι ώστε να ανιχνεύει αυτόματα το πρωτόκολλο του κεντρικού υπολογιστή της μοτοσυκλέτας που είναι συνδεδεμένο, χωρίς να χρειάζεται αυτό να γίνεται χειροκίνητα από τον χρήστη κάθε φορά που το απαιτούν οι συνθήκες. Η δεύτερη ομάδα εντολών που μπορούμε να στείλουμε, απευθύνονται εξολοκλήρου στον κεντρικό επεξεργαστή της μοτοσυκλέτας. Για τον λόγο αυτό, οι συγκεκριμένες εντολές ονομάζονται OBD ή OBD commands [16]. Εάν η εντολή που θέλουμε να στείλουμε προς το ολοκληρωμένο κύκλωμα ELM327 δεν ξεκινάει με το πρόθεμα AT, τότε αυτό υποθέτει ότι είναι εντολή OBD και την δρομολογεί στον OBD υπολογιστή. 4.1.7 Εντολές επικοινωνίας (ΑΤ commands) με τον μεταφραστή ELM327 Οι εντολές ΑΤ οι οποίες συνεργάζονται με το ολοκληρωμένο μας κύκλωμα σύμφωνα με το τεχνικό εγχειρίδιο (datasheet) του κατασκευαστή, είναι πάρα πολλές. Για την ακρίβεια, είναι εκατό (100) και για αυτόν τον λόγο θα αναλύσουμε παρακάτω μερικές από αυτές που είναι πιο συνηθισμένες και σημαντικές για την υλοποίηση της παρούσας πτυχιακής εργασίας. ΑΤ CR: Η συγκεκριμένη εντολή εκτελεί την τελευταία εντολή που θυμάται ο μεταφραστής στην μνήμη του. ΑΤ D: Εκτελώντας την συγκεκριμένη εντολή επαναφέρονται όλες οι εργοστασιακές ρυθμίσεις και διαγράφονται όλα τα προσωρινά δεδομένα που είναι αποθηκευμένα στην μνήμη του. AT E0 / ΑΤ Ε1: Η λειτουργία αυτής της εντολής είναι για να γνωρίζει ο μεταφραστής εάν η πληροφορία που έστειλε προς τον OBD υπολογιστή έφτασε επιτυχώς. Για την ακρίβεια, αυτή η λειτουργία στην γλώσσα της πληροφορικής λέγεται echo. Έτσι λοιπόν όταν στείλουμε την εντολή Ε0 απενεργοποιούμε αυτήν την λειτουργία, ενώ για να την ενεργοποιήσουμε εκ νέου στέλνουμε την εντολή Ε1. AT L0 / AT L1: Μία ακόμα λειτουργία που έχουμε την δυνατότητα να ρυθμίσουμε είναι αυτή με τους χαρακτήρες αλλαγής σειράς. Με την εντολή L0 απενεργοποιούμε αυτή την λειτουργία ενώ με την εντολή L1 την ενεργοποιούμε. Καλό είναι σε επίπεδο δοκιμών η συγκεκριμένη λειτουργία να είναι ενεργοποιημένη, έτσι ώστε να μας βοηθάει με τα τερματικά προγράμματα να ξεχωρίζουμε τις απαντήσεις που παίρνουμε από τον μεταφραστή, και να μας τις προβάλει ανά γραμμή. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 23

ΑΤ LP: Δίνοντας αυτή την εντολή βάζουμε το ολοκληρωμένο μας κύκλωμα σε κατάσταση εξοικονόμησης ρεύματος. Μόλις ενεργοποιηθεί αυτή η λειτουργία, αυτομάτως αλλάζει η κατάσταση της επαφής PwrCtrl (επαφή 16) του μεταφραστή μας. ΑΤ Μ0 / ΑΤ Μ1: Το ELM327 διαθέτει μια εσωτερική μνήμη η οποία μπορεί να θυμάται το τελευταίο πρωτόκολλο που χρησιμοποιήθηκε. Με την εντολή Μ0 την απενεργοποιούμε, ενώ με την εντολή Μ1 την ενεργοποιούμε. Φρόνιμο είναι όταν χρησιμοποιούμε συνέχεια το ίδιο πρωτόκολλο, αυτή η επιλογή να είναι ενεργοποιημένη καθώς εξοικονομούμε χρόνο κατά την έναρξη της λειτουργίας του. ΑΤ Ζ: Με την εντολή αυτή το ολοκληρωμένο μας κύκλωμα κάνει επαναφορά ρυθμίσεων (reset), σαν να το έχουμε αποσυνδέσει από την τροφοδοσία και να το τοποθετούμε ξανά. Αυτή η επιλογή μας βοηθάει πολύ αν έχουμε κάνει προσωρινές ρυθμίσεις και θέλουμε να τις επαναφέρουμε, ή αν θέλουμε να καθαρίσουμε τα προσωρινά bytes από την μνήμη του (buffer). ΑΤ RV: Με την βοήθεια αυτής της εντολής μπορούμε να διαβάσουμε ανά πάσα στιγμή την τιμή τάσης της μπαταρίας της μοτοσυκλέτας μας. Πιο πολύ την χρησιμοποιούμε κατά την διάρκεια δοκιμών μας για να βεβαιωθούμε ότι είναι σε ικανοποιητικό επίπεδο η μπαταρία μας και να προχωρήσουμε στην μεταφορά δεδομένων. ΑΤ IGN: Αυτή η εντολή δείχνει τη στάθμη του σήματος στον ακροδέκτη 15. Υποθέτει ότι το λογικό επίπεδο σχετίζεται με την τάση ανάφλεξης, οπότε αν η είσοδος είναι σε υψηλό επίπεδο, η απάντηση θα είναι «ON», ενώ αντιθέτως αν είναι σε χαμηλό επίπεδο η απάντηση θα είναι «OFF». ΑΤ AL: Τα βασικά OBD πρωτόκολλα περιορίζουν τον αριθμό των bytes των μηνυμάτων τους στα επτά τα οποία χρησιμοποιούνται και για να σταλούν οι πληροφορίες αλλά και για να ληφθούν. Εάν εκτελέσουμε την εντολή AL, τότε ο μεταφραστής μας επιτρέπει την αποστολή μηνυμάτων με οκτώ bytes και την λήψη μηνυμάτων με απεριόριστο αριθμό bytes. ΑΤ BD: Όλα τα μηνύματα τα οποία στέλνονται και λαμβάνονται από και προς τον μεταφραστή ELM327 αποθηκεύονται σε μία προσωρινή μνήμη (buffer). Ανά πάσα στιγμή αν εκτελέσουμε την εντολή BD παίρνουμε σαν απάντηση το περιεχόμενο του buffer την συγκεκριμένη χρονική στιγμή. Ένα παράδειγμα απάντησης είναι το παρακάτω, >ΑΤ BD 05 C1 33 F1 3E 23 C4 00 00 10 F8 00 00 όπου ο πρώτος αριθμός δείχνει το μέγεθος των bytes τα οποία είναι έγκυρα. Τα υπόλοιπα που ακολουθούν είναι απλά αποθηκευμένα δεδομένα που έχουν κρατηθεί από προηγούμενη χρονική στιγμή. Το παραπάνω παράδειγμα μας δείχνει ότι τα δεδομένα που μας ενδιαφέρουν είναι τα επόμενα πέντε. Άρα τα τελευταία bytes που μας ενδιαφέρουν είναι τα: C1 33 F1 3E 12. ΑΤ Η0 / ΑΤ Η1: Κάθε φορά που στέλνουμε μία εντολή στο ολοκληρωμένο μας κύκλωμα μέσω κάποιου τερματικού προγράμματος, πάντα παίρνουμε την αντίστοιχη απάντηση. Αν οι εντολές αυτές που στέλνουμε και παίρνουμε είναι πάρα πολλές, είναι πολύ εύκολο να μπερδευτούμε. Εξαιτίας αυτού, υπάρχει αυτή η λειτουργία όπου όταν είναι ενεργοποιημένη πριν από κάθε μήνυμα υπάρχει ένα byte επιπλέον που μας δείχνει σε τι αναφέρεται η κάθε εντολή. Για να ενεργοποιήσουμε αυτή την λειτουργία εκτελούμε την εντολή Η1, ενώ για να την απενεργοποιήσουμε εκτελούμε την εντολή Η0. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 24

ΑΤ NL: Η εντολή αυτή είναι η αναίρεση της εντολής AL που αναφέραμε λίγο πιο πάνω. Δηλαδή, στέλνοντας την εντολή NL ο μεταφραστής μας ρυθμίζεται έτσι ώστε να περιορίζεται στα επτά bytes ανά μήνυμα. ΑΤ SP h: Αυτή εντολή χρησιμοποιείται για να επιλέξουμε το πρωτόκολλο που θέλουμε και ακόμη να το ορίσουμε και ως προεπιλεγμένο για μελλοντικές χρήσεις. Η συντομία της είναι SP h, όπου το SP βγαίνει από τις λέξεις Select Protocol και το h είναι ο αριθμός των διαθέσιμων πρωτοκόλλων. Παρακάτω αναφέρονται αυτά τα πρωτόκολλα με τον αντίστοιχο αριθμό h που τα χαρακτηρίζει. 0. Αυτόματη επιλογή 1. SAE J1850 PWM (41.6 kbaud) 2. SAE J1850 VPW (10.4 kbaud) 3. ISO 9141-2 (5 baud init, 10.4 kbaud) 4. ISO 14230-4 KWP (5 baud init, 10.4 kbaud) 5. ISO 14230-4 KWP (fast init, 10.4 kbaud) 6. ISO 15765-4 CAN (11 bit ID, 500 kbaud) 7. ISO 15765-4 CAN (29 bit ID, 500 kbaud) 8. ISO 15765-4 CAN (11 bit ID, 250 kbaud) 9. ISO 15765-4 CAN (29 bit ID, 250 kbaud) A. SAE J1939 CAN (29 bit ID, 250* kbaud) B. USER1 CAN (11* bit ID, 125* kbaud) C. USER2 CAN (11* bit ID, 50* kbaud) AT SP Ah: Η εντολή αυτή λειτουργεί συμπληρωματικά της προηγούμενης με την μόνη διαφορά ότι μπορούμε να διαλέξουμε ένα πρωτόκολλο από τα παραπάνω αλλά σε περίπτωση που δεν βρεθεί το συγκεκριμένο, να μπορεί να ψάξει μόνο του να βρει το συμβατό. Συνηθίζεται να γίνεται αυτή η ρύθμιση όταν ξέρουμε από πριν το πρωτόκολλο το οποίο θα χρησιμοποιήσουμε, αλλά παρόλα αυτά ο μεταφραστής συνδέεται και σε άλλες μοτοσυκλέτες με διαφορετικά πρωτόκολλα. 4.1.8 Εντολές επικοινωνίας (OBD commands) με τον κεντρικό υπολογιστή της μοτοσυκλέτας Όπως ήδη αναφέραμε, ο μεταφραστής ELM327 μπορεί να ξεχωρίσει τον τύπο των εντολών που εκτελεί, δηλαδή να καταλάβει εάν επρόκειτο για AT εντολές ή για OBD εντολές. Παρόλα αυτά, εάν δεν βάλουμε το πρόθεμα ΑΤ πριν από κάποια εντολή, δεν σημαίνει ότι θα εκτελεστεί μια OBD εντολή. Αυτό γιατί η κάθε OBD εντολή θα πρέπει να ακολουθεί μία συγκεκριμένη σύνταξη. Το πρώτο byte του μηνύματος που θα στείλουμε περιγράφει τον τύπο των δεδομένων που ζητάμε κάθε φορά, ενώ τα επόμενα bytes που ακολουθούν περιγράφουν ακριβώς την πληροφορία που ζητάμε. Για να γίνω πιο σαφής, τα επόμενα bytes που ακολουθούν είναι γνωστά ως PID (Parameter Identification) bytes. Με άλλα λόγια ο κάθε κεντρικός υπολογιστής μιας μοτοσυκλέτας (On Board Computer) περιέχει τα λεγόμενα PID s, τα οποία το καθένα από αυτά έχουν την δυνατότητα να μας δώσουν πληροφορίες για την λειτουργία της μοτοσυκλέτας μας. Παρακάτω αναγράφονται οι 10 διαφορετικοί τύποι που μπορούν να υποστηρίξουν οι OBD εντολές. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 25

01 Δείχνει την πληροφορία την συγκεκριμένη χρονική στιγμή. 02 Δείχνει την τελευταία πληροφορία παγωμένη. 03 Δείχνει κωδικούς από διαγνωστικά προβλήματα. 04 Καθαρίζει τους προβληματικούς κωδικούς και τις αποθηκευμένες τιμές. 05 Δείχνει τα αποτελέσματα που έγιναν στον αισθητήρα οξυγόνου. 06 Δείχνει τα αποτελέσματα μετρήσεων που δεν αποτυπώνονται συνεχώς. 07 Δείχνει τους κωδικούς των εκκρεμών προβλημάτων. 08 Ειδική λειτουργία ελέγχου. 09 Ζητάει πληροφορίες σχετικές με την μοτοσυκλέτα. 0A Ζητάει του μόνιμους κωδικούς προβλημάτων. Υπάρχει περίπτωση παρόλα αυτά, μερικά αυτοκίνητα ή μοτοσυκλέτες να μην υποστηρίζουν όλα τα PIDs. Πιο συγκεκριμένα, ο μεταφραστής μας δίνει την δυνατότητα να γνωρίζουμε για κάθε μοτοσυκλέτα ή αυτοκίνητο ποιά PID υποστηρίζει. Αυτό γίνεται με τον εξής απλό τρόπο. Ανεξαρτήτως τι τύπο OBD εντολή θα στείλουμε, την στέλνουμε σαν πληροφορία για να πάρουμε το byte 00. Με αυτόν τον τρόπο έχουμε άμεση απάντηση από τον μεταφραστή μας για τον συγκεκριμένο τύπο δεδομένων που επιλέξαμε και για το ποια PID είναι διαθέσιμα. Το παρακάτω παράδειγμα εξηγεί με ακρίβεια αυτή την λειτουργία και τον τρόπο με τον οποίο ανταλλάσσονται τέτοιου είδους μηνύματα μεταξύ του μεταφραστή και ενός τερματικού προγράμματος. Εάν στείλουμε την εντολή: >01 00 ουσιαστικά ζητάμε από τον κεντρικό υπολογιστή να μας πει ποιά είναι τα διαθέσιμα PID (00) που υποστηρίζονται στον 01 τύπο δεδομένων. Αυτό που θα πάρουμε σαν απάντηση είναι: 41 00 BE 1F B8 10 όπου το 41 είναι το byte που έχει δημιουργηθεί από το byte 01 και το byte 40. Το byte 41 ουσιαστικά δηλώνει ότι αναφερόμαστε στην λειτουργία 01 της θύρας OBD. Το αμέσως επόμενο byte 00 δηλώνει το PID από το οποίο έχουμε ζητήσει τις πληροφορίες μας. Τα ακόλουθα τέσσερα bytes είναι η πληροφορία που έχουμε ζητήσει. Για την ακρίβεια μέσω των τεσσάρων bytes αποκωδικοποιούμε ποια PIDs από τα επόμενα 32 είναι διαθέσιμα. Η αποκωδικοποίηση γίνεται με τον εξής απλό τρόπο που εξηγεί ο παρακάτω πίνακας (Πίνακας 2), Πίνακας 2. Αποκωδικοποίηση των διαθέσιμων PIDs. όπου μετατρέπουμε το κάθε byte από δεκαεξαδικό σύστημα σε δεκαδικό και όπου έχουμε 1 τότε το αντίστοιχο PID είναι διαθέσιμο και όπου έχουμε 0, δεν είναι διαθέσιμο. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 26

Στον πίνακα που ακολουθεί (Πίνακας 3) μπορούμε να δούμε όλους τους PID κωδικούς [17] που υπάρχουν για οποιοδήποτε τύπο δεδομένων. Mode (hex) PID (hex) Data bytes returned Description 01 00 4 PIDs supported [01 20] 01 01 4 Monitor status since DTCs cleared. (Includes malfunction indicator lamp (MIL) status and number of DTCs.) 01 02 2 Freeze DTC 01 03 2 Fuel system status 01 04 1 Calculated engine load value 01 05 1 Engine coolant temperature 01 06 1 Short term fuel % trim Bank 1 01 07 1 Long term fuel % trim Bank 1 01 08 1 Short term fuel % trim Bank 2 01 09 1 Long term fuel % trim Bank 2 01 0A 1 Fuel pressure 01 0B 1 Intake manifold absolute pressure 01 0C 2 Engine RPM 01 0D 1 Vehicle speed ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 27

01 0E 1 Timing advance 01 0F 1 Intake air temperature 01 10 2 MAF air flow rate 01 11 1 Throttle position 01 12 1 Commanded secondary air status 01 13 1 Oxygen sensors present 01 14 2 Bank 1, Sensor 1: Oxygen sensor voltage, Short term fuel trim 01 15 2 Bank 1, Sensor 2: Oxygen sensor voltage, Short term fuel trim 01 16 2 Bank 1, Sensor 3: Oxygen sensor voltage, Short term fuel trim 01 17 2 Bank 1, Sensor 4: Oxygen sensor voltage, Short term fuel trim 01 18 2 Bank 2, Sensor 1: Oxygen sensor voltage, Short term fuel trim 01 19 2 Bank 2, Sensor 2: Oxygen sensor voltage, Short term fuel trim ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 28

01 1A 2 Bank 2, Sensor 3: Oxygen sensor voltage, Short term fuel trim 01 1B 2 Bank 2, Sensor 4: Oxygen sensor voltage, Short term fuel trim 01 1C 1 OBD standards this vehicle conforms to 01 1D 1 Oxygen sensors present 01 1E 1 Auxiliary input status 01 1F 2 Run time since engine start 01 20 4 PIDs supported [21 40] 01 21 2 Distance traveled with malfunction indicator lamp (MIL) on 01 22 2 Fuel Rail Pressure (relative to manifold vacuum) 01 23 2 Fuel Rail Pressure (diesel, or gasoline direct inject) 01 24 4 O2S1_WR_lambda(1): Equivalence Ratio Voltage 01 25 4 O2S2_WR_lambda(1): Equivalence Ratio Voltage 01 26 4 O2S3_WR_lambda(1): Equivalence Ratio Voltage ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 29

01 27 4 O2S4_WR_lambda(1): Equivalence Ratio Voltage 01 28 4 O2S5_WR_lambda(1): Equivalence Ratio Voltage 01 29 4 O2S6_WR_lambda(1): Equivalence Ratio Voltage 01 2A 4 O2S7_WR_lambda(1): Equivalence Ratio Voltage 01 2B 4 O2S8_WR_lambda(1): Equivalence Ratio Voltage 01 2C 1 Commanded EGR 01 2D 1 EGR Error 01 2E 1 Commanded evaporative purge 01 2F 1 Fuel Level Input 01 30 1 # of warm-ups since codes cleared 01 31 2 Distance traveled since codes cleared 01 32 2 Evap. System Vapor Pressure 01 33 1 Barometric pressure ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 30

01 34 4 O2S1_WR_lambda(1): Equivalence Ratio Current 01 35 4 O2S2_WR_lambda(1): Equivalence Ratio Current 01 36 4 O2S3_WR_lambda(1): Equivalence Ratio Current 01 37 4 O2S4_WR_lambda(1): Equivalence Ratio Current 01 38 4 O2S5_WR_lambda(1): Equivalence Ratio Current 01 39 4 O2S6_WR_lambda(1): Equivalence Ratio Current 01 3A 4 O2S7_WR_lambda(1): Equivalence Ratio Current 01 3B 4 O2S8_WR_lambda(1): Equivalence Ratio Current 01 3C 2 Catalyst Temperature Bank 1, Sensor 1 01 3D 2 Catalyst Temperature Bank 2, Sensor 1 ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 31

01 3E 2 Catalyst Temperature Bank 1, Sensor 2 01 3F 2 Catalyst Temperature Bank 2, Sensor 2 01 40 4 PIDs supported [41 60] 01 41 4 Monitor status this drive cycle 01 42 2 Control module voltage 01 43 2 Absolute load value 01 44 2 Command equivalence ratio 01 45 1 Relative throttle position 01 46 1 Ambient air temperature 01 47 1 Absolute throttle position B 01 48 1 Absolute throttle position C 01 49 1 Accelerator pedal position D 01 4A 1 Accelerator pedal position E 01 4B 1 Accelerator pedal position F 01 4C 1 Commanded throttle actuator ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 32

01 4D 2 Time run with MIL on 01 4E 2 Time since trouble codes cleared 01 4F 4 Maximum value for equivalence ratio, oxygen sensor voltage, oxygen sensor current, and intake manifold absolute pressure 01 50 4 Maximum value for air flow rate from mass air flow sensor 01 51 1 Fuel Type 01 52 1 Ethanol fuel % 01 53 2 Absolute Evap system Vapor Pressure 01 54 2 Evap system vapor pressure 01 55 2 Short term secondary oxygen sensor trim bank 1 and bank 3 01 56 2 Long term secondary oxygen sensor trim bank 1 and bank 3 01 57 2 Short term secondary oxygen sensor trim bank 2 and bank 4 01 58 2 Long term secondary oxygen sensor trim bank 2 and bank 4 01 59 2 Fuel rail pressure (absolute) 01 5A 1 Relative accelerator pedal position 01 5B 1 Hybrid battery pack remaining life 01 5C 1 Engine oil temperature ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 33

01 5D 2 Fuel injection timing 01 5E 2 Engine fuel rate 01 5F 1 Emission requirements to which vehicle is designed 01 60 4 PIDs supported [61 80] 01 61 1 Driver s demand engine percent torque 01 62 1 Actual engine percent torque 01 63 2 Engine reference torque 01 64 5 Engine percent torque data 01 65 2 Auxiliary input / output supported 01 66 5 Mass air flow sensor 01 67 3 Engine coolant temperature 01 68 7 Intake air temperature sensor 01 69 7 Commanded EGR and EGR Error 01 6A 5 Commanded Diesel intake air flow control and relative intake air flow position 01 6B 5 Exhaust gas recirculation temperature 01 6C 5 Commanded throttle actuator control and relative throttle position ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 34

01 6D 6 Fuel pressure control system 01 6E 5 Injection pressure control system 01 6F 3 Turbocharger compressor inlet pressure 01 70 9 Boost pressure control 01 71 5 Variable Geometry turbo (VGT) control 01 72 5 Wastegate control 01 73 5 Exhaust pressure 01 74 5 Turbocharger RPM 01 75 7 Turbocharger temperature 01 76 7 Turbocharger temperature 01 77 5 Charge air cooler temperature (CACT) 01 78 9 Exhaust Gas temperature (EGT) Bank 1 01 79 9 Exhaust Gas temperature (EGT) Bank 2 01 7A 7 Diesel particulate filter (DPF) 01 7B 7 Diesel particulate filter (DPF) 01 7C 9 Diesel Particulate filter (DPF) temperature ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 35

01 7D 1 Nox NTE control area status 01 7E 1 PM NTE control area status 01 7F 13 Engine run time 01 80 4 PIDs supported [81 A0] 01 81 21 Engine run time for Auxiliary Emissions Control Device(AECD) 01 82 21 Engine run time for Auxiliary Emissions Control Device(AECD) 01 83 5 Nox sensor 01 84 Manifold surface temperature 01 85 Nox reagent system 01 86 Particulate matter (PM) sensor 01 87 Intake manifold absolute pressure 01 A0 4 PIDs supported [A1 C0] 01 C0 4 PIDs supported [C1 E0] 01 C3?? 01 C4?? 02 02 2 Freeze frame trouble code ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 36

03 N/A n*6 Request trouble codes 04 N/A 0 Clear trouble codes / Malfunction indicator lamp (MIL) / Check engine light 05 0100 OBD Monitor Ids supported ($01 $20) 05 0101 O2 Sensor Monitor Bank 1 Sensor 1 05 0102 O2 Sensor Monitor Bank 1 Sensor 2 05 0103 O2 Sensor Monitor Bank 1 Sensor 3 05 0104 O2 Sensor Monitor Bank 1 Sensor 4 05 0105 O2 Sensor Monitor Bank 2 Sensor 1 05 0106 O2 Sensor Monitor Bank 2 Sensor 2 05 0107 O2 Sensor Monitor Bank 2 Sensor 3 05 0108 O2 Sensor Monitor Bank 2 Sensor 4 05 0109 O2 Sensor Monitor Bank 3 Sensor 1 05 010A O2 Sensor Monitor Bank 3 Sensor 2 05 010B O2 Sensor Monitor Bank 3 Sensor 3 05 010C O2 Sensor Monitor Bank 3 Sensor 4 05 010D O2 Sensor Monitor Bank 4 Sensor 1 ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 37

05 010E O2 Sensor Monitor Bank 4 Sensor 2 05 010F O2 Sensor Monitor Bank 4 Sensor 3 05 0110 O2 Sensor Monitor Bank 4 Sensor 4 05 0201 O2 Sensor Monitor Bank 1 Sensor 1 05 0202 O2 Sensor Monitor Bank 1 Sensor 2 05 0203 O2 Sensor Monitor Bank 1 Sensor 3 05 0204 O2 Sensor Monitor Bank 1 Sensor 4 05 0205 O2 Sensor Monitor Bank 2 Sensor 1 05 0206 O2 Sensor Monitor Bank 2 Sensor 2 05 0207 O2 Sensor Monitor Bank 2 Sensor 3 05 0208 O2 Sensor Monitor Bank 2 Sensor 4 05 0209 O2 Sensor Monitor Bank 3 Sensor 1 05 020A O2 Sensor Monitor Bank 3 Sensor 2 05 020B O2 Sensor Monitor Bank 3 Sensor 3 05 020C O2 Sensor Monitor Bank 3 Sensor 4 05 020D O2 Sensor Monitor Bank 4 Sensor 1 ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 38

05 020E O2 Sensor Monitor Bank 4 Sensor 2 05 020F O2 Sensor Monitor Bank 4 Sensor 3 05 0210 O2 Sensor Monitor Bank 4 Sensor 4 09 00 4 mode 9 supported PIDs 01 to 20 09 01 1x5 VIN Message Count in command 09 02 09 02 5x5 Vehicle identification number (VIN) 09 04 varies calibration ID 09 06 4 calibration Πίνακας 3. Οι διαθέσιμοι PID κωδικού για όλους τους τύπους δεδομένων Στην δική μας περίπτωση, ο μόνος τύπος δεδομένων που μας χρειάζεται είναι ο τύπος με τον κωδικό 01, δηλαδή με δεδομένα που έχουν σχέση με την λειτουργία της μηχανής και μπορούμε να τα αποκτήσουμε άμεσα, ζητώντας τα από τον μεταφραστή μας. Επιπροσθέτως, για την συγκεκριμένη πτυχιακή θα μας απασχολήσουν μόνο τέσσερα PID [18] από τον παραπάνω πίνακα. Τα οποία είναι τα εξής: PID 0C, το οποίο σχετίζεται με τις στροφές του κινητήρα της μοτοσυκλέτας PID OD, το οποίο μας επιστρέφει την τιμή της ταχύτητας της μοτοσυκλέτας PID 04, όπου παίρνουμε την στάθμη του καυσίμου σε ποσοστό PID 05, όπου παίρνουμε την θερμοκρασία της μηχανής της μοτοσυκλέτας Αξίζει να σημειωθεί ο τρόπος σύνταξης της κάθε εντολής, αν και έγινε σχετική αναφορά και δόθηκε και παράδειγμα, με τον οποίο γίνεται η αποκωδικοποίηση της απάντησης που παίρνουμε από τον μεταφραστή μας. Για κάθε εντολή που στέλνουμε παίρνουμε σαν απάντηση ένα μήνυμα, το οποίο για κάθε εντολή υπάρχει συγκεκριμένη φόρμουλα από την οποία παίρνουμε την πληροφορία μας σε δεκαδικό σύστημα. Παρακάτω αναφέρονται οι φόρμουλες αποκωδικοποίησης για κάθε εντολή από τις τέσσερις που χρησιμοποιούνται στην εν λόγο πτυχιακή εργασία. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 39

PID 0C Για να λάβουμε την τιμή των στροφών της μηχανής της μοτοσυκλέτας, μας αρκεί να στείλουμε στον μεταφραστή μας, την εντολή : >010C Το μήνυμα το οποίο θα λάβουμε πίσω είναι : 41 0C 0F A0 Η κωδικοποιημένη τιμή των στροφών (RPM) που μας ενδιαφέρει είναι τα δύο τελευταία bytes, δηλαδή το 0F A0. Το byte 41 μας δείχνει ότι η πληροφορία είναι τύπου 01 ενώ το 0C είναι το PID στο οποίο έχουμε απευθυνθεί. Για να πάρουμε την πληροφορία μας στην σωστή της μορφή πρώτα από όλα μετατρέπουμε το κάθε byte από δεκαεξαδικό σύστημα (hex) σε δεκαδικό (decimal) και ακολουθούμε την παρακάτω φόρμουλα: 0. 0 (HEX) 0 (Decimal) 1. A (HEX) 10 (Decimal) 2. F (HEX) 15 (Decimal) 3. 0 (HEX) 0 (Decimal) [ ( ) ( ) ( ) ( )] PID OD Για να λάβουμε την τιμή της ταχύτητας με την οποία κινούμαστε, στέλνουμε την εντολή: >010D Το μήνυμα το οποίο θα λάβουμε πίσω είναι : 41 0D FF Η κωδικοποιημένη τιμή της ταχύτητας μας είναι το τελευταίο byte, δηλαδή το FF. Για να το αποκωδικοποιήσουμε ακολουθούμε την παρακάτω φόρμουλα: 0. F (HEX) 15 (Decimal) 1. F (HEX) 15 (Decimal) ( ) ( ) PID 04 Για να πληροφορηθούμε το υπόλοιπο των λίτρων, που έχουμε στην μοτοσυκλέτα μας, απαιτούνται δύο πράγματα. Το πρώτο είναι να γνωρίζουμε πόσα λίτρα χωράει η μοτοσυκλέτα μας και αυτό γιατί μέσω της πληροφορίας μπορούμε να πάρουμε από το PID 04 του κεντρικού υπολογιστή της μοτοσυκλέτας, το ποσοστό του μεγίστου. Η επόμενη κίνηση που πρέπει να κάνουμε, είναι να ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 40

στείλουμε την συγκεκριμένη εντολή στον μεταφραστή μας και αυτός να την δρομολογήσει αντίστοιχα στον κεντρικό υπολογιστή. Έτσι λοιπόν στέλνουμε την εντολή: >0104 Και το μήνυμα το οποίο θα λάβουμε ως απάντηση θα είναι αντίστοιχο με το παρακάτω: 41 04 7F Η κωδικοποιημένη τιμή του ποσοστού των λίτρων που έχουμε ως απόθεμα στην μοτοσυκλέτα, είναι το byte 7E. Για να το αποκωδικοποιήσουμε ακολουθούμε την παρακάτω φόρμουλα: 0. 7 (HEX) 7 (Decimal) 1. F (HEX) 15 (Decimal) [ ( ) ( )] PID 05 Τέλος όσον αφορά την τιμή της θερμοκρασίας της μηχανής της μοτοσυκλέτας μας, την ανακτούμε στέλνοντας το παρακάτω μήνυμα προς μεταφραστή μας. >0105 Το μήνυμα που περιμένουμε να λάβουμε είναι της παρακάτω μορφής: 41 05 64 Η κωδικοποιημένη μας θερμοκρασία βρίσκεται στο τελευταίο byte του μηνύματος και μάλιστα μετά την αποκωδικοποίηση του, η τιμή που προκύπτει ανήκει στην κλίμακα του Celsius. Για την αποκωδικοποίηση του ακολουθούμε την παρακάτω φόρμουλα: 0. 4 (HEX) 4 (Decimal) 1. 6 (HEX) 6 (Decimal) ( ) ( ) 4.1.9 Το ηλεκτρονικό κύκλωμα της πτυχιακής Για την ολοκλήρωση του συνολικού ηλεκτρονικού κυκλώματος συμβουλευτήκαμε το εγχειρίδιο (datasheet) [19], του ολοκληρωμένου μας κυκλώματος ELM327. Όπως μπορούμε να δούμε και από την παρακάτω εικόνα (Εικόνα 5), το συνολικό μας κύκλωμα αποτελείται από πολλές ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 41

βαθμίδες, οι οποίες στόχο έχουν να οδηγήσουν τα σήματα τα οποία παίρνουμε από τον κεντρικό υπολογιστή της μοτοσυκλέτας μέσω της θύρας OBD, στον μεταφραστή μας ELM327. Εικόνα 5. Ηλεκτρονικό κύκλωμα πτυχιακής χωρίς βαθμίδες εξοικονόμησης ενέργειας Μία βαθμίδα είναι αυτή που υποβαθμίζει τα 12 Volts της μπαταρίας του αυτοκινήτου σε 5 Volts. Λόγω του ότι η θύρα OBD έχει έξοδο την διαφορά δυναμικού της μπαταρίας της μηχανής, πρέπει με κάποιον τρόπο να την υποβιβάσουμε. Όπως μπορούμε να διαπιστώσουμε από το συνολικό μας κύκλωμα, η τάση που χρειάζεται για να τροφοδοτηθούν οι υπόλοιπες βαθμίδες, μαζί ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 42

και ο μεταφραστής μας ELM327, είναι τα 5 Volts. Για αυτόν τον λόγο χρησιμοποιούμε το ολοκληρωμένο κύκλωμα (IC) L7805, όπου η έξοδος αυτού είναι 5 Volts dc. Μία ακόμα βαθμίδα είναι αυτή των σημάτων CAN-BUS. Όπως βλέπουμε μεταξύ των επαφών της θύρας OBD και του μεταφραστή μας, υπάρχει ακόμα ένα ολοκληρωμένο κύκλωμα, το MCP2551. Το πρωτόκολλο CAN είναι το τελευταίο πρωτόκολλο που έχει δημιουργηθεί και το πιο γνωστό σε όλους μας. Χρησιμοποιεί έναν ιδιαίτερο τρόπο για να μεταφέρει τα δεδομένα μέσω διαύλου και για αυτόν τον λόγο στην θύρα OBD έχουμε την πληροφορία κωδικοποιημένη αλλά όχι σε μορφή σήματος. Αυτή το καθήκον το αναλαμβάνει το ολοκληρωμένο κύκλωμα MCP2551 όπου παίρνει την πληροφορία από την θύρα OBD διαβάζοντας την διαφορά δυναμικού, και την μεταφράζει σε σήμα, έτοιμο για επεξεργασία και το στέλνει στον κεντρικό μεταφραστή ELM327. Το ειδικό αυτό κύκλωμα λειτουργεί κανονικά, αλλά παρόλα αυτά έχει ένα πολύ μεγάλο μειονέκτημα. Αυτό είναι ότι λειτουργεί και καταναλώνει ρεύμα ακόμα και αν εμείς δεν χρησιμοποιούμε την εφαρμογή, και έχουμε τη μοτοσυκλέτα μας ακινητοποιημένη. Αυτό είναι ένα μειονέκτημα όσον αφορά τη ζωή της μπαταρίας, καθώς όταν βρίσκεται η μοτοσυκλέτα μας σε ακινησία, καταναλώνει 13.9 ma, η τιμή του οποίου είναι ικανή να μας εξαντλήσει την μπαταρία σε πολύ μικρό χρονικό διάστημα. Αυτό έχει σαν αποτέλεσμα ο κατασκευαστής του ολοκληρώνου κυκλώματος ELM327 να προτείνει μία λύση για εξοικονόμηση ενέργειας όταν χρησιμοποιούμε την εφαρμογή μας. Η λύση αυτή απαιτεί κάποιες ενέργειες. Η πρώτη από αυτές είναι να στείλουμε κάποιες συγκεκριμένες εντολές στον μεταφραστή μας και αυτός να βάλει το κύκλωμα μας σε κατάσταση αναμονής. Η πρώτη εντολή που πρέπει να στείλουμε είναι η: >ΑΤ LP (Low Power) που αυτομάτως από τα 13.9mA που έχουμε σε συνθήκες κανονικής χρήσης της θύρας OBD και συνεχόμενης ανταλλαγής μηνυμάτων από και προς τον μεταφραστή, τώρα μειώνουμε την κατανάλωση στα 19.7mA. Η δεύτερη ενέργεια στην οποία οφείλουμε να προβούμε, βρίσκεται σε επίπεδο υλικού (Hardware), και για αυτό τον λόγο θα χρειαστεί να κάνουμε κάποιες τροποποιήσεις στο κύκλωμα μας. Αν παρατηρήσουμε λίγο το κύκλωμα μας παραπάνω (Εικόνα 5), θα δούμε ότι όταν δεν χρησιμοποιούμε την μοτοσυκλέτα μας, το λαμπάκι (LED) που μας ενημερώνει αν το κύκλωμα μας βρίσκεται σε λειτουργία η όχι, και το ολοκληρωμένο μας κύκλωμα MCP2551, δεν χρειάζεται να καταναλώνουν ρεύμα ασκόπως. Η λύση είναι να τροφοδοτούνται τα παραπάνω δύο εξαρτήματα κατά την εκκίνηση της μηχανής της μοτοσυκλέτας. Αυτό γίνεται με τον εξής τρόπο. Αποκόπτουμε τo κοινό σημείο από το λαμπάκι και από το MCP2551, και τα συνδέουμε με τον ακροδέκτη νούμερο 16 του μεταφραστή μας, ο οποίος λειτουργεί και ως ρελέ κατά την εκκίνηση της μηχανής. Αν ξαναμετρήσουμε το ρεύμα το οποίο καταναλώνεται, θα δούμε ότι έπεσε στα 10.3mA. Μία επιπρόσθετη τροποποίηση που μπορούμε να κάνουμε για να εξοικονομήσουμε ενέργεια, είναι να αντικαταστήσουμε τον σταθεροποιητή μας L7805 με έναν άλλον σταθεροποιητή τον LP2950. Ο καινούργιος μας σταθεροποιητής ενδείκνυται για εφαρμογές που γίνονται με πηγές ενέργειας την μπαταρία. Έχει την ιδιότητα να χρησιμοποιεί λιγότερο ρεύμα από το L7805, και να αποδίδει εξίσου το ίδιο. Κάνοντας και το τρίτο αυτό βήμα, εάν μετρήσουμε το ρεύμα που καταναλώνεται τώρα, θα δούμε ότι έχει μειωθεί στα 6.2mA. Το τελευταίο μας βήμα είναι να αντικαταστήσουμε τον σταθεροποιητή τάσης L317 με τον LP2951. Και αυτό γιατί ο καινούργιος σταθεροποιητής μπορεί να διαχεριστεί τάσεις της ίδιας τάξης με αυτήν του L317 αλλα με την διαφορά οτι χρησιμοποιεί λιγότερο ρεύμα. Η πράξη αυτή όμως δεν προκαλλεί απο μόνη της εξοικονόμιση ρεύματος, καθώς πρέπει να συνεργαστεί και ο μεταφραστής μας. Αυτό που πρέπει να κάνουμε έχοντας την κατακάτω συνδεσμολογία (Εικόνα 6), είναι να στείλουμε δύο ΑΤ εντολές προς τον μεταφραστή. Οι εντολές αυτές είναι οι: >ΑΤ PP 12 SV 00 ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 43

>AT PP 12 ON Μετρώντας το ρεύμα το οποίο καταναλώνεται μετά την εκτέλεση αυτών των εντολών θα δούμε οτι αυτό είναι στα 1.2mA, ενώ αν βραχυκυκλώσουμε την επαφή 3 του LP2951 με την επαφή 16 του μεταφραστή το ρεύμα πέφτει στα 1.0mA. Όπως αντιλαμβανόμαστε, μπορουμε να εξοικωνομήσουμε έως και 14% του ρεύματος της μπαταρίας της μοτοσυκλέτας και να αυξήσουμε με αυτόν τον τρόπο κατα πολύ την διάρκεια ζωής της. Εικόνα 6. Τροποποιημένο ηλεκτρονικό κύκλωμα πτυχιακής με βαθμίδες εξοικονόμησης ενέργειας 4.2 Τεχνικές και μηχανισμοί σε επίπεδο Software Η συγκεκριμένη εφαρμογή έχει προγραμματιστεί σε γλώσσα προγραμματισμού Java όπως ήδη αναφέραμε και στην εισαγωγή. Παρόλα αυτά όμως πρέπει να προγραμματιστεί με τέτοιο τρόπο ώστε να γίνει εφαρμόσιμη σε έξυπνα κινητά με λειτουργικό σύστημα Android. Για να είναι λοιπόν εντός των προδιαγραφών θα πρέπει να ακολουθεί την αρχιτεκτονική την οποία θα αναλύσουμε ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 44

παρακάτω. Επιπλέον, το σπουδαίο σε αυτή την εφαρμογή είναι ότι έχει δύο διαφορετικές λειτουργίες. Με άλλα λόγια μπορεί να λειτουργήσει είτε μέσω Bluetooth και κατ επέκταση μέσω της θύρας OBD, αλλά και μέσω δορυφόρου (GPS). Πάντως και στις δύο περιπτώσεις χρησιμοποιούνται δύο διαφορετικές βάσεις δεδομένων για την καταχώρηση ρυθμίσεων, οι οποίες κατασκευάζονται αυτόματα κατά την εγκατάσταση της εφαρμογής στο έξυπνο κινητό τηλέφωνο. 4.2.1 Αρχιτεκτονική εφαρμογών σε λειτουργικό σύστημα Android Οι εφαρμογές οι οποίες μπορούν να υλοποιηθούν και να είναι εφαρμόσιμες σε έξυπνα κινητά τηλέφωνα με λειτουργικό σύστημα Android, χωρίζονται σε δύο κατηγορίες. Η πρώτη κατηγορία είναι αυτή που οι περισσότεροι γνωρίζουμε, δηλαδή οι δραστηριότητες (Activities) [20] οι οποίες εκτελούνται στο προσκήνιο έχοντας γραφικό περιβάλλον και η διαχείριση τους γίνεται από τον χρήστη. Η δεύτερη κατηγορία είναι αυτή των υπηρεσιών (Services) [21], οι οποίες εκτελούνται στο παρασκήνιο. Αυτού του είδους οι εφαρμογές, τις περισσότερες φορές δεν είναι εξ' ολοκλήρου μια εφαρμογή που κάνουμε εγκατάσταση. Η ιδιαιτερότητα αυτών των εφαρμογών είναι ότι ακόμα και αν κλείσουμε την εφαρμογή (Activity), αυτές συνεχίζουν να εκτελούνται. Αυτό γίνεται διότι η εφαρμογή μας βασίζεται σε ενέργειες που πρέπει να γίνουν ακόμα και όταν μιλάμε στο τηλέφωνο ή στέλνουμε μήνυμα. Ένα παράδειγμα αυτών των εφαρμογών είναι οι Email Clients, καθώς, ακόμα και αν κλείσουμε την εφαρμογή μας από την οποία διαβάζουμε τα ηλεκτρονικά μας μηνύματα, θέλουμε με κάποιον τρόπο σε περίπτωση που λάβουμε ένα ηλεκτρονικό μήνυμα να ενημερωθούμε και να ξαναμπούμε στην εφαρμογή για να το διαβάσουμε. Η εφαρμογή της πτυχιακής εργασίας έχει υλοποιηθεί μόνο από δραστηριότητες (Activities), οι οποίες όπως μπορούμε να δούμε και από την παρακάτω εικόνα (Εικόνα 7), εκτελούνται με την βοήθεια του σωρού. Τα διαφορετικά γραφικά περιβάλλοντα που βλέπει ο χρήστης στην οθόνη του κινητού του αποτελούνται από διαφορετικές δραστηριότητες. Η εφαρμογή αποτελείται από εννέα διαφορετικές δραστηριότητες, όπου η κάθε μία από αυτές έχει το δικό της γραφικό περιβάλλον. Όταν ο χρήστης πατάει στο εικονίδιο της εφαρμογής από την λίστα των εφαρμογών που έχει εγκατεστημένες στην συσκευή του, τότε αυτή τίθεται σε λειτουργία φέρνοντας στο προσκήνιο την πρώτη δραστηριότητα που έχουμε ορίσει εμείς κατά τον προγραμματισμό της. Σε κάθε δραστηριότητα που οφείλουμε να προγραμματίσουμε πρέπει να ακολουθήσουμε μία συγκεκριμένη δομή. Με άλλα λόγια, σε κάθε δραστηριότητα πρέπει να προγραμματίσουμε κάποιες συγκεκριμένες μεθόδους, που αναλόγως την κατάσταση του σωρού καλούνται σε διαφορετικές περιπτώσεις και καταστάσεις. Οι μέθοδοι που πρέπει να προγραμματίσουμε για την ορθή λειτουργία της εφαρμογής μας είναι επτά. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 45

Εικόνα 7. Ο σωρός των εφαρμογών για έξυπνα κινητά τηλέφωνα Android. Οι επτά μέθοδοι που πρέπει να προγραμματίσουμε με ιεραρχική σειρά είναι οι παρακάτω : oncreate() Η μέθοδος αυτή καλείται όταν πρωτοδημιουργείται η αντίστοιχη δραστηριότητα και συνηθίζεται να δίνουμε το γραφικό περιβάλλον και να κάνουμε κάποιες βασικές δηλώσεις για την εκτέλεση της υπόλοιπης δραστηριότητας. onrestart() Εάν για κάποιο λόγο η εφαρμογή μας σταματήσει, δηλαδή κληθεί η παρακάτω μέθοδος onstop(), τότε την επόμενη φορά που η εφαρμογή θα χρειαστεί να βγει στο προσκήνιο, θα κληθεί αυτή η μέθοδος και μετά από αυτή η onstart(). Αυτό γίνεται διότι τις περισσότερες φορές σε αυτή την περίπτωση θέλουμε να αλλάξουμε κάποιες στατικές δηλώσεις της διαδικασίας εφόσον γνωρίζουμε ότι πριν από λίγο είχε σταματήσει. onstart() Η μέθοδος onstart() καλείται μόλις η δραστηριότητα και συγκεκριμένα το γραφικό περιβάλλον της εφαρμογής εμφανιστεί στην οθόνη της συσκευής. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 46

onresume() Η μέθοδος onresume() καλείται μόλις η δραστηριότητα μπορεί να χρησιμοποιηθεί από τον χρήστη. Εφόσον κληθεί και αυτή η μέθοδος τότε μπορούμε να πούμε ότι η δραστηριότητα μας εκτελείται και γίνονται όλες οι διεργασίες οι οποίες έχουμε προγραμματίσει να γίνουν. Πάντα η συγκεκριμένη μέθοδος καλείται μετά την μέθοδο onpause(), που θα περιγράψουμε αμέσως μετά. onpause() Όπως μπορούμε να καταλάβουμε και από τον τίτλο της μεθόδου αυτής, καλείται όταν η συσκευή μας πρόκειται να ξεκινήσει μία καινούργια δραστηριότητα ή να εκτελέσει μία προηγούμενη δραστηριότητα. Για παράδειγμα, αν έχουμε προγραμματίσει με το πάτημα ενός κουμπιού να ξεκινάει μία νέα δραστηριότητα, τότε η τρέχουσα δραστηριότητα καλεί την μέθοδο onpause() και στην συνέχεια την onstop(). Μία άλλη περίπτωση είναι να έχουμε προγραμματίσει με το πάτημα ενός κουμπιού να εμφανίζεται ένα pop-up μήνυμα. Τότε η δραστηριότητα μας, καλεί την μέθοδο onpause(), περιμένοντας να κλείσουμε το μήνυμα αυτό και να συνεχίσουμε με τις ενέργειες που έχουμε προγραμματίσει. onstop() Η μέθοδος αυτή καλείται όταν η δραστηριότητα σταματήσει να γίνεται αντιληπτή από τον χρήστη, γιατί μία νέα δραστηριότητα έχει κληθεί να εκτελεστεί και έχει ανέβει την κορυφή του σωρού. Από την στιγμή που μια δραστηριότητα καλέσει την μέθοδο αυτή, σε φυσιολογικές συνθήκες η αμέσως επόμενη μέθοδος που πρόκειται να κληθεί είναι η ondestroy(). ondestroy() Η τελευταία μέθοδος είναι η ondestroy(), της οποία ο στόχος είναι να κλείσει την εφαρμογή μας ή την δραστηριότητα μας. Καλείται είτε μέσω της μεθόδου finish(), η οποία μπορεί να κληθεί σε οποιοδήποτε τμήμα της δραστηριότητας μας, είτε μέσω της ίδιας συσκευής, όταν χρειάζεται για κάποιο λόγο περισσότερη μνήμη ή ταχύτητα του επεξεργαστή. 4.2.2 Το αρχείο MANIFEST των εφαρμογών Android Ίσως το πιο σημαντικό αρχείο στις εφαρμογές Android, είναι το αρχείο Manifest.xml [22]. Το αρχείο αυτό περιέχει πληροφορίες που μπορεί να φανούν χρήσιμες όχι μόνο στον απλό χρήστη αλλά και στον δημιουργό της εφαρμογής. Είναι το αρχείο όπου γίνονται οι σημαντικότερες δηλώσεις. Εκεί πρέπει να δηλωθούν όλες οι δραστηριότητες οι οποίες μπορούν να γίνουν αντιληπτές από τον χρήστη, δηλαδή αυτές που έχουν κάποιο γραφικό περιβάλλον. Εάν ξεχαστεί να δηλωθεί κάποια δραστηριότητα, απλά η συγκεκριμένη δεν μπορεί να κληθεί, και τότε η συσκευή καλεί από μόνη της την μέθοδο ondestroy() και τερματίζεται η εφαρμογή (BUG). Ένα επιπλέον τμήμα του κώδικά αυτού του αρχείου, είναι αυτό με τα δικαιώματα της εφαρμογής ή αλλιώς Permissions. Όταν θέλουμε να προγραμματίσουμε μία δραστηριότητα με την οποία έχουμε σκοπό να χρησιμοποιήσουμε οποιαδήποτε συσκευή υλικού (Hardware), τότε πρέπει να ζητήσουμε κατά κάποιο τρόπο την άδεια από το λειτουργικό σύστημα, για να μας το παραχωρήσει. Για παράδειγμα, εάν έχουμε σκοπό να υλοποιήσουμε μία εφαρμογή με την οποία θέλουμε να καταγράφουμε το γεωγραφικό μας στίγμα, να αποτυπώνει από μόνη της φωτογραφίες, να τις στέλνει κάπου μέσω διαδικτύου και να υπάρχει η δυνατότητα δόνησης κάθε φορά που ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 47

πατάμε ένα κουμπί, θα πρέπει να ζητήσουμε τα αντίστοιχα δικαιώματα από το λειτουργικό μας σύστημα. Μία επιπλέον δυνατότητα που μας δίνει το συγκεκριμένο αρχείο, είναι ότι μπορούμε να διαλέξουμε εμείς σαν προγραμματιστές ποια δραστηριότητα θα κληθεί κατά την έναρξη της εφαρμογής. Μάλιστα μπορούμε να διαλέξουμε την μικρότερη έκδοση λειτουργικού καθώς και την έκδοση στην οποία έχουμε ως στόχο, για να είναι η εφαρμογή μας εκτελέσιμη. Τέλος, μια σημαντική πληροφορία είναι ότι η συγκεκριμένη εφαρμογή δεν έχει ως στόχο μία απλή έκδοση λειτουργικού συστήματος (SDK API), αλλά βασίζεται σε αντίστοιχη έκδοση της εταιρίας Google (Google API). Η διαφορά είναι ότι η έκδοση της εταιρίας Google παρέχει επιπλέον βιβλιοθήκες με χάρτες πλοήγησης, πράγμα το οποίο το είχαμε ανάγκη για την υλοποίηση της εφαρμογής. 4.2.3 Ο κατασκευαστής (Constructor) INTENT των εφαρμογών Android Συμπληρωματικά, η συγκεκριμένη εφαρμογή αποτελείται από εννέα δραστηριότητες. Λίγες είναι οι εφαρμογές οι οποίες αποτελούνται από μία βασική δραστηριότητα. Ο κατασκευαστής Intent [23] όπως φαίνεται και από την ονομασία του, είναι ένας κατασκευαστής τον οποίο τον χρησιμοποιούμε για να ξεκινήσουμε ή έχουμε πρόθεση να ξεκινήσουμε μία νέα δραστηριότητα. Ένα εύκολο παράδειγμα για την κατανόηση αυτού του σημαντικού κατασκευαστή είναι ένα παιχνίδι κουίζ. Εφόσον τελειώσουν οι ερωτήσεις, συνήθως εξαφανίζεται το γραφικό περιβάλλον με τις ερωτήσεις και αμέσως έρχεται στο προσκήνιο ένα νέο γραφικό περιβάλλον που αναγράφονται τα στατιστικά των ερωτήσεων. Ο προγραμματιστής έχει σχεδιάσει με τέτοιο τρόπο την εφαρμογή του, ώστε μόλις τελειώσουν οι ερωτήσεις να ξεκινήσει μία νέα δραστηριότητα όπου θα αναγράφονται τα στατιστικά του παίχτη. Αναφορικά με την εφαρμογή της πτυχιακής αν δούμε τον πηγαίο κώδικα, στην κεντρική δραστηριότητα όπου ο χρήστης έχει την επιλογή να διαλέξει ανάμεσα σε έξι επιλογές, υπάρχουν έξι διαφορετικοί κατασκευαστές intent, όπου αναλόγως τί θα διαλέξει ο χρήστης, ξεκινάει και η αντίστοιχη δραστηριότητα. 4.2.4 Ο κατασκευαστής (Constructor) HANDLER των εφαρμογών Android Ένας ωστόσο δημοφιλής κατασκευαστής που χρησιμοποιείται πολύ συχνά από προγραμματιστές είναι ο κατασκευαστής Hander [24]. Η δουλειά που κάνει είναι να μεταφέρει δεδομένα από μία δραστηριότητα σε μία άλλη, είτε τα δεδομένα είναι ένα μήνυμα το οποίο έχει ληφθεί από το Bluetooth της συσκευής, είτε αντικείμενα. Ο κατασκευαστής Handler μας φάνηκε χρήσιμος για την αποστολή μηνυμάτων από και προς την δραστηριότητα που ασχολείται με την σύνδεση και ανταλλαγή μηνυμάτων μέσω Bluetooth. Ουσιαστικά, τα μηνύματα φιλοξενούνται σε μία λίστα (Query), και στην συνέχεια όταν η κύρια δραστηριότητα μπορεί να λάβει κάποιο μήνυμα για επεξεργασία, μεταφέρεται με την βοήθεια του Handler κατασκευαστή. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 48

4.2.5 Η λειτουργία της εφαρμογής μέσω δορυφόρου (GPS) Στην περίπτωση που ο χρήστης επιλέξει από τις ρυθμίσεις της εφαρμογής την λειτουργία μέσω δορυφόρου, τότε όλες οι ενδείξεις που παρακολουθεί κατά την πορεία του, προβάλλονται μετά από μαθηματικούς υπολογισμούς. Πιο συγκεκριμένα, με αυτή την λειτουργία ο χρήστης μπορεί να βλέπει την ταχύτητα με την οποία κινείται, τα συνολικά χιλιόμετρα που έχει διανύσει, καθώς και τα υπολειπόμενα λίτρα καυσίμου που έχει στο ντεπόζιτό του. Όσον αφορά την ταχύτητα και τον υπολογισμό των συνολικών χιλιομέτρων που έχει καλύψει ο μοτοσικλετιστής, η μόνη πληροφορία που χρειάζεται είναι το γεωγραφικό του στίγμα οποιαδήποτε στιγμή. Όπως θα δούμε και σε επόμενη υποενότητα υπάρχει μία βάση δεδομένων η οποία μας βοηθάει να αποθηκεύουμε προσωρινά τις πληροφορίες. Στην περίπτωση του υπολογισμού της ταχύτητας, χρησιμοποιήθηκε μία έτοιμη μέθοδος, την οποία την ανακτήσαμε από βιβλιοθήκη που παρέχεται για εφαρμογές Android. Από την άλλη πλευρά, του υπολογισμού των συνολικών χιλιομέτρων, χρησιμοποιήθηκε η βάση δεδομένων που κατασκευάσαμε. Σε μία γραμμή αυτής αποθηκεύαμε ένα προσωρινό στίγμα. Αυτό το κάναμε γιατί ανά πάσα στιγμή που είχαμε το γεωγραφικό μας στίγμα από τον δορυφόρο, μπορούσαμε να υπολογίζουμε την απόσταση μας από το προηγούμενο μας στίγμα το οποίο το είχαμε αποθηκεύσει στην βάση δεδομένων. Με αυτόν τον τρόπο κάθε φορά που η εφαρμογή μας αποκτάει ένα νέο γεωγραφικό στίγμα αμέσως έχουμε και μία νέα τιμή στα συνολικά μας χιλιόμετρα, η οποία και αυτή αποθηκεύεται πάντα στην ίδια βάση δεδομένων. Ωστόσο ο υπολογισμός του καυσίμου γίνεται μέσω ενός άλλου αλγορίθμου, ο οποίος δεν σχετίζεται άμεσα με την χρήση γεωγραφικού στίγματος, αλλά με δύο μεταβλητές τις οποίες τις εισάγει ο χρήστης μέσω των ρυθμίσεων της εφαρμογής στην ίδια βάση δεδομένων. Ο χρήστης έχει την δυνατότητα να ρυθμίσει την εφαρμογή σύμφωνα με τις δικές του προτιμήσεις. Δύο ρυθμίσεις που καλείται ο χρήστης να κάνει είναι να διαλέξει το μοντέλο της μοτοσυκλέτας του, καθώς και τα κυβικά αυτής. Στην παρούσα εφαρμογή υπάρχουν διαθέσιμα προς το παρόν τα τελευταία μοντέλα της εταιρίας Ducati [25]. Σύμφωνα με την επίσημη ιστοσελίδα της Ducati, καταγράφτηκαν οι ελάχιστες και οι μέγιστες καταναλώσεις για το κάθε μοντέλο. Έτσι λοιπόν, κάθε φορά που γνωρίζουμε το γεωγραφικό μας στίγμα, καθώς και την απόσταση από το προηγούμενό μας στίγμα, μπορούμε πολύ εύκολα να υπολογίσουμε πόσα λίτρα καυσίμου καταναλώθηκαν για την συγκεκριμένη απόσταση και να τα αφαιρέσουμε από τα συνολικά λίτρα, η τιμή του οποίου αποθηκεύεται επίσης στην βάση δεδομένων μας. 4.2.6 Η λειτουργία της εφαρμογής μέσω Bluetooth Στην περίπτωση που ο χρήστης επιλέξει την λειτουργία της εφαρμογής μέσω Bluetooth, έχει τα εξής παρακάτω πλεονεκτήματα. Πρώτα από όλα μπορεί να ενημερώνεται με δύο επιπλέον μετρήσεις οι οποίες συλλέγονται πλέον κατευθείαν από τον κεντρικό υπολογιστή της μοτοσυκλέτας. Οι δύο αυτές μετρήσεις είναι οι στροφές του κινητήρα και η θερμοκρασία της μηχανής. Επίσης καλό είναι να αναφέρουμε ότι με αυτόν τον τρόπο λειτουργίας οι μετρήσεις της ταχύτητας της μοτοσυκλέτας και των υπολειπόμενων λίτρων, αποτυπώνονται με μεγαλύτερη πιστότητα σε σχέση με την λειτουργία της εφαρμογής μέσω GPS, όπου εκεί οι ίδιες μετρήσεις είναι υπολογιστικές αλλά αρκετά αξιόπιστες. Όσων αφορά την τιμή των χιλιομέτρων, υπολογίζεται με την βοήθεια των μαθηματικών και του δέκτη GPS και δεν μετριέται από την θύρα OBD-II. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 49

Για να μπορέσει ο χρήστης να φτάσει στο επίπεδο όπου θα παρακολουθεί την λειτουργία της μοτοσυκλέτας του, θα πρέπει να ακολουθήσει ένα συγκεκριμένο μοτίβο. Αυτό αποτελείται από δύο σκέλη. Το πρώτο σκέλος είναι αυτό της σύνδεσης της θύρας OBD με την συσκευή του χρήστη χρησιμοποιώντας το πρωτόκολλο Bluetooth. Η διάταξη αυτής της συνδεσμολογίας είναι τύπου Master Slave, όπου η Master συσκευή είναι η ηλεκτρονική μας πλακέτα και Slave το έξυπνο κινητό μας. Με την βοήθεια της εφαρμογής και μάλιστα με τις έτοιμες βιβλιοθήκες που παρέχονται στον χρήστη από την εφαρμογή Bluetooth Chat, δημιουργείται ένα socket [26] στην σύνδεση αυτών των δύο συσκευών. Το δεύτερο σκέλος είναι να ξεκινήσει η διαδικασία των μετρήσεων. Για να ξεκινήσει να συλλέγει μετρήσεις η εφαρμογή μας, θα πρέπει να πατήσουμε το κουμπί Start που βρίσκεται στην πάνω δεξιά γωνία της δραστηριότητας Go Race. Πάνω σε αυτό το κομμάτι υπάρχει μια πάρα πολύ έξυπνη και εντυπωσιακή ιδιαιτερότητα. Πατώντας το κουμπί Start ουσιαστικά στέλνεται μια εντολή προς τον κεντρικό υπολογιστή της μοτοσυκλέτας και ξεκινάει η μηχανή. Αφού πατηθεί το κουμπί Start, εμφανίζεται ένα μήνυμα στην οθόνη της συσκευής που ρωτάει τον χρήστη, εάν επιθυμεί να καταγράψει την διαδρομή του ή όχι. Η εντυπωσιακή ιδιαιτερότητα που αναφέρεται παραπάνω βρίσκεται ανάμεσα σε αυτά τα δύο βήματα, δηλαδή από το πάτημα του κουμπιού Start μέχρι την εμφάνιση του μηνύματος. Για να ενεργοποιηθεί το κουμπί Start και τελικά να ξεκινήσει η μηχανή της μοτοσυκλέτας, θα πρέπει ο δέκτης GPS να έχει κλειδώσει το σήμα του σε κάποιο δορυφόρο και αφού πραγματοποιηθεί αυτό, στην συνέχεια ο αναβάτης θα μπορεί να επιλέξει εάν επιθυμεί να καταγράψει την διαδρομή του. Τι γίνεται όμως όταν η μοτοσυκλέτα βρίσκεται σε υπόστεγο μέρος οπού δυσκολεύεται κατά πολύ να κλειδωθεί το σήμα του δορυφόρου; Σε αυτήν την περίπτωση η έναρξη της μηχανής της μοτοσυκλέτας γίνεται χειροκίνητα με την βοήθεια της μίζας. Μόλις γίνει αυτό, στέλνεται αμέσως ένα αναγνωριστικό μήνυμα από τον κεντρικό υπολογιστή της μοτοσυκλέτας προς την συσκευή του χρήστη, το οποίο έχει την ιδιότητα να ενημερώνει την εφαρμογή μας ότι η μηχανή ξεκίνησε χειροκίνητα και τότε το κουμπί Start, ενεργοποιείται. Σε αυτή την περίπτωση το κουμπί αυτό ενεργοποιείται ανεξαρτήτως της κατάστασης του δέκτη GPS, καθώς ο μοτοσικλετιστής μόλις βγει από τον υπόστεγο χώρο που έχει σταθμεύσει την μοτοσυκλέτα του και κλειδωθεί το σήμα του, την ίδια στιγμή εμφανίζεται το μήνυμα που ζητάει από τον χρήστη να επιλέξει σχετικά με την καταγραφή της διαδρομής του. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 50

4.2.7 Οι βάσεις δεδομένων ( SQLite) της εφαρμογής Κατά την εγκατάσταση της εφαρμογής, δημιουργούνται δύο βάσεις δεδομένων. Είναι βάσεις δεδομένων τύπου SQL [27], αλλά ελαφριάς έκδοσης καθώς οι συσκευές Android υποστηρίζουν μόνο τέτοιου είδους (SQLite). Η μία βάση δεδομένων αποθηκεύει τις ρυθμίσεις που κάνει ο χρήστης στην εφαρμογή καθώς και μεταβλητές οι οποίες εξυπηρετούν σε πολλούς αλγορίθμους αλλά και στην μόνιμη αποθήκευση μεταβλητών με σκοπό την προβολή αυτών ακόμα και όταν ο χρήστης επανεκκινήσει την εφαρμογή. Στην παρακάτω εικόνα (Εικόνα 8) μπορούμε να δούμε μία αναπαράσταση αυτής της βάσης δεδομένων παρόλο που δεν είναι στατική, καθώς μπορεί να αυξηθεί αναλόγως με την συχνότητα της χρήση της εφαρμογής από τον χρήστη. Εικόνα 8. Βάση δεδομένων για την αποθήκευση ρυθμίσεων της εφαρμογής ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 51

Όπως βλέπουμε η βάση δεδομένων μας αποτελείται από μία στήλη όπου αποθηκεύουμε την προσωρινή μας τιμή, και από τριάντα στατικές γραμμές. Έχει κατασκευαστεί με τέτοιο τρόπο, ώστε η κάθε γραμμή να αποθηκεύει την πληροφορία μας σαν χαρακτήρα και όχι σαν μεταβλητή. Ο λόγος για τον οποίο κατασκευάσαμε με τέτοιο τρόπο την βάση δεδομένων μας, είναι ο χώρος στον οποίο μπορούμε να επεκτείνουμε τις γραμμές της. Δεν είναι τόσο σημαντικό για την συγκεκριμένη βάση δεδομένων, αλλά για την δεύτερη για την οποία γίνεται αναφορά λίγο παρακάτω. Στην παραπάνω εικόνα (Εικόνα 8), δίπλα στον αριθμό της κάθε γραμμής αναγράφεται μία σύντομή περιγραφή του περιεχομένου της. Το ίδιο κωδικό όνομα χρησιμοποιείται και από την εφαρμογή για λόγους ευκολίας του προγραμματιστή. Παρακάτω αναλύεται η κάθε γραμμή αυτής της βάσης δεδομένων, με επιπλέον λεπτομέρειες όπου δείχνουν και την λειτουργία της εφαρμογής. 1 password Στην πρώτη θέση της βάσης δεδομένων αποθηκεύεται ο κωδικός πρόσβασης με τον οποίο ο χρήστης μπαίνει στην εφαρμογή. Έχει τοποθετηθεί για λόγους ασφαλείας σε περίπτωση που το κινητό τηλέφωνο κλαπεί. Ο κωδικός πρόσβασης θα πρέπει να αποτελείται από ακριβώς τέσσερα ψηφία από το ένα έως το εννέα. Ο προεπιλεγμένος κωδικός είναι ο 1111, όπου χρησιμοποιείται κατά την πρώτη έναρξη της εφαρμογής μετά την εγκατάσταση της. 2 vibration Ο χρήστης μέσω των ρυθμίσεων της εφαρμογής μπορεί να επιλέξει εάν επιθυμεί την δόνηση ή όχι στην εφαρμογή του. Όταν η δόνηση έχει επιλεγεί, τότε το περιεχόμενο της γραμμής αυτής είναι 1, ενώ όταν είναι απενεργοποιημένη αυτή η επιλογή το περιεχόμενο είναι 0. Έτσι ανά πάσα στιγμή το υπόλοιπο πρόγραμμα έχει την δυνατότητα να γνωρίζει το περιεχόμενο αυτής της γραμμής και αναλόγως να ενεργοποιεί ή όχι την δόνηση. 3 km Στην γραμμή τρία αποθηκεύεται η απόσταση την οποία έχει διανύσει μέχρι στιγμής η μοτοσυκλέτα μας σε χιλιόμετρα. 4 speed source Στην γραμμή με το νούμερο τέσσερα αποθηκεύεται η πληροφορία με την οποία η υπόλοιπη εφαρμογή γνωρίζει ανά πάσα στιγμή από ποιά πηγή να υπολογίζει την ταχύτητα της μοτοσυκλέτας. Ουσιαστικά ο χρήστης διαλέγει είτε την λειτουργία μέσω GPS είτε μέσω Bluetooth. Όταν επιλεγεί η λειτουργία μέσω GPS τότε το περιεχόμενο αυτής της γραμμής είναι 1, ενώ 0 για την επιλογή λειτουργίας μέσω Bluetooth. 5 max speed Η γραμμή αυτή φιλοξενεί την μέγιστη τιμή της ταχύτητας της μοτοσυκλέτας κατά την περίοδο που η εφαρμογή είναι σε λειτουργία. Η τιμή αυτή προβάλλεται στην δραστηριότητα με τίτλο Statistics της εφαρμογής που δείχνει στον χρήστη τα στατιστικά της τελευταίας του βόλτας με την μοτοσυκλέτα. 6 brightness Η γραμμή brightness αποθηκεύει την επιλογή του χρήστη για την φωτεινότητα της οθόνης. Μπορεί να διαλέξει την μέγιστη φωτεινότητα σε περίπτωση που η εφαρμογή χρησιμοποιείται την ημέρα όπου υπάρχει πρόβλημα με την αντίθεση της οθόνης λόγω ήλιου, ή την προεπιλεγμένη φωτεινότητα που χρησιμοποιείται στο λειτουργικό σύστημα. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 52

7 distance Στην γραμμή αυτή αποθηκεύεται η τιμή της απόστασης που διένυσε η μοτοσυκλέτα κατά τη τελευταία βόλτα του μοτοσικλετιστή εφόσον επέλεξε να καταγράψει τα στατιστικά του. 8 speed unit Ο χρήστης έχει την δυνατότητα από τις ρυθμίσεις της εφαρμογής να επιλέξει μονάδα μέτρησης για την μέτρηση απόστασης και ταχύτητας μεταξύ των χιλιομέτρων και των μιλιών. Φυσικά σε κάθε περίπτωση οι τιμές της απόστασης και της ταχύτητας με την οποία κινείται η μοτοσυκλέτα, προσαρμόζονται αναλόγως με την επιλογή αυτής της ρύθμισης. Έτσι λοιπόν, όταν ο χρήστης επιλέξει σαν μονάδα μέτρησης τα χιλιόμετρα τότε το περιεχόμενο αυτής της θέσης είναι 0, ενώ 1 όταν έχει επιλέξει σαν μονάδα μέτρησης τα μίλια. 9 duration Στην ένατη θέση αυτής της βάσης δεδομένων αποθηκεύεται η διάρκεια της τελευταίας διαδρομής του αναβάτη. Μάλιστα για τον υπολογισμό αυτής χρησιμοποιείται και η τιμή της εντεκάτης γραμμής που έχει τίτλο start time. 10 total litres Στην γραμμή αυτή αποθηκεύεται η τιμή των συνολικών λίτρων που περιέχει η μοτοσυκλέτα. Χρησιμοποιείται βάση δεδομένων για την αποθήκευση αυτής, λόγο του ότι η εφαρμογή είναι κατασκευασμένη με τέτοιο τρόπο ώστε να μπορεί να ενημερώσει τον χρήστη ανά πάσα στιγμή για τα υπολειπόμενα λίτρα καυσίμου της μοτοσυκλέτας. 11 start time Η τιμή αυτής της γραμμή σχετίζεται πάρα πολύ με αυτή της ένατης γραμμής. Συγκεκριμένα είτε μέσω της λειτουργίας GPS, είτε μέσω της λειτουργίας Bluetooth, η εφαρμογή οφείλει να υπολογίσει τον συνολικό χρόνο πορείας της μοτοσυκλέτας. Αυτό το κάνει μέσω ενός αλγορίθμου όπου την πρώτη χρονική στιγμή που ξεκινάει η καταγραφή της πορείας της μοτοσυκλέτας αποθηκεύει σε αυτή την γραμμή την ημερομηνία και ώρα. Όταν λοιπόν φτάσει η στιγμή που ο χρήστης θα σταματήσει την διαδικασία καταγραφής της πορείας για τον λόγο ότι έχει φτάσει στον προορισμό του, τότε καλείται η τιμή αυτής της γραμμής και υπολογίζεται ο συνολικός χρόνος από την στιγμή που ξεκίνησε την καταγραφή μέχρι την στιγμή που σταμάτησε. 12 screen mode Η εφαρμογή δίνει την δυνατότητα στον χρήστη να ρυθμίσει την εφαρμογή του να προβάλλεται είτε σε κανονικό παράθυρο είτε σε πλήρη οθόνη. Οι δύο διαφορετικές τιμές που μπορεί να αποθηκεύσει αυτή η γραμμή της βάσης δεδομένων είναι είτε 0, είτε 1, αναλόγως την επιλογή του χρήστη. 13 temp lat & 14 temp long Σε αυτές τις δύο θέσεις αποθηκεύονται προσωρινά το γεωγραφικό μήκος και πλάτος της μοτοσυκλέτας. Χρησιμοποιούνται για να υπολογίσουμε την απόσταση μας από το προηγούμενο γεωγραφικό μας στίγμα και ως αποτέλεσμα να μπορούμε και υπολογίζουμε την κατανάλωση του καυσίμου μας διανύοντας οποιαδήποτε απόσταση. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 53

15 end fuel info Όπως θα δούμε και παρακάτω σε αυτήν την βάση δεδομένων αποθηκεύονται και οι λεπτομέρειες του ιστορικού που αφορούν την ημερομηνία που ο χρήστης επισκέφτηκε κάποιο πρατήριο καυσίμων και γέμισε στο ντεπόζιτό του. Το μόνο που γνωρίζει πάντα η εφαρμογή μας είναι ότι αυτές οι πληροφορίες ξεκινάνε από την τριακοστή πρώτη σειρά της βάσης δεδομένων μας. Αυτό συμβαίνει γιατί ο αλγόριθμος που χρησιμοποιείται για την προβολή αυτού του ιστορικού, απαιτεί από την εφαρμογή να γνωρίζει εξίσου πού τελειώνουν αυτές οι πληροφορίες. Έτσι, χρησιμοποιούμε αυτή την γραμμή για να αποθηκεύσουμε τον αριθμό της γραμμής της βάσης δεδομένων μας που περιέχει την τελευταία εγγραφή. Με άλλο λόγια, σε αυτήν την σειρά αποθηκεύουμε τον αριθμό της τελευταίας σειράς της βάσης μας που περιέχει πληροφορίες με την πιο πρόσφατη εγγραφή σε αυτήν. 16 model & 17 cubic Αυτές οι δύο σειρές περιέχουν πληροφορίες σχετικές με το μοντέλο της μοτοσυκλέτας που χρησιμοποιείται. Ο λόγος ύπαρξης αυτών των δύο, είναι όπως είπαμε και σε προηγούμενη υποενότητα για να γνωρίζουμε σε περίπτωση που ο χρήστης χρησιμοποίει την εφαρμογή σε λειτουργία GPS, την κατανάλωση της μοτοσυκλέτας. 18 consumption Σύμφωνα με έναν αλγόριθμο που εκτελείται κατά την έναρξη της εφαρμογής, υπολογίζεται η κατανάλωση της μοτοσυκλέτας σύμφωνα με τις δύο προηγούμενες σειρές αυτής της βάσης δεδομένων. Η μέγιστη και ελάχιστη κατανάλωση που υπολογίζεται, αποθηκεύεται σε αυτήν την σειρά για να μπορέσει με την σειρά του να την εκμεταλλευτεί κάποιος άλλος αλγόριθμος. 19 30 standby Οι σειρές δεκαεννέα έως τριάντα είναι κενές καθώς περιέχουν τον χαρακτήρα 0. Έχουν δημιουργηθεί και υπάρχουν για λόγους μελλοντικής αναβάθμισης της εφαρμογής, έτσι ώστε να έχουμε αρκετές θέσεις για να αποθηκεύσουμε δεδομένα. 31 - Από την σειρά τριανταένα αρχίζουν να αποθηκεύονται πληροφορίες σχετικές με την κάθε στάση του μοτοσικλετιστή σε πρατήριο καυσίμων, όπως αναφέραμε και παραπάνω. Οι πληροφορίες που αποθηκεύονται με κωδικοποιημένο τρόπο είναι η ημερομηνία και η ώρα κατά την οποία ο χρήστης γέμισε με καύσιμα στην μοτοσυκλέτα του, τον αριθμό των λίτρων που πρόσθεσε, την τιμή του λίτρου καθώς και το αντίστοιχο χρηματικό ποσό που δαπάνησε. Το τέλος αυτών των γραμμών δεν μπορούμε να το προσδιορίσουμε εξαρχής, καθώς δεν γνωρίζουμε πόσο συχνά κάνει στάσεις ο μοτοσικλετιστής σε πρατήρια καυσίμων, αλλά μπορεί να μας τον προσδιορίσει το περιεχόμενο της δέκατης πέμπτης σειράς, αυτής της βάσης δεδομένων. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 54

Όσον αφορά την έκταση που μπορούν αν πάρουν οι βάσεις δεδομένων, υπάρχει θεωρητικός αριθμός ο οποίος είναι πραγματικά μεγάλος και για αυτόν τον λόγο θεωρούμε ότι οι βάσεις δεδομένων μπορούν να αποθηκεύσουν άπειρες σειρές δεδομένων. Ο θεωρητικός αυτός αριθμός που προσδιορίζει την μέγιστη εγγραφή σειρών είναι η εξηκοστή τέταρτη δύναμη του δύο (2 64 ), δηλαδή 18.446.744.073.709.551.616 σειρές. Η δεύτερη βάση δεδομένων που χρησιμοποιεί η εφαρμογή μας, αποτελείται από δύο στήλες και από απροσδιόριστο αριθμό σειρών. Θα μπορούσαμε να πούμε ότι η συγκεκριμένη βάση είναι εξολοκλήρου δυναμική, καθώς αποθηκεύει τα γεωγραφικά μήκη και πλάτη που καταγράφονται κατά την πορεία της μοτοσυκλέτας. Η διαδικασία καταγραφής της διαδρομής δεν είναι αυθαίρετη καθώς ο χρήστης κατά τη έναρξη της πορείας του καλείται να επιλέξει εάν θέλει να καταγραφή η πορεία του ή όχι. Φυσικά κατά την εγκατάσταση της εφαρμογής στην συσκευή η εν λόγο βάση δεδομένων είναι κενή και αρχίζει να γεμίζει κατά την πρώτη καταγραφή του χρήστη. Οι καταγραφές αυτές χρησιμοποιούνται από την διαδικασία Statistics όπου ο χρήστης μπορεί να δει στον χάρτη την διαδρομή του με κόκκινη επισκίαση. Βέβαια όταν ο χρήστης επιλέξει να κάνει μία νέα διαδρομή και θέλει να την καταγράψει, η συγκεκριμένη βάση δεδομένων διαγράφει τα στοιχεία που έχει ήδη αποθηκευμένα για να μπορέσει να αποθηκεύσει τα καινούργια. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 55

5 ΥΛΟΠΟΙΗΣΗ Η ολοκλήρωση της παρούσας πτυχιακής εργασίας απαίτησε σχεδόν επτά μήνες συνεχόμενης δουλειάς. Για την ακρίβεια, χρειάστηκε περίπου πέντε μήνες για τη ολοκλήρωση της εφαρμογής, ενώ το υπόλοιπο χρονικό διάστημα δαπανήθηκε για την μελέτη των τεχνολογιών της μοτοσυκλέτας και κυρίως για τον κεντρικό υπολογιστή (On Board System). Όπως έχουμε αναφέρει και προηγουμένως, το καλό με την συγκεκριμένη εργασία είναι ότι δεν βασίζεται απλώς σε μία εφαρμογή αυτόνομη, αλλά υπάρχει και ηλεκτρονικό υπόβαθρο που την καθιστά αξιόπιστη για το είδος της. Για την υλοποίηση της χρειάστηκε μία ηλεκτρονική πλακέτα, που ουσιαστικά θα μεταφράζει τις μετρήσεις μας από την μοτοσυκλέτα, και η κατασκευή μίας εφαρμογής για έξυπνα κινητά Android που θα μας δείχνει αυτές τις μετρήσεις. 5.1 Ηλεκτρονική πλακέτα Για τις ανάγκες της πτυχιακής μας εργασίας χρησιμοποιήσαμε μία έτοιμη ηλεκτρονική πλακέτα (Εικόνα 9). Αυτό, γιατί πρώτα απ όλα είναι πολύ πιο οικονομική λύση από το να την κατασκευάσουμε. Η τιμή αυτής είναι στα 9.8 ευρώ και η παραγγελία της έγινε μέσω του ηλεκτρονικού καταστήματος www.e-bay.com. Χρησιμοποιήσαμε ένα έτοιμο ηλεκτρονικό κύκλωμα κυρίως για λόγους χώρου. Η εν λόγο συσκευή είναι πολύ μικρή σε μέγεθος, πράγμα το οποίο μας διευκολύνει για την τοποθέτησή της κάτω από την σέλα της μοτοσυκλέτας, όπου βρίσκεται ως επί το πλείστον η θύρα OBD. Τέλος, ένας επιπρόσθετος λόγος που μας οδήγησε σε αυτή την ενέργεια, είναι η ασφάλεια. Η συσκευή αυτή έρχεται σε πλαστικό προστατευτικό κουτάκι και έτσι αποτρέπεται η έκθεση της ηλεκτρονικής πλακέτας σε συνθήκες υγρασίας και σε πιθανά υγρά που μπορεί να βρίσκονται κάτω από την σέλα. Εικόνα 9. Ηλεκτρονική πλακέτα πτυχιακής εργασίας Η ηλεκτρονική μας πλακέτα βασίζεται στον ELM327 μεταφραστή που αναλύσαμε σε προηγούμενη ενότητα και στο πρωτόκολλο Bluetooth που σκοπό έχει να κάνει της σύνδεση με την εφαρμογή για έξυπνα κινητά Android. Υποστηρίζει όλα τα πρωτόκολλα OBD που αναφέραμε στην αρχή αυτής της εργασίας ενώ το σχηματικό του ηλεκτρονικού κυκλώματος της είναι αυτό που είδαμε στην εικόνα 6 της προηγούμενης ενότητας. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 56

5.2 Κατασκευή εφαρμογής σε πλατφόρμα Android Για την υλοποίηση της εφαρμογής χρησιμοποιήθηκε το πρόγραμμα Eclipse Indigo [28] (Εικόνα 9). Το πρόγραμμα αυτό ενδείκνυται για την υλοποίηση εφαρμογών σε γλώσσα προγραμματισμού Java, είτε αυτές οι εφαρμογές προορίζονται για έξυπνα κινητά τηλέφωνα Android, είτε για εφαρμογές σταθερού προσωπικού υπολογιστή (Desktop). Το μεγαλύτερο ίσως πλεονέκτημα αυτής της εφαρμογής είναι ότι μπορεί και συνεργάζεται με το android sdk [29], το οποίο παρέχεται δωρεάν από την εταιρία Google σε όλους τους δημιουργούς (developers) εφαρμογών για Android κινητά τηλέφωνα. Τέλος, ένα αξιόλογο πλεονέκτημα της εφαρμογής Eclipse Indigo είναι ότι μπορεί να ανιχνεύσει πιθανά λάθη που μπορεί να έχουμε κάνει στην σύνταξη του κώδικά μας και να μας δώσει πιθανές λύσεις για να το διορθώσουμε. Η λειτουργία αυτή είναι πολύ χρήσιμη για τους αρχάριους δημιουργούς εφαρμογών που δεν έχουν πολλές γνώσεις προγραμματισμού. Παράλληλα μάλιστα με τις διάφορες λύσεις που μας προτείνει για να διορθώσουμε κάποιο λάθος, προσπαθεί να εκπαιδεύσει τον χρήστη δίνοντας του πληροφορίες σχετικές με την σωστή σύνταξη της κάθε εντολής και πολλές φορές με το τι αποτέλεσμα περιμένουμε να έχουμε μετά την εκτέλεση της. Εικόνα 10. Γραφικό περιβάλλον του προγράμματος Eclipse Indigo. Το android sdk (Εικόνα 11) είναι μια μεγάλη γκάμα από έτοιμες βιβλιοθήκες που παρέχονται από την Google δωρεάν προς του δημιουργούς εφαρμογών κινητών Android. Οι βιβλιοθήκες αυτές κατατάσσονται σε διαφορετικές API (Application Programming Interface) εκδόσεις. Η κάθε μία έκδοση API (API Levels), εμπεριέχει έτοιμες μεθόδους, προεπιλεγμένες κλάσεις, έτοιμους κατασκευαστές, και γενικώς έτοιμες ρουτίνες στον κατασκευαστή, τις οποίες μπορεί να καλέσει οποιαδήποτε στιγμή στο πρόγραμμά του και να τις διαχειριστεί. Ακόμη, η κάθε έκδοση API ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 57

απευθύνεται σε συγκεκριμένες εκδόσεις λειτουργικού συστήματος της συσκευής μας Android. Όταν ξεκινάμε να κάνουμε μία εφαρμογή για κινητό τηλέφωνο Android θα πρέπει να προσδιορίσουμε την έκδοση API με την οποία στοχεύουμε να εκτελέσουμε την εφαρμογή μας καθώς και την ελάχιστη API έκδοση που θα μπορεί να γίνεται εκτελέσιμη. Ένα παράδειγμα για την κατανόηση του android sdk και των API εκδόσεων, είναι το παρακάτω. Ας υποθέσουμε ότι θέλουμε να κατασκευάσουμε μία εφαρμογή που στόχο έχει την εκτέλεσή της από συσκευές με έκδοση λειτουργικού συστήματος την 2.3.3 (Froyo). Παρόλα αυτά όμως θέλουμε να μπορεί να γίνεται εκτελέσιμη και από συσκευές που έχουν έκδοση λειτουργικού συστήματος την 1.6 (Cupcake). Σε αυτή την περίπτωση η API έκδοση η οποία υποστηρίζεται από συσκευές με έκδοση λειτουργικού συστήματος 2.3.3 είναι η 10, ενώ για εκδόσεις λειτουργικού συστήματος 1.6, η αντίστοιχη API έκδοση είναι η 6. Συμπερασματικά, ξεκινώντας την δημιουργία της εφαρμογής μας, σύμφωνα με το παραπάνω παράδειγμα θα χρειαστεί να θέσουμε ως προδιαγραφές την έκδοση API 10 ως στοχεύουσας API έκδοσης (target API), και ως ελάχιστη έκδοση, την έκδοση API 6 (min API). Εικόνα 11. Android Sdk Manager Η εφαρμογή της πτυχιακής εργασίας βασίζεται στην εφαρμογή Bluetooth Chat, η οποία παρέχεται ως παράδειγμα από την εταιρία Google. Με την εφαρμογή αυτή δύο συσκευές μπορούνε να συνδεθούνε μεταξύ τους μέσω Bluetooth και να ανταλλάξουν μηνύματα δωρεάν. Εμείς λοιπόν πήραμε αυτή την εφαρμογή ως ξεκίνημα και την τροποποιήσαμε βάση των δικών μας προδιαγραφών. Μετατρέψαμε το γραφικό της περιβάλλον σε αυτό που μπορούμε να δούμε στην κατηγορία Go Race του κεντρικού μενού της εφαρμογής μας. Αυτό μας εξασφάλισε την σύνδεση της εφαρμογής με την ηλεκτρονική πλακέτα, χωρίς να χρειαστεί να υλοποιήσουμε από την αρχή το ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 58

κομμάτι της σύνδεσης Bluetooth με εξωτερικές συσκευές. Κάτι τέτοιο άλλωστε αποτελεί και το σκοπό της εταιρίας Google. Όλη η πλατφόρμα android είναι ανοιχτού κώδικα (open source), δίνοντας στους δημιουργούς εφαρμογών έτοιμα κομμάτια κώδικα με απώτερο σκοπό να τα συνδέσουν με άλλα ώστε να χτιστεί σιγά σιγά μια εφαρμογή. Ακούγεται εύκολο, αλλά στην πραγματικότητα δεν είναι. Ποτέ δεν δίνεται κάποιο κομμάτι κώδικα το οποίο μπορεί αν δουλεύει αυτόνομο καθώς απαιτούνται από τον δημιουργό γνώσεις προγραμματισμού για να μπορέσει να τροποποιήσει το συγκεκριμένο κομμάτι και να το συνδέσει με επιτυχία στο υπόλοιπό του πρόγραμμα. Το καλό με την πλατφόρμα ανοιχτού κώδικα που ονομάζεται Android, είναι ότι η επίσημη ιστοσελίδα της διαθέτει μία τεράστια βάση δεδομένων, παρέχοντας στου δημιουργούς μια πληθώρα πληροφοριών σχετικές με την υλοποίηση οποιασδήποτε ενέργειας. Για κάθε ενέργεια του δημιουργού παρέχονται πληροφορίες όσον αφορά την API έκδοση που υποστηρίζει, τις ρουτίνες που μπορεί να καλέσει στο πρόγραμμά του είτε είναι κλάσεις είτε μέθοδοι είτε κατασκευαστές, καθώς και την σωστή σύνταξη που πρέπει να ακολουθήσει για να γίνουν όλες οι εντολές εκτελέσιμες. Μερικές φορές μάλιστα δίνονται και κάποια σχετικά παραδείγματα και εικόνες που σκοπό έχουν να δείξουν στον δημιουργό την τελική μορφή της ενέργειας που θέλει να κάνει, όταν βέβαια αυτή η ενέργεια σχετίζεται με γραφικά. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 59

6 ΠΑΡΟΥΣΙΑΣΗ ΓΡΑΦΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΤΗΣ ΕΦΑΡΜΟΓΗΣ Παρακάτω παρουσιάζεται το γραφικό περιβάλλον της εφαρμογής για κάθε μία διαφορετική οθόνη. [38] Αρχική οθόνη Αυτή είναι η αρχική οθόνη της εφαρμογής μας. Όπως όλες οι επίσημες εφαρμογές ενδείκνυται να έχουν μία εισαγωγική οθόνη όπου καλωσορίζουν τους χρήστες, υποδεικνύοντας το όνομα της εφαρμογής, το όνομα του κατόχου των πνευματικών δικαιωμάτων καθώς και ένα κουμπί που παραπέμπει στην συνέχιση εφαρμογής που στην προκειμένη περίπτωση είναι το δερμάτινο μπουφάν που βλέπουμε στα αριστερά μας. [39] Εισαγωγή κωδικού Η αμέσως επόμενη οθόνη είναι αυτή της ταυτοποίησης του χρήστη. Λόγο του ότι η συγκεκριμένη εφαρμογή απευθύνεται στην λειτουργία της μοτοσυκλέτας, την κάνει πολύ ιδιαίτερη και για αυτό τον λόγο υπάρχει ένας κωδικός που πρέπει να γνωρίζει ο αναβάτης για να ξεκινήσει την μηχανή και να αρχίσει η οδιγική του εμπειρία. Ο κωδικός αυτός θα πρέπει να αποτελείται από αριθμούς, από το 0 έως το 9. Ο προεπιλεγμένος κωδικός πρόσβασης είναι ο 1111. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 60

Κεντρικό Μενού Βλέποντας αυτή την οθόνη σημαίνει ότι έχουμε μπει επιτυχώς στην εφαρμογή μας και αυτό είναι το κύριο μενού όπου μπορούμε να επιλέξουμε τι ακριβώς θέλουμε να κάνουμε μέσω της εφαρμογής μας. Υπάρχουν πέντε διαφορετικές λειτουργίες που μπορούμε να κάνουμε [40] [41] [42] [43] μέσω αυτής και αναλύονται παρακάτω μία-μια ξεχωριστά. [44] [45] Λειτουργία GPS Πατώντας την επιλογή Go Race της προηγούμενης οθόνης, μπορούμε να οδηγηθούμε σε δύο διαφορετικές βασικές οθόνες. Η μία είναι αυτή της φωτογραφίας όπου ο μοτοσικλετιστής διαλέγει να παίρνει μετρήσεις για την πορεία του με την βοήθεια του GPS. Όπως έχουμε αναλύσει και σε προηγούμενο κεφάλαιο, η λειτουργία αυτή επιλέγεται από τις ρυθμίσεις και ο χρήστης έχει την δυνατότητα να παρακολουθεί την ταχύτητα με την οποία κινείται, τα υπολειπόμενα λίτρα βενζίνης και τα συνολικά χιλιόμετρα τα οποία έχει διανύσει. [59] Λειτουργία OBD Βλέποντας την οθόνη αυτή, μπορούμε να πούμε ότι είμαστε επίκεντρο του ενδιαφέροντος αυτής της εφαρμογής. Είναι η πιο σοβαρή και πιο απαιτητική λειτουργία της εφαρμογής. Ο χρήστης πλέον έχει την ευκαιρία να συνδέσει την εφαρμογή με την θύρα OBD της μοτοσυκλέτας, με την βοήθεια της τεχνολογίας Bluetooth και να δεχτεί μια πληθώρα πληροφοριών. Πιο αναλυτικά μπορεί να ξεκινήσει την μηχανή της μοτοσυκλέτας του, πατώντας το κουμπί Start, και αμέσως να ξεκινήσει να λαμβάνει μετρήσεις όπως την ταχύτητα με την οποία κινείται, τις στροφές της μηχανής, τα λίτρα τα οποία είναι αποθηκευμένα στο ντεπόζιτο της μοτοσυκλέτας καθώς και την θερμοκρασία της [60] [61] [62] μηχανής. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 61

Πληροφορίες Καυσίμου Σε αυτή την ενότητα ο χρήστης έχει την ευκαιρία να ενημερώνεται λεπτομερώς για οποιαδήποτε πληροφορία η οποία έχει σχέση με την κατανάλωση της μοτοσυκλέτας. Για να μιλήσουμε λίγο πιο συγκεκριμένα σε αυτή την καρτέλα ο χρήστης ενημερώνεται για τα λίτρα καυσίμου που έχει την συγκεκριμένη στιγμή, για την κατανάλωση της μοτοσυκλέτας, ενώ μπορεί να ενημερωθεί και για τα υπολειπόμενα χιλιόμετρα που μπορεί να καλύψει εντός και [53] [54] [55] [56] εκτός της πόλης. [57] [58] Προσθήκη Καυσίμου Στην δεύτερη καρτέλα αυτής της κατηγορίας, ο χρήστης μπορεί να εισάγει το ποσό σε ευρώ που πρόσθεσε σε καύσιμα κατά την στάση του στο βενζινάδικο καθώς και την τιμή του λίτρου. [51] Ιστορικό Καυσίμων Κάθε φορά που ο χρήστης εισάγει μία νέα ομάδα τιμών στην δεύτερη καρτέλα της εφαρμογής, τότε η εφαρμογή είναι σε θέση να κρατάει ένα ημερολόγιο όπου ο χρήστης μπορεί να δει την ημερομηνία και ώρα που πρόσθεσε καύσιμα, το ποσό σε ευρώ, την τιμή λίτρου και τον συνολικό αριθμό καυσίμων σε λίτρα. [52] ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 62

Στατιστικά τελευταίας διαδρομής Σε αυτή την οθόνη όπως μπορούμε να δούμε και από την εικόνα στα αριστερά μας, μπορούμε να βρούμε πληροφορίες σχετικές με την τελευταία μας καταγεγραμμένη διαδρομή. Η εφαρμογή είναι ικανή να υπολογίζει την μέγιστη και μέση ταχύτητα της μοτοσυκλέτας, την διάρκεια της διαδρομής καθώς και την συνολική απόσταση που διένυσε. Επιπλέον ο χρήστης μπορεί να δει την γραφική της ταχύτητας του σε σχέση με τον χρόνο. Τέλος, η πιο συναρπαστική λειτουργία είναι αυτή της καταγραφής της διαδρομή στους χάρτες της Google. Καταγράφοντας την διαδρομή, ουσιαστικά αποθηκεύουμε το γεωγραφικό στίγμα της συσκευής και όταν πατήσουμε το κουμπί Google Maps, μας εμφανίζεται η διαδρομή χαραγμένη με κόκκινο χρώμα. Τις δύο [46] [47] [48] λειτουργίες αυτές μπορούμε να τις δούμε και στις επόμενες δύο εικόνες. Speedograph Google maps [49] [50] ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 63

Πλοηγός Μια επιπρόσθετη δυνατότητα που έχει ο χρήστης είναι να μπορεί να παρακολουθεί το στίγμα του στο χάρτη με σκοπό να πηγαίνει στον προορισμό του πιο ευκολα και γρήγορα. Οι ρυθμίσεις της εφαρμογής Μία απο τις πιό βασικές οθόνες της εφαρμογής είναι αυτή των ρυθμίσεων. Μέσω αυτής ο χρήστης μπορεί να αλλάξει τον προσωπικό του κωδικό που χρησιμοποιεί για να ανοίξει επιτυχώς την εφαρμογή. Επίσης καλείται να διαλέξει το μοντέλο της μοτοσυκλέτας του και τα κυβικά αυτής. Τέλος μπορεί να κάνει πολλές ρυθμίσεις σχετικά με την προβολή της εφαρμογής και να διαλέξει τον τρόπο με τον οποίο επιθυμεί να πέρνει μετρήσεις. Έξοδος από την εφαρμογή Για λόγους ασφαλείας η επιλογή του πισω (back) των συσκευών Android έχει απενεργοποιηθεί. Για να τερματιστεί η εφαρμογή, πρέπει να πατηθεί το εικονίδιο exit και αν επιθυμεί ο χρήστης όντως να βγεί απο αυτή, πρέπει να διαλέξει την επιλογή Yes. ΗΛΕΚΤΡΟΝΙΚΟΣ ΒΟΗΘΟΣ ΟΔΗΓΟΥ ΜΟΤΟΣΥΚΛΕΤΑΣ - ΧΕΙΜΩΝΑΣ Θ. ΔΗΜΗΤΡΙΟΣ 64