- Προαπαιτούμενα:
- Εγκατάσταση του VPython στον υπολογιστή σας:
- Προγραμματισμός VPython:
- Προετοιμασία του Arduino:
- Εργαζόμενος:
Στο προηγούμενο σεμινάριό μας μάθαμε πώς να εγκαταστήσουμε το python στο μηχάνημά μας και πώς να συνδέσουμε το Arduino με το python χρησιμοποιώντας ένα απλό έργο ελέγχου LED. Εάν είστε νέος, θα σας συνιστούσα να επιστρέψετε στο προηγούμενο σεμινάριο, καθώς αυτό το σεμινάριο είναι συνέχεια του ίδιου.
Ίσως έχετε ήδη αρχίσει να αναρωτιέστε γιατί θα χρειαζόμασταν python με τον Arduino εάν το μόνο που μπορούσε να κάνει είναι απλώς να επικοινωνεί μέσω σειριακής θύρας. Όμως, η Python είναι μια πολύ ισχυρή πλατφόρμα ανάπτυξης στην οποία μπορούν να ενσωματωθούν πολλές εκπληκτικές εφαρμογές στις οποίες μπορούν να ενσωματωθούν μηχανικές μάθηση, όραμα υπολογιστή και πολλά άλλα. Σε αυτό το σεμινάριο θα μάθουμε πώς μπορούμε να δημιουργήσουμε μια μικρή γραφική διεπαφή χρησιμοποιώντας το Python. Για να το κάνουμε αυτό, θα χρειαστούμε μια ενότητα που ονομάζεται Vpython. Το παρακάτω σεμινάριο ισχύει μόνο για χρήστες παραθύρων, καθώς για χρήστες Mac ή Linux, η διαδικασία είναι διαφορετική.
Στο τέλος αυτού του σεμιναρίου θα μάθουμε πώς μπορούμε να δημιουργήσουμε απλό GUI χρησιμοποιώντας το Python. Θα κάνουμε ένα μικρό κινούμενο σχέδιο που θα ανταποκρίνεται στην τιμή του αισθητήρα υπερήχων που είναι συνδεδεμένος στο Arduino. Αυτή η εφαρμογή παρακολουθεί το αντικείμενο χρησιμοποιώντας αισθητήρα υπερήχων και το εμφανίζει σε μορφή γραφικών σε υπολογιστή χρησιμοποιώντας το VPython. Καθώς μετακινούμε το αντικείμενο, ο αισθητήρας υπερήχων ανιχνεύει την απόσταση και στέλνει αυτές τις πληροφορίες στο πρόγραμμα Python χρησιμοποιώντας το Arduino και θα μετακινήσει το αντικείμενο και στον υπολογιστή. Ακούγεται ενδιαφέρον, σωστά! Ας ξεκινήσουμε λοιπόν…
Προαπαιτούμενα:
- Arduino (Οποιαδήποτε έκδοση)
- Αισθητήρας υπερήχων HC-SR04
- Σύνδεση καλωδίων
- Υπολογιστής με Python
- Γνώση για το προηγούμενο σεμινάριο
Εγκατάσταση του VPython στον υπολογιστή σας:
Στο προηγούμενο σεμινάριό μας έχουμε ήδη μάθει πώς να εγκαταστήσουμε το python στο μηχάνημά σας και πώς να το μετακινήσουμε και να δημιουργήσουμε ένα απλό πρόγραμμα με το Arduino. Τώρα έχουμε εγκαταστήσει το Visual Python (VPython) πάνω από αυτό, έτσι ώστε να μπορούμε να δημιουργήσουμε δροσερά γραφικά χρησιμοποιώντας το Python για Arduino. Για τα απλά βήματα παρακάτω για να ξεκινήσετε με το VPython
Βήμα 1. Βεβαιωθείτε ότι το Python είναι ήδη εγκατεστημένο σύμφωνα με τις προηγούμενες οδηγίες φροντιστηρίου.
Βήμα 2. Κάντε κλικ στο VPython για να κατεβάσετε το αρχείο exe για Visual Python. Μην επιλέξετε να εγκαταστήσετε μια έκδοση 64-bit ακόμη και αν το μηχάνημά σας λειτουργεί σε 64-bit. Απλώς ακολουθήστε τον παρεχόμενο σύνδεσμο.
Βήμα 3. Ξεκινήστε το αρχείο exe και ακολουθήστε τη ρύθμιση. Μην αλλάξετε την προεπιλεγμένη διαδρομή καταλόγου και βεβαιωθείτε ότι έχετε επιλέξει "πλήρη εγκατάσταση".
Βήμα 4. Μόλις εγκατασταθεί, θα πρέπει να βρείτε μια νέα εφαρμογή με το όνομα "VIDLE (VPython)" στην επιφάνεια εργασίας ή στον πίνακα εφαρμογών, όπως φαίνεται παρακάτω.
Βήμα 5. Ξεκινήστε την εφαρμογή και θα πρέπει να λάβετε ένα παράθυρο όπως φαίνεται παρακάτω.
Βήμα 6. Αυτό είναι το παράθυρο στο οποίο θα πληκτρολογούμε το πρόγραμμα για το VPython. Αλλά, προς το παρόν ας ελέγξουμε εάν η Vpython λειτουργεί ανοίγοντας ένα παράδειγμα προγράμματος. Για να το κάνετε αυτό επιλέξτε Αρχείο-> Άνοιγμα-> Αναπήδηση
Βήμα 7. Θα πρέπει να ανοίξετε ένα παράδειγμα προγράμματος. Δοκιμάστε να ξεκινήσετε το πρόγραμμα χρησιμοποιώντας το Run -> Run Module . Εάν όλα λειτουργούν όπως αναμένεται, θα πρέπει να εμφανιστεί η ακόλουθη οθόνη
Θα πρέπει να δείτε το παράθυρο της Shell (αριστερά) με δύο >>> που να δείχνουν επιτυχημένη συλλογή και το πραγματικό παράθυρο (μπροστά) που δείχνει μια μπάλα να αναπηδά.
Βήμα 8. Μπορείτε επίσης να δοκιμάσετε άλλα παραδείγματα προγραμμάτων για να ανακαλύψετε τη δύναμη του VPython, για παράδειγμα το παράδειγμα προγράμματος που ονομάζεται "ηλεκτρικός κινητήρας" θα σας εκπλήξει από την ακόλουθη οθόνη.
Βήμα 9. Αυτό σημαίνει ότι το VPython σας είναι έτοιμο για χρήση και μπορείτε να μεταβείτε στο θέμα « Προγραμματισμός του Vpython ».
Βήμα 10. Διαφορετικά, αν είστε σαν ένας από τους πολλούς που παίρνουν "Numpy Error" , δεν χάνετε την ελπίδα γιατί θα επιλύσουμε αυτό το ζήτημα στα επόμενα βήματα
Βήμα 11. Ανοίξτε τον υπολογιστή μου -> C drive -> Python 27 -> Scripts -> local.bat . Αυτό θα ξεκινήσει μια γραμμή εντολών όπως φαίνεται παρακάτω
Βήμα 12. Τώρα πληκτρολογήστε "pip install --upgrade numpy" και πατήστε enter. Η νέα έκδοση του Numpy πρέπει να εγκατασταθεί στο μηχάνημά σας. Ίσως χρειαστεί να περιμένετε για κάποιο χρονικό διάστημα εάν η σύνδεσή σας στο Διαδίκτυο είναι αργή.
Βήμα 13. Μόλις τελειώσετε, μπορείτε να επιστρέψετε στο βήμα 4 και να δοκιμάσετε ένα παράδειγμα προγράμματος και θα πρέπει να μπορείτε να το κάνετε να λειτουργεί.
Προγραμματισμός VPython:
Στη συνέχεια αρχίζουμε να προγραμματίζουμε στο παράθυρο VPython. Σε αυτό το πρόγραμμα θα δημιουργήσουμε δύο ορθογώνια αντικείμενα 3D το ένα θα τοποθετηθεί στο κέντρο της οθόνης με αναφορά στον στατικό αισθητήρα υπερήχων και ο άλλος θα βρίσκεται σε μια δυναμική τοποθεσία με βάση την απόσταση μεταξύ του αισθητήρα των ΗΠΑ και του αντικειμένου (χαρτί).
Ο πλήρης κωδικός Python βρίσκεται στο τέλος αυτής της σελίδας. Πιο κάτω, εξήγησα αυτόν τον κώδικα python χωρίζοντάς τα σε μικρά γελοία.
Η πρώτη γραμμή θα ήταν η εισαγωγή της οπτικής βιβλιοθήκης ώστε να μπορούμε να δημιουργήσουμε τρισδιάστατα αντικείμενα. Η παρακάτω γραμμή κάνει το ίδιο.
από οπτική εισαγωγή *
Θα πρέπει να είστε εξοικειωμένοι με τις επόμενες τέσσερις γραμμές, καθώς τις έχουμε χρησιμοποιήσει ήδη στο προηγούμενο σεμινάριό μας. Χρησιμοποιούνται για την εισαγωγή σειριακής και χρονολογικής βιβλιοθήκης και επίσης δημιουργούν μια σειριακή σύνδεση με το Arduino στο COM18 με 9600 ως baudrate
εισαγωγή σειριακού #Serial που εισάγεται για σειριακή επικοινωνία χρόνος εισαγωγής # Απαιτείται για χρήση καθυστερήσεων ArduinoSerial = serial.Serial ('com18', 9600) #Create Σειριακή θύρα αντικείμενο που ονομάζεται arduinoSerialData time.sleep (2) #wait για 2 δευτερόλεπτα για την επικοινωνία εδραιωθείτε
Τώρα, είναι καιρός να δημιουργήσετε αντικείμενα. Έχω δημιουργήσει δύο τρισδιάστατα ορθογώνια που ονομάζονται obj και wall. Το wallL είναι ένα στατικό τοίχωμα σε κυανό χρώμα τοποθετημένο στο κέντρο της οθόνης και το obj είναι το κινητό αντικείμενο σε λευκό χρώμα. Έχω επίσης τοποθετήσει ένα κείμενο "αισθητήρας ΗΠΑ" κοντά στο αντικείμενο τοίχου.
obj = κουτί (θέση = (- 5,0,0), μέγεθος = (0,1,4,4), χρώμα = χρώμα. λευκό) τοίχοL = κουτί (θέση = (- 1,0,0), μέγεθος = (0,2, 12,12), color = color.cyan) κείμενο (κείμενο = «αισθητήρας ΗΠΑ», άξονας = (0,1,0), pos = (- 2, -6,0), βάθος = -0,3, χρώμα = χρώμα. κυανό)
Είμαι βέβαιος ότι οι παραπάνω τρεις γραμμές θα εμφανίζονταν ως Ελληνικά και Λατινικά για τους περισσότερους αναγνώστες για πρώτη φορά, αλλά με τον καιρό θα μπορούσατε να το καταλάβετε. Όλα όσα αναφέρονται μέσα σε παρένθεση είναι (x, y, z) συντεταγμένες. Και αυτές οι συντεταγμένες είναι πολύ παρόμοιες με αυτές που βρίσκουμε στην τάξη γεωμετρίας του γυμνασίου όπως φαίνεται παρακάτω
Τώρα, τα γραφικά και η σειριακή θύρα είναι έτοιμα, το μόνο που πρέπει να κάνουμε είναι να διαβάσουμε τα δεδομένα και να τοποθετήσουμε το "obj" (λευκό ορθογώνιο) σε ένα μέρος σύμφωνα με τα δεδομένα που προέρχονται από το Arduino. Αυτό μπορεί να γίνει με τις ακόλουθες γραμμές, όπου το obj.pos.x ελέγχει τη θέση συντεταγμένης X του αντικειμένου (λευκό ορθογώνιο).
t = int (ArduinoSerial.readline ()) # διαβάστε τα σειριακά δεδομένα και εκτυπώστε τα ως γραμμή t = t * 0,05 obj.pos.x = t
Προετοιμασία του Arduino:
Το σενάριο Python είναι έτοιμο να ακούσει τιμές από τη θύρα COM και να κινήσει ανάλογα τα γραφικά, αλλά το Arduino μας δεν είναι ακόμα έτοιμο. Πρώτα πρέπει να συνδέσουμε τον αισθητήρα υπερήχων στο Arduino σύμφωνα με το παρακάτω διάγραμμα κυκλώματος. Εάν είστε εντελώς νέος στους αισθητήρες των ΗΠΑ και στο Arduino, τότε θα πρέπει να επιστρέψετε στο φροντιστήριο Arduino & Ultrasonic Sensor Based Distance Measurement.
Στη συνέχεια, ανεβάστε το πρόγραμμα Arduino που δίνεται στο τέλος αυτής της σελίδας. Το πρόγραμμα εξηγείται μόνος του χρησιμοποιώντας γραμμές σχολίων. Γνωρίζουμε ότι ο αισθητήρας υπερήχων λειτουργεί υπολογίζοντας το χρόνο που χρειάζεται ο παλμός για να χτυπήσει ένα αντικείμενο και να επιστρέψει. Αυτή η τιμή υπολογίζεται χρησιμοποιώντας τη συνάρτηση PulseIn στο Arduino. Αργότερα ο χρόνος που απαιτείται μετατρέπεται σε απόσταση χρησιμοποιώντας την παρακάτω γραμμή.
dist = (timetaken / 2) / 2.91;
Εδώ η απόσταση υπολογίζεται σε χιλιοστά (mm).
Εργαζόμενος:
Η εργασία του έργου είναι απλή. Ξεκινήστε το πρόγραμμα Python και τοποθετήστε ένα αντικείμενο πριν από τον αισθητήρα των ΗΠΑ όπως φαίνεται παρακάτω:
Τώρα ξεκινήστε το πρόγραμμα python και θα πρέπει να μπορείτε να παρατηρήσετε την κίνηση του λευκού ορθογωνίου μαζί με το χαρτί σας, η απόσταση μεταξύ του χαρτιού και του αισθητήρα θα εμφανίζεται επίσης στο παράθυρο κελύφους όπως φαίνεται στην παρακάτω εικόνα.
Έτσι μπορούμε να παρακολουθούμε την κίνηση του αντικειμένου χρησιμοποιώντας τον αισθητήρα υπερήχων και το Python με το Arduino.
Ελπίζω να καταλάβατε το έργο και να απολαύσατε την κατασκευή του. Αυτό είναι μόνο ένα λεπτό βήμα προς τον πύθωνα, αλλά μπορείτε να δημιουργήσετε πολύ πιο δημιουργικά πράγματα χρησιμοποιώντας αυτό. Εάν έχετε ιδέα για το τι να φτιάξετε με αυτό, δημοσιεύστε τα στην ενότητα σχολίων και χρησιμοποιήστε τα φόρουμ για τεχνική βοήθεια. Τα λέμε με ένα άλλο ενδιαφέρον έργο python.