Σειριακή επικοινωνία με το Arduino

Σειριακή επικοινωνία με το Arduino

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

Σειριακή επικοινωνία με καλώδιο USB

Η σειριακή επικοινωνία είναι ένας διαδεδομένος τρόπος μετάδοσης δεδομένων. Οι πληροφορίες μεταδίδονται κομμάτι – κομμάτι, ένα bit κάθε φορά, στη σειρά, μέσα από έναν καλώδιο ή ασύρματα στον αέρα.

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

Αναβοσβήνοντας ένα λαμπάκι με μηνύματα από τον υπολογιστή

Θα δούμε πως μπορούμε να ανάβουμε και να σβήνουμε ένα λαμπάκι στο Arduino χρησιμοποιώντας εντολές που θα στέλνουμε από τον υπολογιστή με το πληκτρολόγιο μας. Όταν θα πληκτρολογούμε την εντολή on το λαμπάκι θα ανάβει και όταν πληκτρολογούμε την εντολή off θα σβήνει.

Τοποθετήστε ένα λαμπάκι LED στην θύρα D13 του Arduino. Το μακρύ ποδαράκι στο 13 και το κοντό στη γείωση (GND). Συνδέστε το Arduino στον υπολογιστή.

Ανοίξτε το Pictoblox και από το μενού board επιλέξτε το Arduino Uno. Επιλέξτε την θύρα στην οποία έχει συνδεθεί και αλλάξτε το mode σε upload.

Θα χρειαστούμε κάποιες νέες εντολές για να πετύχουμε την σειριακή επικοινωνία του Arduino με τον υπολογιστή.

Από τις επεκτάσεις επιλέξτε το Communication

Για να αποθηκεύουμε τα μηνύματα που δέχεται το Arduino θα χρειαστούμε μια μεταβλητή η οποία θα πρέπει να δέχεται μηνύματα κειμένου.

Ονομάζουμε την μεταβλητή message και προσέχουμε να την κάνουμε τύπου String και όχι number αφού θα δέχεται κείμενο
Αρχικά όταν ξεκινάει το Arduino θα ορίζουμε την ταχύτητα της επικοινωνίας. Ας την βάλουμε χαμηλή στα 9600 bit το δευτερόλεπτο
Μετά το πρόγραμμα μας θα πρέπει διαρκώς να ελέγχει μήπως υπάρχουν διαθέσιμα δεδομένα στην σειριακή θύρα και αν υπάρχουν θα αποθηκεύει στην μεταβλητή message τα δεδομένα αυτά ως κείμενο (string)
Επίσης αν υπάρχουν δεδομένα, θα ελέγχει μήπως η μεταβλητή message έχει γίνει on, και τότε θα ανάβει το λαμπάκι
Τέλος θα κάνει έναν παρόμοιο έλεγχο για την περίπτωση που έχουμε λάβει το μήνυμα off

Αφού ολοκληρώσουμε το πρόγραμμα μας, το στέλνουμε στο Arduino, χρησιμοποιώντας το πλήκτρο upload code

Πάμε τώρα να δοκιμάσουμε αν πέτυχε το πείραμα! Το Pictoblox έχει ένα Serial Monitor το οποίο μας επιτρέπει να στέλνουμε και να δεχόμαστε μηνύματα από το Arduino που είναι συνδεδεμένο με το καλώδιο USB.

Πηγαίνουμε στην καρτέλα Serial Monitor
Πληκτρολογούμε την εντολή που θέλουμε να στείλουμε και πατάμε το πλήκτρο με το βελάκι

Αν όλα πάνε καλά θα πρέπει κάθε φορά που στέλνουμε την εντολή on να ανάβει το λαμπάκι και κάθε φορά που στέλνουμε την εντολή off να σβήνει.

Σειριακή επικοινωνία με bluetooth

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

Θα χρησιμοποιήσουμε την συσκευή HC-05. Εκτός από την γείωση και τα 5V που πρέπει να συνδέσουμε θα χρειαστούμε και 2 καλώδια για να συνδέσουμε το RX του Arduino με το TX του Bluetooth (μπλε) και αντίστοιχα το TX του Arduino με το RX του Bluetooth (κίτρινο).

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

Το πρόγραμμα που έχει το Arduino δεν θα το πειράξουμε, αφού πάλι θα περιμένει να δεχτεί τα μηνύματα on και off για να ανάψει και να σβήσει το λαμπάκι. Μόνο που τώρα τα μηνύματα αυτά θα τα στέλνει το κινητό μας τηλέφωνο. Πάμε λοιπόν να φτιάξουμε ένα πρόγραμμα στο AppInventor.

Στην εφαρμογή μας θα βάλουμε ένα πλήκτρο για να ανάβουμε το λαμπάκι (button1), ένα πλήκτρο για να το σβήνουμε (button2), μία λίστα (listpicker1) για να επιλέξουμε το Arduino από τις διαθέσιμες συσκευές που θα εντοπίζει το bluetooth του κινητού μας και τέλος θα προσθέσουμε και ένα συστατικό BleutoothClient
Θα χρειαστούμε ένα σενάριο το οποίο θα γεμίζει την λίστα ListPicker1 με όλα τα ονόματα και τις διευθύνσεις των διαθέσιμων συσκευών bluetooth που εντοπίζει το κινητό μας, πριν επιλέξουμε κάτι από την λίστα
Αφού επιλεγεί η συσκευή θα ζητάμε από το BluetoothClient να κάνει τη σύνδεση
Τώρα το μόνο που λείπει είναι δυο σενάρια για να στέλνουμε τα κατάλληλα μηνύματα στο Arduino.

Η εφαρμογή μας είναι έτοιμη και μπορούμε να την δοκιμάσουμε! Μην ξεχάσετε να ανοίξετε το bluetooth του κινητού σας και να κάνετε pair το HC-05 την πρώτη φορά. Αν σας ζητήσει κωδικό κατά το pairing δοκιμάστε το 1234 ή το 0000.

Προσθέτουμε bluetooth στα οχήματα μας

Σχόλια

Δεν υπάρχουν ακόμη σχόλια. Γιατί δεν ξεκινάτε τη συζήτηση;

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