- Απαιτούμενα υλικά:
- Εγκατάσταση του Python στον υπολογιστή σας:
- Να πάρει το PySerial στο Python:
- Το πρώτο μας πρόγραμμα Arduino Python:
- Έλεγχος LED με Python και Arduino:
Το Arduino ήταν πάντα μια ισχυρή και εύχρηστη πλατφόρμα εκμάθησης / ανάπτυξης όταν πρόκειται για την ανάπτυξη υλικού ανοιχτού κώδικα. Στον σύγχρονο σύγχρονο κόσμο, κάθε υλικό τροφοδοτείται από μια γλώσσα προγραμματισμού γενικού σκοπού υψηλού επιπέδου για να είναι πιο αποτελεσματική και φιλική προς τον χρήστη. Μία τέτοια γλώσσα είναι η Python. Η Python είναι μια ερμηνευμένη, αντικειμενοστρεφής, γλώσσα προγραμματισμού υψηλού επιπέδου με δυναμική σημασιολογία με ενσωματωμένες δομές δεδομένων υψηλού επιπέδου, σε συνδυασμό με δυναμική πληκτρολόγηση και δυναμική δέσμευση, την καθιστούν πολύ ελκυστική για την ταχεία ανάπτυξη εφαρμογών.
Ο συνδυασμός της δύναμης του Arduino και της Python θα ανοίξει πόρτες σε πολλές δυνατότητες, καθώς το python έχει αυξημένη παραγωγικότητα με την ικανότητά του να αλληλεπιδρά με άλλες πλατφόρμες όπως το openCV, το Matlab κ.λπ. Έτσι, σε αυτό το σεμινάριο θα μάθουμε πώς μπορούμε να εγκαταστήσουμε το python στον υπολογιστή μας και πώς να το χρησιμοποιήσετε με το Arduino για εναλλαγή του ενσωματωμένου LED του Arduino.
Ας ξεκινήσουμε λοιπόν….
Απαιτούμενα υλικά:
- Arduino Uno (ή οποιοσδήποτε πίνακας Arduino)
- Υπολογιστής με σύνδεση στο Διαδίκτυο
Εγκατάσταση του Python στον υπολογιστή σας:
Προφανώς, το πρώτο βήμα σε αυτό το σεμινάριο θα ήταν η εγκατάσταση του Python στον υπολογιστή μας. Τα παρακάτω βήματα ισχύουν μόνο για χρήστες παραθύρων που χρησιμοποιούν λειτουργικό σύστημα 32 bit ή 64 bit. Η διαδικασία εγκατάστασης για MAC και Linux είναι διαφορετική.
- Κάντε κλικ στο 32-bit Python-2.7.9 και αυτό θα εγκαταστήσει το 32-bit Python IDLE στον υπολογιστή σας. Μην κάνετε λήψη της έκδοσης 64-bit ή ενημερωμένων εκδόσεων, καθώς δεν παρέχουν υποστήριξη για τις βιβλιοθήκες Arduino. Ακόμα κι αν ο υπολογιστής σας λειτουργεί σε 64-bit, μπορείτε να χρησιμοποιήσετε το ίδιο το Python 32-bit.
- Ανοίξτε το αρχείο exe που έχετε λάβει και ακολουθήστε τις οδηγίες. Μην αλλάξετε τον κατάλογο στον οποίο εγκαθίσταται ο πύθωνας. Θα είναι C: \ Python27 από προεπιλογή και θα το αφήσει ως έχει.
- Ενώ πραγματοποιείται η εγκατάσταση, ενδέχεται να λάβετε μια προειδοποίηση από το πρόγραμμα προστασίας από ιούς (εάν υπάρχει) σε αυτήν την περίπτωση κάντε κλικ στο allow.
Αυτό είναι !, Το python εγκαθίσταται με επιτυχία στον υπολογιστή μας. Μπορείτε να το επαληθεύσετε αναζητώντας το "Python IDLE" στο πλαίσιο αναζήτησης των Windows και ανοίγοντας το.
Όταν ανοίξετε θα πρέπει να εμφανιστεί η ακόλουθη οθόνη. Αυτό το παράθυρο ονομάζεται Python Shell και θα το ονομάσουμε ως " Python shell " από τώρα.
Αυτή η οθόνη ονομάζεται Python Shell. Μπορείτε απευθείας να κωδικοποιήσετε εδώ και να λάβετε την έξοδο στην ίδια οθόνη ή να δημιουργήσετε ένα νέο αρχείο και να γράψετε το πρόγραμμα εκεί και να επαληθεύσετε το πρόγραμμα εδώ. Αργότερα θα αναφερθούμε στις λεπτομέρειες της δημιουργίας ενός προγράμματος python, για τώρα ας ελέγξουμε εάν το python λειτουργεί.
Για να το κάνετε αυτό, απλώς πληκτρολογήστε " εκτύπωση (1 + 1) " και πατήστε enter. Θα πρέπει να δείτε το αποτέλεσμα να εκτυπώνεται όπως φαίνεται παρακάτω.
Να πάρει το PySerial στο Python:
Το επόμενο βήμα είναι η εγκατάσταση του pyserial. Το PySerial είναι μια ενότητα Python API που χρησιμοποιείται για την ανάγνωση και εγγραφή σειριακών δεδομένων στο Arduino ή σε οποιονδήποτε άλλο Μικροελεγκτή.
Κάντε κλικ στο Pyserial Windows για να κατεβάσετε το PySerial. Η προκύπτουσα λήψη θα είναι ένα αρχείο exe που μπορεί να εγκατασταθεί απευθείας. Μην αλλάζετε καμία ρύθμιση κατά την εγκατάσταση. Αφήστε το στον προεπιλεγμένο κατάλογο και τις προεπιλεγμένες ρυθμίσεις.
Τώρα, ας ελέγξουμε εάν το PySerial έχει εγκατασταθεί σωστά. Για να το κάνετε αυτό, ανοίξτε ξανά το Python Shell και πληκτρολογήστε
εισαγωγή σειράς . Εάν η βιβλιοθήκη εγκαταστάθηκε με επιτυχία, τότε δεν θα πρέπει να λάβετε μηνύματα σφάλματος όπως φαίνεται στην παρακάτω εικόνα. Εάν λάβετε τυχόν σφάλματα, δημοσιεύστε τα στην ενότητα σχολίων και θα προσπαθήσουμε να το επιλύσουμε.
Αυτό το σεμινάριο προϋποθέτει ότι είστε εξοικειωμένοι με το Arduino και έχετε εμπειρία στη μεταφόρτωση έργων στο Arduino. Ας πάμε λοιπόν απευθείας στο πρόγραμμα Python. Εάν είστε αρχάριος με το Arduino, ελέγξτε τα έργα Arduino και ξεκινήστε από το LED που αναβοσβήνει με το Arduino.
Το πρώτο μας πρόγραμμα Arduino Python:
Όπως ειπώθηκε προηγουμένως, θα ελέγξουμε το ενσωματωμένο LED Arduino board χρησιμοποιώντας το σενάριο Python. Ας ξεκινήσουμε με τον κωδικό Arduino.
Πρόγραμμα για το Arduino:
Το πλήρες πρόγραμμα για αυτό το σεμινάριο Arduino python δίνεται στο τέλος αυτής της σελίδας. Διαβάστε περισσότερα για να μάθετε πώς λειτουργεί.
Μέσα στη λειτουργία εγκατάστασης αρχικοποιούμε τη σειριακή επικοινωνία με ρυθμό baud 9600 και δηλώνουμε ότι θα χρησιμοποιήσουμε το ενσωματωμένο led ως έξοδο και θα το χαμηλώσουμε κατά την έναρξη του προγράμματος. Στείλαμε επίσης ένα μήνυμα καλωσορίσματος στην python μέσω σειριακής εκτύπωσης όπως φαίνεται παρακάτω:
άκυρη ρύθμιση () {Serial.begin (9600); // αρχικοποίηση σειριακού COM στο 9600 baudrate pinMode (LED_BUILTIN, OUTPUT). // ορίστε τον πείρο LED (13) ως έξοδο digitalWrite (LED_BUILTIN, LOW). Serial.println ("Γεια !, Είμαι ο Arduino"); }
Μέσα στη λειτουργία βρόχου , διαβάζουμε ό, τι τα δεδομένα εισέρχονται σειριακά και αντιστοιχίζουμε την τιμή στη μεταβλητή «δεδομένα». Τώρα με βάση την τιμή αυτής της μεταβλητής ("δεδομένα") αλλάζουμε το ενσωματωμένο led όπως φαίνεται παρακάτω.
void loop () {while (Serial.available ()) {data = Serial.read (); } εάν (data == '1') digitalWrite (LED_BUILTIN, HIGH); αλλιώς εάν (data == '0') digitalWrite (LED_BUILTIN, LOW); }
Πρόγραμμα για Python:
Το πλήρες πρόγραμμα python για αυτό το σεμινάριο δίνεται στο τέλος αυτής της σελίδας. Διαβάστε περισσότερα για να μάθετε πώς να γράφετε και να χρησιμοποιείτε το ίδιο.
- Ανοίξτε το κέλυφος Python (Python IDLE) και κάντε κλικ στο Αρχείο-> Νέο
- Αυτό θα ανοίξει ένα νέο αρχείο κειμένου όπου μπορείτε να πληκτρολογήσετε το πρόγραμμά σας.
- Πριν πληκτρολογήσουμε τίποτα ας αποθηκεύσουμε το αρχείο, από Ctrl + S. Πληκτρολογήστε οποιοδήποτε όνομα και κάντε κλικ στην αποθήκευση. Αυτό θα σας αποθηκεύσει αυτόματα το αρχείο στην επέκταση ".py".
- Τώρα, πληκτρολογήστε το πρόγραμμα ή επικολλήστε τον κωδικό python που δίνεται στο τέλος αυτής της σελίδας. Η εξήγηση για το ίδιο δίνεται παρακάτω και τελικά εκτελέστε το πρόγραμμα.
Στο πρόγραμμά μας, το πρώτο βήμα θα ήταν η εισαγωγή της σειριακής και της βιβλιοθήκης χρόνου. Η σειριακή βιβλιοθήκη όπως προαναφέρθηκε θα χρησιμοποιηθεί για την ανάγνωση και τη σύνταξη σειριακών δεδομένων και η βιβλιοθήκη χρόνου θα χρησιμοποιηθεί για τη δημιουργία καθυστερήσεων στο πρόγραμμά μας. Αυτές οι δύο βιβλιοθήκες μπορούν να εισαχθούν στο πρόγραμμά μας χρησιμοποιώντας τις ακόλουθες δύο γραμμές:
εισαγωγή σειριακού #Serial που εισάγεται για σειριακή επικοινωνία χρόνος εισαγωγής # Απαιτείται για χρήση καθυστερήσεων
Το επόμενο βήμα θα ήταν να αρχικοποιήσετε ένα σειριακό αντικείμενο χρησιμοποιώντας τη σειριακή βιβλιοθήκη μας. Σε αυτό το πρόγραμμα ονομάσαμε το σειριακό αντικείμενο μας ως "ArduinoSerial" . Σε αυτήν τη γραμμή πρέπει να αναφέρουμε το όνομα της θύρας COM με την οποία είναι συνδεδεμένο το Arduino και με ποιο ρυθμό baud λειτουργεί όπως φαίνεται παρακάτω.
ArduinoSerial = serial.Serial ('com18', 9600)
Σημείωση: Είναι πολύ σημαντικό να αναφέρετε το σωστό όνομα θύρας COM. Μπορεί να βρεθεί χρησιμοποιώντας τη Διαχείριση συσκευών στον υπολογιστή σας.
Μόλις αρχίσει το σειριακό αντικείμενο θα πρέπει να κρατήσουμε το πρόγραμμα για δύο δευτερόλεπτα για να δημιουργηθεί η σειριακή επικοινωνία. Αυτό μπορεί να γίνει χρησιμοποιώντας την παρακάτω γραμμή:
time.sleep (2)
Τώρα μπορούμε να διαβάσουμε ή να γράψουμε οτιδήποτε από / προς το Arduino Board μας.
Η ακόλουθη γραμμή θα διαβάσει οτιδήποτε προέρχεται από το Arduino και θα το εκτυπώσει στο παράθυρο του κελύφους
εκτύπωση ArduinoSerial.readline ()
Μπορείτε επίσης να αντιστοιχίσετε την τιμή σε μια μεταβλητή και να την χρησιμοποιήσετε για υπολογισμούς.
Η ακόλουθη γραμμή θα γράψει την τιμή της παραμέτρου στο Arduino Board.
ArduinoSerial.write ('1')
Αυτή η γραμμή θα γράψει «1» στο Arduino. Μπορείτε να στείλετε οτιδήποτε από τα δεκαδικά έως τα έγχορδα χρησιμοποιώντας την ίδια γραμμή.
Τώρα, επιστρέφοντας στο πρόγραμμά μας, μέσα στο άπειρο loop, έχουμε τις ακόλουθες γραμμές
var = raw_input () #get input from user print "you enter", var #print the input for confirm if (var == '1'): # if η τιμή είναι 1 ArduinoSerial.write ('1') #send 1 print ("LED ON ON") time.sleep (1) if (var == '0'): # if η τιμή είναι 0 ArduinoSerial.write ('0') #send 0 print ("LED OFF OFF") time. ύπνο (1)
Η γραμμή var = raw_input θα λάβει οποιαδήποτε τιμή που πληκτρολογείται στο σενάριο Shell και θα εκχωρήσει αυτήν την τιμή στη μεταβλητή var .
Αργότερα, εάν η τιμή είναι 1, θα εκτυπώσει σειριακά το «1» στο Arduino και αν το 0 θα εκτυπώσει σειριακά το «0» στο Arduino. Ο κωδικός στο Πρόγραμμα Arduino (που συζητήθηκε παραπάνω) θα αλλάξουμε το LED με βάση τη ληφθείσα τιμή.
Μόλις ολοκληρωθεί το πλήρες πρόγραμμα, το σενάριό σας θα πρέπει να φαίνεται κάπως έτσι παρακάτω
Τώρα κάντε κλικ στο Εκτέλεση -> Εκτέλεση λειτουργικής μονάδας ή πατήστε F5, αυτό μπορεί να σας ζητήσει να αποθηκεύσετε το πρόγραμμα και στη συνέχεια θα το ξεκινήσετε.
Έλεγχος LED με Python και Arduino:
Η εργασία αυτού του έργου είναι αρκετά απλή. Ανεβάστε το πρόγραμμα στο Arduino σας και βεβαιωθείτε ότι είναι συνδεδεμένο στην ίδια θύρα COM όπως αναφέρεται στο πρόγραμμα python. Στη συνέχεια, ξεκινήστε το πρόγραμμα Python όπως αναφέρεται παραπάνω.
Αυτό θα ξεκινήσει ένα σενάριο κελύφους python όπως φαίνεται παρακάτω. Το παράθυρο στα αριστερά είναι το παράθυρο κελύφους που δείχνει την έξοδο και το παράθυρο στα δεξιά είναι το σενάριο που δείχνει το πρόγραμμα.
Όπως μπορείτε να δείτε τη συμβολοσειρά "Γεια !, Είμαι ο Arduino" που εισάγεται στο πρόγραμμα Arduino λαμβάνεται από το Python και εμφανίζεται στο παράθυρο του κελύφους του.
Όταν το παράθυρο κελύφους ζητά να εισαγάγει τιμές, μπορούμε να εισαγάγουμε 0 ή 1. Εάν στείλουμε 1 το LED στο Arduino Board θα ανάψει και αν στείλουμε 0 το LED στο Arduino Board θα σβήσει. Εμφάνιση επιτυχούς σύνδεσης μεταξύ του προγράμματος Arduino και της Python.
Υπάρχουν δύο πρόγραμμα δίνονται παρακάτω, το ένα για να φορτωθούν και να τρέξει από το Arduino και το δεύτερο είναι να τρέχει από Python Shell στα Windows.
Ελπίζω να καταλάβατε το έργο και να μπορούσατε να το λειτουργήσετε. Εάν όχι, δημοσιεύστε το πρόβλημά σας στο παρακάτω σχόλιο και θα χαρώ να σας βοηθήσω. Στο επόμενο έργο μας θα μάθουμε τι άλλο μπορεί να γίνει δροσερό με τους Python και Arduino εξερευνώντας βαθιά σε άλλες μονάδες python όπως Vpython, gamepython κ.λπ. Μέχρι τότε μείνετε συντονισμένοι….