Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Wenn Sie wie ich sind, ändern Sie die Lautstärke Ihres Computers ziemlich oft. Einige Videos sind lauter als andere, manchmal möchten Sie die Lautstärke Ihres Computers stumm schalten, während Sie Podcasts oder Musik hören, und Sie müssen die Lautstärke möglicherweise schnell verringern, wenn Sie einen Anruf erhalten. Wenn in Ihrem Computer keine Mediensteuerung integriert ist, können Sie ein altes Wählrad in einen Lautstärkeregler für Ihren Windows-PC verwandeln.
Dieses Gerät zur Lautstärkeregelung wird über USB an Ihren Computer angeschlossen und stellt die Lautstärke jedes geöffneten Programms automatisch auf die von Ihnen gewählte Nummer ein. Wenn Sie eine „2“wählen, wird die Lautstärke auf 20 % eingestellt. Wählen Sie eine "8" und es wird auf 80% gesetzt. Wenn Sie "0" wählen, wird es auf 0% gesetzt und verhält sich wie stumm. Es ist schnell, zufriedenstellend und macht mehr Spaß, als auf dem Lautstärkeregler in Ihrer Taskleiste herumzuklicken.
Lieferungen
- Vintage Bell Systems Trimline Wählscheibe
- Arduino Nano
- Heatset-Einsätze mit M3-Gewinde
- M3 Maschinenschrauben
- Widerstände (470 Ohm und 10k Ohm)
- Kabel
- Zugang zu einem 3D-Drucker
Schritt 1: Betriebstheorie
Rotary Phones, einschließlich der in diesem Projekt verwendeten Bell Systems Trimline, sind rein analoge elektromechanische Geräte. Wenn Sie das Zifferblatt drehen, dreht eine Feder das Zifferblatt zurück in die ursprüngliche Position. Beim Passieren jeder Zahl wird ein Schalter für einen kurzen Moment getrennt (oder angeschlossen), wodurch ein Impuls erzeugt wird. Wir müssen nur diese Impulse zählen, um festzustellen, welche Nummer gewählt wurde.
guidomax hat ein fantastisches Instructables-Tutorial, das ausführlich erklärt, wie genau dies funktioniert, und Sie finden dort weitere Details.
Für dieses Projekt verwenden wir den Arduino Nano, um die Impulse zu zählen. Der Arduino sendet dann die Nummer über die serielle Verbindung an den PC. Ich habe ein grundlegendes Python-Skript geschrieben, das im Hintergrund läuft und diese serielle Verbindung überwacht. Wenn es Bits empfängt, nimmt es die Nummer und verwendet die Python Core Audio Windows-Bibliothek, um die entsprechende Lautstärke einzustellen.
Aufgrund von Einschränkungen bei Windows und dieser Bibliothek legt das Skript nicht die Gesamtsystemlautstärke (den Hauptschieberegler in Ihrer Taskleiste) fest. Stattdessen stellt es die individuelle Lautstärke für jedes gerade ausgeführte Programm ein. Der Effekt ist der gleiche, außer dass Sie keine unterschiedlichen relativen Lautstärkepegel zwischen den Programmen beibehalten können.
Schritt 2: Entfernen Sie das Zifferblatt
Dieser Schritt ist einfach: Demontieren Sie einfach Ihren Trimline-Telefonhörer, um den Wählmechanismus zu entfernen. Es ist im Wesentlichen ein in sich geschlossenes Modul, Sie müssen es also nur vom Mobilteil abschrauben.
Ich habe das Trimline-Modell für dieses Projekt gewählt, weil dieses Wählmodul kompakter ist als die, die Sie auf den meisten anderen Wählscheibentelefonen finden.
Wenn Sie einige Testdrehungen durchführen, sollten Sie den Schalter hören, wenn er in die Ausgangsposition zurückkehrt.
Schritt 3: Drucken Sie die Anlage
Verwenden Sie die beiden mitgelieferten STL-Dateien, um die Gehäuseteile zu drucken. Sie können jedes beliebige Filamentmaterial verwenden (ich habe PLA verwendet). Die speziellen Einstellungen, die Sie verwenden, sind nicht so wichtig, aber ich habe empfohlen, Stützen für den Teil "Rotary_Top" zu verwenden. Sie können diese beiden Teile drucken, während Sie am Rest des Projekts arbeiten.
Schritt 4: Programmieren Sie Ihr Arduino
Der Code, den Sie auf Ihren Arduino Nano hochladen, stammt direkt aus dem Tutorial von guidomax, da er für dieses Projekt perfekt funktioniert:
int NeedToPrint = 0;int Anzahl; int in = 2;
int lastState = LOW;
int trueState = NIEDRIG;
long lastStateChangeTime = 0;
int gelöscht = 0;
// Konstanten
int dialHasFinishedRotatingAfterMs = 100;
int debounceDelay = 10;
Leere Einrichtung () {
Serial.begin (9600);
pinMode (in, EINGANG); }
Leere Schleife () {
int-Lesung = digitalRead (in);
if ((millis() - lastStateChangeTime) > dialHasFinishedRotatingAfterMs) {// die Wählscheibe wird nicht gewählt oder wurde gerade fertig gewählt.
if (needToPrint) { // Wenn es gerade erst fertig gewählt wurde, müssen wir die Nummer über die serielle // Leitung senden und den Zähler zurücksetzen. Wir modifizieren die Zählung um 10, da '0' 10 Impulse sendet.
Serial.print (Anzahl % 10, DEZ);
NeedToPrint = 0;
zählen = 0;
gelöscht = 0; } }
if (lesen != lastState) { lastStateChangeTime = millis();
}
if ((millis() - lastStateChangeTime) > debounceDelay) { // entprellen - dies passiert, sobald es stabilisiert ist
if (reading != trueState) { // Dies bedeutet, dass der Schalter entweder gerade von geschlossen -> offen gegangen ist oder umgekehrt. trueState = Lesen; if (trueState == HIGH) {// Erhöhen Sie die Anzahl der Impulse, wenn sie hoch ist.
zählen++;
NeedToPrint = 1; // wir müssen diese Nummer drucken (sobald das Zifferblatt fertig gedreht hat)
}
}
}
lastState = Lesen; }
Schritt 5: Alles verdrahten
Die Verkabelung für dieses Projekt ist wirklich einfach. Das Zifferblattmodul sollte auf der Rückseite zwei Sechskantstifte mit Schrauben darin haben. Das sind die Schalteranschlüsse. Polarität spielt keine Rolle.
Hinweis: Ignorieren Sie die Farben meiner Drähte auf den Fotos. Ich habe Masse und 5V verwechselt, also sind diese tatsächlich umgekehrt.
Verbinden Sie einen Draht von Post A (GND) und verbinden Sie ihn mit einem Massestift Ihres Arduino Nano. Nehmen Sie einen zweiten Draht und löten Sie ihn und einen dritten Draht an eine Seite des 470-Ohm-Widerstands. Der zweite Draht geht zu Post B (+) auf dem Zifferblatt. Der dritte Draht wird an eine Seite des 10k-Ohm-Widerstands gelötet. Nehmen Sie einen vierten Draht und löten Sie ihn von der anderen Seite des 470-Ohm-Widerstands an Pin 2 des Arduino Nano. Schließlich sollte ein fünfter Draht die andere Seite des 10k-Ohm-Widerstands mit dem 5V-Pin des Arduino Nano verbinden.
Wir verwenden die Widerstände und den 5-V-Pin, um den Pin auf High zu ziehen, wenn der Schalter geöffnet ist (wie bei jedem "Impuls").
Schritt 6: Montage
Beachten Sie, dass der Rotary_Top-Teil des Gehäuses sechs kleine Löcher hat. Diese sind für Ihre Heatset-Einsätze mit Gewinde. Die oberen drei (auf der Unterseite der Oberseite) dienen zur Befestigung des Drehrads. Die unteren drei dienen dazu, die Rotary_Base mit der Rotary_Top zu verschrauben.
Die Heatset-Einsätze können mit einem Lötkolben (oder einem speziellen Werkzeug) erhitzt und dann in die Löcher geschoben werden. Die Hitze schmilzt den Kunststoff, der nach dem Entfernen der Hitze aushärtet, um die Einsätze sicher an Ort und Stelle zu halten. Die Verwendung von thermofixierten Einsätzen ist viel angenehmer als das direkte Eindrehen von Schrauben in den Kunststoff.
Setzen Sie die sechs Heatset-Einsätze ein. Verwenden Sie dann ein paar kurze (10 mm oder so) M3-Maschinenschrauben, um das Zifferblatt zu montieren. Beachten Sie die Kerbe im Ausschnitt, in die der Metallfingerstopper geht. Legen Sie dann das Arduino Nano mit angeschlossenem USB-Kabel vorsichtig in das Gehäuse (es ist lose, nicht montiert) und schrauben Sie die Basis fest.
Sie werden wahrscheinlich doppelseitiges Klebeband oder 3M Command Strips verwenden, um das Gehäuse an Ihrem Schreibtisch zu befestigen, damit es sich beim Drehen des Zifferblatts nicht bewegt.
Schritt 7: Einrichten des Python-Skripts
Stellen Sie zunächst sicher, dass Python installiert ist (verwenden Sie Python 3, da Python 2 auslaufen wird).
Anschließend müssen Sie die beiden erforderlichen Bibliotheken installieren: PyCAW und PySerial.
Verwenden:
"pip install pycaw" und "pip install pyserial" (aus dem Python-Fenster oder Windows Powershell)
Überprüfen Sie dann, an welchen Port Ihr Arduino Nano angeschlossen ist. Sie können dies in der Arduino IDE überprüfen. Stellen Sie sicher, dass dieser Port ausgewählt ist, und öffnen Sie dann den seriellen Monitor. Stellen Sie sicher, dass Ihre Baudrate auf 9600 eingestellt ist, und wählen Sie dann einige Nummern, um sicherzustellen, dass sie im seriellen Monitor angezeigt werden.
Bearbeiten Sie in diesem Fall den Code "rotary.py" mit Ihrer Portnummer. Wenn Sie das Skript ausführen, sollten Sie jetzt die Lautstärke ändern können, indem Sie eine Nummer wählen.
Der letzte Schritt besteht darin, das Skript so einzurichten, dass es beim Booten Ihres PCs automatisch im Hintergrund ausgeführt wird.
Ändern Sie dazu "rotary.py" in "rotary.pyw", damit es im Hintergrund ausgeführt werden kann. Legen Sie dieses Skript dann in den folgenden Ordner: C:\Users\current_user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Offensichtlich müssen Sie "current_user" in Ihren tatsächlichen Benutzerordnernamen ändern.
Das ist es! Immer wenn Ihr Computer startet, wird dieses Python-Skript ausgeführt. Es überwacht die serielle Verbindung vom Arduino und stellt alle Programmvolumina auf das ein, was Sie wählen!
Zweiter Platz beim Arduino-Wettbewerb 2020