Κατασκευάζουμε τα δικά μας ρομποτικά οχήματα

Κατασκευάζουμε τα δικά μας ρομποτικά οχήματα

Όπως είδαμε στο εργαστήριο για τους κινητήρες συνεχούς ρεύματος μπορούμε με το Arduino να ελέγξουμε την ενεργοποίηση τους και την ταχύτητα τους. Αυτό που δεν είναι έυκολο να κάνουμε είναι να τους αλλάζουμε την φορά περιστροφής. Θα πρέπει να αλλάζουμε διαρκώς τα καλώδια με τα χέρια μας.

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

Στην παραπάνω εικόνα φαίνεται ο οδηγός κινητήρων dual motor driver module l298n τον οποίο θα χρησιμοποιήσουμε εμείς στα δικά μας οχήματα.

Ο οδηγός κινητήρων συνδέει τους κινητήρες ενός οχήματος με το Arduino και την μπαταρία και μας επιτρέπει να προγραμματίσουμε την ταχύτητα και την φορά τους. Ο συγκεκριμένος οδηγός που έχουμε επιλέξει έχει θέσεις για 2 κινητήρες. Στην περίπτωση που το όχημα μας έχει 2 ρόδες και 2 κινητήρες είναι ιδανικό, αλλά τι γίνεται αν το όχημα μας έχει 4 ρόδες και κινητήρες; Αυτό που μπορούμε να κάνουμε είναι να συνδέσουμε τους δύο αριστερούς κινητήρες στην μια υποδοχή του οδηγού και τους δυο δεξιούς στην άλλη. Έτσι ο οδηγός θα ελέγχει ταυτόχρονα τους κινητήρες της κάθε πλευράς.

Στην παραπάνω φωτογραφία βλέπουμε τον τρόπο σύνδεσης των κινητήρων στον οδηγό σε ένα όχημα με 2 ρόδες. Ο αριστερός κινητήρας μπαίνει στις υποδοχές OUT1 και OUT2 του οδηγού, ενώ ο δεξιός στις υποδοχές OUT3 και OUT4.
Στην παραπάνω φωτογραφία βλέπουμε τον τρόπο σύνδεσης των κινητήρων στον οδηγό σε ένα όχημα με 4 ρόδες. Οι δύο αριστεροί κινητήρες μπαίνουν μαζί στις υποδοχές OUT1 και OUT2 του οδηγού, ενώ οι δύο δεξιοί στις υποδοχές OUT3 και OUT4.

Τοποθέτηση Arduino και οδηγού στο όχημα

Χρησιμοποιώντας το κατσαβιδάκι και τις βίδες που έχετε στο τραπέζι σας τοποθετήστε το Arduino και τον οδηγό κινητήρων πάνω στο όχημα σας ώστε να είναι σταθερό.

Πάμε να κάνουμε τις συνδέσεις;

Σύνδεση κινητήρων

Ας ξεκινήσουμε να κάνουμε τις συνδέσεις των κινητήρων στα ρομποτικά μας οχήματα. Στην περίπτωση που το όχημα σας έχει 2 κινητήρες ακολουθείτε το παρακάτω σχήμα.

Σύνδεση 2 κινητήρων στον οδηγό

Στην περίπτωση που το όχημα σας έχει 4 κινητήρες θα πρέπει να ακολουθήσετε το σχήμα που ακολουθεί παρακάτω.

Σύνδεση 4 κινητήρων στον οδηγό

Σύνδεση με το Arduino για την φορά των κινητήρων

Για να ελέγξουμε την φορά των κινητήρων χρησιμοποιούμε τις συνδέσεις IN1 και IN2 για τους αριστερά κινητήρες και IN3 και IN4 για τους δεξιά. Κάνουμε τις συνδέσεις μας όπως φαίνεται στην παρακάτω εικόνα:

Υποδοχή ArduinoΥποδοχή οδηγού
9IN1
8IN2
5IN3
4IN4

Σύνδεση με το Arduino για την ταχύτητα των κινητήρων

Για να μπορούμε να ελέγξουμε και την ταχύτητα των κινητήρων χρειάζεται να χρησιμοποιήσουμε και τις υποδοχές ENA και ΕΝΒ που έχει ο οδηγός. Η ΕΝΑ αφορά τους αριστερούς κινητήρες και η ΕΝΒ του δεξιούς. Η σύνδεση γίνεται όπως φαίνεται στην παρακάτω εικόνα:

Υποδοχή ArduinoΥποδοχή οδηγού
10ENA
3ENB

Μπαταρία

Το ρεύμα που έχει το 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 δύο φορές για να συνδέσουμε τους κινητήρες, όπως φαίνεται παρακάτω.

Ο κινητήρας 1 είναι ο αριστερός και ο κινητήρας 2 ο δεξιός. Στην κατεύθυνση 1 κάθε κινητήρα βάζω τον αριθμό του κίτρινου καλωδίου και στην κατεύθυνση 2 του πράσινου. Τέλος το PWM είναι η ταχύτητα και βάζω τον αριθμό του μπλε καλωδίου.

Πρώτη δοκιμή – κίνηση μπροστά

Αρχικά θα δοκιμάσουμε να κινήσουμε τα οχήματα μας προς τα μπροστά. Πριν ενεργοποιήσουμε τους κινητήρες θα δώσουμε μια μικρή καθυστέρηση για 3 δευτερόλεπτα ώστε να μπορέσουμε να συνδέσουμε με ασφάλεια την μπαταρία και μετά θα λειτουργήσουμε τους κινητήρες προς τα μπρος για άλλα 3 δευτερόλεπτα με ταχύτητα 50%. Τέλος θα απελευθερώσουμε τους κινητήρες.

Η ώρα της δοκιμής έφτασε. Πολύ προσοχή τώρα!!! Αν δεν κάνουμε σωστά τα βήματα μπορεί να καταστρέψουμε τα ρομπότ και να τραυματιστούμε.

  • Αφού φορτώσουμε το πρόγραμμα στο ρομπότ μας, βγάζουμε το usb καλώδιο από το arduino!
  • Αφού βγάλουμε το καλώδιο usb τότε μόνο συνδέουμε την μπαταρία βάζοντας το μάυρο καλώδιο με το μαύρο και το κόκκινο με το κόκκινο.
  • Πριν ξανασυνδέσουμε το ρομπότ με το υπολογιστή με το καλώδιο usb πρώτα βγάζουμε τα καλώδια της μπαταρίας.

Δεύτερη δοκιμή – κίνηση πίσω

Τώρα θα δοκιμάσουμε να κινήσουμε τα οχήματα μας προς τα πίσω. Πριν ενεργοποιήσουμε τους κινητήρες θα δώσουμε μια μικρή καθυστέρηση για 3 δευτερόλεπτα ώστε να μπορέσουμε να συνδέσουμε με ασφάλεια την μπαταρία και μετά θα λειτουργήσουμε τους κινητήρες προς τα πίσω για άλλα 3 δευτερόλεπτα με ταχύτητα 50%. Τέλος θα απελευθερώσουμε τους κινητήρες.

Τρίτη δοκιμή – στροφές δεξιά και αριστερά

Για να στρίψει το όχημα μας δεξιά θα πρέπει να δώσουμε μεγαλύτερη κίνηση στον αριστερά κινητήρα από ότι στον δεξιά. Δοκιμάστε το παρακάτω πρόγραμμα:

Και οι 2 κινητήρες πάνε μπροστά αλλά ο αριστερός κινητήρα πάει πιο γρήγορα, στέλνοντας το όχημα προς τα δεξιά. Αν θέλνω να στρίψω προς τα αριστερά απλά βάζω μεγαλύτερη ταχύτητα στον δεξιό κινητήρα.

Τέταρτη δοκιμή – επιτόπιες στροφές

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

Στην παραπάνω περίπτωση το όχημα μας θα στρίβει επί τόπου προς τα δεξιά. Και οι δύο κινητήρες πηγαίνουν με ταχύτητα 50, αλλά ο δεξιός κινητήρα πηγαίνει ανάποδα.

Πέμπτη δοκιμή – πορεία μπροστά και επιστροφή

Θέλουμε να προγραμματίσουμε το όχημα μας ώστε να πηγαίνει μπροστά για 4 δευτερόλεπτα, μετά να σταματάει για 1 δευτερόλεπτο, να στρίβει προς τα πίσω και να επιστρέφει για άλλα 4 δευτερόλεπτα.

Πάμε να βάλουμε έναν αισθητήρα εμποδίων;

Μπορούμε να χρησιμοποιήσουμε έναν αισθητήρα υπέρυθρης ακτινοβολίας για να κάνουμε το όχημα μας να βλέπει εμπόδια και να σταματάει μόνο του.

Συνδέουμε τον αισθητήρα στην υποδοχή 2 με το πορτοκαλί καλώδιο, ενώ το άσπρο (ρεύμα) το βάζουμε στα 5V και το καφέ (γείωση) στο GND

Τώρα θα κινούμε το ρομπότ μπροστά μέχρι ο αισθητήρας να πάρει την τιμή 1 (σημαίνει ότι βρήκε εμπόδιο) και μετά θα το σταματάμε.

Φωτογραφίες και βίντεο από την συνάντηση

1 Σχόλιο

Αφήστε μια απάντηση