Πίνακας περιεχομένων:

Ελεγχόμενο εικονικής πραγματικότητας αυτοκίνητο RC: 9 βήματα
Ελεγχόμενο εικονικής πραγματικότητας αυτοκίνητο RC: 9 βήματα

Βίντεο: Ελεγχόμενο εικονικής πραγματικότητας αυτοκίνητο RC: 9 βήματα

Βίντεο: Ελεγχόμενο εικονικής πραγματικότητας αυτοκίνητο RC: 9 βήματα
Βίντεο: Essential Scale-Out Computing by James Cuff 2024, Ιούλιος
Anonim
Image
Image

Θέλατε ποτέ να συρρικνωθείτε και να πιλοτάρετε ένα σκάφος όπως το Innerspace ή το Fantastic Voyage; Λοιπόν, νομίζω ότι αυτό είναι τόσο κοντά όσο θα πάρετε σύντομα!

Εδώ είναι το γήπεδο:

Ένα αυτοκίνητο τηλεχειριστηρίου Real-Life που πιλοτάρεται από μια κονσόλα εντολών εικονικής πραγματικότητας. Αυτό σημαίνει ότι μπορείτε να δέσετε ένα ακουστικό VR, να γυρίσετε έναν διακόπτη σε ένα αυτοκίνητο RC και, στη συνέχεια, να πιλοτάρετε από VR με ζωντανή ροή βίντεο απευθείας στο πρόσωπό σας.

Υπάρχουν πράγματα που υλοποίησα και μπορείτε να τα ελέγξετε στο VR Car.

  1. Τροχοί
  2. Κέρατο
  3. Φώτα

Όλα αυτά έχουν κάποιο είδος κουμπιού ή μοχλού στο VR που μπορείτε να αναστρέψετε ή να αλλάξετε για να οδηγήσετε το αυτοκίνητο.

Για το πλήρες repo και περισσότερες πληροφορίες, ελέγξτε το Github και τον ιστότοπό μου!

Βήμα 1: Υλικά και εργαλεία

Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία
Υλικά και Εργαλεία

Μηχανικός:

Σετ σασί 4 τροχών

Ηλεκτρικός:

  • Κωδικοποιητής τροχού
  • Μπαταρία 3S 1300mAh
  • Arduino Uno
  • Arduino Motor Shield
  • Piezo Electric Buzzer
  • Μικρό LED
  • Συνδέσεις XT60
  • Μετατροπέας Boost / Buck

Υπολογιστή:

  • Οποιοδήποτε ενσωματωμένο σύστημα υπολογιστή: Raspberry Pi, Jetson Nano κ.λπ.
  • Κάμερα USB (κατά προτίμηση - κάμερα 180 μοιρών)

Εργαλεία / Επιπλέον:

  • Συγκολλητικό σίδερο
  • Κάποια ρύθμιση VR - Έχω το Oculus Rift
  • Πολύμετρο

Βήμα 2: Κατασκευάστε αυτοκίνητο

Κατασκευή αυτοκινήτου
Κατασκευή αυτοκινήτου
Κατασκευή αυτοκινήτου
Κατασκευή αυτοκινήτου
Κατασκευή αυτοκινήτου
Κατασκευή αυτοκινήτου

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

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

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

Βήμα 3: Κυκλώματα συγκόλλησης

Κυκλώματα συγκολλήσεων
Κυκλώματα συγκολλήσεων
Κυκλώματα συγκολλήσεων
Κυκλώματα συγκολλήσεων

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

Ενώ το κάνετε αυτό, θα πρέπει επίσης να βαθμονομήσετε τον μετατροπέα buck για να εξάγετε τη σωστή τάση. Το Raspberry Pi και το Jetson Nano παίρνουν και τα δύο 5v, αλλά η μπαταρία μας είναι στα 11,1v. Έτσι, πρέπει να βεβαιωθούμε ότι δεν τηγανίζουμε τα ηλεκτρονικά μας. Για να το κάνετε αυτό, συνδέστε την μπαταρία σας στην πλευρά εισόδου του μετατροπέα buck. Ενώ η μπαταρία είναι συνδεδεμένη, χρησιμοποιήστε το πολύμετρό σας για να μετρήσετε την πλευρά εξόδου του μετατροπέα buck. Χρησιμοποιήστε ένα μικρό κατσαβίδι επίπεδης κεφαλής για να περιστρέψετε το μετρητή ισχύος στον μετατροπέα κάδου μέχρι η τάση εξόδου να είναι 5v. Μόλις η έξοδος είναι σωστή, δεν θα χρειαστεί να γυρίσετε άλλο το δυναμομετρητή.

Βήμα 4: Εγκατάσταση εξαρτήσεων στο ενσωματωμένο σύστημα

Εγκατάσταση εξαρτήσεων στο ενσωματωμένο σύστημα
Εγκατάσταση εξαρτήσεων στο ενσωματωμένο σύστημα

Όχι πάρα πολλά για να κάνετε εδώ, αλλά ακόμα απίστευτα σημαντικά.

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

Στη συνέχεια, ανοίξτε ένα τερματικό και πληκτρολογήστε τα ακόλουθα:

sudo apt ενημέρωση

sudo apt install opensh-server

sudo apt install python-pip pip install numpy pip install opencv-python pip install pyzmq

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

udevadm info -a -n /dev /ttyUSB1 | grep '{serial}' | κεφαλή -ν1

Αυτό θα φτύσει μια τιμή για τον σειριακό αριθμό, προχωρήστε και αντιγράψτε αυτήν την τιμή.

Στη συνέχεια, πρέπει να επεξεργαστούμε (ή να δημιουργήσουμε εάν δεν υπάρχει) ένα αρχείο που ονομάζεται "99-usb-serial.rules". Αυτό το αρχείο ζει στην ακόλουθη διαδρομή αρχείου "/etc/udev/rules.d/99-usb-serial.rules". Όπως ανέφερα, εάν αυτό το αρχείο δεν υπάρχει, απλώς δημιουργήστε το και επικολλήστε στην ακόλουθη γραμμή με VALUE_FROM_ABOVE να αντικατασταθεί με την τιμή σας από πριν.

SUBSYSTEM == "tty", ATTRS {serial} == "VALUE_FROM_ABOVE", SYMLINK+= "arduino_0"

Αυτό λέει στο λειτουργικό σύστημα ότι όποτε βλέπει αυτόν τον συγκεκριμένο σειριακό αριθμό να το καλεί arduino_0.

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

Βήμα 5: Ρύθμιση στατικής διεύθυνσης IP

Ρύθμιση στατικής διεύθυνσης IP
Ρύθμιση στατικής διεύθυνσης IP

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

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

Μεταβείτε στην ενότητα διαχειριστή του δρομολογητή σας, συνήθως (για τους περισσότερους δρομολογητές) αυτό γίνεται ανοίγοντας ένα πρόγραμμα περιήγησης ιστού και μεταβαίνοντας στο "192.168.1.1". Θα σας ζητήσει να συνδεθείτε και το τυπικό τυπικό όνομα χρήστη και κωδικός πρόσβασης για τους περισσότερους δρομολογητές είναι "admin".

Μόλις φτάσετε εκεί, μεταβείτε σε κάτι που αναφέρει τον "διακομιστή DHCP". Αυτή είναι μια διαδικασία που εκτελείται στο δρομολογητή σας και παρακολουθεί ποιες συσκευές συνδέονται σε αυτήν από τη διεύθυνση MAC τους, η οποία είναι πάντα σταθερή. Θέλουμε να επιλέξουμε τις συσκευές που μας ενδιαφέρουν περίπου, τον υπολογιστή του σταθμού εδάφους και το ενσωματωμένο σύστημα και προσθέστε τα στην αποκλειστική ενότητα προγράμματος -πελάτη. Αυτό θα τους δώσει ένα στατικό ip κάθε φορά που συνδέονται με αυτόν τον δρομολογητή.

Βεβαιωθείτε ότι έχετε ορίσει τη διεύθυνση IP του ενσωματωμένου συστήματος σε 192.168.1.122 Η διεύθυνση IP του επίγειου σταθμού μπορεί να ρυθμιστεί σε οτιδήποτε.

Βήμα 6: Μεταφόρτωση κώδικα στο Arduino

Μεταφόρτωση κωδικού στο Arduino
Μεταφόρτωση κωδικού στο Arduino

Για να ανεβάσουμε τον κώδικα arduino, πρέπει πρώτα να εγκαταστήσουμε μια βιβλιοθήκη για να λειτουργήσει με το προστατευτικό του κινητήρα.

Στο Arduino IDE, μεταβείτε στο Sketch-> Include Library-> Manage Libraries … Στη συνέχεια, αναζητήστε τη βιβλιοθήκη Adafruit Motor Shield. Εγκαταστήστε αυτήν τη βιβλιοθήκη και, στη συνέχεια, ανεβάστε τον κώδικα στο arduino σας, τίποτα άλλο δεν πρέπει να απαιτείται.

Βήμα 7: Συνδέστε κύκλωμα και υπολογιστή στο αυτοκίνητο

Συνδέστε κύκλωμα και υπολογιστή στο αυτοκίνητο
Συνδέστε κύκλωμα και υπολογιστή στο αυτοκίνητο

Τώρα που έχει κατασκευαστεί το κύκλωμα, It'sρθε η ώρα να τα βάλουμε όλα στο αυτοκίνητο. Δεν πρόκειται να πω ψέματα, πολλά από αυτά τα πράγματα συγκρατούνται με κασέτα γιατί αυτό ήταν το πιο εύκολο για μένα να χαστουκίσω γρήγορα. Τούτου λεχθέντος, έχει τοποθετηθεί οπές στερέωσης όπως φαίνεται στην παραπάνω εικόνα.

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

Βήμα 8: Ρύθμιση περιβάλλοντος VR

Ρύθμιση περιβάλλοντος VR
Ρύθμιση περιβάλλοντος VR

Αυτή η ενότητα θα φαίνεται λίγο διαφορετική ανάλογα με το είδος της ρύθμισης VR που έχετε ξεκινήσει. Όπως και να έχει, χρησιμοποίησα το SteamVR για να αναπτύξω αυτό το λογισμικό, οπότε ίσως χρειαστεί να το έχετε εγκαταστήσει.

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

Απλώς πρέπει να κατεβάσετε και να αποσυμπιέσετε το αρχείο με το build Unity world και να είστε έτοιμοι να εκτελέσετε το VR_Bot.exe.

Βήμα 9: Εκτελέστε τα όλα μαζί

Τρέξτε τα όλα μαζί
Τρέξτε τα όλα μαζί
Τρέξτε τα όλα μαζί
Τρέξτε τα όλα μαζί

Λοιπόν, τώρα που έχουμε εγκαταστήσει το αυτοκίνητο και τον επίγειο σταθμό είναι όλοι συνδεδεμένοι και έτοιμοι να ξεκινήσουμε, πώς θα τρέξουμε αυτό το κακό αγόρι; Λοιπόν, από την άποψη του σταθμού εδάφους, το μόνο που έχετε να κάνετε είναι να εκτελέσετε το αρχείο VR_Bot.exe που είδαμε νωρίτερα.

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

Το SSH σημαίνει Secure Shell και είναι ένα πρωτόκολλο για την ασφαλή πρόσβαση σε απομακρυσμένα συστήματα. Στην περίπτωσή μας, θα μας δώσει πρόσβαση στο Ενσωματωμένο Σύστημα από το Σταθμό Χώρου. Κάντε κλικ εδώ για να μάθετε περισσότερα.

Πρέπει να γνωρίζετε το όνομα χρήστη με το οποίο ρυθμίσατε το ενσωματωμένο σας σύστημα. Για το raspberry pi το προεπιλεγμένο όνομα χρήστη είναι "pi" και ο κωδικός πρόσβασης "raspberry".

Μόλις εγκατασταθεί, ανοίξτε ένα τερματικό και πληκτρολογήστε τα ακόλουθα:

ssh {Όνομα χρήστη ενσωματωμένου συστήματος}@192.168.1.122

Αυτό θα ανοίξει ένα τερματικό στο ενσωματωμένο σύστημα.

Μόλις φτάσετε εκεί, απλά πρέπει να εκτελέσετε το σενάριο python που αντιγράψαμε νωρίτερα.

python /path/to/pushArucoVideoPullCommands.py

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

Τότε είναι καλό να αρχίσετε να οδηγείτε και να διασκεδάζετε!

Συνιστάται: