Όπως είδαμε στο εργαστήριο για τους κινητήρες συνεχούς ρεύματος μπορούμε με το Arduino να ελέγξουμε την ενεργοποίηση τους και την ταχύτητα τους. Αυτό που δεν είναι έυκολο να κάνουμε είναι να τους αλλάζουμε την φορά περιστροφής. Θα πρέπει να αλλάζουμε διαρκώς τα καλώδια με τα χέρια μας.
Για να μπορέσει το Arduino να ελέγξει αποτελεσματικά έναν κινητήρα θα πρέπει να μπορεί να ορίσει την κατεύθυνση στην οποία περιστρέφεται, την ταχύτητα με την οποία γυρνάει, καθώς και να μπορεί να τον ενεργοποιεί και να τον απενεργοποιεί. Για να τα πετύχει όλα αυτά χρειάζεται μια βοήθεια από μια ξεχωριστή μονάδα που λέγεται οδηγός κινητήρων.
Ο οδηγός κινητήρων συνδέει τους κινητήρες ενός οχήματος με το Arduino και την μπαταρία και μας επιτρέπει να προγραμματίσουμε την ταχύτητα και την φορά τους. Ο συγκεκριμένος οδηγός που έχουμε επιλέξει έχει θέσεις για 2 κινητήρες. Στην περίπτωση που το όχημα μας έχει 2 ρόδες και 2 κινητήρες είναι ιδανικό, αλλά τι γίνεται αν το όχημα μας έχει 4 ρόδες και κινητήρες; Αυτό που μπορούμε να κάνουμε είναι να συνδέσουμε τους δύο αριστερούς κινητήρες στην μια υποδοχή του οδηγού και τους δυο δεξιούς στην άλλη. Έτσι ο οδηγός θα ελέγχει ταυτόχρονα τους κινητήρες της κάθε πλευράς.
Τοποθέτηση Arduino και οδηγού στο όχημα
Χρησιμοποιώντας το κατσαβιδάκι και τις βίδες που έχετε στο τραπέζι σας τοποθετήστε το Arduino και τον οδηγό κινητήρων πάνω στο όχημα σας ώστε να είναι σταθερό.
Πάμε να κάνουμε τις συνδέσεις;
Σύνδεση κινητήρων
Ας ξεκινήσουμε να κάνουμε τις συνδέσεις των κινητήρων στα ρομποτικά μας οχήματα. Στην περίπτωση που το όχημα σας έχει 2 κινητήρες ακολουθείτε το παρακάτω σχήμα.
Στην περίπτωση που το όχημα σας έχει 4 κινητήρες θα πρέπει να ακολουθήσετε το σχήμα που ακολουθεί παρακάτω.
Σύνδεση με το Arduino για την φορά των κινητήρων
Για να ελέγξουμε την φορά των κινητήρων χρησιμοποιούμε τις συνδέσεις IN1 και IN2 για τους αριστερά κινητήρες και IN3 και IN4 για τους δεξιά. Κάνουμε τις συνδέσεις μας όπως φαίνεται στην παρακάτω εικόνα:
Υποδοχή Arduino | Υποδοχή οδηγού |
9 | IN1 |
8 | IN2 |
5 | IN3 |
4 | IN4 |
Σύνδεση με το Arduino για την ταχύτητα των κινητήρων
Για να μπορούμε να ελέγξουμε και την ταχύτητα των κινητήρων χρειάζεται να χρησιμοποιήσουμε και τις υποδοχές ENA και ΕΝΒ που έχει ο οδηγός. Η ΕΝΑ αφορά τους αριστερούς κινητήρες και η ΕΝΒ του δεξιούς. Η σύνδεση γίνεται όπως φαίνεται στην παρακάτω εικόνα:
Υποδοχή Arduino | Υποδοχή οδηγού |
10 | ENA |
3 | ENB |
Μπαταρία
Το ρεύμα που έχει το arduino (5V) δυστυχώς δεν φτάνει για να οδηγήσει τους κινητήρες. Θα χρειαστούμε μια μπαταρία που να έχει περισσότερη δύναμη, την οποία θα συνδέσουμε στον οδηγό μας, ο οποίος με την σειρά του θα δώσει ρεύμα στο arduino.
- Στην υποδοχή 12V του οδηγού θα βάλουμε ένα κόκκινο καλώδιο το οποίο αργότερα θα συνδέσουμε στην μπαταρία.
- Στην υποδοχή GND του οδηγού θα βάλουμε ένα μαύρο καλώδιο το οποίο αργότερα θα συνδέσουμε στην μπαταρία, καθώς και ένα καφέ καλώδιο το οποίο θα το συνδέσουμε με την γείωση (GND) του Arduino.
- Από την υποδοχή 5V του οδηγού θα βάλουμε ένα άσπρο καλώδιο το οποίο θα το συνδέσουμε με την υποδοχή VIN του Arduino, έτσι ώστε να παίρνει ρεύμα και αυτό από την μπαταρία.
ΠΟΛΥ ΠΡΟΣΟΧΗ! ΔΕΝ ΣΥΝΔΕΟΥΜΕ ΑΚΟΜΑ ΤΗΝ ΜΠΑΤΑΡΙΑ ΜΕ ΤΑ ΚΑΛΩΔΙΑ ΤΟΥ ΟΔΗΓΟΥ
Προγραμματίζουμε τον οδηγό μας
Σήμερα θα χρησιμοποιήσουμε το Pictoblox σε κατάσταση upload, και θα πρέπει κάθε φορά που κάνουμε αλλαγές στο πρόγραμμα μας να το φορτώνουμε στο arduino με το πλήκτρο upload code.
Αρχικά πριν δώσουμε κίνηση στους κινητήρες μας θα πρέπει να τους ορίσουμε, δηλαδή να πούμε σε ποια καλώδια συνδέονται. Ο αριστερός κινητήρας είναι συνδεδεμένος στα καλώδια 8, 9 και 10 και ο δεξιός στα 5, 4 και 3, όπως είδαμε παραπάνω. Στον αριστερό κινητήρα τα καλώδια 8 και 9 ελέγχουν την κατεύθυνση και το 10 την ταχύτητα. Αντίστοιχα στον δεξιό κινητήρα τα καλώδια 5 και 4 ελέγχουν την κατεύθυνση και το 3 την ταχύτητα.
Από την κατηγορία εντολών Actuators θα πάρουμε την εντολή connect motor δύο φορές για να συνδέσουμε τους κινητήρες, όπως φαίνεται παρακάτω.
Πρώτη δοκιμή – κίνηση μπροστά
Αρχικά θα δοκιμάσουμε να κινήσουμε τα οχήματα μας προς τα μπροστά. Πριν ενεργοποιήσουμε τους κινητήρες θα δώσουμε μια μικρή καθυστέρηση για 3 δευτερόλεπτα ώστε να μπορέσουμε να συνδέσουμε με ασφάλεια την μπαταρία και μετά θα λειτουργήσουμε τους κινητήρες προς τα μπρος για άλλα 3 δευτερόλεπτα με ταχύτητα 50%. Τέλος θα απελευθερώσουμε τους κινητήρες.
Η ώρα της δοκιμής έφτασε. Πολύ προσοχή τώρα!!! Αν δεν κάνουμε σωστά τα βήματα μπορεί να καταστρέψουμε τα ρομπότ και να τραυματιστούμε.
- Αφού φορτώσουμε το πρόγραμμα στο ρομπότ μας, βγάζουμε το usb καλώδιο από το arduino!
- Αφού βγάλουμε το καλώδιο usb τότε μόνο συνδέουμε την μπαταρία βάζοντας το μάυρο καλώδιο με το μαύρο και το κόκκινο με το κόκκινο.
- Πριν ξανασυνδέσουμε το ρομπότ με το υπολογιστή με το καλώδιο usb πρώτα βγάζουμε τα καλώδια της μπαταρίας.
Δεύτερη δοκιμή – κίνηση πίσω
Τώρα θα δοκιμάσουμε να κινήσουμε τα οχήματα μας προς τα πίσω. Πριν ενεργοποιήσουμε τους κινητήρες θα δώσουμε μια μικρή καθυστέρηση για 3 δευτερόλεπτα ώστε να μπορέσουμε να συνδέσουμε με ασφάλεια την μπαταρία και μετά θα λειτουργήσουμε τους κινητήρες προς τα πίσω για άλλα 3 δευτερόλεπτα με ταχύτητα 50%. Τέλος θα απελευθερώσουμε τους κινητήρες.
Τρίτη δοκιμή – στροφές δεξιά και αριστερά
Για να στρίψει το όχημα μας δεξιά θα πρέπει να δώσουμε μεγαλύτερη κίνηση στον αριστερά κινητήρα από ότι στον δεξιά. Δοκιμάστε το παρακάτω πρόγραμμα:
Τέταρτη δοκιμή – επιτόπιες στροφές
Ενδιαφέρον παρουσιάζουν οι επιτόπιες στροφές, όπου το όχημα μας δεν κινείται καθόλου προς τα εμπρός. Για να τις πετύχουμε βάζουμε τον έναν κινητήρα να πηγαίνει μπροστά και τον άλλον προς τα πίσω.
Πέμπτη δοκιμή – πορεία μπροστά και επιστροφή
Θέλουμε να προγραμματίσουμε το όχημα μας ώστε να πηγαίνει μπροστά για 4 δευτερόλεπτα, μετά να σταματάει για 1 δευτερόλεπτο, να στρίβει προς τα πίσω και να επιστρέφει για άλλα 4 δευτερόλεπτα.
Πάμε να βάλουμε έναν αισθητήρα εμποδίων;
Μπορούμε να χρησιμοποιήσουμε έναν αισθητήρα υπέρυθρης ακτινοβολίας για να κάνουμε το όχημα μας να βλέπει εμπόδια και να σταματάει μόνο του.
Τώρα θα κινούμε το ρομπότ μπροστά μέχρι ο αισθητήρας να πάρει την τιμή 1 (σημαίνει ότι βρήκε εμπόδιο) και μετά θα το σταματάμε.
Pingback: Κινητήρες συνεχούς ρεύματος – Μικροί Χάκερ