Αυτόνομο πράσινο αυτοκίνητο – Green Car
Η Ομάδα
Η ομάδα ρομποτικής @robot7gymchai του σχολείου μας αποτελείται από τους μαθητές Μουτζουρίδη Βασίλη, Νάκο Παναγιώτη και Αναστασιάδη Αντώνη και τον καθηγητή πληροφορικής Μαχαιρίδη Τ.
Το Πρόβλημα και η υπάρχουσα κατάσταση
Ένα συνηθισμένο πρόβλημα στην εποχή μας αφορά τα εκπεμπόμενα καυσαέρια από τα εκατομμύρια αυτοκίνητα σε κάθε χώρα. Τα καύσιμα με τα οποία κινούνται τα αυτοκίνητα αυτά προέρχονται από παράγωγα τού πετρελαίου, όπως βενζίνη και πετρέλαιο κίνησης. Όμως στην εποχή μας ήδη έχει αρχίσει η μετατόπιση προς πράσινη ενέργεια και εναλλακτικές μορφές καυσίμων όπως η βιοαιθανόλη, το υδρογόνο και ηλιακή ενέργεια. Ήδη ένα μικρό ποσοστό των αυτοκινήτων είναι είτε υβριδικά είτε εντελώς ηλεκτρικά και στο μέλλον θα δούμε και αυτοκίνητα υδρογόνου.
Μία πρόσθετη ευκολία που μπορεί να μας δώσει η ρομποτική και οι ηλεκτρονικές συσκευές είναι να δημιουργήσουμε αυτοκίνητα που θα μπορούν να οδηγούνται αυτόνομα χωρίς τη χρησιμοποίηση ενός ανθρώπου οδηγού. Δηλαδή, ξεκούραστη, οικονομικότερη, οικολογικότερη και ίσως ασφαλέστερη οδήγηση.
Η πρότασή μας – Στόχος και Κόστος
Η πρότασή μας είναι η δημιουργία, με οικονομικά υλικά, ενός ενεργειακά αυτόνομου μέσου μεταφοράς που να χρησιμοποιεί την ηλιακή ενέργεια και επαναφορτιζόμενες μπαταρίες για την κίνησή του.
Άρα, στα πλαίσια της πράσινης παραγωγής ενέργειας για τη προστασίας του φυσικού περιβάλλοντος και των οικοσυστημάτων από την χρήση καυσίμων, σκοπός της ομάδας μας είναι η κατασκευή από το μηδέν, ενός μικρού μοντέλου αυτοκίνητου, τετρακίνητου ώστε να μπορεί να κινηθεί και σε τραχύ έδαφος, που θα αυτοφορτίζεται από τον ήλιο ώστε να κινείται αποκλειστικά ηλεκτρικά.
Θα οδηγείται είτε τηλεχειριζόμενο, με ασύρματο ΒlueΤooth χειριστήριο PlayStation, ή τελείως οδηγικά αυτόνομα, με αισθητήρες ανίχνευσης του περιβάλλοντος χώρου, για την αποφυγή συγκρούσεων σε εμπόδια κατά τη διαδρομή του.
Το έργο συνδυάζει γνώσεις και δεξιότητες από τους τομείς της μηχανικής, της πληροφορικής, της ρομποτικής και των ηλεκτρονικών.
Παρόμοιες λύσεις και Πρωτοτυπία
Στο διαδίκτυο τα περισσότερα παρόμοια προϊόντα βασίζονται σε έτοιμο σετ ή σκελετό που είναι ιδιαίτερα ακριβός και σπάνια υπάρχουν οικονομικές εναλλακτικές λύσεις.
Εμείς πρωτοτυπούμε, χρησιμοποιώντας σαν βάση του αυτοκινήτου, δηλαδή σαν σασί, ένα αλουμινένιο ταψάκι γλυκών (για σιροπιαστά!) από κατάστημα εμπορίας ειδών εστιατορίου. Σαν αποθήκες ενέργειας ανακυκλωμένες μπαταρίες από χαλασμένα λάπτοπ και τάμπλετ. Επίσης, ένα μαγνήτη νεοδυμίου από καμμένο σκληρό και φύλλο μπάλσας από περισσεύματα του εργαστηρίου τεχνολογίας.
Έτσι εκτός από τα νέα υλικά που αγοράσαμε, περίπου το μισό κόστος της κατασκευής προήλθε από υλικά που επαναχρησιμοποιούμε από παλαιότερες κατασκευές ή ηλεκτρονικά απορρίμματα.
Λίστα υλικών και Εργαλείων
Κοστολογημένη λίστα υλικών:
ταψί αλουμινένιο ορθογώνιο 277×210×50×1 χιλ. | 7 € |
κινητήρες (×4) XD-37GB520 συνεχούς ρεύματος 37mm, 12v, 100rpm, | 88 € |
τροχοί (×4) 125 χιλ. με ελαστικά και πλαστικές ζάντες | 30 € |
άξονες (×4) για κέντρα τροχών | 8 € |
μικροελεγκτής Arduino MEGA ADK R3 | 40 € |
πλακέτες (×2) οδήγησης κινητήρων DRV8871, | 14 € |
αισθητήρες (×2) απόστασης (υπερήχων) HC-SR04, | 5 € |
οπτοηλεκτρονικη οθόνη 1,5″ RGB 128×128 OLED Module | 20 € |
ασύρματο αντάπτορα Bluetooth 4.0 USB Module | 15 € |
μετατροπέας DC-DC Step-Down 5V 5A | 5 € |
φωτοβολταϊκή κυψέλη 3.5W | 13 € |
ρυθμιστή φόρτισης μπαταρίας LiPo, CN3065 | 3 € |
BMS 1S 3A Li-ion Battery Protection Board | 1 € |
επαναφορτιζόμενες (×4) μπαταρίες λιθίου Li-ion 18650, από χαλασμένο λάπτοπ | 10 € |
επαναφορτιζόμενη μπαταρία λιθίου LiPo, από χαλασμένο τάμπλετ | 0 € |
τετραπλή μπαταριοθήκη 4×18650 – με Καλώδια | 2 € |
πλακέτα δοκιμών (breadboard) | 3 € |
Βίδες και μπουλόνια από ανοξείδωτο χάλυβα | 5 € |
ακρυλικό φύλλο 500×500×6 χιλ., ×4 μεντεσεδάκια | 20 € |
και θερμοσυστελλόμενα, διάφορα καλώδια, θερμοκόλλα σιλικόνης, πλαστελίνη μπλου-τακ.
Συνολικό Κόστος: 290€
Εργαλεία: πολύμετρο και αμπεροτσιμπίδα, ηλεκτρικό κολλητήρι, κοφτάκι, πριόνι, τροχός, ψαλίδι, κοπίδι, πιστόλι θερμόκολλας, μυτοτσίμπιδο, κατσαβίδια, χάρακας, σπειροτόμος
Υλοποίηση.
Φωτογραφίες και Σχέδια από φάσεις κατασκευής
Μηχανισμοί
Αρχικά, τρυπήσαμε το αλουμινένιο ταψάκι στα πλάγια, για να στερεώσουμε τις βίδες των κινητήρων.
Κολλήσαμε καλώδια στους κινητήρες
και τους βιδώσαμε στις θέσεις τους.
Μετά, στερεώσουμε τους άξονες των τροχών, πάνω στους άξονες των κινητήρων, με σφραγιστικό σπειρώματος
και τέλος βιδώσαμε τους τροχούς, με κλειδιά τύπου Άλεν και επιτέλους μοιάζει με αυτοκίνητο!
Αργότερα, αποφασίσαμε να επενδύσουμε με ξύλο το δάπεδο στο ταψάκι, για να αποφύγουμε βραχυκυκλώματα στο ηλεκτρονικό κύκλωμα, τα οποία μας κόστισαν την αντικατάσταση ενός από τους οδηγούς κινητήρα, ο οποίος κάηκε. Για αυτό το σκοπό χρησιμοποιήσαμε ξύλο τύπου μπάλσα και πιστόλι θερμης κόλλας σιλικόνης.
Ηλεκτρονικά
Στο ηλεκτρονικό μέρος τώρα, σχεδιάσαμε πρώτα το κύκλωμα στον πίνακα του εργαστηρίου.
Συνδέσαμε τα εξαρτήματα εξωτερικά και αφού δοκιμάσαμε τις συνδέσεις και τις σωστές τάσεις, τα μεταφέραμε στο εσωτερικό του ταψιού, όπου και στερεώθηκαν με μπλου-τάκ.
Το αποτέλεσμα ήταν αυτό:
Οι αρχικές δοκιμές έγιναν με μικροελεγκτή Arduino UNO και σταδιακά περάσαμε σε Arduino MEGA ADK. Ο λόγος είναι ότι το τελευταίο περιλαμβάνει USB host με αντίστοιχη υποδοχή USB. Αυτό μας δίνει τη δυνατότητα να συνδέσουμε ασύρματο αντάπτορα Bluetooth για επικοινωνία με τηλεχειριστήριο PlayStation, που μας δάνεισε ένας μαθητής.Οι οδηγοί αυτοί τροφοδοτούνται με ρεύμα απευθείας από την μπαταριοθήκη σε τάση 12 ή και 16 volt και δίνουν ρεύμα στους κινητήρες, ο ένας στους δύο κινητήρες της δεξιάς πλευράς και ο άλλος στους δύο κινητήρες της αριστερής πλευράς.
Φυσικά τις εντολές τις παίρνουν με συνδέσεις στις ψηφιακές πόρτες εξόδου του μικροελεγκτή Arduino. Αντίθετα οι δύο αισθητήρες αποστάσεις επικοινωνούν με αναλογικές πόρτες εισόδου του μικροελεγκτή.
Χρησιμοποιήσαμε επίσης, δυο αισθητήρες απόστασης με υπερήχους, είτε αρχικά στη μπροστινή πλευρά και τους δύο μαζί δίπλα-δίπλα, ή τελικά έναν στη μπροστά και ένα στην πίσω πλευρά.
Ακόμα, συνδέσαμε μια μικρή οθόνη OLED στην οποία εμφανίζονται ενημερωτικά μηνύματα για τις ενέργειές του μικροελεγκτή.
Όλες οι συνδέσεις έγιναν πάνω σε πλακέτα δοκιμών breadboard πάνω στην οποία συνδέθηκαν και οι δύο οδηγοί των κινητήρων.
Για να μπορέσουμε να στηρίξουμε κάπου το φωτοβολταϊκό πάνελ, κόψαμε ένα κομμάτι ακρυλικού τζαμιού σαν καπάκι στο ταψάκι.
Για να έχουμε όμως εύκολη πρόσβαση στο εσωτερικό θα έπρεπε να μπορεί να ανοιγοκλείνει εύκολα και γι αυτό το στηρίξαμε από τη μία μεριά με δύο μεταλλικούς μεντεσέδες και από την άλλη με έναν μαγνήτη στο καπάκι, που κλείνει πάνω σε δυο μεταλλικές γωνίες.
Με το καπάκι να μην αφήνει χώρο, οι αισθητήρες απόστασης πέρασαν από τρύπες που ανοίξαμε την μπρος και στην πίσω μετώπη και τους σταθεροποιήσουμε προσωρινά με μπλου-τακ.
Δοκιμάσαμε διάφορες διατάξεις μπαταριών. Είτε με δύο τριπλές μπαταριοθηκες, είτε μια τετραπλή και μια πλακέ ακόμα κολλημένη στο εσωτερικό του καπακιού.
Φυσικά το ρεύμα από το φωτοβολταϊκό περνάει πρώτα από έναν ρυθμιστή φόρτισης μπαταριών λιθίου και μετά από ένα κύκλωμα προστασίας υπερβολικής εκφόρτισης των μπαταριών από την κατανάλωση.
Προγραμματισμός και Βασικός αλγόριθμος
Όταν το αυτοκίνητο κινείται με τηλεχειρισμό, δηλαδή με το χειριστήριο του PlayStation 3, ο βασικός αλγόριθμος είναι ο παρακάτω:
void loop() { // Manual driving mode auto throttle = read_RC(); update_motors(throttle); }
Δηλαδή συνεχώς επαναλαμβάνεται η ανάγνωση των εντολών του χειριστηρίου και η προσαρμογή της κίνησης των κινητήρων σε αυτές.
Στο πρώτο βίντεο μαθητές δοκίμασαν την εμβέλια του τηλεχειρισμού στο προαύλιο και βρήκαν ότι η μέγιστη απόσταση είναι περίπου τα 12 μέτρα.
Στο επόμενα βίντεο μαθητές δοκίμασαν την ευελιξία του αυτοκινήτου στα πλακάκια της πιλοτής του σχολείου.
Αντίθετα, στην περίπτωση που το αυτοκίνητο κινείται αυτόνομα τότε χρησιμοποιείται σαν βασικός αλγόριθμος παρακάτω:
void loop() { // Obstacle avoidance maneuver at 40cm, checking every .5 sec. if (const auto delta_dist = get_obstacle_delta(40, 500)) { coast(); accelerate(backward, positive); // backup coast(); // For positive angle turn left, for negative angle turn right. const auto angle = calc_attack_angle(delta_dist); turn(angle); coast(); accelerate(forward, positive); }
Στο συγκεκριμένο παράδειγμα, η ανίχνευση γίνεται με τους δύο αισθητήρες τοποθετημένους στη μπροστινή πλευρά.
Κάθε μισό δευτερόλεπτο λειτουργεί η ανίχνευση εμποδίων και το αυτοκίνητο όταν ανιχνεύσει εμπόδιο σε μια απόσταση έως 40 εκατοστά, οπισθοχωρεί, ώστε να αποφεύγονται τρακαρίσματα. Αμέσως μετά, στρίβει προς την κατεύθυνση πού βρίσκεται το πιο απομακρυσμένο εμπόδιο.
Εναλλακτικά, με αισθητήρες μπρος-πίσω, μόλις το αυτοκίνητο εμποδιστεί στην πορεία του, φρενάρει και αρχίζει να κινείται στην ακριβώς αντίθετη κατεύθυνση. Αν παγιδευτει και από τις δύο κατευθύνσεις τότε ξεφεύγει στρίβοντας κατά 45 μοίρες αριστερά.
Αυτή την τελευταία παραλλαγή, μπορείτε να δείτε να την δοκιμάζουν δύο μαθήτριες στο προαύλιο.
Ο πλήρης κώδικας υπάρχει στο github: https://github.com/amachg/Green-Autonomous-Car
Επέκταση
Μια καλή επέκταση του έργου, είναι η ανίχνευση του χώρου γύρω από το αυτοκινητάκι χρησιμοποιώντας όμως, αντί για υπέρηχους, έναν αισθητήρα αντανακλώμενου φωτός, για ανίχνευση μεγαλύτερης εμβέλειας, ίσως και χαρτογράφηση περιβάλλοντος χώρου (SLAM). Για την επέκταση αυτή, αγοράσαμε αποστασιόμετρο λέιζερ SLAMTEC και αισθητήρα θέσης (επιταχυνσιόμετρο, ψηφιακή πυξίδα, γυροσκόπιο).
Άλλη καλή επέκταση είναι η ζωντανή ασύρματη μετάδοση εικόνας από τη διαδρομή του αυτοκινήτου, με κάμερα και υπολογιστή Raspberry μέσω WiFi, προς ένα π.χ. κινητό τηλέφωνο. Για την επέκταση αυτή, ανακυκλώσαμε και ένα μικροϋπολογιστή Raspberry Pi3B+ από TV set-top box και αγοράσαμε Raspberry κάμερα με καλωδιοταινία.
Ξεκινήσαμε να εφαρμόζουμε τις επεκτάσεις αυτές, αλλά δυστυχώς δεν προλάβαμε να τις ολοκληρώσουμε.
Άδειες χρήσης λογισμικού και περιεχομένου
Επαφή
Instagram: @robot7gymchai
email: amach@sch.gr