Innehållsförteckning:

Vintage Rotary Phone Dial PC Volymkontroll: 7 steg (med bilder)
Vintage Rotary Phone Dial PC Volymkontroll: 7 steg (med bilder)

Video: Vintage Rotary Phone Dial PC Volymkontroll: 7 steg (med bilder)

Video: Vintage Rotary Phone Dial PC Volymkontroll: 7 steg (med bilder)
Video: Vintage Rotary Phone Dial Volume Control for PC 2024, Juli
Anonim
Image
Image
Ta bort ratten
Ta bort ratten

Om du liknar mig, tycker du att du ändrar volymen på din dator ganska ofta. Vissa videor är högre än andra, ibland vill du att volymen är tyst på din dator medan du lyssnar på podcaster eller musik, och du kan behöva sänka volymen snabbt om du får ett telefonsamtal. Om du inte har mediakontroller inbyggda i din dator kan du göra en vintage roterande telefonratt till en volymkontroll för din Windows -dator.

Denna volymkontrollenhet ansluts till din dator via USB och ställer automatiskt in varje öppet programs volym till vilket nummer du än ringer. Om du slår "2" kommer volymen att vara 20%. Slå en "8" så ställs den in på 80%. Slå "0" ställer det till 0% och fungerar som tyst. Det är snabbt, tillfredsställande och roligare än att klicka runt på volymkontrollen i aktivitetsfältet.

Tillbehör

  • Vintage Bell Systems Trimline roterande telefon
  • Arduino Nano
  • M3 gängade värmeuppsättningsinsatser
  • M3 -skruvar
  • Motstånd (470 ohm och 10k ohm)
  • Tråd
  • Tillgång till en 3D -skrivare

Steg 1: Operationsteori

Roterande telefoner, inklusive Bell Systems Trimline som används i detta projekt, är rent analoga elektromekaniska enheter. När du vrider på ratten vrider en fjäder ratten tillbaka till ursprungsläget. När det passerar varje nummer kopplas en strömbrytare från (eller anslutas) för en kort stund, vilket skapar en puls. Allt vi behöver göra är att räkna dessa pulser för att avgöra vilket nummer som slogs.

guidomax har en fantastisk Instructables -handledning som går i djupet om hur exakt detta fungerar, och du kan hitta mer detaljer där.

För detta projekt använder vi Arduino Nano för att räkna pulserna. Arduino skickar sedan numret till datorn via den seriella anslutningen. Jag skrev ett grundläggande Python -skript som körs i bakgrunden och övervakar den seriella anslutningen. När den tar emot bitar tar den numret och använder Python Core Audio Windows -biblioteket för att ställa in lämplig volym.

På grund av begränsningar med Windows och det biblioteket ställer inte skriptet in den totala systemvolymen (huvudreglaget i aktivitetsfältet). I stället ställer den in den individuella volymen för varje program som för närvarande körs. Effekten är densamma, förutom att du inte kan behålla olika relativa volymnivåer mellan program.

Steg 2: Ta bort ratten

Ta bort ratten
Ta bort ratten

Det här steget är enkelt: ta bara isär din Trimline -telefonlur för att ta bort rattmekanismen. Det är i huvudsak en fristående modul, så du behöver bara skruva loss den från handenheten.

Jag valde Trimline -modellen för detta projekt, eftersom den här ratten är mer kompakt än den du hittar på de flesta andra roterande telefoner.

Om du ger den några testsnurr bör du höra strömbrytaren klicka bort när den återgår till utgångsläget.

Steg 3: Skriv ut bilagan

Skriv ut bilagan
Skriv ut bilagan

Använd de två medföljande STL -filerna för att skriva ut kapslingsdelarna. Du kan använda vilket filamentmaterial du föredrar (jag använde PLA). De specifika inställningarna du använder är inte så viktiga, men jag rekommenderade att du använder stöd för delen "Rotary_Top". Du kan skriva ut dessa två delar medan du arbetar med resten av projektet.

Steg 4: Programmera din Arduino

Programmera din Arduino
Programmera din Arduino

Koden du laddar upp till din Arduino Nano är hämtad direkt från guidomax handledning, eftersom den fungerar perfekt för detta projekt:

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

int lastState = LÅG;

int trueState = LÅG;

long lastStateChangeTime = 0;

int cleared = 0;

// konstanter

int dialHasFinishedRotatingAfterMs = 100;

int debounceDelay = 10;

void setup () {

Serial.begin (9600);

pinMode (in, INPUT); }

void loop () {

int läsning = digitalRead (in);

if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// inte ratten ringer upp, eller precis har ringt upp.

if (needToPrint) {// om det bara är klart att ringa upp måste vi skicka numret ner på serien // och återställa antalet. Vi modifierar räkningen med 10 eftersom '0' skickar 10 pulser.

Serial.print (antal % 10, DEC);

needToPrint = 0;

count = 0;

rensad = 0; }}

if (läsning! = lastState) {lastStateChangeTime = millis ();

}

if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - detta händer när det har stabiliserats

if (läsning! = trueState) {// betyder detta att omkopplaren antingen bara har gått från stängd-> öppen eller vice versa. trueState = läsning; if (trueState == HIGH) {// öka antalet pulser om det har gått högt.

räkna ++;

needToPrint = 1; // vi måste skriva ut det här numret (när ratten har roterat färdigt)

}

}

}

lastState = läsning; }

Steg 5: Anslut allt

Koppla upp allt
Koppla upp allt
Koppla upp allt
Koppla upp allt
Koppla upp allt
Koppla upp allt

Ledningarna för detta projekt är verkligen enkla. Rattmodulen ska ha två sexkantiga stolpar på baksidan med skruvar i. Det är switchanslutningarna. Polaritet spelar ingen roll.

Obs! Ignorera färgerna på mina trådar i fotona. Jag blandade ihop mark och 5V, så dessa är faktiskt omvända.

Anslut en ledning från Post A (GND) och anslut den till en jordstift på din Arduino Nano. Ta en andra tråd och löd den och en tredje tråd till ena sidan av motståndet på 470 ohm. Den andra ledningen går till Post B (+) på ratten. Den tredje ledningen kommer att lödas på ena sidan av 10k ohm -motståndet. Ta en fjärde tråd och löd den från andra sidan av 470 ohm motståndet till Pin 2 på Arduino Nano. Slutligen bör en femte ledning ansluta den andra sidan av 10k ohm -motståndet till 5V -stiftet på Arduino Nano.

Vi använder motstånden och 5V -stiftet för att dra stiftet till högt när omkopplaren är öppen (som det är under varje "puls").

Steg 6: Montering

hopsättning
hopsättning
hopsättning
hopsättning

Du bör märka att Rotary_Top -delen av höljet har sex små hål. Dessa är för dina gängade värmeuppsättningsinsatser. De tre översta (på undersidan av den övre ytan) är för att montera den vridbara ratten. De tre nedersta är att skruva Rotary_Base till Rotary_Top.

De värmehärdade insatserna kan värmas upp med ett lödkolv (eller ett specialverktyg) och sedan skjutas in i hålen. Värmen kommer att smälta plasten, som kommer att hårdna efter att värmen har tagits bort för att hålla insatserna säkert på plats. Att använda värmeinställda skär är mycket trevligare än att skruva skruvarna direkt i plasten.

Sätt i de sex värmeinställda insatserna. Använd sedan några korta (10 mm eller så) M3 -maskinskruvar för att montera ratten. Observera skåran i utskärningen, där metallfingret stoppar. Placera sedan försiktigt Arduino Nano-med USB-kabel ansluten-inuti höljet (den är lös, inte monterad) och skruva fast basen på plats.

Du kommer förmodligen att använda dubbelsidig tejp eller 3M Command Strips för att fästa höljet på ditt skrivbord, så att det inte rör sig när du vrider ratten.

Steg 7: Konfigurera Python Script

Konfigurera Python Script
Konfigurera Python Script

Kontrollera först att du har Python installerat (använd Python 3, eftersom Python 2 fasas ut).

Du måste sedan installera de två obligatoriska biblioteken: PyCAW och PySerial.

Använda sig av:

"pip install pycaw" och "pip install pyserial" (från Python -fönstret eller Windows Powershell)

Kontrollera sedan vilken port din Arduino Nano är ansluten till. Du kan kontrollera det från Arduino IDE. Se till att du har valt den porten och öppna sedan seriell bildskärm. Se till att din överföringshastighet är inställd på 9600 och slå sedan några nummer för att se till att de visas i den seriella bildskärmen.

Om de gör det, redigera "rotary.py" -koden med ditt portnummer. Om du kör skriptet bör du nu kunna ändra volymen genom att slå ett nummer.

Det sista steget är att ställa in skriptet så att det körs i bakgrunden automatiskt när du startar din dator.

För att göra det, ändra "rotary.py" till "rotary.pyw" vilket gör att det kan köras i bakgrunden. Placera sedan det skriptet i följande mapp: C: / Users / current_user / AppData / Roaming / Microsoft / Windows / Start Menu / Programs / Startup

Uppenbarligen måste du ändra "current_user" till ditt faktiska användarnamn.

Det är allt! När din dator startar kommer det Python -skriptet att köras. Den övervakar den seriella anslutningen från Arduino och ställer in alla programvolymer till vad du än ringer!

Arduino Contest 2020
Arduino Contest 2020
Arduino Contest 2020
Arduino Contest 2020

Tvåa i Arduino Contest 2020

Rekommenderad: