Πώς να προγραμματίσετε και να ελέγξετε ένα Arduino με Python

Πώς να προγραμματίσετε και να ελέγξετε ένα Arduino με Python

Η Python έχει ξεσηκώσει τον κόσμο της κωδικοποίησης. Παράλληλα με την άνοδο αυτής της νέας γλώσσας, η ηλεκτρονική σκηνή DIY έχει επίσης ανθήσει. Πίνακες ανάπτυξης και υπολογιστές ενός πίνακα από εταιρείες όπως Arduino και το Raspberry Pi άλλαξαν τον τρόπο με τον οποίο οι άνθρωποι δημιουργούν οικιακά ηλεκτρονικά είδη. Δεν θα ήταν φοβερό αν μπορούσατε να προγραμματίσετε ένα Arduino με Python;





γιατί ο υπολογιστής μου χρησιμοποιεί 100 δίσκους

Δεν υπάρχει καλύτερο συναίσθημα από το να συνδυάζεις δύο υπέροχα πράγματα. Δυστυχώς, είναι αδύνατο να προγραμματίσετε απευθείας ένα Arduino με Python, καθώς οι πίνακες δεν έχουν επιλογή για ενσωματωμένη ερμηνεία της γλώσσας. Αυτό που είναι δυνατό, ωστόσο, είναι ο άμεσος έλεγχος μέσω USB χρησιμοποιώντας ένα πρόγραμμα Python.





Αυτό το άρθρο θα σας δείξει πώς να ρυθμίσετε ένα Arduino UNO (αν και οποιοσδήποτε συμβατός πίνακας Arduino μπορεί να λειτουργήσει εδώ) για προγραμματισμό και έλεγχο από τη γραμμή εντολών χρησιμοποιώντας προγράμματα Python. Αυτό το σεμινάριο είναι γραμμένο για Windows 10, αλλά λειτουργεί επίσης για Mac και Linux. Θα μπορούσατε ακόμη και να χρησιμοποιήσετε αυτήν τη ροή εργασίας για να ελέγξετε ένα Arduino απευθείας από ένα Raspberry Pi για την απόλυτη διπλή εμπειρία DIY.





Ρύθμιση του Arduino για Python

Για το σημερινό έργο θα χρησιμοποιήσουμε ένα Arduino Uno, μαζί με τη διεπαφή pyFirmata για την Python. Μπορείτε να χρησιμοποιήσετε σχεδόν οποιοδήποτε συμβατό με Arduino πίνακα για αυτό, αν και κατά τη στιγμή της γραφής μόνο τα Arduino Uno, Mega, Due και Nano υποστηρίζονται από τη διεπαφή pyFfirmata. Εάν είστε ήδη γκουρού Python, μπορείτε να προσθέσετε τη δική σας υποστήριξη στον πίνακα στο pyFirmata - φροντίστε να ενημερώσετε το GitHub, αν το κάνετε!

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



Συνδέστε τον πίνακα Arduino και ανοίξτε το IDE. Βεβαιωθείτε ότι έχετε επιλέξει τη σωστή πλακέτα και θύρα στο Εργαλεία μενού. Φορτώστε το StandardFirmata παράδειγμα σκίτσο και ανεβάστε το στον πίνακα. Αυτό θα σας επιτρέψει να ελέγξετε το Arduino απευθείας, εφόσον είναι συνδεδεμένο στον υπολογιστή μέσω USB. Με την προϋπόθεση ότι οι μεταφορτώσεις σκίτσων στον πίνακα σας χωρίς σφάλματα, είστε έτοιμοι να προχωρήσετε.

Python και έλεγχος γραμμής εντολών

Θα χρησιμοποιήσουμε το Python 3.4 για τον έλεγχο του Arduino, καθώς η ενότητα που θα εγκαταστήσετε το καθορίζει ως την πιο πρόσφατη συμβατή έκδοση. Οποιαδήποτε έκδοση πριν από αυτό θα πρέπει να λειτουργεί καλά, ενώ αργότερα έχουν αναφερθεί ότι λειτουργούν. Μπορείτε να κατεβάσετε το Python 3.4 για Windows 10 από το Python Software Foundation ιστοσελίδα. Εάν θέλετε να εκτελέσετε πολλαπλή έκδοση του Python, ο οδηγός μας για εικονικά περιβάλλοντα Python θα μπορεί να σας βοηθήσει.





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

Αν βλέπετε ήδη ΜΟΝΟΠΑΤΙ στη λίστα, κάντε κλικ στην επιλογή επεξεργασία και προσθέστε το δικό σας Πύθων και Python/Scripts Ευρετήριο. Εάν δεν έχετε μεταβλητή PATH, κάντε κλικ στο νέο και προσθέστε το. Σημειώστε ότι η Python εγκαταστάθηκε απευθείας στο Γ: εδώ. Εάν το εγκαταστήσατε αλλού, θα πρέπει να το τροποποιήσετε για να αντικατοπτρίζει αυτό. Κάντε κλικ στο κουμπί OK επαναφέρετε την αλυσίδα των παραθύρων και είστε σχεδόν έτοιμοι να ελέγξετε το Arduino σας με την Python!





Το μαγικό λίπος

Θα χρειαστείτε ένα τελευταίο κομμάτι του παζλ για να κάνετε την Python να μιλάει όμορφα με το Arduino μας. Αυτό έρχεται με τη μορφή μιας διεπαφής Python που ονομάζεται pyFirmata Το Αυτή η διεπαφή, που δημιουργήθηκε από τον Tino de Bruijn είναι διαθέσιμο για λήψη από το github, αν και μπορείτε να το εγκαταστήσετε απευθείας από τη γραμμή εντολών πληκτρολογώντας:

pip install pyfirmata

Όλα καλά, θα πρέπει να εγκατασταθεί και να μοιάζει με αυτό:

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

Κάνοντας να συμβεί

Τώρα όλα έχουν ρυθμιστεί και μπορείτε να δημιουργήσετε ένα πρόγραμμα Python για να το δοκιμάσει το Arduino σας. Ανοίξτε ένα IDE της επιλογής σας. Θα χρησιμοποιήσουμε Εκλειψη σήμερα, αλλά θα μπορούσατε εξίσου εύκολα να χρησιμοποιήσετε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου ή ακόμα και ένα IDE στο cloud.

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

Πρώτον, θα θελήσετε να εισαγάγετε ό, τι χρειάζεστε από το pyFirmata μονάδα, μαζί με την τυπική Python χρόνος μονάδα μέτρησης.

πώς να συνδυάσετε αεροπόδια με android
from pyfirmata import Arduino, util
import time

Τώρα θα θέλετε να ρυθμίσετε τον πίνακα Arduino. Αυτό το άρθρο υποθέτει ότι χρησιμοποιείτε ένα Arduino uno , αν και υποστηρίζονται αρκετές άλλες πλακέτες Arduino. Ανατρέξτε στο pyFirmata github για λεπτομέρειες σχετικά με την υποστήριξη του σκάφους.

Ελέγξτε ποια θύρα COM χρησιμοποιείτε στο Arduino IDE και εισαγάγετε την στον κωδικό σας ως μεταβλητή σανίδα Το

board = Arduino('COM3')

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

loopTimes = input('How many times would you like the LED to blink: ')
print('Blinking ' + loopTimes + ' times.')

Για να αναβοσβήνει η λυχνία LED τον κατάλληλο αριθμό φορών, χρησιμοποιήστε ένα για βρόχο Το Αν είστε new to Python , προσέξτε την εσοχή, καθώς σε αντίθεση με άλλες γλώσσες οι χώροι αποτελούν μέρος της σύνταξης. Σημειώστε ότι η ακίδα 13 είναι η ενσωματωμένη λυχνία LED για το Arduino Uno, θα πρέπει να την τροποποιήσετε εάν η πλακέτα σας είναι διαφορετική.

for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)

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

Αποθηκεύστε το σενάριό σας και ανοίξτε το Γραμμή εντολών Το

Φώτα που αναβοσβήνουν και άλλες αποκαλύψεις

Όλα είναι έτοιμα να ξεκινήσουν, το μόνο που χρειάζεται να κάνετε είναι να μεταβείτε εκεί που βρίσκεται το σενάριο και να το εκτελέσετε. Κάντε το πληκτρολογώντας cd [διαδρομή προς τον κατάλογο του σεναρίου] και μετά πληκτρολογώντας python blink.py Το

Όλα καλά, το πρόγραμμά σας θα ξεκινήσει με μια μικρή καθυστέρηση καθώς το Arduino ξεκινά, σας ζητά έναν αριθμό και στη συνέχεια αναβοσβήνει πολλές φορές χρησιμοποιώντας το ενσωματωμένο LED.

Η έξοδος του προγράμματος πρέπει να μοιάζει με αυτό:

Μόλις πατήσετε enter μετά τον επιλεγμένο αριθμό αναλαμπών, το Arduino θα εκτελέσει τις παραγγελίες σας.

Μικρές Αρχές

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

Εάν χρησιμοποιείτε α Διακομιστή Linux στο σπίτι, αυτή η μέθοδος επικοινωνίας με τους πίνακες Arduino θα μπορούσε να επεκτείνει αυτόν τον διακομιστή σε ένα πλήρες σύστημα DIY Home Automation. Συνδυάζοντας σενάρια Python που ελέγχουν τον μικροελεγκτή με ένα κύκλωμα αυτοματισμού DIY, το κουτί αποθήκευσης NAS σας θα μπορούσε να αναλάβει ένα εντελώς νέο σύνολο χρήσιμων λειτουργιών.

πώς να καταλάβετε αν το κριό σας είναι κακό

Για να γίνει η απόλυτη εμπειρία DIY, γιατί όχι φτιάξτε το δικό σας NAS box και το χρησιμοποιείτε για να ελέγχετε επίσης τις συσκευές σας; Φανταστείτε πόσο ωραίο θα ήταν να πατήσετε το play στο διακομιστή Plex και να σβήσουν τα φώτα αυτόματα!

Ελέγχετε ήδη το Arduino χρησιμοποιώντας Python; Υπάρχουν εκπληκτικές λύσεις για τις οποίες δεν γνωρίζουμε ακόμα; Ενημερώστε μας στην παρακάτω ενότητα σχολίων!

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ 5 Συμβουλές για την υπερφόρτιση των μηχανών σας VirtualBox Linux

Έχετε κουραστεί από τις κακές επιδόσεις που προσφέρουν οι εικονικές μηχανές; Δείτε τι πρέπει να κάνετε για να αυξήσετε την απόδοση του VirtualBox.

Διαβάστε Επόμενο
Σχετικά θέματα
  • DIY
  • Προγραμματισμός
  • Arduino
  • Οικιακός αυτοματισμός
  • Πύθων
Σχετικά με τον Συγγραφέα Ο anαν Μπάκλεϊ(216 δημοσιευμένα άρθρα)

Ο Ian Buckley είναι ανεξάρτητος δημοσιογράφος, μουσικός, ερμηνευτής και παραγωγός βίντεο που ζει στο Βερολίνο της Γερμανίας. Όταν δεν γράφει ούτε είναι στη σκηνή, ασχολείται με ηλεκτρονικά ή κώδικα DIY με την ελπίδα να γίνει τρελός επιστήμονας.

Περισσότερα από τον Ian Buckley

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή