- Απαιτούμενο υλικό
- Ενότητα Bluetooth HC-06
- Διάγραμμα κυκλώματος
- Διαμόρφωση εφαρμογής Roboremo για έλεγχο Servo:
- Κωδικός και επεξήγηση
- Εργασία του Servo motor Control με χρήση Bluetooth:
Η χρήση ενός σερβοκινητήρα είναι συνηθισμένη στη Ρομποτική για ακριβή έλεγχο. Εδώ, σε αυτό το σεμινάριο θα σας δείξουμε πώς να χρησιμοποιείτε έναν κινητήρα Servo ασύρματα με ένα Arduino UNO και μια συσκευή Android μέσω σύνδεσης Bluetooth. Έχουμε ήδη ελέγξει το servo με το Arduino, αυτή τη φορά ελέγχουμε το Servo Motor χρησιμοποιώντας Arduino και Bluetooth.
Απαιτούμενο υλικό
- Arduino UNO
- Μονάδα Bluetooth HC-05 ή HC-06
- Βοηθητικό μοτέρ
- Εφαρμογή Roboremo από το Playstore
- Ψωμί
- Καλώδιο σύνδεσης
Ενότητα Bluetooth HC-06
Το Bluetooth μπορεί να λειτουργήσει με τους ακόλουθους δύο τρόπους:
- Λειτουργία εντολών
- Τρόπος λειτουργίας
Σε λειτουργία Command θα είμαστε σε θέση να ρυθμίσετε τις ιδιότητες Bluetooth, όπως το όνομα του σήματος Bluetooth, τον κωδικό του, ο ρυθμός λειτουργίας baud κ.λπ. Ο Τρόπος λειτουργίας είναι αυτή στην οποία θα είμαστε σε θέση να στέλνουν και να λαμβάνουν δεδομένα μεταξύ του μικροελεγκτή PIC και τη μονάδα Bluetooth. Ως εκ τούτου, σε αυτό το σεμινάριο θα παίζουμε μόνο με τον τρόπο λειτουργίας. Η λειτουργία εντολής θα αφεθεί στις προεπιλεγμένες ρυθμίσεις. Το όνομα της συσκευής θα είναι HC-05 (χρησιμοποιώ το HC-06) και ο κωδικός πρόσβασης θα είναι 0000 ή 1234 και το πιο σημαντικό, ο προεπιλεγμένος ρυθμός baud για όλες τις μονάδες Bluetooth θα είναι 9600.
Η μονάδα λειτουργεί με τροφοδοσία 5V και οι ακίδες σήματος λειτουργούν σε 3.3V, επομένως υπάρχει ένας ρυθμιστής 3.3V στην ίδια τη μονάδα. Ως εκ τούτου δεν χρειάζεται να ανησυχούμε για αυτό. Από τις έξι καρφίτσες μόνο τέσσερις θα χρησιμοποιηθούν στον τρόπο λειτουργίας. Ο πίνακας σύνδεσης pin εμφανίζεται παρακάτω
ΝΟ | Καρφίτσωμα στο HC-05 / HC-06 | Καρφίτσωμα στο MCU | Αριθμός καρφίτσας στο PIC |
1 | Vcc | Vdd | 31 st pin |
2 | Vcc | Gnd | 32 ος pin |
3 | Τχ | RC6 / Tx / CK | 25 η καρφίτσα |
4 | Rx | RC7 / Rx / DT | 26 ο πείρος |
5 | κατάσταση | ΝΚ | ΝΚ |
6 | EN (Ενεργοποίηση) | ΝΚ | ΝΚ |
Ελέγξτε τα άλλα έργα μας για να μάθετε περισσότερα σχετικά με τη μονάδα Bluetooth HC-05 με άλλους μικροελεγκτές:
- Bluetooth Car Controlled Toy Car χρησιμοποιώντας το Arduino
- Σύστημα οικιακού αυτοματισμού ελεγχόμενου Bluetooth με χρήση 8051
- Φωνητικά ελεγχόμενα φώτα χρησιμοποιώντας Raspberry Pi
- Ραδιόφωνο FM ελεγχόμενο από έξυπνο τηλέφωνο χρησιμοποιώντας Arduino και Processing
- Διασύνδεση της μονάδας Bluetooth HC-06 με τον μικροελεγκτή PIC
Δείτε επίσης όλα τα έργα που σχετίζονται με το Bluetooth εδώ.
Διάγραμμα κυκλώματος
Το διάγραμμα κυκλώματος για αυτό το έργο Arduino Bluetooth Servo Motor Control δίνεται παρακάτω:
Διαμόρφωση εφαρμογής Roboremo για έλεγχο Servo:
Βήμα 1: - Κατεβάστε την εφαρμογή Roboremo από το Android Play Store και εγκαταστήστε την στο smartphone σας. Αφού το εγκαταστήσετε, θα δείτε το παράθυρο της εφαρμογής όπως φαίνεται στο σχήμα1 και κάνοντας κλικ στο κουμπί "Μενού" θα δείτε το παράθυρο που φαίνεται στο σχήμα 2 παρακάτω:
Βήμα 2: - Στη συνέχεια, κάντε κλικ στο κουμπί σύνδεσης και θα δείτε το παράθυρο που φαίνεται στο σχήμα 3 παρακάτω και στη συνέχεια θα πρέπει να επιλέξετε " Bluetooth RFCOMM" και, στη συνέχεια, θα μπορείτε να συνδέσετε τη μονάδα Bluetooth HC-06 με την εφαρμογή Android "Roboremo".
Βήμα 3: - Αφού συνδεθείτε με τη μονάδα Bluetooth HC-06 επιστρέψτε στο παράθυρο Figure2 και, στη συνέχεια, κάντε κλικ στο « επεξεργασία ui » για τη δημιουργία της διεπαφής χρήστη σύμφωνα με τις ανάγκες σας.
Όταν κάνετε κλικ στο «επεξεργασία ui» , θα δείτε ξανά το παράθυρο που φαίνεται στο σχήμα1 και, στη συνέχεια, κάντε κλικ οπουδήποτε στην οθόνη, θα δείτε το παράθυρο της εφαρμογής όπως το σχήμα 4 και το « κουμπί » για να λάβετε τη δομή του κουμπιού.
Βήμα 4: - Αφού επιλέξετε το κουμπί, θα εμφανιστεί μια δομή κουμπιών στην οθόνη για επεξεργασία. Μπορείτε να αλλάξετε το μέγεθος και να μετακινήσετε τη δομή οπουδήποτε στην οθόνη. Τώρα, για να ορίσετε την τιμή που θα σταλεί με κλικ μέσω Bluetooth, έχετε «ρυθμίσει την ενέργεια τύπου» (όπως φαίνεται στο σχήμα 6) και πληκτρολογήστε την τιμή που θέλετε να στείλετε από το συγκεκριμένο κουμπί. Όπως, στέλνουμε το «1» για περιστροφή του σερβο πατώντας το κουμπί «Έναρξη» στην εφαρμογή Android Roboremo.
Μπορείτε να ελέγξετε όλες τις τιμές, αποστέλλοντας κάνοντας κλικ σε διαφορετικά κουμπιά, στον πίνακα που δίνεται παρακάτω.
Βήμα 5: - Τέλος, έχουμε διεπαφή χρήστη για τον έλεγχο του σερβοκινητήρα χρησιμοποιώντας Smartphone.
Κωδικός και επεξήγηση
Ο πλήρης κωδικός για το Arduino Control Servo Motor Via Bluetooth δίνεται στο τέλος.
Το Arduino διαθέτει βιβλιοθήκη για Servo Motors και χειρίζεται όλα τα σχετικά με το PWM πράγματα για να περιστρέψει το servo, απλά πρέπει να εισάγετε τη γωνία στην οποία θέλετε να περιστρέψετε και υπάρχει η λειτουργία servo1.write (angle). που θα περιστρέψει το σερβο στην επιθυμητή γωνία
Έτσι λοιπόν εδώ ξεκινάμε ορίζοντας τη βιβλιοθήκη για Servo motor και το λογισμικό Serial library χρησιμοποιείται για τον ορισμό των ακίδων Rx και Tx.
#περιλαμβάνω
Στον παρακάτω κώδικα, αρχίζουμε τις καρφίτσες Arduino για Rx και Tx, καθορίζοντας μεταβλητές για servo και άλλα πράγματα .
Σέρβο myServo; int TxD = 11; int RxD = 10; int servoposition; int servopos; int new1; ΛογισμικόSerial bluetooth (TxD, RxD);
Τώρα, ρυθμίστε όλες τις μεταβλητές και τα στοιχεία στο αρχικό στάδιο. Εδώ έχουμε προσαρτήσει το σερβο στον 9ο πείρο του Arduino και έχουμε κάνει την αρχική θέση του σερβο σε 0 βαθμό. Ο ρυθμός Baud για σειριακή επικοινωνία και επικοινωνία Bluetooth έχει επίσης ρυθμιστεί σε 9600.
άκυρη ρύθμιση () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // έναρξη σειριακής επικοινωνίας στα 9600bps bluetooth.begin (9600). }
Στη λειτουργία Void loop , το Arduino θα ελέγχει τις εισερχόμενες τιμές συνεχώς και θα περιστρέφει το σερβο σύμφωνα με τη ληφθείσα τιμή από το έξυπνο τηλέφωνο. Όλες οι τιμές θα ληφθούν χρησιμοποιώντας τη σειριακή επικοινωνία.
Εάν η τιμή είναι 0, το σερβο θα περιστραφεί σε 0 βαθμό. Ομοίως, αν στείλουμε 45, 90, 135 και 180 από την εφαρμογή Bluetooth, το σερβο θα περιστραφεί σε γωνία 45, 90, 135 και 180 μοιρών αντίστοιχα.
void loop () { if (bluetooth.available ()) { String value = bluetooth.readString (); servoposition = value.toInt (); if (value.toInt () == 0) { Serial.println (servoposition); myServo.write (0); } if (value.toInt () == 45) { Serial.println (servoposition); myServo.write (45); } if (value.toInt () == 90) { Serial.println (servoposition); myServo.write (90); } if (value.toInt () == 135) { Serial.println (servoposition); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servoposition); myServo.write (180); }
Εάν στείλουμε την τιμή «1» πατώντας το κουμπί Έναρξη τότε το σερβο θα περιστρέφεται συνεχώς μέχρι να πατηθεί το κουμπί διακοπής Εδώ στέλνουμε «2» για το πάτημα stop κουμπί, το οποίο θα διαβαστεί από το Arduino και θα σπάσει το ενώ βρόχο και σερβο θα πρέπει να σταματήσει.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (τιμή); if (value.toInt () == 2) {Serial.println ("ΕΕΕΕ"); Διακοπή; }} servopos ++; καθυστέρηση (30) Serial.println (servopos); myServo.write (servopos); if (servopos == 180) {servopos = 0; διάλειμμα;}}}}
Εργασία του Servo motor Control με χρήση Bluetooth:
Σε αυτό το έργο, ελέγχουμε το Servo Motor χρησιμοποιώντας μια εφαρμογή Android "Roboremo". Στη διεπαφή αυτής της εφαρμογής, έχουμε δημιουργήσει 5 κουμπιά για τον έλεγχο του Servo motor, όπως εξηγήθηκε προηγουμένως. Η λειτουργία κάθε κουμπιού δίνεται στον παρακάτω πίνακα:
S.No. |
Όνομα κουμπιού |
Αξία αποστολής |
Περιγραφή |
1. |
Αρχή |
1 |
Αυτό το κουμπί χρησιμοποιείται για να αρχίσει η περιστροφή του σερβο από 0⁰ έως 180⁰. |
2. |
Να σταματήσει |
2 |
Αυτό το κουμπί χρησιμοποιείται για να σταματήσει το σερβο σε οποιοδήποτε σημείο. |
3. |
0⁰ |
0 |
Αυτό το κουμπί χρησιμοποιείται για την περιστροφή του σερβο σε 0⁰. |
4. |
90⁰ |
90 |
Αυτό το κουμπί χρησιμοποιείται για περιστροφή του σερβο σε 90⁰. |
5. |
180⁰ |
180 |
Αυτό το κουμπί χρησιμοποιείται για περιστροφή του σερβο σε 180⁰. |
Έτσι, πατώντας αυτά τα κουμπιά στην εφαρμογή σας Android Roboremo , τα δεδομένα θα σταλούν μέσω του Bluetooth του smartphone στη μονάδα Bluetooth HC-06. Από αυτό το HC-06 module λαμβάνονται δεδομένα από το Arduino και το Arduino περιστρέφει το Servo στη γωνία που ορίζεται στον κώδικα για το συγκεκριμένο κουμπί. Κωδικοποιήσαμε επίσης τη γωνία 45 και 135, αλλά λόγω του περιορισμού της εφαρμογής Roboremo, μπορείτε να δημιουργήσετε μόνο 5 κουμπιά, επομένως παραλείψαμε δύο κουμπιά.
Έτσι μπορείτε να στείλετε τα δεδομένα από το Smartphone στο Arduino χρησιμοποιώντας Bluetooth για τον ασύρματο έλεγχο του σερβο. Αυτό μπορεί να χρησιμοποιηθεί σε πολλές εφαρμογές όπως Αυτοκίνητα παιχνιδιών, ρομπότ κ.λπ.