Turinys:

Senovinis rotacinis telefono rinkimo kompiuterio garsumo valdymas: 7 žingsniai (su nuotraukomis)
Senovinis rotacinis telefono rinkimo kompiuterio garsumo valdymas: 7 žingsniai (su nuotraukomis)

Video: Senovinis rotacinis telefono rinkimo kompiuterio garsumo valdymas: 7 žingsniai (su nuotraukomis)

Video: Senovinis rotacinis telefono rinkimo kompiuterio garsumo valdymas: 7 žingsniai (su nuotraukomis)
Video: НАХОДИТСЯ В ГЛУБИНЕ ЛЕСОВ | Заброшенные шведские коттеджи (совершенно забытые) 2024, Lapkritis
Anonim
Image
Image
Nuimkite ratuką
Nuimkite ratuką

Jei esate kažkas panašaus į mane, pastebite, kad gana dažnai keičiate kompiuterio garsumą. Kai kurie vaizdo įrašai yra garsesni nei kiti, kartais norite, kad garsas jūsų kompiuteryje būtų išjungtas, kai klausotės transliacijų ar muzikos, ir jums gali tekti greitai sumažinti garsą, jei gausite skambutį. Jei jūsų kompiuteryje nėra laikmenų valdiklių, senovinį sukamąjį telefono ratuką galite paversti „Windows“kompiuterio garsumo valdikliu.

Šis garsumo valdymo įtaisas prijungiamas prie kompiuterio per USB ir automatiškai nustato kiekvienos atidarytos programos garsumą bet kokiu numeriu, kurį renkate. Jei surinksite „2“, garsumas bus nustatytas 20%. Surinkite „8“ir jis bus nustatytas 80%. Surinkus „0“nustatomas 0% ir jis veikia kaip nutildytas. Tai greita, patenkinama ir smagiau nei spustelėti garsumo valdiklį užduočių juostoje.

Prekės

  • Vintage Bell Systems Trimline rotacinis telefonas
  • Arduino Nano
  • M3 srieginiai kaitinimo įdėklai
  • M3 mašinos varžtai
  • Rezistoriai (470 omų ir 10 k omų)
  • Viela
  • Prieiga prie 3D spausdintuvo

1 žingsnis: veikimo teorija

Rotaciniai telefonai, įskaitant šiame projekte naudojamą „Bell Systems Trimline“, yra grynai analoginiai elektromechaniniai prietaisai. Kai pasukate ratuką, spyruoklė grąžina ratuką į pradinę padėtį. Praėjus kiekvienam skaičiui, jungiklis trumpam atjungiamas (arba prijungiamas), sukuriamas impulsas. Mums tereikia suskaičiuoti tuos impulsus, kad nustatytume, koks numeris buvo surinktas.

„guidomax“turi fantastišką „Instructables“vadovėlį, kuriame išsamiai aprašoma, kaip tai veikia, ir ten galite rasti daugiau informacijos.

Šiam projektui mes naudojame „Arduino Nano“impulsams skaičiuoti. Tada „Arduino“siunčia numerį į kompiuterį per nuoseklųjį ryšį. Parašiau pagrindinį „Python“scenarijų, kuris veikia fone ir stebi tą nuoseklųjį ryšį. Kai jis gauna bitus, jis priima numerį ir naudoja „Python Core Audio Windows“biblioteką, kad nustatytų tinkamą garsumą.

Dėl „Windows“ir tos bibliotekos apribojimų scenarijus nenustato bendro sistemos garsumo (pagrindinio užduočių juostos slankiklio). Vietoj to jis nustato individualų kiekvienos šiuo metu vykdomos programos garsumą. Poveikis yra tas pats, išskyrus tai, kad negalite išlaikyti skirtingo santykinio garso lygio tarp programų.

2 veiksmas: nuimkite ratuką

Nuimkite ratuką
Nuimkite ratuką

Šis žingsnis yra paprastas: tiesiog išardykite „Trimline“telefono ragelį, kad pašalintumėte rinkimo mechanizmą. Iš esmės tai yra autonominis modulis, todėl jums tereikia jį atsukti iš ragelio.

Šiam projektui pasirinkau „Trimline“modelį, nes šis rinkimo modulis yra kompaktiškesnis nei tas, kurį rasite daugelyje kitų rotacinių telefonų.

Jei atliksite kelis bandymus, turėtumėte išgirsti, kaip jungiklis spragteli, kai jis grįžta į pradinę padėtį.

3 veiksmas: atspausdinkite priedą

Atspausdinkite priedą
Atspausdinkite priedą

Norėdami spausdinti korpuso dalis, naudokite du pateiktus STL failus. Galite naudoti bet kokią gijų medžiagą, kurią norite (aš naudojau PLA). Konkretūs jūsų naudojami nustatymai nėra tokie svarbūs, tačiau aš rekomendavau naudoti „Rotary_Top“dalies palaikymus. Šias dvi dalis galite atsispausdinti dirbdami su likusia projekto dalimi.

4 žingsnis: užprogramuokite „Arduino“

Užprogramuokite „Arduino“
Užprogramuokite „Arduino“

Kodas, kurį įkelsite į „Arduino Nano“, paimtas tiesiai iš „Guidomax“vadovėlio, nes jis puikiai tinka šiam projektui:

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

int lastState = LOW;

int trueState = LOW;

ilgas lastStateChangeTime = 0;

int išvalytas = 0;

// konstantos

int dialHasFinishedRotatingAfterMs = 100;

int debounceDelay = 10;

void setup () {

Serial.begin (9600);

pinMode (in, INPUT); }

void loop () {

int reading = digitalRead (in);

if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// ratukas nėra renkamas arba ką tik baigtas rinkti.

if (needToPrint) {// jei tik baigtas rinkti numeris, turime nusiųsti numerį serijos // eilutėje ir iš naujo nustatyti skaičių. Mes modifikuojame skaičių 10, nes „0“siunčia 10 impulsų.

Serial.print (skaičius % 10, DEC);

needToPrint = 0;

skaičius = 0;

išvalyta = 0; }}

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

}

if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - tai atsitinka, kai jis sustabdomas

jei (skaitymas! = trueState) {// tai reiškia, kad jungiklis ką tik išėjo iš uždarytos-> atidarytas arba atvirkščiai. trueState = skaitymas; if (trueState == HIGH) {// padidinkite impulsų skaičių, jei jis padidėjo.

skaičiuoti ++;

needToPrint = 1; // turėsime atspausdinti šį numerį (kai ratukas pasuks)

}

}

}

lastState = skaitymas; }

5 žingsnis: prijunkite viską

Sujunkite viską
Sujunkite viską
Sujunkite viską
Sujunkite viską
Sujunkite viską
Sujunkite viską

Šio projekto laidai yra tikrai paprasti. Rinkimo modulio gale turėtų būti du šešiakampiai stulpai su varžtais. Tai jungiklių jungtys. Poliškumas nesvarbus.

Pastaba: ignoruokite mano laidų spalvas nuotraukose. Aš sumaišiau žemę ir 5 V, todėl jie iš tikrųjų yra atvirkščiai.

Prijunkite vieną laidą iš A posto (GND) ir prijunkite jį prie „Arduino Nano“įžeminimo kaiščio. Paimkite antrą laidą ir lituokite jį bei trečią laidą į vieną 470 omų rezistoriaus pusę. Antrasis laidas eis į raštą B (+). Trečiasis laidas bus lituojamas į vieną 10k omų rezistoriaus pusę. Paimkite ketvirtą laidą ir lituokite jį iš kitos 470 omų rezistoriaus pusės į „Arduino Nano“2 kaištį. Galiausiai penktoji viela turėtų prijungti kitą 10k omų rezistoriaus pusę prie 5V kaiščio „Arduino Nano“.

Mes naudojame rezistorius ir 5 V kaištį, kad ištrauktume kaištį aukštyn, kai jungiklis yra atidarytas (kaip ir kiekvieno „impulso“metu).

6 žingsnis: Surinkimas

Surinkimas
Surinkimas
Surinkimas
Surinkimas

Turėtumėte pastebėti, kad „Rotary_Top“gaubto dalyje yra šešios mažos skylės. Tai yra jūsų srieginiai šildymo įdėklai. Viršutiniai trys (viršutinio paviršiaus apačioje) turi pritvirtinti sukamąjį ratuką. Apatiniai trys turi prisukti „Rotary_Base“prie „Rotary_Top“.

Šildymo įdėklus galima pašildyti lituokliu (arba tam skirtu įrankiu) ir įstumti į skyles. Karštis ištirps plastiką, kuris po kietėjimo pašalinimo sukietės, kad tvirtai laikytų įdėklus. Naudoti įkaitintus įdėklus yra daug maloniau nei įsukti varžtus tiesiai į plastiką.

Įdėkite šešis kaitinimo įdėklus. Tada naudokite kelis trumpus (maždaug 10 mm) M3 mašinos varžtus, kad pritvirtintumėte ratuką. Atkreipkite dėmesį į išpjovos išpjovą, į kurią pateks metalinė pirštų atrama. Tada atsargiai įdėkite „Arduino Nano-“su prijungtu USB kabeliu į korpuso vidų (jis yra laisvas, nepritvirtintas) ir prisukite pagrindą.

Tikriausiai norėsite naudoti dvipusę juostą arba 3M komandines juostas, kad pritvirtintumėte korpusą prie savo stalo, todėl sukdami ratuką jis nejudės.

7 veiksmas: nustatykite „Python“scenarijų

Nustatykite „Python“scenarijų
Nustatykite „Python“scenarijų

Pirmiausia įsitikinkite, kad turite įdiegtą „Python“(naudokite „Python 3“, nes „Python 2“nutraukiama).

Tada turėsite įdiegti dvi reikalingas bibliotekas: PyCAW ir PySerial.

Naudoti:

„pip install pycaw“ir „pip install pyserial“(iš „Python“lango arba „Windows Powershell“)

Tada patikrinkite, prie kurio prievado prijungtas jūsų „Arduino Nano“. Tai galite patikrinti iš „Arduino IDE“. Įsitikinkite, kad pasirinktas tas prievadas, tada atidarykite nuoseklųjį monitorių. Įsitikinkite, kad jūsų duomenų perdavimo sparta nustatyta į 9600, tada surinkite kai kuriuos numerius, kad įsitikintumėte, jog jie rodomi serijiniame monitoriuje.

Jei taip, redaguokite „rotary.py“kodą naudodami savo prievado numerį. Jei vykdote scenarijų, dabar turėtumėte pakeisti garsumą rinkdami numerį.

Paskutinis žingsnis yra nustatyti, kad scenarijus būtų paleistas automatiškai fone, kai paleisite kompiuterį.

Norėdami tai padaryti, pakeiskite „rotary.py“į „rotary.pyw“, kad jis veiktų fone. Tada įdėkite šį scenarijų į šį aplanką: C: / Users / current_user / AppData / Roaming / Microsoft / Windows / Start Menu / Programs / Startup

Akivaizdu, kad turėsite pakeisti „current_user“į tikrąjį vartotojo aplanko pavadinimą.

Viskas! Kai tik kompiuteris paleidžiamas, tas „Python“scenarijus pradės veikti. Jis stebės nuoseklųjį ryšį iš „Arduino“ir nustatys visus programos garsus, kad ir ką rinktumėte!

„Arduino“konkursas 2020 m
„Arduino“konkursas 2020 m
„Arduino“konkursas 2020 m
„Arduino“konkursas 2020 m

Antroji vieta „Arduino“konkurse 2020 m

Rekomenduojamas: