Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Αν είστε κάτι σαν εμένα, βρίσκεστε να αλλάζετε αρκετά συχνά την ένταση του υπολογιστή σας. Ορισμένα βίντεο είναι πιο δυνατά από άλλα, μερικές φορές θέλετε να μειωθεί η ένταση στον υπολογιστή σας ενώ ακούτε podcast ή μουσική και ίσως χρειαστεί να χαμηλώσετε γρήγορα την ένταση εάν λάβετε ένα τηλεφώνημα. Εάν δεν έχετε ενσωματωμένα στοιχεία ελέγχου πολυμέσων στον υπολογιστή σας, τότε μπορείτε να μετατρέψετε έναν εκλεκτής ποιότητας περιστροφικό επιλογέα τηλεφώνου σε χειριστήριο έντασης για τον υπολογιστή σας με Windows.
Αυτή η συσκευή ελέγχου έντασης συνδέεται στον υπολογιστή σας μέσω USB και θα ρυθμίσει αυτόματα την ένταση του κάθε ανοιχτού προγράμματος σε οποιονδήποτε αριθμό καλέσετε. Εάν καλέσετε ένα "2", η ένταση θα ρυθμιστεί στο 20%. Καλέστε ένα "8" και θα οριστεί στο 80%. Η κλήση "0" το ορίζει στο 0% και λειτουργεί σαν σίγαση. Είναι γρήγορο, ικανοποιητικό και πιο διασκεδαστικό από το να κάνετε κλικ στο κουμπί ελέγχου έντασης στη γραμμή εργασιών σας.
Προμήθειες
- Περιστροφικό τηλέφωνο Vintage Bell Systems Trimline
- Arduino Nano
- Μ3 με σπείρωμα ένθετα θερμικής ρύθμισης
- Βίδες μηχανής M3
- Αντιστάσεις (470 ohm και 10k ohm)
- Σύρμα
- Πρόσβαση σε τρισδιάστατο εκτυπωτή
Βήμα 1: Θεωρία Λειτουργίας
Τα περιστροφικά τηλέφωνα, συμπεριλαμβανομένου του Bell Systems Trimline που χρησιμοποιείται σε αυτό το έργο, είναι καθαρά αναλογικές ηλεκτρομηχανικές συσκευές. Όταν περιστρέφετε τον επιλογέα, ένα ελατήριο περιστρέφει τον επιλογέα πίσω στην αρχική του θέση. Καθώς περνάει κάθε αριθμό ένας διακόπτης αποσυνδέεται (ή συνδέεται) για μια σύντομη στιγμή, δημιουργώντας έναν παλμό. Το μόνο που έχουμε να κάνουμε είναι να μετρήσουμε αυτούς τους παλμούς για να καθορίσουμε τον αριθμό που κλήθηκε.
Το guidomax έχει ένα φανταστικό σεμινάριο Instructables που αναλύει λεπτομερώς πώς λειτουργεί αυτό, και μπορείτε να βρείτε περισσότερες λεπτομέρειες εκεί.
Για αυτό το έργο, χρησιμοποιούμε το Arduino Nano για να μετρήσουμε τους παλμούς. Το Arduino στέλνει τον αριθμό στον υπολογιστή μέσω της σειριακής σύνδεσης. Έγραψα ένα βασικό σενάριο Python που εκτελείται στο παρασκήνιο και παρακολουθεί τη σειριακή σύνδεση. Όταν λαμβάνει bits, παίρνει τον αριθμό και χρησιμοποιεί τη βιβλιοθήκη Python Core Audio Windows για να ρυθμίσει την κατάλληλη ένταση.
Λόγω περιορισμών με τα Windows και τη συγκεκριμένη βιβλιοθήκη, το σενάριο δεν ορίζει τη συνολική ένταση του συστήματος (το κύριο ρυθμιστικό στη γραμμή εργασιών σας). Αντ 'αυτού, ορίζει την ατομική ένταση για κάθε πρόγραμμα που τρέχει αυτήν τη στιγμή. Το αποτέλεσμα είναι το ίδιο, εκτός από το ότι δεν μπορείτε να διατηρήσετε διαφορετικά επίπεδα σχετικής έντασης μεταξύ προγραμμάτων.
Βήμα 2: Αφαιρέστε την κλήση
Αυτό το βήμα είναι απλό: απλά αποσυναρμολογήστε το ακουστικό του τηλεφώνου Trimline για να αφαιρέσετε τον μηχανισμό κλήσης. Είναι ουσιαστικά μια αυτόνομη μονάδα, οπότε απλά πρέπει να την ξεβιδώσετε από το ακουστικό.
Επέλεξα το μοντέλο Trimline για αυτό το έργο, επειδή αυτή η μονάδα κλήσης είναι πιο συμπαγής από αυτές που θα βρείτε στα περισσότερα άλλα περιστροφικά τηλέφωνα.
Εάν του δώσετε μερικές δοκιμαστικές περιστροφές, θα πρέπει να ακούσετε τον διακόπτη να κάνει κλικ καθώς επιστρέφει στην αρχική του θέση.
Βήμα 3: Εκτυπώστε το περίβλημα
Χρησιμοποιήστε τα δύο παρεχόμενα αρχεία STL για να εκτυπώσετε τα μέρη του περιβλήματος. Μπορείτε να χρησιμοποιήσετε οποιοδήποτε υλικό νημάτων προτιμάτε (χρησιμοποίησα PLA). Οι συγκεκριμένες ρυθμίσεις που χρησιμοποιείτε δεν είναι τόσο σημαντικές, αλλά σας συνιστούσα να χρησιμοποιείτε υποστηρίξεις για το τμήμα "Rotary_Top". Μπορείτε να εκτυπώσετε αυτά τα δύο μέρη ενώ εργάζεστε στο υπόλοιπο έργο.
Βήμα 4: Προγραμματίστε το Arduino σας
Ο κώδικας που θα ανεβάσετε στο Arduino Nano έχει ληφθεί απευθείας από το σεμινάριο του guidomax, αφού λειτουργεί τέλεια για αυτό το έργο:
int needToPrint = 0; int count; int σε = 2;
int lastState = LOW;
int trueState = LOW;
long lastStateChangeTime = 0;
int καθαρίζεται = 0;
// σταθερές
int dialHasFinishedRotatingAfterMs = 100;
int debounceDelay = 10;
void setup () {
Serial.begin (9600);
pinMode (in, INPUT); }
void loop () {
int ανάγνωση = digitalRead (σε);
εάν ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// ο επιλογέας δεν καλείται ή μόλις έχει τελειώσει.
if (needToPrint) {// αν μόλις τελείωσε η κλήση, πρέπει να στείλουμε τον αριθμό κάτω από τη σειρά σειριακής // και να επαναφέρουμε τον αριθμό. Τροποποιούμε την καταμέτρηση κατά 10 γιατί το '0' θα στείλει 10 παλμούς.
Serial.print (count % 10, DEC);
needToPrint = 0;
μετρά = 0;
διαγράφηκε = 0; }}
εάν (ανάγνωση! = lastState) {lastStateChangeTime = millis ();
}
εάν ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - αυτό συμβαίνει μόλις σταθεροποιηθεί
εάν (ανάγνωση! = trueState) {// αυτό σημαίνει ότι ο διακόπτης είτε έχει μόλις περάσει από κλειστό-> ανοιχτό είτε αντίστροφα. trueState = ανάγνωση; εάν (trueState == Υ HIGHΗΛΗ) {// αυξήστε τον αριθμό των παλμών εάν έχει αυξηθεί.
μετρά ++;
needToPrint = 1; // θα πρέπει να εκτυπώσουμε αυτόν τον αριθμό (μόλις τελειώσει η περιστροφή του επιλογέα)
}
}
}
lastState = ανάγνωση; }
Βήμα 5: Συνδέστε τα πάντα
Η καλωδίωση για αυτό το έργο είναι πραγματικά απλή. Η μονάδα κλήσης πρέπει να έχει δύο εξαγωνικούς στύλους στο πίσω μέρος με βίδες. Αυτές είναι οι συνδέσεις διακόπτη. Η πολικότητα δεν έχει σημασία.
Σημείωση: Αγνοήστε τα χρώματα των καλωδίων μου στις φωτογραφίες. Ανακάτεψα έδαφος και 5V, οπότε αυτά αντιστρέφονται.
Συνδέστε ένα καλώδιο από το Post A (GND) και συνδέστε το με έναν πείρο γείωσης στο Arduino Nano σας. Πάρτε ένα δεύτερο σύρμα και κολλήστε το και ένα τρίτο σύρμα στη μία πλευρά της αντίστασης 470 ohm. Το δεύτερο καλώδιο θα μεταβεί στη θέση B (+) στο καντράν. Το τρίτο σύρμα θα κολληθεί στη μία πλευρά της αντίστασης 10k ohm. Πάρτε ένα τέταρτο σύρμα και κολλήστε το από την άλλη πλευρά της αντίστασης 470 ohm στο Pin 2 στο Arduino Nano. Τέλος, ένα πέμπτο καλώδιο θα πρέπει να συνδέσει την άλλη πλευρά της αντίστασης 10k ohm με τον πείρο 5V στο Arduino Nano.
Χρησιμοποιούμε τις αντιστάσεις και τον πείρο 5V για να τραβήξουμε τον πείρο ψηλά όταν ο διακόπτης είναι ανοιχτός (όπως συμβαίνει σε κάθε "παλμό").
Βήμα 6: Συναρμολόγηση
Θα πρέπει να παρατηρήσετε ότι το τμήμα Rotary_Top του περιβλήματος έχει έξι μικρές οπές. Αυτά είναι για τα ένθετά σας με θερμορυθμισμένα ένθετα. Τα τρία πρώτα (στην κάτω πλευρά της επάνω επιφάνειας) πρέπει να τοποθετήσουν τον περιστροφικό επιλογέα. Τα τρία κάτω είναι για να βιδώσετε το Rotary_Base στο Rotary_Top.
Τα ένθετα θερμότητας μπορούν να θερμανθούν με ένα συγκολλητικό σίδερο (ή ένα ειδικό εργαλείο) και στη συνέχεια να ωθηθούν στις οπές. Η θερμότητα θα λιώσει το πλαστικό, το οποίο θα σκληρύνει μετά την απομάκρυνση της θερμότητας για να συγκρατούν τα ένθετα με ασφάλεια στη θέση τους. Η χρήση ενθέτων με θερμική αντίσταση είναι πολύ πιο ευχάριστη από το να βιδώνετε βίδες απευθείας στο πλαστικό.
Τοποθετήστε τα έξι ένθετα θερμικής ρύθμισης. Στη συνέχεια, χρησιμοποιήστε μερικές μικρές βίδες μηχανής M3 (περίπου 10 mm) για να τοποθετήσετε το καντράν. Σημειώστε την εγκοπή στην αποκοπή, όπου θα πάει το μεταλλικό δάχτυλο. Στη συνέχεια, τοποθετήστε προσεκτικά το Arduino Nano-με καλώδιο USB συνδεδεμένο-μέσα στο περίβλημα (είναι χαλαρό, δεν έχει τοποθετηθεί) και βιδώστε τη βάση στη θέση του.
Πιθανότατα θα θέλετε να χρησιμοποιήσετε ταινία διπλής όψης ή λωρίδες εντολών 3M για να τοποθετήσετε το περίβλημα στο γραφείο σας, ώστε να μην μετακινείται όταν περιστρέφετε τον επιλογέα.
Βήμα 7: Ρυθμίστε το Python Script
Αρχικά, βεβαιωθείτε ότι έχετε εγκαταστήσει την Python (χρησιμοποιήστε την Python 3, καθώς η Python 2 καταργείται σταδιακά).
Στη συνέχεια, θα χρειαστεί να εγκαταστήσετε τις δύο απαιτούμενες βιβλιοθήκες: PyCAW και PySerial.
Χρήση:
"pip install pycaw" και "pip install pyserial" (από το παράθυρο Python ή το Windows Powershell)
Στη συνέχεια, ελέγξτε για να δείτε σε ποια θύρα είναι συνδεδεμένο το Arduino Nano. Μπορείτε να το ελέγξετε μέσα από το Arduino IDE. Βεβαιωθείτε ότι έχετε επιλέξει αυτήν τη θύρα και, στη συνέχεια, ανοίξτε τη σειριακή οθόνη. Βεβαιωθείτε ότι ο ρυθμός baud έχει οριστεί σε 9600 και καλέστε μερικούς αριθμούς για να βεβαιωθείτε ότι εμφανίζονται στη σειριακή οθόνη.
Αν το κάνουν, επεξεργαστείτε τον κωδικό "rotary.py" με τον αριθμό της θύρας σας. Εάν εκτελείτε το σενάριο, τότε θα πρέπει τώρα να μπορείτε να αλλάξετε την ένταση ήχου καλώντας έναν αριθμό.
Το τελευταίο βήμα είναι να ρυθμίσετε το σενάριο να εκτελείται αυτόματα στο παρασκήνιο κατά την εκκίνηση του υπολογιστή σας.
Για να το κάνετε αυτό, αλλάξτε το "rotary.py" σε "rotary.pyw" το οποίο θα του επιτρέψει να τρέξει στο παρασκήνιο. Στη συνέχεια, τοποθετήστε το σενάριο στον ακόλουθο φάκελο: C: / Users / current_user / AppData / Roaming / Microsoft / Windows / Start Menu / Programs / Startup
Προφανώς θα πρέπει να αλλάξετε το "current_user" στο πραγματικό όνομα φακέλου χρήστη.
Αυτό είναι! Κάθε φορά που ξεκινά ο υπολογιστής σας, αυτό το σενάριο Python θα αρχίσει να εκτελείται. Θα παρακολουθεί τη σειριακή σύνδεση από το Arduino και θα ρυθμίσει όλους τους τόμους του προγράμματος σε ό, τι καλέσετε!
Επόμενοι στο Διαγωνισμό Arduino 2020