Kazalo:

Vintage Rotary Phone Dial za nadzor glasnosti računalnika: 7 korakov (s slikami)
Vintage Rotary Phone Dial za nadzor glasnosti računalnika: 7 korakov (s slikami)

Video: Vintage Rotary Phone Dial za nadzor glasnosti računalnika: 7 korakov (s slikami)

Video: Vintage Rotary Phone Dial za nadzor glasnosti računalnika: 7 korakov (s slikami)
Video: Высокая плотность 2022 2024, November
Anonim
Image
Image
Odstranite številčnico
Odstranite številčnico

Če ste kaj podobnega meni, se vam pogosto zgodi, da glasnost v računalniku spreminjate. Nekateri videoposnetki so glasnejši od drugih, včasih želite, da glasnost v računalniku utišate, medtem ko poslušate poddaje ali glasbo, zato boste morda morali hitro zmanjšati glasnost, če prejmete telefonski klic. Če v računalnik nimate vgrajenih kontrolnikov za medije, lahko starinski vrtljivi gumb za telefon spremenite v nadzor glasnosti za računalnik z operacijskim sistemom Windows.

Ta naprava za nadzor glasnosti se priključi na vaš računalnik prek USB -ja in samodejno nastavi glasnost vsakega odprtega programa na katero koli številko, ki jo pokličete. Če pokličete "2", bo glasnost nastavljena na 20%. Pokličite "8" in nastavljeno bo na 80%. Klicanje "0" nastavi na 0% in deluje kot utišanje. To je hitro, zadovoljivo in bolj zabavno kot klik na gumb za glasnost v opravilni vrstici.

Zaloge

  • Rotacijski telefon Vintage Bell Systems Trimline
  • Arduino Nano
  • Toplotno nastavljivi vložki z navojem M3
  • Strojni vijaki M3
  • Upori (470 ohm in 10 k ohm)
  • Žica
  • Dostop do 3D tiskalnika

1. korak: Teorija delovanja

Rotacijski telefoni, vključno z Bell Systems Trimline, uporabljeno v tem projektu, so izključno analogne elektromehanske naprave. Ko zavrtite gumb, vzmet vrti gumb nazaj v prvotni položaj. Ko preide vsako številko, se stikalo za kratek trenutek odklopi (ali priključi) in ustvari utrip. Vse, kar moramo storiti, je, da preštejemo te impulze, da ugotovimo, katero številko smo klicali.

guideomax ima fantastično vadnico Instructables, ki podrobno opisuje, kako to deluje, in tam najdete več podrobnosti.

Za ta projekt uporabljamo Arduino Nano za štetje utripov. Arduino nato pošlje številko v računalnik prek serijske povezave. Napisal sem osnovni skript Python, ki deluje v ozadju in spremlja to serijsko povezavo. Ko prejme bite, vzame številko in uporabi knjižnico Python Core Audio Windows za nastavitev ustrezne glasnosti.

Zaradi omejitev pri sistemu Windows in tej knjižnici skript ne nastavi celotne glasnosti sistema (glavni drsnik v opravilni vrstici). Namesto tega nastavi posamezno glasnost za vsak program, ki se trenutno izvaja. Učinek je enak, le da med programi ne morete vzdrževati različnih relativnih ravni glasnosti.

2. korak: Odstranite številčnico

Odstranite številčnico
Odstranite številčnico

Ta korak je preprost: samo razstavite slušalko Trimline, da odstranite klicni mehanizem. To je v bistvu samostojen modul, zato ga morate samo odviti iz slušalke.

Za ta projekt sem se odločil za model Trimline, ker je ta klicni modul bolj kompakten od tistih, ki jih najdete na večini drugih rotacijskih telefonov.

Če izvedete nekaj preskusnih vrtljajev, bi morali slišati stikalo stikala, ko se vrne v začetni položaj.

3. korak: Natisnite ohišje

Natisnite ohišje
Natisnite ohišje

Za tiskanje delov ohišja uporabite dve priloženi datoteki STL. Uporabite lahko kateri koli material iz filamentov (jaz sem uporabil PLA). Posebne nastavitve, ki jih uporabljate, niso tako pomembne, vendar sem priporočil uporabo podpore za del "Rotary_Top". Ta dva dela lahko natisnete, medtem ko delate na preostalem delu projekta.

4. korak: Programirajte svoj Arduino

Programirajte svoj Arduino
Programirajte svoj Arduino

Koda, ki jo naložite v svoj Arduino Nano, je vzeta neposredno iz tutoriala Guideomax, saj odlično deluje za ta projekt:

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

int lastState = LOW;

int trueState = LOW;

long lastStateChangeTime = 0;

int izbrisano = 0;

// konstante

int dialHasFinishedRotatingAfterMs = 100;

int debounceDelay = 10;

void setup () {

Serial.begin (9600);

pinMode (in, INPUT); }

void loop () {

int branje = digitalRead (v);

if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// številčnica ni klicana ali je bila pravkar končana.

if (needToPrint) {// če je klic šele končan, moramo poslati številko po serijski // vrstici in ponastaviti štetje. Število smo spremenili za 10, ker bo '0' poslalo 10 impulzov.

Serial.print (število % 10, DEC);

needToPrint = 0;

count = 0;

očiščeno = 0; }}

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

}

if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - to se zgodi, ko se stabilizira

if (branje! = trueState) {// to pomeni, da je stikalo pravkar prešlo iz zaprto-> odprto ali obratno. trueState = branje; if (trueState == HIGH) {// poveča število impulzov, če je visoko.

count ++;

needToPrint = 1; // to številko bomo morali natisniti (ko se števec konča z vrtenjem)

}

}

}

lastState = branje; }

5. korak: Ožičite vse

Ožičite vse
Ožičite vse
Ožičite vse
Ožičite vse
Ožičite vse
Ožičite vse

Ožičenje za ta projekt je zelo preprosto. Klicni modul mora imeti na hrbtni strani dva šesterokotna stebra z vijaki. To so stikalne povezave. Polarnost ni pomembna.

Opomba: Ignorirajte barve mojih žic na fotografijah. Zmešal sem zemljo in 5V, tako da so ti dejansko obrnjeni.

Priključite eno žico iz Post A (GND) in jo priključite na ozemljitveni zatič na vašem Arduino Nano. Vzemite drugo žico in jo spajajte ter tretjo žico na eno stran upora 470 ohmov. Druga žica bo šla na mesto B (+) na številčnici. Tretja žica bo spajkana na eno stran upora 10k ohm. Vzemite četrto žico in jo spajkajte z druge strani upora 470 ohmov na pin 2 na Arduino Nano. Končno bi morala peta žica povezati drugo stran 10k ohmskega upora na 5V pin na Arduino Nano.

Z upori in 5V zatičem povlečemo zatič do visokega položaja, ko je stikalo odprto (kot je med vsakim "impulzom").

6. korak: Montaža

Montaža
Montaža
Montaža
Montaža

Opaziti morate, da ima Rotary_Top del ohišja šest majhnih lukenj. To so za vaše navojne vložke s toplotno nastavitvijo. Zgornji trije (na spodnji strani zgornje površine) morajo namestiti vrtljivi gumb. Spodnji trije privijte Rotary_Base na Rotary_Top.

Toplotno nastavljene vložke lahko segrejete s spajkalnikom (ali posebnim orodjem) in jih nato potisnete v luknje. Toplota bo stalila plastiko, ki se bo po odstranitvi toplote strdila, da bodo vložki varno pritrjeni. Uporaba toplotno nastavljenih vložkov je veliko bolj prijetna kot vstavljanje vijakov neposredno v plastiko.

Vstavite šest toplotno nastavljenih vložkov. Nato za pritrditev številčnice uporabite nekaj kratkih (približno 10 mm) strojnih vijakov M3. Bodite pozorni na zarezo v izrezu, kamor bo šel kovinski prstan. Nato previdno vstavite Arduino Nano s kablom USB, priključenim v ohišje (ohlapen, ni nameščen), in privijte podstavek na svoje mesto.

Za pritrditev ohišja na mizo boste verjetno želeli uporabiti dvostranski trak ali 3M ukazne trakove, da se ne bo premikal, ko zavrtite številčnico.

7. korak: Nastavite skript Python

Namestite skript Python
Namestite skript Python

Najprej se prepričajte, da imate nameščen Python (uporabite Python 3, ker se Python 2 postopno ukinja).

Nato boste morali namestiti dve zahtevani knjižnici: PyCAW in PySerial.

Uporaba:

"pip install pycaw" in "pip install pyserial" (iz okna Python ali Windows Powershell)

Nato preverite, na katera vrata je priključen vaš Arduino Nano. To lahko preverite v Arduino IDE. Prepričajte se, da ste izbrali ta vrata, nato odprite serijski monitor. Prepričajte se, da je vaša hitrost prenosa 9600, nato pa pokličite nekaj številk, da se prikažejo na serijskem monitorju.

Če se to zgodi, uredite kodo "rotary.py" s številko vrat. Če zaženete skript, bi morali glasnost spremeniti tako, da pokličete številko.

Zadnji korak je nastavitev, da se skript samodejno zažene v ozadju, ko zaženete računalnik.

Če želite to narediti, spremenite "rotary.py" v "rotary.pyw", kar mu bo omogočilo izvajanje v ozadju. Nato ta skript postavite v naslednjo mapo: C: / Users / current_user / AppData / Roaming / Microsoft / Windows / Start Menu / Programs / Startup

Očitno boste morali spremeniti "current_user" v ime dejanske uporabniške mape.

To je to! Ko se računalnik zažene, se bo ta skript Python začel izvajati. Nadziral bo serijsko povezavo iz Arduina in nastavil vse glasnosti programa na vse, kar pokličete!

Natečaj Arduino 2020
Natečaj Arduino 2020
Natečaj Arduino 2020
Natečaj Arduino 2020

Podprvak na tekmovanju Arduino 2020

Priporočena: