Απλός τηλεχειρισμός ρομπότ από υπολογιστή. Αυτόνομο ρομπότ βασισμένο στο Arduino με δυνατότητα τηλεχειρισμού Ρομπότ με τηλεχειρισμό

Ο έλεγχος ενός ρομπότ είναι μια πρόκληση. Ο ορισμός που επιλέξαμε απαιτεί από τη συσκευή να γνωρίζει το περιβάλλον της. Στη συνέχεια, πάρτε μια απόφαση και λάβετε τα κατάλληλα μέτρα. Τα ρομπότ μπορεί να είναι αυτόνομα ή ημιαυτόνομα.

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

Ημιαυτόνομα ρομπότ

Ένα καλό παράδειγμα ενός ημι-αυτόνομου ρομπότ είναι ένα πολύπλοκο υποβρύχιο ρομπότ. Ο άνθρωπος ελέγχει τις βασικές κινήσεις του ρομπότ. Και αυτή τη στιγμή, ο ενσωματωμένος επεξεργαστής μετρά και ανταποκρίνεται στα υποβρύχια ρεύματα. Αυτό σας επιτρέπει να κρατάτε το ρομπότ στην ίδια θέση χωρίς να παρασύρεται. Μια κάμερα στο ρομπότ στέλνει το βίντεο πίσω στον άνθρωπο. Επιπλέον, οι ενσωματωμένοι αισθητήρες μπορούν να παρακολουθούν τη θερμοκρασία του νερού, την πίεση και πολλά άλλα.

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

Διαχείριση καλωδίων

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

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

Δεν έχουν νοημοσύνη και θεωρούνται «τηλεκατευθυνόμενα μηχανήματα» και όχι «ρομπότ».


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

Έλεγχος ρομπότ μέσω καλωδίου και ενσωματωμένου μικροελεγκτή

Το επόμενο βήμα είναι να εγκαταστήσετε τον μικροελεγκτή στο ρομπότ, αλλά συνεχίστε να χρησιμοποιείτε το καλώδιο. Η σύνδεση του μικροελεγκτή σε μία από τις θύρες I/O του υπολογιστή σας (όπως μια θύρα USB) σάς επιτρέπει να ελέγχετε τις ενέργειές σας. Ο έλεγχος πραγματοποιείται χρησιμοποιώντας το πληκτρολόγιο, το joystick ή άλλη περιφερειακή συσκευή. Η προσθήκη ενός μικροελεγκτή σε ένα έργο μπορεί επίσης να απαιτήσει από εσάς να προγραμματίσετε το ρομπότ με σήματα εισόδου.


  • Τα κύρια πλεονεκτήματα είναι τα ίδια με αυτά του άμεσου καλωδιακού ελέγχου. Μπορούν να προγραμματιστούν πιο περίπλοκη συμπεριφορά και αντιδράσεις ρομπότ σε μεμονωμένα κουμπιά ή εντολές. Υπάρχει μεγάλη ποικιλία από χειριστήρια χειριστηρίου (ποντίκι, πληκτρολόγιο, joystick κ.λπ.). Ο προστιθέμενος μικροελεγκτής έχει ενσωματωμένους αλγόριθμους. Αυτό σημαίνει ότι μπορεί να αλληλεπιδράσει με τους αισθητήρες και να λάβει ορισμένες αποφάσεις από μόνο του.
  • Τα μειονεκτήματα περιλαμβάνουν υψηλότερο κόστος λόγω της παρουσίας πρόσθετων ηλεκτρονικών. Άλλα μειονεκτήματα είναι τα ίδια με τον άμεσο έλεγχο του ρομπότ με καλώδιο.

Έλεγχος Ethernet

μεταχειρισμένος σύνδεσμος Ethernet RJ45. Απαιτείται σύνδεση Ethernet για έλεγχο. Το ρομπότ είναι φυσικά συνδεδεμένο με το δρομολογητή. Επομένως, μπορεί να ελεγχθεί μέσω Διαδικτύου. Είναι επίσης δυνατό (αν και όχι πολύ πρακτικό) για κινητά ρομπότ.

Η εγκατάσταση ενός ρομπότ που μπορεί να επικοινωνεί μέσω του Διαδικτύου μπορεί να είναι αρκετά δύσκολη. Πρώτα απ 'όλα, προτιμάται η σύνδεση WiFi (ασύρματο internet). Ο συνδυασμός ενσύρματου και ασύρματου είναι επίσης μια επιλογή όπου υπάρχει πομποδέκτης (μετάδοση και λήψη). Ο πομποδέκτης συνδέεται φυσικά με το Διαδίκτυο και τα δεδομένα που λαμβάνονται μέσω του Διαδικτύου μεταδίδονται ασύρματα στο ρομπότ.


  • Το πλεονέκτημα είναι ότι το ρομπότ μπορεί να ελεγχθεί μέσω Διαδικτύου από οπουδήποτε στον κόσμο. Το ρομπότ δεν έχει χρονικό όριο καθώς μπορεί να χρησιμοποιήσει Power over Ethernet. PoE. Αυτή είναι μια τεχνολογία που επιτρέπει τη μετάδοση ηλεκτρικής ενέργειας μαζί με δεδομένα σε μια απομακρυσμένη συσκευή μέσω ενός τυπικού καλωδίου συνεστραμμένου ζεύγους μέσω ενός δικτύου Ethernet. Η χρήση του Πρωτοκόλλου Διαδικτύου (IP) μπορεί να απλοποιήσει και να βελτιώσει το σχήμα επικοινωνίας. Τα πλεονεκτήματα είναι τα ίδια με τον άμεσο ενσύρματο έλεγχο υπολογιστή.
  • Το μειονέκτημα είναι ο πιο περίπλοκος προγραμματισμός και τα ίδια μειονεκτήματα με τον έλεγχο καλωδίων.

IR τηλεχειριστήριο

Οι πομποί και οι δέκτες υπερύθρων εξαλείφουν το καλώδιο που συνδέει το ρομπότ με τον χειριστή. Αυτό χρησιμοποιείται γενικά από αρχάριους. Ο έλεγχος υπερύθρων απαιτεί μια "ορατική γραμμή" για να λειτουργήσει. Ο δέκτης πρέπει να μπορεί να «βλέπει» τον πομπό ανά πάσα στιγμή για να λαμβάνει δεδομένα.

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


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

ραδιοχειριστήριο

Ο έλεγχος ραδιοσυχνοτήτων απαιτεί πομπό και δέκτη με μικρούς μικροελεγκτές για αποστολή, λήψη και ερμηνεία δεδομένων ραδιοσυχνοτήτων (RF). Υπάρχει μια πλακέτα τυπωμένου κυκλώματος (PCB) στο κουτί του δέκτη, η οποία περιέχει τη μονάδα δέκτη και έναν μικρό ελεγκτή σερβοκινητήρα. Η ραδιοεπικοινωνία απαιτεί έναν πομπό προσαρμοσμένο/ζευγοποιημένο με τον δέκτη. Είναι δυνατή η χρήση ενός πομποδέκτη που μπορεί να στέλνει και να λαμβάνει δεδομένα μεταξύ δύο φυσικώς διαφορετικών περιβαλλόντων συστημάτων επικοινωνίας.

Ο ραδιοέλεγχος δεν απαιτεί άμεση οπτική επαφή και μπορεί να πραγματοποιηθεί σε μεγάλες αποστάσεις. Οι τυπικές συσκευές ραδιοσυχνοτήτων μπορούν να μεταδίδουν δεδομένα μεταξύ συσκευών σε αποστάσεις έως και αρκετών χιλιομέτρων. Ενώ πιο επαγγελματικές συσκευές RF μπορούν να παρέχουν έλεγχο του ρομπότ σχεδόν σε οποιαδήποτε απόσταση.


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

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

Έλεγχος Bluetooth

Το Bluetooth είναι ένα ραδιοφωνικό σήμα (RF) και μεταδίδεται μέσω ορισμένων πρωτοκόλλων για αποστολή και λήψη δεδομένων. Η κανονική εμβέλεια Bluetooth περιορίζεται συχνά σε περίπου 10 μ. Αν και έχει το πλεονέκτημα ότι επιτρέπει στους χρήστες να ελέγχουν το ρομπότ τους μέσω συσκευών με δυνατότητα Bluetooth. Αυτά είναι κυρίως κινητά τηλέφωνα, PDA και φορητοί υπολογιστές (αν και ενδέχεται να απαιτείται προσαρμοσμένος προγραμματισμός για τη δημιουργία της διεπαφής). Όπως ακριβώς το ραδιόφωνο, το Bluetooth προσφέρει αμφίδρομη επικοινωνία.


  • Πλεονεκτήματα: Διαχείριση από οποιαδήποτε συσκευή με δυνατότητα Bluetooth. Αλλά, κατά κανόνα, απαιτείται πρόσθετος προγραμματισμός. Αυτά είναι smartphone, φορητοί υπολογιστές κ.λπ. Οι υψηλότεροι ρυθμοί δεδομένων μπορεί να είναι πανκατευθυντικοί. Επομένως, δεν χρειάζεται οπτική επαφή και το σήμα μπορεί να περάσει λίγο μέσα από τοίχους.
  • Ελαττώματα. Πρέπει να εργάζονται σε ζευγάρια. Η απόσταση είναι συνήθως περίπου 10 μέτρα (χωρίς εμπόδια).

Έλεγχος WiFi

Ο έλεγχος WiFi είναι συχνά ένα προαιρετικό πρόσθετο για τα ρομπότ. Η δυνατότητα ασύρματου ελέγχου ενός ρομπότ μέσω Διαδικτύου παρουσιάζει ορισμένα σημαντικά πλεονεκτήματα (και ορισμένα μειονεκτήματα) στον ασύρματο έλεγχο. Για να ρυθμίσετε τον έλεγχο Wi-Fi του ρομπότ, χρειάζεστε έναν ασύρματο δρομολογητή συνδεδεμένο στο Διαδίκτυο και μια μονάδα WiFi στο ίδιο το ρομπότ. Για το ρομπότ, μπορείτε να χρησιμοποιήσετε μια συσκευή που υποστηρίζει το πρωτόκολλο TCP / IP.


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

Έλεγχος κινητού τηλεφώνου

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


  • Πλεονεκτήματα: το ρομπότ μπορεί να ελεγχθεί οπουδήποτε υπάρχει κυψελοειδές σήμα. Είναι δυνατή η δορυφορική επικοινωνία.
  • Ελαττώματα? Η ρύθμιση του κυψελοειδούς ελέγχου μπορεί να είναι δύσκολη - όχι για αρχάριους. Κάθε δίκτυο κινητής τηλεφωνίας έχει τις δικές του απαιτήσεις και περιορισμούς. Η διαδικτυακή υπηρεσία δεν είναι δωρεάν. Συνήθως, όσο περισσότερα δεδομένα μεταφέρετε, τόσο περισσότερα χρήματα πρέπει να πληρώσετε. Το σύστημα δεν έχει ακόμη διαμορφωθεί για χρήση στη ρομποτική.

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

  1. να είναι προ-προγραμματισμένος χωρίς ανάδραση από το περιβάλλον
  2. με περιορισμένη ανάδραση από αισθητήρες
  3. με σύνθετη ανάδραση αισθητήρα

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


Ο έλεγχος ενός ρομπότ να στρίψει αριστερά διαβάζοντας ένα αριστερό βέλος από ένα φύλλο χαρτιού είναι πολύ πιο δύσκολο από ό,τι μπορεί να φανταστεί κανείς. Μια εντολή σέρβις όπως "στρίψτε αριστερά" απαιτεί επίσης αρκετό προγραμματισμό. Ο προγραμματισμός πολλών περίπλοκων εντολών όπως "Φέρε μου τις παντόφλες" δεν είναι πλέον φαντασία. Αν και απαιτεί πολύ υψηλό επίπεδο προγραμματισμού και πολύ χρόνο.

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

Πρακτικό μέρος

Ο στόχος του έργου μας είναι να δημιουργήσουμε μια αυτόνομη πλατφόρμα ικανή να λαμβάνει αποφάσεις με βάση εξωτερικά σήματα από αισθητήρες. Θα χρησιμοποιήσουμε έναν μικροελεγκτή Lego EV3. Μας επιτρέπει να το κάνουμε ως μια εντελώς αυτόνομη πλατφόρμα. Ημιαυτόνομη λοιπόν, ελεγχόμενη μέσω Bluetooth ή με χρήση τηλεχειριστηρίου υπερύθρων.


Προγραμματιζόμενο τούβλο LEGO EV3

Σήμερα δεν θα εκπλήξετε κανέναν με ραδιοελεγχόμενο σπιτικό. Αλλά πρέπει να παραδεχτείτε, με κάποιο τρόπο "με τον παλιό τρόπο" να πατήσετε τα πλήκτρα ελέγχου ... Είναι πολύ πιο ενδιαφέρον να το διαχειριστείτε χειροτεχνίαμε πινελιές, σωστά; Αυτό το άρθρο δείχνει ένα παράδειγμα για το πώς μπορείτε να ρυθμίσετε το τηλεχειριστήριο χρησιμοποιώντας μια πλακέτα Arduino και αρκετούς αισθητήρες κάμψης. Το PHIRO Pro θα λειτουργήσει ως υποκείμενο δοκιμής

Βήμα 1: Τι χρειάζεστε

  • Αισθητήρες κάμψης;
  • Arduino UNO;

  • Μονάδα Bluetooth HC-05;

  • Γάντι;

  • Jumpers;

  • Μπαταρία 9Β.

  • Εφαρμογή Pocket Code.

Βήμα 2: Φόρτωση του Firmata Standard στο Arduino

Είναι απαραίτητο να τοποθετήσετε το standard firmata στην πλακέτα Arduino για να τη συνδέσετε με το Pocket Code. Σε αυτό το έργο χρησιμοποιούμε ένα Arduino UNO, ωστόσο μπορεί να χρησιμοποιηθεί οποιαδήποτε πλακέτα Arduino.

  • Συνδέουμε την πλακέτα Arduino στον υπολογιστή / φορητό υπολογιστή.
  • Στο Arduino ID, επιλέξτε Θύρα COM. Εργαλεία -> Σειριακή θύρα -> Αντίστοιχη θύρα COM
  • Στη συνέχεια, επιλέξτε τον τύπο πλακέτας. Εργαλεία -> Πίνακας -> Η πλακέτα σας Arduino
  • Στη συνέχεια επιλέγουμε το πρότυπο Firmata. Παραδείγματα -> Firmata -> Standard Firmata
  • Κάντε κλικ στο "Μεταφόρτωση" και μεταφορτώστε τον κωδικό στον πίνακα.

Βήμα 3: Συνδέστε τους αισθητήρες στην πλακέτα και συνδέστε τους στο γάντι

Οι αισθητήρες Flex είναι συσκευές αντίστασης που μπορούν να χρησιμοποιηθούν για την ανίχνευση κάμψης ή κλίσης. Παρακάτω είναι ένα διάγραμμα καλωδίωσης για αισθητήρες στο Arduino. Χρησιμοποίησα λυγισμένα στηρίγματα συρραπτικού για να στερεώσω με ασφάλεια τους αισθητήρες στο γάντι, αλλά μπορείτε να χρησιμοποιήσετε πλαστικά φερμουάρ αν θέλετε.

Βήμα 4: Σύνδεση της μονάδας Bluetooth HC-05 στο Arduino

Συνδέουμε τις εξόδους της μονάδας bluetooth και της πλακέτας Arduino ως εξής:

  • HC05 Tx - Arduino Rx
  • HC05 Rx - Arduino Tx
  • Vcc - 5V
  • GND-GND

Βήμα 5: Σύνδεση του Arduino με την μπαταρία

Χρησιμοποιούμε μια μπαταρία 9V για να τροφοδοτήσουμε την πλακέτα Arduino με τη μονάδα Bluetooth. Αυτός ο τύπος διάταξης εξηγείται από τη δυνατότητα εύκολης τοποθέτησης στον καρπό/βραχιόλι. Όσο πιο συμπαγές τόσο το καλύτερο.

Βήμα 6: Πρόγραμμα Pocket Code

Ακολουθούν παραδείγματα χρήσης του προγράμματος. Πρώτα απ 'όλα, βεβαιωθείτε ότι το PHIRO Pro βρίσκεται στη λειτουργία 3 (Λειτουργία Bluetooth). Πατήστε το κουμπί Mode στο PHIRO προτού ανάψει το μπλε LED δίπλα στην οθόνη στο επάνω μέρος.

Για το πρόγραμμα, υπάρχουν 7 λειτουργίες γενικά.

  • Ο δείκτης εκτείνεται. Οι προβολείς ανάβουν κόκκινο. Το πρόγραμμα δείχνει STOP.
  • Ο δείκτης και τα μεσαία δάχτυλα εκτείνονται. Οι προβολείς ανάβουν πράσινοι. Το πρόγραμμα δείχνει STOP.
  • Ο δείκτης, ο μεσαίος και ο παράμεσος είναι ισιωμένος. Οι προβολείς ανάβουν μπλε. Το πρόγραμμα δείχνει STOP.
  • Η παλάμη είναι ανοιχτή. Ο PHIRO προχωρά. Οι προβολείς ανάβουν λευκοί. Το πρόγραμμα δείχνει ΜΠΡΟΣΤΑ (εμπρός).
  • Η παλάμη είναι σφιγμένη σε γροθιά. Ο PHIRO σταματά. Οι προβολείς είναι σβηστά. Το πρόγραμμα δείχνει STOP.
  • Η παλάμη σφίγγεται σε γροθιά και γέρνει προς τα αριστερά (το τηλέφωνο έχει κλίση προς τα αριστερά). Ο PHIRO στρίβει αριστερά. Ο αριστερός προβολέας ανάβει κίτρινο. Το πρόγραμμα δείχνει ΑΡΙΣΤΕΡΑ (στα αριστερά).
  • Η παλάμη είναι σφιγμένη σε γροθιά και γέρνει προς τα δεξιά (το τηλέφωνο έχει κλίση προς τα δεξιά). Ο PHIRO στρίβει δεξιά. Ο δεξιός προβολέας ανάβει κίτρινο. Το πρόγραμμα δείχνει ΔΕΞΙΑ (δεξιά).

Βήμα 7: Πραγματοποιούμε την τελική εγκατάσταση

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

Αγόρασα ένα φτηνό κάλυμμα για το κινητό μου, έκοψα τρύπες και τέντωσα την ταινία Velcro. Το βραχιολάκι με το τηλέφωνο είναι έτοιμο.

Αυτό είναι όλο!) Σας ευχαριστώ για την προσοχή σας)

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

Βήμα 1: Κατάλογος στοιχείων και κόστος του έργου

1. Αυτοκίνητο παιχνίδι με ραδιοχειριστήριο (ραδιοελεγχόμενο).

Αυτό το πράγμα κοστίζει περίπου 20 δολάρια, αν έχετε την ευκαιρία να ξοδέψετε περισσότερα, μπορείτε να το χρησιμοποιήσετε καλύτερα.

2. Μικροελεγκτής Arduino Uno - 25 $

3. Ασπίδα κινητήρα για έλεγχο ηλεκτροκινητήρων - 20 $

4. GPS για πλοήγηση. Adafruit Ultimate GPS Shield - 50 $

5. Μαγνητόμετρο ως πυξίδα για πλοήγηση. Μαγνητόμετρο Adafruit HMC5883 - 10 $

6. Αισθητήρας απόστασης υπερήχων για αποφυγή εμποδίων. HC-SR04 - 6 $

7. Οθόνη LCD για εμφάνιση της κατάστασης και των πληροφοριών του οχήματος. Οθόνη LCD Blue 1602 IIC, I2C TWI - 6 $ (μπορείτε να χρησιμοποιήσετε άλλη)

8. Αισθητήρας υπερύθρων και τηλεχειριστήριο.

9. Σκίτσο Arduino (πρόγραμμα C++).

10. Λεπτή ξύλινη σανίδα ως πλατφόρμα τοποθέτησης.

11. Πλάκες ψωμιού. Το ένα είναι μακρύ και στενό και το άλλο είναι μικρό για να τοποθετηθεί χωριστά το μαγνητόμετρο πάνω του μακριά από άλλα στοιχεία.

12. Άλτες.

13. Κιτ τοποθέτησης αισθητήρα υπερήχων - 12 $

14. Κολλητήρι και κολλητήρι.

Έτσι, συνολικά, χρειάστηκαν περίπου 150 $, και αυτό υποτίθεται ότι αγοράζετε όλα αυτά τα εξαρτήματα, επειδή μπορεί να έχετε ήδη μερικά από αυτά.

Βήμα 2: Τοποθέτηση πλαισίου και πλατφόρμας

Το ραδιοχειριστήριο αφαιρέθηκε από ένα ανεπιθύμητο παιχνίδι που κόστιζε 15 δολάρια.

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

Ως επιφάνεια στερέωσης χρησιμοποιήθηκε μια λεπτή σανίδα, στην οποία προσαρμόστηκαν πλάκες ψωμιού, Arduino, LCD κ.λπ. Οι μπαταρίες τοποθετούνται κάτω από την πλακέτα και τα καλώδια περνούν από τις τρυπημένες τρύπες.

Βήμα 3: Πρόγραμμα

Το Arduino ελέγχεται μέσω ενός προγράμματος C++.

Πηγή

RC_Car_Test_2014_07_20_001.ino

Βήμα 4: Οθόνη LCD

Κατά τη λειτουργία, η οθόνη εμφανίζει τις ακόλουθες πληροφορίες:

Σειρά 1:

1. TH - Στόχος, πορεία προς το τρέχον σημείο

2. CH - Τρέχουσα κατεύθυνση του ρομπότ

Σειρά 2:

3. Err - Κατεύθυνση πυξίδας, δείχνει προς ποια κατεύθυνση κινείται το ρομπότ (αριστερά ή δεξιά)

4. Dist - Εστιακή απόσταση (σε μέτρα) στο τρέχον σημείο

Σειρά 3:

5. SNR - Απόσταση σόναρ, δηλαδή η απόσταση από τυχόν αντικείμενα μπροστά από το ρομπότ

6. Spd - Ταχύτητα ρομπότ

Σειρά 4:

7. Mem - Μνήμη (σε byte). Η μνήμη Arduino έχει 2 KB

8. WPT n OF x - Δείχνει πού βρίσκεται το ρομπότ στη λίστα σημείων διαδρομής

Βήμα 5: Αποφύγετε τις συγκρούσεις με αντικείμενα

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

Η βιβλιοθήκη ελήφθη από εδώ: https://github.com/fmbfla/Arduino/tree/master/NewPing

Ο αισθητήρας ήταν τοποθετημένος στον προφυλακτήρα του ρομπότ.

Τηλεχειριστήριο, εκδ. 0.1.1

(έλεγχος του ρομπότ από απόσταση μέσω Wi-Fi από tablet σε χειροκίνητη λειτουργία)

πρόγραμμα πολλαπλών χρήσεων για mod OpenComputers

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

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

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

Μπορείτε να βιδώσετε τον θάλαμο του αντιδραστήρα στον τοίχο του θύματος, να σπρώξετε μια ράβδο 4-ουρανίου εκεί, να ενεργοποιήσετε την κόκκινη πέτρα στο ρομπότ και να ανατινάξετε τον τοίχο σε πολλά τετράγωνα, εάν ο απρόσεκτος παίκτης-θύμα έχει κλειδώσει το σπίτι του tyutelka στο tyutelka κατά μήκος της άκρης του τοίχου, όπως κάνουν συνήθως οι παίκτες =).

Ο αντιδραστήρας στο IT στις ρυθμίσεις καταστρέφει μπλοκ σε ακτίνα 2-4 μπλοκ. Υπάρχει περίπτωση να μπείτε κρυφά στο σπίτι του θύματος, ενώ είστε καλυμμένοι και δεν μπορείτε να σας δουν με κανέναν τρόπο.

Κωδικός προγράμματος (πιο πρόσφατος):

ΔΙΣΚΙΟ:(pastebin λάβετε b8nz3PrH tabletRC.lua)

ΡΟΜΠΟΤ:(pastebin λάβετε 7V2fvm7L robotRC.lua)

Παλιές εκδόσεις (παλιές):

Απαιτήσεις για τη διαμόρφωση του ρομπότ και του tablet ( με βάση τον συνδεδεμένο χάρτη, απαιτείται, απαιτείται και ο ελεγκτής αποθέματος στο ρομπότ, τα υπόλοιπα είναι προαιρετικά. Μπορείτε να πετάξετε τις πινακίδες και να γεμίσετε το χειριστήριο του κάδου, να προσθέσετε λίγη γραμμή και υγρά για τρίψιμο και ούτω καθεξής. Το ChL δεν χρησιμοποιείται ακόμη στο πρόγραμμα. Για το λαιμό, μια κόκκινη σανίδα, ένας μαγνήτης, ένα μεγάλο απόθεμα είναι πολύ επιθυμητό):

Tablet (δύσκολα αμέσως με το εγκατεστημένο λειτουργικό σύστημα):

Ρομπότ (προς το παρόν, μπορείτε να αρνηθείτε το CL και να σπρώξετε τον ελεγκτή-επέκταση των πλακών. Στη συνέχεια, μπορείτε να σπρώξετε το ρομπότ εν κινήσει, εάν χρειάζεται, κάρτα WF ή κάρτα INET):

Γεια σου Habrahabr! Καθόμουν το βράδυ της 11ης Ιουνίου και έβλεπα μια ταινία. Απροσδόκητα για τον εαυτό μου, διαπίστωσα ότι μια γυναίκα που δεν ήξερα μου είχε γράψει με μια πρόταση να φτιάξω ένα ρομπότ για τη νέα τους αναζήτηση. Το συμπέρασμα είναι ότι πρέπει να λύσετε παζλ, να εξερευνήσετε κρυφές μνήμες, να εφαρμόσετε σωστά υποδείξεις, να χρησιμοποιήσετε διαθέσιμα πράγματα και τελικά να πάρετε κλειδιά και να ανοίξετε πόρτες ... Μου ζητήθηκε να φτιάξω ένα ρομπότ ελεγχόμενο από υπολογιστή χρησιμοποιώντας ένα ξεχωριστό πρόγραμμα. Είχα αμφιβολίες για ορισμένα προβλήματα, για παράδειγμα: θα έχω χρόνο και πώς ακριβώς να κάνω ασύρματη μεταφορά δεδομένων (πριν είχα ασχοληθεί μόνο με την ασύρματη μεταφορά δεδομένων στο NXT); Αφού ζύγισα τα υπέρ και τα κατά, συμφώνησα. Μετά από αυτό, άρχισα να σκέφτομαι τη μεταφορά δεδομένων. Δεδομένου ότι ήταν απαραίτητο να γίνει γρήγορα το ρομπότ, δεν υπήρχε χρόνος για να θυμηθούμε και να κυριαρχήσουμε, για παράδειγμα, τους Δελφούς, έτσι προέκυψε η ιδέα να φτιάξουμε μια ενότητα που θα στέλνει εντολές. Ο υπολογιστής χρειάζεται απλώς να στείλει δεδομένα στη θύρα COM. Αυτή η μέθοδος είναι περίεργη, αλλά η πιο γρήγορη. Θέλω να το περιγράψω εδώ. Θα επισυνάψω επίσης 3 προγράμματα που θα σας βοηθήσουν να φτιάξετε ένα τηλεκατευθυνόμενο αυτοκίνητο.
Συναρμολόγηση του πομπού και το πρόγραμμά του.
Έφτιαξα μια μονάδα για έναν υπολογιστή από το FTDI Basic Breakout 5 / 3.3V από το DFrobot, έναν αρκετά κοινό μικροελεγκτή ATMEGA 328P-PU με φορτωτή εκκίνησης Arduino και μια μονάδα ραδιοφώνου που βασίζεται στο τσιπ nRF24L01. Στην πραγματικότητα, είναι απλώς ένα Arduino Uno με μονάδα ραδιοφώνου. Είναι αυτό που είναι. Η μονάδα ραδιοφώνου έχει ένα χαρακτηριστικό που δεν παρατήρησα αμέσως: η τάση εισόδου πρέπει να είναι στην περιοχή από 3 έως 3,6 βολτ (αν και η εφαρμογή 5 βολτ σε αυτήν δεν θα το σκοτώσει, αλλά δεν θα λειτουργήσει), το ανώτερο όριο του Η λογική μονάδα είναι 5V. Αυτό σημαίνει ότι για να συνδέσετε τη μονάδα ραδιοφώνου στο mega, δεν χρειάζεστε μετατροπέα στάθμης μεταξύ 3,3 V και 5 V, αλλά πρέπει να εγκαταστήσετε σταθεροποιητή 3,3 V. Το FTDI έχει ενσωματωμένο σταθεροποιητή, από τον οποίο τροφοδότησα τη μονάδα ραδιοφώνου.

Έτσι φαίνεται η ίδια η μονάδα (μέσα και στη συναρμολόγηση):

Το πρόγραμμα αποτελείται από αρχικοποίηση, μήνυμα έναρξης και επεξεργασία εντολών από το πρόγραμμα ελέγχου. Έτσι ήταν και στην περίπτωσή μου. Οι κύριες εντολές της βιβλιοθήκης Mirf:

#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
Αυτές οι βιβλιοθήκες χρειάζονται για τη λειτουργία της μονάδας ραδιοφώνου

Mirf.csnPin = 4 - ορίζει τον αριθμό της ακίδας που είναι υπεύθυνη για την "άδεια επικοινωνίας" μεταξύ της μονάδας ραδιοφώνου και του MK
Mirf.cePin = 6 - ορίζει τον αριθμό της ακίδας που είναι υπεύθυνος για τον τρόπο λειτουργίας της μονάδας ραδιοφώνου (δέκτης / πομπός)
Mirf.spi = &MirfHardwareSpi - ορίζει τη γραμμή SPI
Mirf.init() - αρχικοποιεί τη μονάδα ραδιοφώνου
Mirf.payload = 1 - μέγεθος σε byte ενός μηνύματος (προεπιλογή 16, μέγιστο 32)
Mirf.channel = 19 - ορίζει το κανάλι (0 - 127, προεπιλογή 0)
Mirf.config() - ορίζει τις παραμέτρους μεταφοράς


Mirf.setTADDR((byte *)"serv1") - αλλάζει τη μονάδα ραδιοφώνου σε λειτουργία πομπού
Mirf.setRADDR((byte *)"serv1") - αλλάζει τη μονάδα ραδιοφώνου σε λειτουργία δέκτη

Mirf.send(data) - στέλνει έναν πίνακα τύπου byte
Mirf.dataReady() - αναφέρει το τέλος της επεξεργασίας των δεδομένων που λαμβάνονται
Mirf.getData(data) - γράψτε τα ληφθέντα δεδομένα στον πίνακα δεδομένων

Επισυνάπτω τον κωδικό του πομπού.

πρόγραμμα πομπού

#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω

Char ενεργό;
bytedata;

Κενή ρύθμιση()
{
Serial.begin(19200);

Mirf.csnPin = 4;
Mirf.cePin = 6;

Mirf.init();
Mirf.payload = 1;
Mirf.channel = 19;
Mirf.config();

Mirf.setTADDR((byte *)"serv1");

// μήνυμα σήματος για την έναρξη της εργασίας
data=7;
Mirf.send(data);
καθυστέρηση (200);
}

Void loop()
{
if (Serial.available()) //Εάν τα δεδομένα είναι έτοιμα για ανάγνωση
{
active=Serial.read(); // Εγγραφή δεδομένων σε μια μεταβλητή
}

Εάν (ενεργό=="2")
{
δεδομένα=2;
}

Εάν (ενεργό=="3")
{
δεδομένα=3;
}

Εάν (ενεργό=="4")
{
δεδομένα=4;
}

Εάν (ενεργό=="5")
{
δεδομένα=5;
}

Εάν (ενεργό=="6")
{
δεδομένα=6;
}

Mirf.send(data); // Αποστολή δεδομένων
while(Mirf.isSending()); // Περιμένετε να σταλούν τα δεδομένα
}

Πρόγραμμα ελέγχου.

Υπάρχει ένα ενδιαφέρον πράγμα - Επεξεργασία. Η σύνταξη είναι ίδια όπως στο Arduino, μόνο που αντί για void loop() υπάρχει void draw(). Αλλά έγινε ακόμη πιο ενδιαφέρον στην περίπτωσή μου με τη βιβλιοθήκη επεξεργασίας Serial, η οποία σας επιτρέπει να εργάζεστε με τη σειριακή θύρα. Αφού διάβασα τα μαθήματα στον ιστότοπο του Spurkfun, έπαιξα με το να αναβοσβήνει η λυχνία LED στο arduino που είναι συνδεδεμένο στον υπολογιστή με το πάτημα του ποντικιού. Μετά από αυτό, έγραψα ένα πρόγραμμα για τον έλεγχο του ρομπότ από το πληκτρολόγιο. Επισυνάπτω τον κωδικό ελέγχου χρησιμοποιώντας τα βέλη. Κατ 'αρχήν, δεν υπάρχει τίποτα ασυνήθιστο σε αυτό.

Πρόγραμμα ελέγχου μηχανής

εισαγωγή επεξεργασίας.σειριακό.*;
εισαγωγή cc.arduino.*;

Serial myPort;
PFont f=createFont("LetterGothicStd-32.vlw", 24);

Κενή ρύθμιση()
{
μέγεθος (360, 160);
εγκεφαλικό επεισόδιο (255);
φόντο(0);
textFont(f);

String portName = "XXXX"; // Εδώ πρέπει να γράψετε το όνομα της θύρας σας
myPort = new Serial(this, portName, 19200);
}

Άκυρη κλήρωση() (
if(keyPressed==false)
{
Σαφή();
myPort.write("6");
println("6");
}
}

Κενό πατημένο πλήκτρο()
{
// 10 - enter
// 32 - χώρος
// 37/38/39/40 - πλήκτρα
Σαφή();

fill(255);
textAlign(CENTER);
//text(keyCode, 180, 80);

Διακόπτης (Κωδικός κλειδιού)
{
περίπτωση 37:
text("Edem vlevo", 180, 80);
myPort.write("1");
Διακοπή;

Περίπτωση 38:
text("Edem pryamo", 180, 80);
myPort.write("2");
Διακοπή;

Υπόθεση 39:
text("Edem vpravo", 180, 80);
myPort.write("3");
Διακοπή;

Περίπτωση 40:
text("Edem nazad", 180, 80);
myPort.write("4");
Διακοπή;

Προκαθορισμένο:
text("Takoy kommandi net", 180, 80);
myPort.write("6");
Διακοπή;
}
}

πρόγραμμα δέκτη.

Η προετοιμασία αυτού του προγράμματος διαφέρει από την εκκίνηση του προγράμματος πομπού σε μία μόνο γραμμή. Η εντολή κλειδιού στον ατελείωτο βρόχο είναι Mirf.getData(data). Περαιτέρω, η ληφθείσα εντολή συγκρίνεται με τους αριθμούς που αντιστοιχούν σε τυχόν ενέργειες του ρομπότ. Λοιπόν, τότε το ρομπότ ενεργεί ακριβώς με εντολές. Επισυνάπτω τον κωδικό προγράμματος του δέκτη του μηχανήματος.

Προγράμματα μηχανών

#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω

Κενή ρύθμιση()
{
Serial.begin(9600);

PinMode(13, OUTPUT); //LED

Mirf.csnPin = 10;
Mirf.cePin = 9;
Μιρφ.σπι=
Mirf.init();
Mirf.payload = 1;
Mirf.channel = 19;
Mirf.config();
Mirf.setRADDR((byte *)"serv1");
}

Void loop()
{
bytedata;

If(!Mirf.isSending() && Mirf.dataReady())
{
Mirf.getData(data);
Serial println(data);
}

Διακόπτης (δεδομένα)
{
περίπτωση 1:
κινητήρες (-100, 100); // στρίψτε αριστερά
Διακοπή;

Περίπτωση 2:
κινητήρες (100, 100); // πήγαινε ευθεία
Διακοπή;

Περίπτωση 3:
κινητήρες (100, -100); // στρίψτε δεξιά
Διακοπή;

Περίπτωση 4:
κινητήρες (-100, -100); // Πήγαινε πίσω
Διακοπή;

Προκαθορισμένο:
κινητήρες (0, 0); // ορθοστασία
Διακοπή;
}

καθυστέρηση(50);
}

Συμπέρασμα.

Τι προέκυψε από όλα αυτά:

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

Ετικέτες: Προσθήκη ετικετών