Inhoudsopgave:
- Benodigdheden
- Stap 1: Theorie van de werking
- Stap 2: Verwijder de wijzerplaat
- Stap 3: Druk de bijlage af
- Stap 4: Programmeer uw Arduino
- Stap 5: Sluit alles aan
- Stap 6: Montage
- Stap 7: Stel het Python-script in
Video: Vintage Rotary Phone Dial PC Volumeregeling - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Als je op mij lijkt, merk je dat je vaak het volume op je computer verandert. Sommige video's zijn luider dan andere, soms wilt u dat het volume op uw computer gedempt wordt terwijl u naar podcasts of muziek luistert, en moet u mogelijk snel het volume zachter zetten als u wordt gebeld. Als je geen mediabediening in je computer hebt ingebouwd, dan kun je een vintage draaiknop voor je telefoon veranderen in een volumeregelaar voor je Windows-pc.
Dit apparaat voor volumeregeling wordt via USB op uw computer aangesloten en stelt automatisch het volume van elk geopend programma in op het nummer dat u kiest. Als u een "2" kiest, wordt het volume ingesteld op 20%. Kies een "8" en deze wordt ingesteld op 80%. Als u "0" kiest, wordt het op 0% gezet en werkt het als dempen. Het is snel, bevredigend en leuker dan rond te klikken op de volumeregeling in uw taakbalk.
Benodigdheden
- Vintage Bell Systems Trimline draaitelefoon
- Arduino Nano
- Heat-set inzetstukken met M3 schroefdraad
- M3 machineschroeven
- Weerstanden (470 ohm en 10k ohm)
- Draad
- Toegang tot een 3D-printer
Stap 1: Theorie van de werking
Roterende telefoons, waaronder de Bell Systems Trimline die in dit project wordt gebruikt, zijn puur analoge elektromechanische apparaten. Wanneer u aan de wijzerplaat draait, draait een veer de wijzerplaat terug naar de oorspronkelijke positie. Terwijl het elk nummer passeert, wordt een schakelaar voor een kort moment losgekoppeld (of aangesloten), waardoor een puls ontstaat. We hoeven alleen maar die pulsen te tellen om te bepalen welk nummer is gekozen.
guidomax heeft een fantastische Instructables-tutorial die diepgaand ingaat op hoe dit precies werkt, en je kunt daar meer details vinden.
Voor dit project gebruiken we de Arduino Nano om de pulsen te tellen. De Arduino stuurt het nummer vervolgens via de seriële verbinding naar de pc. Ik heb een basis Python-script geschreven dat op de achtergrond draait en die seriële verbinding bewaakt. Wanneer het bits ontvangt, neemt het het nummer en gebruikt het de Python Core Audio Windows-bibliotheek om het juiste volume in te stellen.
Vanwege beperkingen met Windows en die bibliotheek, stelt het script niet het algehele systeemvolume in (de hoofdschuifregelaar in uw taakbalk). In plaats daarvan stelt het het individuele volume in voor elk programma dat momenteel wordt uitgevoerd. Het effect is hetzelfde, behalve dat u geen verschillende relatieve volumeniveaus tussen programma's kunt handhaven.
Stap 2: Verwijder de wijzerplaat
Deze stap is eenvoudig: demonteer gewoon uw Trimline-telefoonhoorn om het kiesmechanisme te verwijderen. Het is in wezen een op zichzelf staande module, dus u hoeft hem alleen maar van de handset los te schroeven.
Ik koos het Trimline-model voor dit project, omdat die kiesmodule compacter is dan degene die je op de meeste andere roterende telefoons zult vinden.
Als u het een paar testspins geeft, zou u de schakelaar moeten horen wegklikken als deze terugkeert naar de thuispositie.
Stap 3: Druk de bijlage af
Gebruik de twee meegeleverde STL-bestanden om de onderdelen van de behuizing af te drukken. Je kunt elk filamentmateriaal gebruiken dat je verkiest (ik gebruikte PLA). De specifieke instellingen die je gebruikt zijn niet zo belangrijk, maar ik raadde aan om steunen te gebruiken voor het "Rotary_Top" gedeelte. U kunt deze twee delen afdrukken terwijl u aan de rest van het project werkt.
Stap 4: Programmeer uw Arduino
De code die u naar uw Arduino Nano uploadt, komt rechtstreeks uit de tutorial van guidomax, omdat deze perfect werkt voor dit project:
int needToPrint = 0;int count; int in = 2;
int lastState = LAAG;
int trueState = LAAG;
lange lastStateChangeTime = 0;
int gewist = 0;
// constanten
int dialHasFinishedRotatingAfterMs = 100;
int debounceDelay = 10;
ongeldige setup() {
Serieel.begin(9600);
pinMode (in, INPUT); }
lege lus() {
int lezen = digitalRead (in);
if ((millis() - lastStateChangeTime) > dialHasFinishedRotatingAfterMs) { // de dial wordt niet gekozen of is net gebeld.
if (needToPrint) { // als het nog maar net is gebeld, moeten we het nummer naar de seriële // regel sturen en de telling opnieuw instellen. We passen de telling met 10 aan omdat '0' 10 pulsen zal verzenden.
Serial.print (telling % 10, DEC);
needToPrint = 0;
aantal = 0;
gewist = 0; } }
if (lezing! = lastState) { lastStateChangeTime = millis();
}
if ((millis() - lastStateChangeTime) > debounceDelay) {// debounce - dit gebeurt zodra het is gestabiliseerd
if (lezing != trueState) { // dit betekent dat de schakelaar net van gesloten->open is gegaan of omgekeerd. trueState = lezen; if (trueState == HIGH) {// verhoog het aantal pulsen als het hoog is geworden.
tellen++;
needToPrint = 1; // we moeten dit nummer afdrukken (zodra de wijzerplaat klaar is met draaien)
}
}
}
lastStat = lezen; }
Stap 5: Sluit alles aan
De bedrading voor dit project is heel eenvoudig. De wijzerplaatmodule moet aan de achterkant twee zeshoekige posten hebben met schroeven erin. Dat zijn de schakelaansluitingen. Polariteit maakt niet uit.
Opmerking: negeer de kleuren van mijn draden op de foto's. Ik heb aarde en 5V door elkaar gehaald, dus deze zijn eigenlijk omgekeerd.
Sluit een draad van Post A (GND) aan en sluit deze aan op een aardingspin op uw Arduino Nano. Neem een tweede draad en soldeer deze en een derde draad aan één kant van de 470 ohm weerstand. De tweede draad gaat naar Post B (+) op de wijzerplaat. De derde draad wordt aan één kant van de 10k ohm-weerstand gesoldeerd. Neem een vierde draad en soldeer deze vanaf de andere kant van de weerstand van 470 ohm aan pin 2 op de Arduino Nano. Ten slotte moet een vijfde draad de andere kant van de 10k ohm-weerstand verbinden met de 5V-pin op de Arduino Nano.
We gebruiken de weerstanden en de 5V-pin om de pin te hoog te trekken wanneer de schakelaar open is (zoals tijdens elke "puls").
Stap 6: Montage
U zou moeten opmerken dat het Rotary_Top-gedeelte van de behuizing zes kleine gaatjes heeft. Deze zijn voor uw heatset-inserts met schroefdraad. De bovenste drie (aan de onderkant van het bovenoppervlak) zijn om de draaiknop te monteren. De onderste drie zijn om de Rotary_Base op de Rotary_Top te schroeven.
De heat-set inserts kunnen worden verwarmd met een soldeerbout (of een speciaal gereedschap) en vervolgens in de gaten worden geduwd. Door de hitte smelt het plastic, dat hard wordt nadat de warmte is verwijderd om de inzetstukken stevig op hun plaats te houden. Het gebruik van heatset-inzetstukken is veel prettiger dan schroeven rechtstreeks in het plastic draaien.
Plaats de zes heatset-inzetstukken. Gebruik vervolgens een paar korte (10 mm of zo) M3-machineschroeven om de wijzerplaat te monteren. Let op de inkeping in de uitsparing, waar de metalen vingerstop zal komen. Plaats vervolgens voorzichtig de Arduino Nano - met USB-kabel aangesloten - in de behuizing (deze zit los, niet gemonteerd) en schroef de basis op zijn plaats.
U wilt waarschijnlijk dubbelzijdig plakband of 3M Command Strips gebruiken om de behuizing op uw bureau te bevestigen, zodat deze niet verschuift als u aan de knop draait.
Stap 7: Stel het Python-script in
Zorg er eerst voor dat Python is geïnstalleerd (gebruik Python 3, aangezien Python 2 wordt uitgefaseerd).
U moet dan de twee vereiste bibliotheken installeren: PyCAW en PySerial.
Gebruik maken van:
"pip install pycaw" en "pip install pyserial" (vanuit het Python-venster of Windows Powershell)
Controleer vervolgens op welke poort uw Arduino Nano is aangesloten. Je kunt dat controleren vanuit de Arduino IDE. Zorg ervoor dat die poort is geselecteerd en open vervolgens de seriële monitor. Zorg ervoor dat uw baudrate is ingesteld op 9600 en kies vervolgens een aantal nummers om ervoor te zorgen dat ze op de seriële monitor verschijnen.
Als dit het geval is, bewerkt u de "rotary.py"-code met uw poortnummer. Als u het script uitvoert, zou u nu het volume moeten kunnen wijzigen door een nummer te kiezen.
De laatste stap is om het script zo in te stellen dat het automatisch op de achtergrond wordt uitgevoerd wanneer u uw pc opstart.
Om dat te doen, wijzigt u "rotary.py" in "rotary.pyw", waardoor het op de achtergrond kan worden uitgevoerd. Plaats dat script vervolgens in de volgende map: C:\Users\current_user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Het is duidelijk dat u "current_user" moet wijzigen in uw werkelijke gebruikersmapnaam.
Dat is het! Telkens wanneer uw computer opstart, wordt dat Python-script gestart. Het bewaakt de seriële verbinding van de Arduino en stelt alle programmavolumes in op wat u ook kiest!
Tweede plaats in de Arduino-wedstrijd 2020
Aanbevolen:
Rotary Encoder - Begrijp en gebruik het (Arduino/andere Controller): 3 stappen
Rotary Encoder - Begrijp en gebruik het (Arduino/andere ΜController): Een roterende encoder is een elektromechanisch apparaat dat roterende beweging omzet in digitale of analoge informatie. Het kan met de klok mee of tegen de klok in draaien. Er zijn twee soorten roterende encoders: absolute en relatieve (incrementele) encoders.Wh
USB-volumeregeling: 9 stappen (met afbeeldingen)
USB-volumeregeling: in dit project bouwen we een USB-volumeregeling met behulp van een Arduino-compatibele Trinket van Adafruit en een roterende encoder. Ten slotte zullen we een behuizing 3D-printen, de basis vullen met loodschot om gewicht en stabiliteit toe te voegen, en een acrylbodem lasersnijden
DIY Rotary Garden (TfCD): 12 stappen (met afbeeldingen)
DIY Rotary Garden (TfCD): Hallo! We hebben een kleine tutorial samengesteld over hoe je je eigen kleine versie van een roterende tuin kunt maken, die naar onze mening het tuinieren van de toekomst zou kunnen vertegenwoordigen. Met een verminderde hoeveelheid elektriciteit en ruimte, is deze technologie geschikt voor snelle
Fijnere volumeregeling voor tv: 3 stappen
Fijnere volumeregeling voor tv: het probleem: mijn nieuwe tv heeft een digitale volumeregeling die nogal wankel is, het is LUID of UIT De oplossing: een secundaire analoge volumeregeling toevoegen De materialen: 1. draad 2. soldeer 3. krimpkous 4. potentiometer (ik gebruikte 1 Mohm goed voor mijn
Desktop-scrollwiel en volumeregeling! 8 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Desktop-scrollwiel en volumeregeling!: Make Magazine's weekendproject, 3/4/09 Enige achtergrond De laatste tijd heb ik veel verschillende blogs gelezen. Elke dag lees ik de laatste berichten op engadget, lifehacker, hackaday, BBG en de MAKE: blog. Het probleem voor mij kwam toen ik me realiseerde dat o