Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Χτίζοντας το κύκλωμά σας:
- Βήμα 2: Προγραμματισμός του Arduino σας:
- Βήμα 3: Προγραμματισμός Python σε γραφήματα δεδομένων από το Arduino:
- Βήμα 4: Τελικό πρόγραμμα για τον έλεγχο της έντασης του φωτός σε ένα δωμάτιο
- Βήμα 5: Αποτέλεσμα:
Βίντεο: Σχεδίαση έντασης φωτός με χρήση της Arduino και της Python's Arduino Master Library: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Το Arduino είναι ένα οικονομικό αλλά εξαιρετικά αποδοτικό και λειτουργικό εργαλείο, ο προγραμματισμός του στο Embedded C καθιστά τη διαδικασία της δουλειάς κουραστική! Η μονάδα Arduino_Master της Python απλοποιεί αυτό και μας επιτρέπει να εκτελούμε υπολογισμούς, να αφαιρούμε τιμές σκουπιδιών και να σχεδιάζουμε ένα γράφημα για οπτική αναπαράσταση δεδομένων.
Εάν δεν γνωρίζετε ακόμη για αυτήν την ενότητα, εγκαταστήστε την χρησιμοποιώντας την εντολή pip install Arduino_Master
Μην ανησυχείτε εάν δεν γνωρίζετε πώς να χρησιμοποιήσετε αυτήν την ενότητα, επισκεφτείτε αυτόν τον σύνδεσμο => Arduino_Master
Ωστόσο, ο κωδικός για αυτό το έργο θα είναι πάντα διαθέσιμος σε αυτό το εκπαιδευτικό εγχειρίδιο.
Προμήθειες
Για αυτό το έργο, θα χρειαστείτε τα ακόλουθα:
- Ένα Arduino
- Μια αντίσταση εξαρτώμενη από το φως (LDR) και
- Python 3 εγκατεστημένο στον υπολογιστή σας.
Βήμα 1: Χτίζοντας το κύκλωμά σας:
Θα χρησιμοποιήσουμε την καρφίτσα A1 του Arduino για να λάβουμε δεδομένα εισόδου. Μπορείτε επίσης να χρησιμοποιήσετε τις καρφίτσες 5V και GND του Arduino αντί της μπαταρίας. Κάντε τη σύνδεση ως εξής:
- Συνδέστε το ένα άκρο του LDR στον θετικό ακροδέκτη μιας μπαταρίας 5V ή στον ακροδέκτη 5V του Arduino.
- Συνδέστε το άλλο άκρο του LDR παράλληλα με τον ακροδέκτη A1 και τον αρνητικό ακροδέκτη της μπαταρίας ή τον ακροδέκτη GND του Arduino.
- Χρησιμοποιήστε μια αντίσταση για να βεβαιωθείτε ότι όλο το ρεύμα δεν ρέει στο GND, πράγμα που θα σας είχε ως αποτέλεσμα να μην λάβετε ένα αρκετά ισχυρό σήμα για να αισθανθείτε στον τερματικό Α1 του Arduino. (Χρησιμοποιώ αντίσταση 10k ohm).
Βήμα 2: Προγραμματισμός του Arduino σας:
Η μονάδα Arduino_Master χρησιμοποιεί Serial Monitor του Arduino για την αποστολή και λήψη δεδομένων. Το πλεονέκτημα της χρήσης αυτής της ενότητας είναι ότι, μόλις προγραμματίσετε το Arduino, μπορείτε να αλλάξετε το πρόγραμμα python μόνο για διαφορετικά έργα, καθώς ο προγραμματισμός σε python είναι συγκριτικά ευκολότερος!
Κώδικας:
// Η μεταβλητή LDR_1 χρησιμοποιείται για να δηλώσει την ακίδα A1 του Arduino.
int LDR_1 = A1;
// Τα δεδομένα που λαμβάνονται από το A1 θα αποθηκευτούν στο LDR_Value_1.
float LDR_Value_1;
Εισαγωγή συμβολοσειράς.
void setup ()
{pinMode (LDR_1, INPUT); // Το LDR_1 έχει οριστεί ως ακίδα εισόδου. Serial.begin (9600); // Το baudrate επικοινωνίας έχει οριστεί σε 9600.}
κενός βρόχος ()
{if (Serial.available ()> 0) // εάν υπάρχει διαθέσιμη είσοδος στη σειριακή οθόνη, προχωρήστε. {input = Serial.readString (); // Διαβάστε την είσοδο ως συμβολοσειρά. εάν (εισαγωγή == "ΔΕΔΟΜΕΝΑ") {LDR_Value_1 = analogRead (LDR_1) * (5.0 / 1023.0); // (5 /1023) είναι ο συντελεστής μετατροπής για να λάβετε τιμή σε Volt. Serial.println (LDR_Value_1); // Εάν η είσοδος είναι ίση με "DATA", τότε διαβάστε την είσοδο από το LDR_1 και εκτυπώστε τη στη σειριακή οθόνη. } else int i = 0; // εάν η είσοδος δεν είναι ίση με "DATA", μην κάνετε τίποτα! }
}
Βήμα 3: Προγραμματισμός Python σε γραφήματα δεδομένων από το Arduino:
Κάθε LDR θα έχει τις δικές του τιμές αντίστασης και πρέπει να θυμόμαστε ότι το όχι στα ηλεκτρονικά εξαρτήματα είναι ποτέ ακριβώς πανομοιότυπα σε λειτουργία. Έτσι πρώτα πρέπει να βρούμε την τάση σε διαφορετικές εντάσεις φωτός.
Ανεβάστε το ακόλουθο πρόγραμμα στο Python IDE και εκτελέστε το:
Κάντε αυτό για διαφορετικές εντάσεις φωτός και χρησιμοποιώντας το γράφημα βγάλτε ένα συμπέρασμα πείτε για παράδειγμα εάν η ένταση είναι μικρότερη από 1, το δωμάτιο είναι πολύ σκοτεινό. Για ένταση μεταξύ 1 και 2, το δωμάτιο είναι αρκετά σκοτεινό. Για ένταση μεγαλύτερη από 2, το φως ανάβει.
# Εισαγωγή μονάδας Arduino_Master
από εισαγωγή Arduino_Master *
# συλλογή δεδομένων
δεδομένα = φίλτρο (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 30), expect_type = 'num', limit = [0, 5])
Το όριο # έχει οριστεί σε 5, επειδή χρησιμοποιούμε μπαταρία 5V.
# Σχεδιάζοντας τις τιμές
Γράφημα (δεδομένα, stl = 'dark_background', label = 'Ένταση φωτός')
Βήμα 4: Τελικό πρόγραμμα για τον έλεγχο της έντασης του φωτός σε ένα δωμάτιο
Αφού καταλήξετε σε ένα συμπέρασμα από τα δεδομένα που πήρατε, ανεβάστε το παρακάτω πρόγραμμα και φροντίστε να αλλάξετε τα όρια σύμφωνα με το συμπέρασμά σας.
# Εισαγωγή μονάδας Arduino_Master
από Arduino_Master import # συλλογή δεδομένων = φίλτρο (ardata (8, squeeze = False, dynamic = True, msg = "DATA", lines = 50), expect_type = 'num', limit = [0, 5]) #classification data με βάση το συμπέρασμα info = για i στο εύρος (len (δεδομένα)): ένταση = δεδομένα εάν ένταση 1 και ένταση = 2: info.append ('Light ON') # Σχεδιάζοντας το γράφημα compGraph (δεδομένα, πληροφορίες, stl = 'dark_background', label1 = 'Ένταση φωτός', label2 = 'Κατάσταση')
Βήμα 5: Αποτέλεσμα:
Το πρόγραμμα θα διαρκέσει ένα ή δύο λεπτά για να εκτελεστεί αφού διαβάζετε 50 στιγμιαίες τιμές από το Arduino.
Εάν θέλετε να επιταχύνετε τη διαδικασία, δοκιμάστε να αλλάξετε την παράμετρο γραμμών της συνάρτησης ardata. Αλλά θυμηθείτε ότι όσο λιγότερες ήταν οι παρατηρήσεις, τόσο μικρότερη θα ήταν η ποιότητα των δεδομένων.
Σημείωση: Εάν το πλήρες γράφημα στην παραπάνω εικόνα δεν είναι ορατό, ανατρέξτε στο γράφημα πάνω από την ενότητα Εισαγωγή.
Συνιστάται:
Πώς να κάνετε καταγραφή θερμοκρασίας και έντασης φωτός - Προσομοίωση Proteus - Φριζάρισμα - Liono Maker: 5 Βήματα
Πώς να κάνετε καταγραφή θερμοκρασίας και έντασης φωτός | Προσομοίωση Proteus | Φριζάρισμα | Liono Maker: Γεια, αυτό είναι το Liono Maker, αυτό είναι το επίσημο κανάλι μου στο YouTube. Αυτό είναι το κανάλι YouTube ανοιχτού κώδικα. Εδώ είναι ο σύνδεσμος: Liono Maker YouTube Channel Εδώ είναι ο σύνδεσμος βίντεο: Temp & Light Intensity LoggingΣε αυτό το σεμινάριο θα μάθουμε πώς να κάνουμε Temper
Μέτρηση έντασης φωτός με χρήση BH1715 και Raspberry Pi: 5 βήματα
Μέτρηση έντασης φωτός με χρήση BH1715 και Raspberry Pi: Χθες εργαζόμασταν σε οθόνες LCD και ενώ δουλεύαμε πάνω από αυτές συνειδητοποιήσαμε τη σημασία του υπολογισμού της έντασης του φωτός. Η ένταση του φωτός δεν είναι σημαντική μόνο στη φυσική περιοχή αυτού του κόσμου, αλλά έχει τον καλά αναφερόμενο ρόλο της στη βιολογία
Υπολογισμός έντασης φωτός με χρήση BH1715 και Arduino Nano: 5 βήματα
Υπολογισμός έντασης φωτός με χρήση BH1715 και Arduino Nano: Χθες δουλεύαμε σε οθόνες LCD και ενώ δουλεύαμε πάνω από αυτές συνειδητοποιήσαμε τη σημασία του υπολογισμού έντασης φωτός. Η ένταση του φωτός δεν είναι σημαντική μόνο στη φυσική περιοχή αυτού του κόσμου, αλλά έχει τον καλά αναφερόμενο ρόλο της στη βιολογία
Υπολογισμός έντασης φωτός με χρήση BH1715 και σωματιδίου φωτονίου: 5 βήματα
Υπολογισμός έντασης φωτός με χρήση BH1715 και σωματιδίου φωτονίου: Χθες δουλεύαμε σε οθόνες LCD και ενώ δουλεύαμε πάνω από αυτές συνειδητοποιήσαμε τη σημασία του υπολογισμού έντασης φωτός. Η ένταση του φωτός δεν είναι σημαντική μόνο στη φυσική περιοχή αυτού του κόσμου, αλλά έχει τον καλά αναφερόμενο ρόλο της στη βιολογία
Χρήση μεταβαλλόμενων ορίων έντασης της γκρίζας κλίμακας για την οπτικοποίηση και τον εντοπισμό ανωμαλιών στις εικόνες μαστογραφίας: 9 βήματα
Χρήση μεταβαλλόμενων ορίων έντασης γκρίζας κλίμακας για την οπτικοποίηση και τον εντοπισμό ανωμαλιών στις εικόνες μαστογραφίας: Ο σκοπός αυτού του έργου ήταν να εντοπίσει και να χρησιμοποιήσει μια παράμετρο για την επεξεργασία εικόνων μαστογραφίας γκρι σε διάφορες κατηγορίες ιστών υποβάθρου: Λιπαρά, Λιπαρά αδενικά, & Πυκνό ιστό. Αυτή η ταξινόμηση χρησιμοποιείται όταν οι ακτινολόγοι αναλύουν τη μαμά