Innholdsfortegnelse:

Vintage Rotary Phone Dial PC Volumkontroll: 7 trinn (med bilder)
Vintage Rotary Phone Dial PC Volumkontroll: 7 trinn (med bilder)

Video: Vintage Rotary Phone Dial PC Volumkontroll: 7 trinn (med bilder)

Video: Vintage Rotary Phone Dial PC Volumkontroll: 7 trinn (med bilder)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Image
Image
Fjern skiven
Fjern skiven

Hvis du er lik meg, finner du ut at du endrer volumet på datamaskinen din ganske ofte. Noen videoer er høyere enn andre, noen ganger vil du at lyden skal være dempet på datamaskinen mens du hører på podcaster eller musikk, og du må kanskje raskt skru ned volumet hvis du mottar en telefon. Hvis du ikke har mediekontroller innebygd i datamaskinen, kan du gjøre en vintage roterende telefonskive til en volumkontroll for Windows -PCen.

Denne volumkontrollenheten kobles til datamaskinen din via USB, og vil automatisk sette hvert åpent programs volum til det nummeret du ringer. Hvis du slår "2", settes volumet til 20%. Slå en "8", og den blir satt til 80%. Å ringe "0" setter den til 0% og fungerer som dempet. Det er raskt, tilfredsstillende og morsommere enn å klikke rundt på volumkontrollen på oppgavelinjen.

Rekvisita

  • Vintage Bell Systems Trimline roterende telefon
  • Arduino Nano
  • M3 gjengede varmesettinnlegg
  • M3 maskinskruer
  • Motstander (470 ohm og 10k ohm)
  • Metalltråd
  • Tilgang til en 3D -skriver

Trinn 1: Teori om drift

Roterende telefoner, inkludert Bell Systems Trimline som ble brukt i dette prosjektet, er rent analoge elektromekaniske enheter. Når du roterer skiven, snur en fjær skiven tilbake til opprinnelig posisjon. Når det passerer hvert nummer, kobles en bryter (eller tilkoblet) et kort øyeblikk, og skaper en puls. Alt vi trenger å gjøre er å telle disse pulser for å finne ut hvilket nummer som ble slått.

guidomax har en fantastisk Instructables -opplæring som går i dybden på hvordan akkurat dette fungerer, og du kan finne flere detaljer der.

For dette prosjektet bruker vi Arduino Nano til å telle pulser. Arduino sender deretter nummeret til PC -en via den serielle tilkoblingen. Jeg skrev et grunnleggende Python -skript som kjører i bakgrunnen og overvåker den serielle tilkoblingen. Når den mottar biter, tar den nummeret og bruker Python Core Audio Windows -biblioteket til å angi riktig volum.

På grunn av begrensninger med Windows og det biblioteket, angir ikke skriptet det generelle systemvolumet (hovedglidebryteren på oppgavelinjen). I stedet setter det det individuelle volumet for hvert program som kjører. Effekten er den samme, bortsett fra at du ikke kan opprettholde forskjellige relative volumnivåer mellom programmer.

Trinn 2: Fjern skiven

Fjern skiven
Fjern skiven

Dette trinnet er enkelt: bare demonter Trimline -telefonrøret for å fjerne oppringningsmekanismen. Det er egentlig en selvstendig modul, så du trenger bare å skru den av håndsettet.

Jeg valgte Trimline -modellen for dette prosjektet, fordi den oppringningsmodulen er mer kompakt enn den du finner på de fleste andre roterende telefoner.

Hvis du gir den noen få testspinn, bør du høre bryteren klikke bort når den går tilbake til utgangsposisjonen.

Trinn 3: Skriv ut vedlegget

Skriv ut vedlegget
Skriv ut vedlegget

Bruk de to STL -filene som følger med til å skrive ut kabinettdelene. Du kan bruke det filamentmaterialet du foretrekker (jeg brukte PLA). De spesifikke innstillingene du bruker er ikke så viktige, men jeg anbefalte å bruke støtte for delen "Rotary_Top". Du kan skrive ut disse to delene mens du jobber med resten av prosjektet.

Trinn 4: Programmer din Arduino

Programmer din Arduino
Programmer din Arduino

Koden du laster opp til din Arduino Nano er hentet rett fra guidomax sin opplæring, siden den fungerer perfekt for dette prosjektet:

int needToPrint = 0; int count; int in = 2;

int lastState = LAV;

int trueState = LAV;

long lastStateChangeTime = 0;

int klarert = 0;

// konstanter

int dialHasFinishedRotatingAfterMs = 100;

int debounceDelay = 10;

ugyldig oppsett () {

Serial.begin (9600);

pinMode (i, INNGANG); }

void loop () {

int reading = digitalRead (in);

if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// oppringningen ikke blir ringt, eller nettopp har blitt ringt opp.

if (needToPrint) {// hvis det bare er ferdig med å bli slått, må vi sende nummeret ned på serien // og nullstille antallet. Vi modifiserer tellingen med 10 fordi '0' sender 10 pulser.

Serial.print (telle % 10, DEC);

needToPrint = 0;

telle = 0;

slettet = 0; }}

if (reading! = lastState) {lastStateChangeTime = millis ();

}

hvis ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - skjer dette når det er stabilisert

if (reading! = trueState) {// betyr dette at bryteren enten nettopp har gått fra lukket-> åpen eller omvendt. trueState = lesing; hvis (trueState == HIGH) {// øker antallet pulser hvis det har gått høyt.

telle ++;

needToPrint = 1; // vi må skrive ut dette nummeret (når skiven er ferdig rotert)

}

}

}

lastState = lesing; }

Trinn 5: Koble alt opp

Koble alt opp
Koble alt opp
Koble alt opp
Koble alt opp
Koble alt opp
Koble alt opp

Kablingene for dette prosjektet er veldig enkle. Skiven modulen skal ha to sekskantede stolper på baksiden med skruer i dem. Det er bryterforbindelsene. Polaritet spiller ingen rolle.

Merk: Ignorer fargene på ledningene mine på bildene. Jeg blandet bakken og 5V, så disse er faktisk reversert.

Koble en ledning fra stolpe A (GND) og koble den til en jordet pinne på Arduino Nano. Ta en andre ledning og lodd den og en tredje ledning til den ene siden av 470 ohm motstanden. Den andre ledningen går til Post B (+) på skiven. Den tredje ledningen blir loddet til den ene siden av 10k ohm motstanden. Ta en fjerde ledning og lodd den fra den andre siden av 470 ohm motstanden til Pin 2 på Arduino Nano. Til slutt bør en femte ledning koble den andre siden av 10k ohm -motstanden til 5V -pinnen på Arduino Nano.

Vi bruker motstandene og 5V -pinnen for å trekke pinnen til høyt når bryteren er åpen (slik den er under hver "puls").

Trinn 6: Montering

montering
montering
montering
montering

Du bør legge merke til at Rotary_Top -delen av kabinettet har seks små hull. Disse er for gjengede varmesettinnlegg. De tre øverste (på undersiden av den øvre overflaten) er for å montere dreieknappen. De tre nederste er å skru Rotary_Base til Rotary_Top.

De varmesettede innsatsene kan varmes opp med et loddejern (eller et dedikert verktøy) og deretter skyves inn i hullene. Varmen vil smelte plasten, som vil stivne etter at varmen er fjernet for å holde innsatsene godt på plass. Å bruke varmesett er mye hyggeligere enn å skru skruer direkte inn i plasten.

Sett inn de seks varmesettene. Bruk deretter noen korte (10 mm eller så) M3 maskinskruer for å montere skiven. Legg merke til hakket i utskjæringen, der metallfingerstoppet vil gå. Plasser deretter forsiktig Arduino Nano-med USB-kabel tilkoblet inne i kabinettet (den er løs, ikke montert), og skru basen på plass.

Du vil sannsynligvis bruke dobbeltsidig tape eller 3M Command Strips for å feste kabinettet på skrivebordet ditt, slik at det ikke beveger seg rundt når du roterer skiven.

Trinn 7: Sett opp Python Script

Sett opp Python Script
Sett opp Python Script

Først må du kontrollere at du har Python installert (bruk Python 3, ettersom Python 2 blir faset ut).

Du må deretter installere de to nødvendige bibliotekene: PyCAW og PySerial.

Bruk:

"pip install pycaw" og "pip install pyserial" (fra Python -vinduet eller Windows Powershell)

Sjekk deretter hvilken port Arduino Nano er koblet til. Du kan sjekke det fra Arduino IDE. Sørg for at du har valgt porten, og åpne den serielle skjermen. Kontroller at overføringshastigheten er satt til 9600, og slå deretter noen numre for å sikre at de vises på den serielle skjermen.

Hvis de gjør det, må du redigere "rotary.py" -koden med portnummeret ditt. Hvis du kjører skriptet, bør du nå kunne endre volumet ved å slå et nummer.

Det siste trinnet er å konfigurere skriptet til å kjøre i bakgrunnen automatisk når du starter PCen.

For å gjøre det, endre "rotary.py" til "rotary.pyw" som lar den kjøre i bakgrunnen. Plasser deretter skriptet i følgende mappe: C: / Users / current_user / AppData / Roaming / Microsoft / Windows / Start Menu / Programs / Startup

Tydeligvis må du endre "current_user" til ditt faktiske brukermappnavn.

Det er det! Når datamaskinen starter, starter det Python -skriptet. Den overvåker den serielle tilkoblingen fra Arduino, og setter alle programvolumene til det du ringer!

Arduino -konkurransen 2020
Arduino -konkurransen 2020
Arduino -konkurransen 2020
Arduino -konkurransen 2020

Runner Up i Arduino Contest 2020

Anbefalt: