Πίνακας περιεχομένων:
- Βήμα 1: Συναρμολόγηση πλαισίου ρομπότ
- Βήμα 2: Ηλεκτρονικά καλωδίων
- Βήμα 3: Δημιουργήστε διάγραμμα αποκλεισμού στο Vivado
- Βήμα 4: Ρύθμιση περιβάλλοντος ανάπτυξης λογισμικού
- Βήμα 5: Τροποποιήστε το πρόγραμμα επίδειξης
- Βήμα 6: Flash Firmware σε QSPI
- Βήμα 7: Διαμόρφωση ασύρματου σημείου πρόσβασης
- Βήμα 8: Εκτέλεση προγράμματος Java
- Βήμα 9: Βαθμονόμηση εύρους εύρους
- Βήμα 10: Προσβασιμότητα
Βίντεο: WiBot: 10 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Αυτό το διδακτικό αναφέρει λεπτομερώς τη διαδικασία δημιουργίας ενός ρομπότ Wi-Fi στην πλατφόρμα ZYBO. Αυτό το έργο χρησιμοποιεί ένα λειτουργικό σύστημα σε πραγματικό χρόνο για ανίχνευση αντικειμένων, μέτρηση απόστασης και έλεγχο απόκρισης. Αυτός ο οδηγός θα καλύψει τη διασύνδεση του ZYBO με περιφερειακά, την εκτέλεση προσαρμοσμένου υλικολογισμικού και την επικοινωνία μέσω εφαρμογής Java. Ακολουθεί μια λίστα με όλα τα βασικά στοιχεία που απαιτούνται για αυτό το έργο:
- 1 Πίνακας Ανάπτυξης ZYBO
- 1 ασύρματο δρομολογητή TL-WR802N
- 1 Shadow Chassis
- 2 Τροχοί 65mm
- 2 Gearmotors 140 στροφών
- 2 κωδικοποιητές τροχών
- 1 Αισθητήρας υπερήχων HC-SR04
- 1 BSS138 Logic Level Converter
- 1 L293 H-Bridge Driver Motor
- 1 Μετατροπέας 12V σε 5V DC/DC
- 1 Μπαταρία LiPo 2200mAh
- 1 καλώδιο Ethernet
- 1 καλώδιο USB Micro-B
- 1 θηλυκός συνδετήρας XT60
- 2 αρσενικά προς θηλυκά άλματα καλωδίων
- 30 Καλώδια από άντρα σε αρσενικό άλτη
- 2 αντιστάσεις 10kΩ
- 1 Breadboard
Επιπλέον, πρέπει να εγκατασταθεί το ακόλουθο λογισμικό στον υπολογιστή -στόχο:
- Xilinx Vivado Design Suite 2018.2
- Digilent Adept 2.19.2
- FreeRTOS 10.1.1
- Κιτ ανάπτυξης Java SE 8.191
Βήμα 1: Συναρμολόγηση πλαισίου ρομπότ
Συναρμολογήστε το σκελετό πλαίσιο και συνδέστε τους κινητήρες και τους κωδικοποιητές στο κάτω πλαίσιο. Ο αισθητήρας ZYBO, το breadboard και ο υπερήχων μπορούν να τοποθετηθούν με τα παρεχόμενα μέρη που μπορούν να εκτυπωθούν 3D και να στερεωθούν στο πλαίσιο χρησιμοποιώντας στάσεις και ταινία διπλής όψης. Η μπαταρία πρέπει να τοποθετηθεί κοντά στο πίσω μέρος του ρομπότ και κατά προτίμηση μεταξύ του επάνω και κατώτατα πλαίσια. Τοποθετήστε το δρομολογητή κοντά στο ZYBO και το μετατροπέα DC/DC κοντά στην πλάκα ψωμιού. Στερεώστε τους τροχούς στα κιβώτια ταχυτήτων στο τέλος.
Βήμα 2: Ηλεκτρονικά καλωδίων
Συνδέστε την είσοδο και την έξοδο του μετατροπέα DC/DC στις δύο ράγες ισχύος στον πίνακα ψωμιού αντίστοιχα. Αυτά θα χρησιμεύσουν ως παροχές 12V και 5V για το σύστημα. Συνδέστε το ZYBO στη ράγα 5V όπως φαίνεται στην εικόνα. Χρησιμοποιήστε ένα καλώδιο τροφοδοσίας USB Micro-B για να συνδέσετε το δρομολογητή στη ράγα 5V επίσης. Το καλώδιο XT60 πρέπει να στερεωθεί στη ράγα 12V. Μην συνδέετε την μπαταρία μέχρι να συνδεθούν σωστά τα υπόλοιπα ηλεκτρονικά. Ο αισθητήρας υπερήχων πρέπει να συνδεθεί με τη ράγα 5V. Δημιουργήστε μια ράγα 3,3V στο breadboard χρησιμοποιώντας τον πείρο 6 της θύρας Pmod JC στο ZYBO. Η είσοδος υψηλής τάσης του λογικού μετατροπέα πρέπει να είναι καλωδιωμένη στη ράγα 5V ενώ η είσοδος χαμηλής τάσης του λογικού μετατροπέα θα πρέπει να είναι καλωδιωμένη στη ράγα 3,3V. Συνδέστε τους κωδικοποιητές κινητήρα στη ράγα 3,3V. Συνδέστε το VCC1 του οδηγού κινητήρα στη ράγα 5V και συνδέστε το VCC2 στη ράγα 12V. Συνδέστε όλες τις ακίδες EN σε 5V και γειώστε όλες τις ακίδες GND.
Συνδέστε τις ακίδες TRIG και ECHO του αισθητήρα υπερήχων στο HV1 και HV2 του λογικού μετατροπέα αντίστοιχα. Το LV1 πρέπει να είναι καλωδιωμένο στο JC4 και το LV2 πρέπει να είναι καλωδιωμένο στο JC3. Ανατρέξτε στο γράφημα για pinouts Pmod. Συνδέστε τους κινητήρες στο πρόγραμμα οδήγησης. Το Y1 πρέπει να συνδεθεί με τον θετικό ακροδέκτη του δεξιού κινητήρα και το Y2 πρέπει να συνδεθεί με τον αρνητικό ακροδέκτη του δεξιού κινητήρα. Ομοίως, το Y3 πρέπει να συνδεθεί με τον θετικό ακροδέκτη του αριστερού κινητήρα και το Y4 πρέπει να συνδεθεί με τον αρνητικό ακροδέκτη του αριστερού κινητήρα. Τα Α1, Α2, Α3 και Α4 πρέπει να αντιστοιχίζονται στα JB2, JB1, JB4 και JB3 αντίστοιχα. Ανατρέξτε στο σχηματικό για τους αριθμούς ακίδων. Καλώδιο JC2 στο δεξί κωδικοποιητή και JC1 στον αριστερό κωδικοποιητή. Βεβαιωθείτε ότι χρησιμοποιούνται αντιστάσεις έλξης για τη σύνδεση αυτών των σημάτων στη ράγα 3,3V. Τέλος, χρησιμοποιήστε το καλώδιο ethernet για να συνδέσετε το ZYBO στο δρομολογητή.
Βήμα 3: Δημιουργήστε διάγραμμα αποκλεισμού στο Vivado
Δημιουργήστε ένα νέο έργο RTL στο Vivado. Βεβαιωθείτε ότι δεν καθορίζετε καμία πηγή προς το παρόν. Αναζητήστε "xc7z010clg400-1" και πατήστε φινίρισμα. Λήψη encoder_driver.sv και ultrasonic_driver.sv. Τοποθετήστε τους στους δικούς τους φακέλους. Ανοίξτε το IP Packager στην ενότητα "Εργαλεία" και επιλέξτε να συσκευάσετε έναν καθορισμένο κατάλογο. Επικολλήστε τη διαδρομή στο φάκελο που περιέχει το πρόγραμμα οδήγησης κωδικοποιητή και πατήστε "Επόμενο". Κάντε κλικ στο "πακέτο IP" και επαναλάβετε τις διαδικασίες για το πρόγραμμα οδήγησης αισθητήρα υπερήχων. Στη συνέχεια, μεταβείτε στον διαχειριστή αποθετηρίων στην υποενότητα IP στο μενού ρυθμίσεων. Προσθέστε τις διαδρομές στους φακέλους του προγράμματος οδήγησης και πατήστε Apply για να τις συμπεριλάβετε στη βιβλιοθήκη IP.
Δημιουργήστε ένα νέο διάγραμμα μπλοκ και προσθέστε το "Σύστημα επεξεργασίας ZYNQ7". Κάντε διπλό κλικ στο μπλοκ και εισαγάγετε το παρεχόμενο αρχείο ZYBO_zynq_def.xml. Στην ενότητα "Διαμόρφωση MIO", ενεργοποιήστε το χρονόμετρο 0 και το GPIO MIO. πατήστε "OK" για να αποθηκεύσετε τη διαμόρφωση. Προσθέστε 3 μπλοκ "AXI GPIO" και 4 μπλοκ "AXI Timer". Εκτελέστε αυτοματοποίηση μπλοκ ακολουθούμενο από αυτοματοποίηση σύνδεσης για S_AXI. Κάντε διπλό κλικ στα μπλοκ GPIO για να τα διαμορφώσετε. Ένα μπλοκ πρέπει να είναι διπλού καναλιού με είσοδο 4 bit και έξοδο 4 bit. Κάντε αυτές τις συνδέσεις εξωτερικές και χαρακτηρίστε τις SW για είσοδο και LED για έξοδο. Το δεύτερο μπλοκ θα πρέπει επίσης να είναι διπλού καναλιού με 2 εισόδους 32-bit. Το τελευταίο μπλοκ GPIO θα είναι μία μόνο είσοδος 32 bit. Κάντε την έξοδο pwm0 από κάθε μπλοκ χρονοδιακόπτη εξωτερική. Επισημάνετε τα με PWM0, PWM1, PWM2 και PWM3.
Προσθέστε το πρόγραμμα οδήγησης κωδικοποιητή στο διάγραμμα μπλοκ και συνδέστε το CLK στο FCLK_CLK0. Συνδέστε το OD0 και το OD1 στα κανάλια εισόδου του δεύτερου μπλοκ GPIO. Κάντε το ENC εξωτερικό και μετονομάστε το ENC_0 σε ENC. Προσθέστε το μπλοκ αισθητήρα υπερήχων και συνδέστε το CLK στο FCLK_CLK0. Κάντε το TRIG και το ECHO εξωτερικό και μετονομάστε το TRIG_0 σε TRIG και το ECHO_0 σε ECHO. Συνδέστε το RF στο τρίτο μπλοκ GPIO. Ανατρέξτε στο παρεχόμενο μπλοκ διάγραμμα για αναφορά.
Κάντε δεξί κλικ στο αρχείο μπλοκ διαγράμματος στο παράθυρο Πηγές και δημιουργήστε ένα περιτύλιγμα HDL. Φροντίστε να επιτρέπετε τις τροποποιήσεις χρήστη. Προσθέστε το παρεχόμενο αρχείο ZYBO_Master.xdc ως περιορισμό. Πατήστε "Δημιουργία Bitstream" και κάντε ένα διάλειμμα για καφέ.
Βήμα 4: Ρύθμιση περιβάλλοντος ανάπτυξης λογισμικού
Μεταβείτε στην ενότητα "Αρχείο" για να εξάγετε υλικό στο Vivado SDK. Βεβαιωθείτε ότι έχετε συμπεριλάβει το bitstream. Εισαγάγετε το έργο RTOSDemo μέσα στο "CORTEX_A9_Zynq_ZC702". Θα βρίσκεται στον κατάλογο εγκατάστασης του FreeRTOS. Δημιουργήστε ένα νέο πακέτο υποστήριξης πίνακα επιλέξτε τη βιβλιοθήκη lwip202. Αλλάξτε το αναφερόμενο BSP στο έργο RTOSDemo στο BSP που μόλις δημιουργήσατε*.
*Κατά τη σύνταξη αυτού του Instructable, το FreeRTOS φαίνεται να έχει ένα σφάλμα με την αναφορά στο σωστό BSP. Για να διορθώσετε αυτό, δημιουργήστε ένα νέο BSP με τις ίδιες ρυθμίσεις με το πρώτο. Αλλάξτε το αναφερόμενο BSP στο νέο και, στη συνέχεια, αλλάξτε το ξανά στο παλιό αφού αποτύχει να κατασκευαστεί. Το FreeRTOS θα πρέπει τώρα να μεταγλωττίζεται χωρίς σφάλματα. Μη διστάσετε να διαγράψετε το BSP που δεν χρησιμοποιείται.
Βήμα 5: Τροποποιήστε το πρόγραμμα επίδειξης
Δημιουργήστε έναν νέο φάκελο που ονομάζεται "προγράμματα οδήγησης" στον κατάλογο "src" του RTOSDemo. Αντιγράψτε το παρεχόμενο gpio.h. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h και motor.c στον κατάλογο "drivers".
Ανοίξτε το main.c και ορίστε το κύριοSELECTED_APPLICATION σε 2. Αντικαταστήστε το main_lwIP.c στην ενότητα "lwIP_Demo" με την ενημερωμένη έκδοση. Το BasicSocketCommandServer.c στην ενότητα "lwIP_Demo/apps/BasicSocketCommandServer" πρέπει επίσης να ενημερωθεί με νέα έκδοση. Τέλος, μεταβείτε στο "FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos" και αντικαταστήστε το Sample-CLI-commands.c με την παρεχόμενη έκδοση. Δημιουργήστε το έργο και διασφαλίστε ότι όλα μεταγλωττίζονται με επιτυχία.
Βήμα 6: Flash Firmware σε QSPI
Δημιουργήστε ένα νέο έργο εφαρμογής που ονομάζεται "FSBL" χρησιμοποιώντας το πρότυπο "Zynq FSBL". Αφού συντάξετε το έργο FSBL, δημιουργήστε μια εικόνα εκκίνησης του έργου RTOSDemo. Βεβαιωθείτε ότι το "FSBL/Debug/FSBL.elf" είναι επιλεγμένο ως πρόγραμμα εκκίνησης στην ενότητα "Διαμερίσματα εικόνας εκκίνησης". Προσθέστε με μη αυτόματο τρόπο τη διαδρομή σε αυτό το αρχείο, εάν δεν περιλαμβάνεται στη λίστα.
Μετακινήστε το βραχυκυκλωτήρα JP5 στο ZYBO στο "JTAG". Χρησιμοποιήστε ένα καλώδιο USB Micro-B για να συνδέσετε τον υπολογιστή σας στο ZYBO. Συνδέστε την μπαταρία και ενεργοποιήστε το ZYBO. Εκτελέστε το Adept για να βεβαιωθείτε ότι το ZYBO αναγνωρίζεται σωστά από τον υπολογιστή. Κάντε κλικ στο "Program Flash" στο Vivado SDK και δώστε τις διαδρομές στο αρχείο BOOT.bin στο RTOSDemo και το αρχείο FSBL.elf στο FSBL. Βεβαιωθείτε ότι έχετε επιλέξει "Επαλήθευση μετά το φλας" πριν πατήσετε "Πρόγραμμα". Παρακολουθήστε την κονσόλα για να διασφαλίσετε ότι η λειτουργία αναβοσβήνει ολοκληρώθηκε με επιτυχία. Στη συνέχεια, απενεργοποιήστε το ZYBO και αποσυνδέστε το καλώδιο USB. Μετακινήστε το βραχυκυκλωτήρα JP5 στο "QSPI".
Βήμα 7: Διαμόρφωση ασύρματου σημείου πρόσβασης
Με την μπαταρία ακόμα συνδεδεμένη, συνδεθείτε στο δίκτυο Wi-Fi του δρομολογητή. Το προεπιλεγμένο SSID και ο κωδικός πρόσβασης πρέπει να βρίσκονται στο κάτω μέρος του δρομολογητή. Στη συνέχεια, μεταβείτε στο https://tplinkwifi.net και συνδεθείτε χρησιμοποιώντας το "admin" για το όνομα χρήστη και τον κωδικό πρόσβασης. Εκτελέστε τον οδηγό γρήγορης εγκατάστασης για να διαμορφώσετε το δρομολογητή σε λειτουργία σημείου πρόσβασης με ενεργοποιημένο το DHCP. Βεβαιωθείτε ότι έχετε ενημερώσει και το προεπιλεγμένο όνομα χρήστη και κωδικό πρόσβασης για τη συσκευή. Ο δρομολογητής θα πρέπει να επανεκκινήσει αυτόματα σε λειτουργία σημείου πρόσβασης αφού τελειώσετε.
Ενεργοποιήστε το ZYBO και συνδεθείτε στο δρομολογητή χρησιμοποιώντας το SSID που εκχωρήσατε. Ο δρομολογητής πιθανότατα θα εμφανιστεί είτε στη διεύθυνση IP 192.168.0.100 είτε στην 192.160.0.101. Το ZYBO θα εκχωρηθεί όποια διεύθυνση δεν έχει ο δρομολογητής. Για να προσδιορίσετε γρήγορα τη διεύθυνση IP του δρομολογητή, μπορείτε να εκτελέσετε "ipconfig" από τη γραμμή εντολών στα παράθυρα ή "ifconfig" από το τερματικό σε Linux ή MacOS. Εάν είστε ακόμα συνδεδεμένοι στο δρομολογητή, θα δείτε τη διεύθυνση IP του να εμφανίζεται δίπλα στην ασύρματη διεπαφή σας. Χρησιμοποιήστε αυτές τις πληροφορίες για να καθορίσετε τη διεύθυνση IP του ZYBO. Για να επιβεβαιώσετε τη διεύθυνση IP του ZYBO, μπορείτε είτε να το ping από τη γραμμή εντολών είτε να συνδεθείτε σε αυτό μέσω telnet.
Βήμα 8: Εκτέλεση προγράμματος Java
Κατεβάστε το RobotClient.java και μεταγλωττίστε το αρχείο χρησιμοποιώντας την εντολή "javac RobotClient.java" από τη γραμμή εντολών. Εκτελέστε την εντολή "java RobotClient" όπου "ip_address" είναι η διεύθυνση IP του ZYBO. Το GUI ελέγχου θα εμφανιστεί εάν δημιουργηθεί μια επιτυχής σύνδεση μεταξύ του υπολογιστή και του ZYBO. Αφού εστιάσετε το παράθυρο, το ρομπότ θα πρέπει να είναι ελεγχόμενο χρησιμοποιώντας τα πλήκτρα βέλους στο πληκτρολόγιο. Πατήστε το κουμπί διαφυγής για να τερματίσετε τη συνεδρία και να αποσυνδεθείτε από το ρομπότ.
Το GUI θα επισημάνει τα πλήκτρα που πιέζονται και θα εμφανίσει την έξοδο του κινητήρα επάνω δεξιά. Ο μετρητής απόστασης στα αριστερά γεμίζει μια μπάρα κάθε 2 μέτρα έως το πολύ 10 μέτρα.
Βήμα 9: Βαθμονόμηση εύρους εύρους
Οι διακόπτες στο ZYBO μπορούν να χρησιμοποιηθούν για τη διαμόρφωση του ενσωματωμένου εύρους εύρους. Η ελάχιστη απόσταση ανίχνευσης d δίνεται ως συνάρτηση της εισόδου διακόπτη i:
d = 50i + 250
Η είσοδος μπορεί να ποικίλει μεταξύ 0 και 15 σε ακέραια βήματα. Αυτό μεταφράζεται σε απόσταση από 0,25 μέτρα έως 1 μέτρο. Στην ελάχιστη απόσταση, το πρώτο LED θα αρχίσει να αναβοσβήνει. Ο αριθμός των LED που είναι ενεργά είναι ανάλογος με την εγγύτητα του αντικειμένου.
Βήμα 10: Προσβασιμότητα
Αυτό το ρομπότ είναι πολύ εύκολα προσβάσιμο. Λόγω της απλότητας του ελέγχου, μπορεί να ελεγχθεί πλήρως με ένα μόνο δάχτυλο. Για να βελτιωθεί η προσβασιμότητα, θα μπορούσε να προστεθεί υποστήριξη για επιπλέον συσκευές εισόδου. Αυτό θα μπορούσε να επιτρέψει σε άτομα με ειδικές ανάγκες να ελέγχουν το ρομπότ με διαφορετικό μέρος του σώματός τους.
Συνιστάται:
Πώς: Εγκατάσταση Raspberry PI 4 Headless (VNC) Με Rpi-imager και εικόνες: 7 βήματα (με εικόνες)
Howto: Εγκατάσταση Raspberry PI 4 Headless (VNC) Με Rpi-imager και Εικόνες: Σκοπεύω να χρησιμοποιήσω αυτό το Rapsberry PI σε ένα σωρό διασκεδαστικά έργα στο ιστολόγιό μου. Μη διστάσετε να το ελέγξετε. Iθελα να επιστρέψω στη χρήση του Raspberry PI, αλλά δεν είχα πληκτρολόγιο ή ποντίκι στη νέα μου τοποθεσία. Είχε περάσει λίγος καιρός από τότε που έστησα ένα Raspberry
Πώς να αποσυναρμολογήσετε έναν υπολογιστή με εύκολα βήματα και εικόνες: 13 βήματα (με εικόνες)
Πώς να αποσυναρμολογήσετε έναν υπολογιστή με εύκολα βήματα και εικόνες: Αυτή είναι μια οδηγία σχετικά με τον τρόπο αποσυναρμολόγησης ενός υπολογιστή. Τα περισσότερα από τα βασικά στοιχεία είναι αρθρωτά και αφαιρούνται εύκολα. Ωστόσο, είναι σημαντικό να είστε οργανωμένοι σε αυτό. Αυτό θα σας βοηθήσει να αποφύγετε την απώλεια εξαρτημάτων και επίσης να κάνετε την επανασυναρμολόγηση να
Αποδώστε τρισδιάστατες εικόνες των PCB σας χρησιμοποιώντας Eagle3D και POV-Ray: 5 βήματα (με εικόνες)
Αποδώστε τρισδιάστατες εικόνες των PCB σας χρησιμοποιώντας Eagle3D και POV-Ray: Χρησιμοποιώντας Eagle3D και POV-Ray, μπορείτε να δημιουργήσετε ρεαλιστικές τρισδιάστατες αποδόσεις των PCB σας. Το Eagle3D είναι ένα σενάριο για EAGLE Layout Editor. Αυτό θα δημιουργήσει ένα αρχείο ανίχνευσης ακτίνων, το οποίο θα σταλεί στο POV-Ray, το οποίο με τη σειρά του θα βγει τελικά από το τελικό im
Κάμερα για εικόνες λήξης χρόνου που έγιναν εύκολα .: 22 βήματα (με εικόνες)
Camera for Time Lapse Pictures Made Easy: Έλεγχα ένα από τα άλλα Instructables σχετικά με την παραγωγή ταινιών time lapse. Καλύπτει αρκετά καλά το κομμάτι της ταινίας. Μίλησε για το δωρεάν λογισμικό που μπορείτε να κατεβάσετε για να κάνετε ταινίες. Είπα στον εαυτό μου, νομίζω ότι θα δω αν μπορώ
Πώς να εικονογραφήσετε εικόνες - Εύκολα: 3 βήματα (με εικόνες)
Πώς να Pixellate Εικόνες - Εύκολα: Αυτή η γρήγορη είναι μια τεχνική για τη χρήση λογοκρισίας pixel για τη διατήρηση της ανωνυμίας, της αξιοπρέπειας κ.λπ. σε ψηφιακές εικόνες. Χρειάζεστε μόνο έναν απλό επεξεργαστή εικόνας όπως το MS Paint, χρησιμοποιώ το MS Paint. Για εναλλακτική λύση, δείτε αυτό Διδάξιμο