Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Teori om drift
- Trin 2: Fjern skiven
- Trin 3: Udskriv kabinettet
- Trin 4: Programmer din Arduino
- Trin 5: Tråd alt op
- Trin 6: Montering
- Trin 7: Konfigurer Python Script
Video: Vintage Rotary Phone Dial PC Volume Control: 7 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Hvis du ligner mig, ændrer du ofte volumen på din computer. Nogle videoer er højere end andre, nogle gange vil du have lydstyrken slået fra på din computer, mens du lytter til podcasts eller musik, og du skal muligvis hurtigt skrue ned for lydstyrken, hvis du modtager et telefonopkald. Hvis du ikke har mediekontroller indbygget i din computer, kan du gøre en vintage roterende telefonskive til en lydstyrkekontrol til din Windows -pc.
Denne volumenkontrolenhed tilsluttes din computer via USB og indstiller automatisk hvert åbent programs lydstyrke til det nummer, du ringer til. Hvis du ringer til "2", sættes lydstyrken til 20%. Tast en "8", og den indstilles til 80%. Opkald "0" sætter det til 0% og fungerer som lydløs. Det er hurtigt, tilfredsstillende og sjovere end at klikke rundt på lydstyrkekontrollen i din proceslinje.
Forbrugsvarer
- Vintage Bell Systems Trimline roterende telefon
- Arduino Nano
- M3 gevindindsats med gevind
- M3 maskinskruer
- Modstande (470 ohm og 10k ohm)
- Tråd
- Adgang til en 3D -printer
Trin 1: Teori om drift
Roterende telefoner, herunder Bell Systems Trimline, der blev brugt i dette projekt, er rent analoge elektromekaniske enheder. Når du drejer skiven, drejer en fjeder drejeknappen tilbage til den oprindelige position. Når det passerer hvert nummer, afbrydes (eller tilsluttes) en switch for et kort øjeblik, hvilket skaber en puls. Alt vi skal gøre er at tælle disse pulser for at afgøre hvilket nummer der blev ringet op.
guidomax har en fantastisk Instructables -vejledning, der går i dybden med, hvordan det præcist fungerer, og du kan finde flere detaljer der.
Til dette projekt bruger vi Arduino Nano til at tælle pulserne. Arduino sender derefter nummeret til pc'en via den serielle forbindelse. Jeg skrev et grundlæggende Python -script, der kører i baggrunden og overvåger den serielle forbindelse. Når den modtager bits, tager den nummeret og bruger Python Core Audio Windows -biblioteket til at indstille den passende lydstyrke.
På grund af begrænsninger med Windows og det bibliotek indstiller scriptet ikke den samlede systemvolumen (hovedskyderen i din proceslinje). I stedet indstiller den den individuelle lydstyrke for hvert program, der kører i øjeblikket. Effekten er den samme, bortset fra at du ikke kan opretholde forskellige relative lydstyrkeniveauer mellem programmer.
Trin 2: Fjern skiven
Dette trin er ligetil: bare adskil dit Trimline -telefonrør for at fjerne opkaldsmekanismen. Det er i det væsentlige et selvstændigt modul, så du skal bare skrue det af håndsættet.
Jeg valgte Trimline -modellen til dette projekt, fordi dette opkaldsmodul er mere kompakt end dem, du finder på de fleste andre roterende telefoner.
Hvis du giver det et par testspins, skal du høre kontakten klikke væk, når den vender tilbage til udgangspositionen.
Trin 3: Udskriv kabinettet
Brug de to medfølgende STL -filer til at udskrive kabinettets dele. Du kan bruge det filamentmateriale, du foretrækker (jeg brugte PLA). De særlige indstillinger, du bruger, er ikke så vigtige, men jeg anbefalede at bruge understøttelser til delen "Rotary_Top". Du kan udskrive disse to dele, mens du arbejder på resten af projektet.
Trin 4: Programmer din Arduino
Koden, du uploader til din Arduino Nano, er taget direkte fra guidomax's tutorial, da den fungerer perfekt til dette projekt:
int needToPrint = 0; int count; int in = 2;
int lastState = LAV;
int trueState = LAV;
lang lastStateChangeTime = 0;
int clearet = 0;
// konstanter
int dialHasFinishedRotatingAfterMs = 100;
int debounceDelay = 10;
ugyldig opsætning () {
Serial.begin (9600);
pinMode (i, INPUT); }
void loop () {
int læsning = digitalRead (in);
hvis ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// opkaldet ikke ringes op, eller lige er blevet færdigopkaldt.
hvis (needToPrint) {// hvis det først lige er færdig med at blive ringet op, skal vi sende nummeret ned på den serielle // linje og nulstille tællingen. Vi ændrer tællingen med 10, fordi '0' sender 10 pulser.
Serial.print (tæl % 10, DEC);
needToPrint = 0;
count = 0;
ryddet = 0; }}
hvis (læsning! = lastState) {lastStateChangeTime = millis ();
}
hvis ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - sker dette, når det er stabiliseret
hvis (læsning! = trueState) {// betyder det, at kontakten enten lige er gået fra lukket-> åben eller omvendt. trueState = læsning; hvis (trueState == HIGH) {// øges antallet af pulser, hvis det er gået højt.
tæl ++;
needToPrint = 1; // vi bliver nødt til at udskrive dette nummer (når urskiven er færdig med at rotere)
}
}
}
lastState = læsning; }
Trin 5: Tråd alt op
Ledningerne til dette projekt er virkelig enkle. Skiven modulet skal have to sekskantede stolper på bagsiden med skruer i dem. Det er switchforbindelserne. Polaritet er ligegyldigt.
Bemærk: Ignorer farverne på mine ledninger på billederne. Jeg blandede jorden og 5V, så disse er faktisk vendt.
Tilslut en ledning fra stolpe A (GND), og slut den til en jordstift på din Arduino Nano. Tag en anden ledning og lod den og en tredje ledning til den ene side af 470 ohm modstanden. Den anden ledning går til Post B (+) på skiven. Den tredje ledning bliver loddet til den ene side af 10k ohm modstanden. Tag en fjerde ledning og lod den fra den anden side af 470 ohm modstanden til Pin 2 på Arduino Nano. Endelig skal en femte ledning forbinde den anden side af 10k ohm -modstanden med 5V -stiften på Arduino Nano.
Vi bruger modstandene og 5V -stiften til at trække stiften til højt, når kontakten er åben (som den er under hver "puls").
Trin 6: Montering
Du skal bemærke, at Rotary_Top -delen af kabinettet har seks små huller. Disse er til dine gevindskårne varmesæt. De tre øverste (på undersiden af den øverste overflade) er til at montere drejeknappen. De tre nederste er at skrue Rotary_Base til Rotary_Top.
De varmesatte indsatser kan opvarmes med et loddejern (eller et dedikeret værktøj) og derefter skubbes ind i hullerne. Varmen vil smelte plasten, som vil hærde efter fjernelse af varme for at holde indsatserne sikkert på plads. Det er meget mere behageligt at bruge varmesatte indsatser end at skrue skruer direkte i plasten.
Indsæt de seks varmesætindsatser. Brug derefter et par korte (10 mm eller deromkring) M3 maskinskruer til at montere skiven. Læg mærke til hakket i udskæringen, hvor metalfingerstoppet vil gå. Læg derefter forsigtigt Arduino Nano-med USB-kablet tilsluttet inde i kabinettet (det er løst, ikke monteret), og skru basen på plads.
Du vil sandsynligvis bruge dobbeltsidet tape eller 3M Command Strips til at fastgøre kabinettet på dit skrivebord, så det ikke bevæger sig rundt, når du drejer skiven.
Trin 7: Konfigurer Python Script
Sørg først for, at du har Python installeret (brug Python 3, da Python 2 udfases).
Du skal derefter installere de to nødvendige biblioteker: PyCAW og PySerial.
Brug:
"pip install pycaw" og "pip install pyserial" (fra Python -vinduet eller Windows Powershell)
Kontroller derefter, hvilken port din Arduino Nano er forbundet til. Du kan kontrollere det indefra Arduino IDE. Sørg for, at du har valgt den port, og åbn derefter den serielle skærm. Sørg for, at din baudhastighed er indstillet til 9600, og ring derefter til nogle numre for at sikre, at de vises på den serielle skærm.
Hvis de gør det, skal du redigere "rotary.py" -koden med dit portnummer. Hvis du kører scriptet, skal du nu kunne ændre lydstyrken ved at ringe til et nummer.
Det sidste trin er at konfigurere scriptet til automatisk at køre i baggrunden, når du starter din pc.
For at gøre det skal du ændre "rotary.py" til "rotary.pyw", som gør det muligt at køre det i baggrunden. Placer derefter dette script i følgende mappe: C: / Users / current_user / AppData / Roaming / Microsoft / Windows / Start Menu / Programs / Startup
Du skal naturligvis ændre "current_user" til dit faktiske brugermappens navn.
Det er det! Når din computer starter, begynder det Python -script at køre. Det overvåger den serielle forbindelse fra Arduino og indstiller alle programvolumener til det, du ringer til!
Runner Up i Arduino Contest 2020
Anbefalede:
Power Timer Med Arduino og Rotary Encoder: 7 trin (med billeder)
Power Timer Med Arduino og Rotary Encoder: Denne Power Timer er baseret på timeren vist på: https: //www.instructables.com/id/Timer-With-Arduin…Et strømforsyningsmodul og et SSR (solid state relæ) ) blev fastgjort til det. Effektbelastninger på op til 1KW kan betjenes og med minimale ændringer kan l
Moderne optagelse af vintage kassettebånd med MP3 -filer: 8 trin (med billeder)
Moderne optagelse af vintage kassettebånd med MP3-filer: Med vintage kassettebånd, der dukker op i popkulturen nu mere end nogensinde, ønsker mange mennesker at oprette deres egne versioner. I denne vejledning vil jeg guide dig til, hvordan du (hvis du har en båndoptager) optager dine egne kassettebånd med moderne teknologi
Behåret Iphone! DIY PHONE CASE Life Hacks - Hot Glue Phone Case: 6 trin (med billeder)
Behåret Iphone! DIY PHONE CASE Life Hacks - Hot Glue Phone Case: Jeg vedder på, at du aldrig har set en behåret iPhone! Godt i denne DIY telefon sag tutorial vil du helt sikkert! :)) Da vores telefoner i dag lidt ligner vores anden identitet, har jeg besluttet at lave en " miniature mig " … Lidt uhyggeligt, men meget sjovt
Raspberry Pi Rotary Phone Case: 10 trin (med billeder)
Raspberry Pi Rotary Phone Case: Jeg ledte efter et sjovt projekt til min Raspberry Pi, og besluttede at en sag ville være sjov. Jeg fandt en gammel roterende telefon og konverterede den til et etui til min Pi. Jeg havde brug for dele til en værdi af $ 40, du kan muligvis gøre det for mindre. Hele projektet tog
Retro Phone Phone Charging Station: 10 trin (med billeder)
Retro Phone Phone Charging Station: Jeg elsker udseendet af en vintage roterende telefon og havde et par af dem liggende og tigge om at blive bragt tilbage til livet. I et anfald af inspiration besluttede jeg at gifte mig med form og funktion. Dermed er Retro Phone Phone Charging Station født