Cuprins:

Controlul volumului pentru apelare telefonică rotativă vintage: 7 pași (cu imagini)
Controlul volumului pentru apelare telefonică rotativă vintage: 7 pași (cu imagini)

Video: Controlul volumului pentru apelare telefonică rotativă vintage: 7 pași (cu imagini)

Video: Controlul volumului pentru apelare telefonică rotativă vintage: 7 pași (cu imagini)
Video: High Density 2022 2024, Noiembrie
Anonim
Image
Image
Scoateți cadranul
Scoateți cadranul

Dacă sunteți ca mine, vă veți schimba volumul de pe computer destul de des. Unele videoclipuri sunt mai puternice decât altele, uneori doriți ca volumul să fie dezactivat pe computer în timp ce ascultați podcast-uri sau muzică și poate fi necesar să reduceți rapid volumul dacă primiți un apel telefonic. Dacă nu aveți controale media încorporate în computer, puteți transforma un apel rotativ de telefon vintage într-un control de volum pentru computerul dvs. Windows.

Acest dispozitiv de control al volumului se conectează la computer prin USB și va seta automat volumul fiecărui program deschis la orice număr pe care îl formați. Dacă formați „2”, volumul va fi setat la 20%. Formați un „8” și va fi setat la 80%. Apelarea „0” îl setează la 0% și acționează ca mut. Este rapid, satisfăcător și mai distractiv decât să dai clic pe butonul de control al volumului din bara de activități.

Provizii

  • Telefon rotativ Vintage Bell Systems Trimline
  • Arduino Nano
  • Inserturi filetate M3 cu căldură
  • Șuruburile mașinii M3
  • Rezistoare (470 ohm și 10k ohm)
  • Sârmă
  • Acces la o imprimantă 3D

Pasul 1: Teoria funcționării

Telefoanele rotative, inclusiv dispozitivul Bell Systems Trimline utilizat în acest proiect, sunt dispozitive electromecanice pur analogice. Când rotiți cadranul, un arc rotește cadranul înapoi în poziția inițială. Pe măsură ce trece de fiecare număr, un comutator este deconectat (sau conectat) pentru un scurt moment, creând un impuls. Tot ce trebuie să facem este să numărăm acele impulsuri pentru a determina ce număr a fost format.

guidomax are un tutorial fantastic Instructables care detaliază modul în care funcționează exact acest lucru și puteți găsi mai multe detalii acolo.

Pentru acest proiect, folosim Arduino Nano pentru a număra impulsurile. Arduino trimite apoi numărul către computer prin conexiunea serială. Am scris un script Python de bază care rulează în fundal și monitorizează acea conexiune serială. Când primește biți, ia numărul și folosește biblioteca Python Core Audio Windows pentru a seta volumul corespunzător.

Datorită limitărilor cu Windows și acea bibliotecă, scriptul nu setează volumul general al sistemului (glisorul principal din bara de activități). În schimb, setează volumul individual pentru fiecare program care rulează în prezent. Efectul este același, cu excepția faptului că nu puteți menține niveluri de volum relative diferite între programe.

Pasul 2: Eliminați cadranul

Scoateți cadranul
Scoateți cadranul

Acest pas este simplu: doar dezasamblați receptorul telefonului Trimline pentru a elimina mecanismul de apelare. Este în esență un modul autonom, deci trebuie doar să îl deșurubați de pe receptor.

Am ales modelul Trimline pentru acest proiect, deoarece acel modul de apelare este mai compact decât cele pe care le veți găsi pe majoritatea celorlalte telefoane rotative.

Dacă îi dați câteva rotiri de testare, ar trebui să auziți comutatorul făcând clic în timp ce revine la poziția de pornire.

Pasul 3: Imprimați carcasa

Imprimați carcasa
Imprimați carcasa

Utilizați cele două fișiere STL furnizate pentru a imprima piesele carcasei. Puteți folosi orice material filamentar preferați (eu am folosit PLA). Setările particulare pe care le utilizați nu sunt atât de importante, dar am recomandat să folosiți suporturi pentru partea „Rotary_Top”. Puteți imprima aceste două părți în timp ce lucrați la restul proiectului.

Pasul 4: Programați-vă Arduino

Programează-ți Arduino
Programează-ți Arduino

Codul pe care îl veți încărca pe Arduino Nano este preluat direct din tutorialul guidomax, deoarece funcționează perfect pentru acest proiect:

int needToPrint = 0; int count; int în = 2;

int lastState = LOW;

int trueState = LOW;

long lastStateChangeTime = 0;

int compensat = 0;

// constante

int dialHasFinishedRotatingAfterMs = 100;

int debounceDelay = 10;

configurare nulă () {

Serial.begin (9600);

pinMode (în, INPUT); }

bucla nulă () {

int reading = digitalRead (in);

if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// apelantul nu este format sau tocmai a terminat de formatat.

if (needToPrint) {// dacă tocmai s-a terminat de apelat, trebuie să trimitem numărul pe // linia de serie și să resetăm numărul. Modificăm numărul cu 10, deoarece „0” va trimite 10 impulsuri.

Serial.print (numărare% 10, DEC);

needToPrint = 0;

număr = 0;

compensat = 0; }}

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

}

if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - acest lucru se întâmplă odată ce este stabilit

if (reading! = trueState) {// asta înseamnă că comutatorul fie a trecut de la închis-> deschis, fie invers. trueState = citire; if (trueState == HIGH) {// crește numărul de impulsuri dacă a crescut.

conta ++;

needToPrint = 1; // va trebui să imprimăm acest număr (odată ce rotirea a fost terminată)

}

}

}

lastState = citire; }

Pasul 5: conectați totul

Sârmă totul în sus
Sârmă totul în sus
Sârmă totul în sus
Sârmă totul în sus
Sârmă totul în sus
Sârmă totul în sus

Cablarea pentru acest proiect este foarte simplă. Modulul cadranului trebuie să aibă două stâlpi hexagonali pe spate cu șuruburi în ele. Acestea sunt conexiunile de comutare. Polaritatea nu contează.

Notă: Ignorați culorile firelor mele din fotografii. Am amestecat pământ și 5V, așa că acestea sunt de fapt inversate.

Conectați un fir de la Post A (GND) și conectați-l la un pin de masă de pe Arduino Nano. Luați un al doilea fir și lipiți-l și un al treilea fir pe o parte a rezistorului de 470 ohmi. Al doilea fir va merge la Postarea B (+) pe cadran. Al treilea fir va fi lipit pe o parte a rezistorului de 10k ohm. Luați un al patrulea fir și lipiți-l din cealaltă parte a rezistorului de 470 ohmi la pinul 2 de pe Arduino Nano. În cele din urmă, un al cincilea fir ar trebui să conecteze cealaltă parte a rezistorului de 10k ohm la pinul de 5V de pe Arduino Nano.

Folosim rezistențele și pinul de 5V pentru a trage pinul la mare când comutatorul este deschis (așa cum este în timpul fiecărui „impuls”).

Pasul 6: Asamblare

Asamblare
Asamblare
Asamblare
Asamblare

Trebuie să observați că partea Rotary_Top a incintei are șase găuri mici. Acestea sunt pentru inserțiile filetate de căldură. Primele trei (pe partea inferioară a suprafeței superioare) trebuie să monteze cadranul rotativ. Cele trei de jos sunt pentru a înșuruba Rotary_Base la Rotary_Top.

Inserturile termorezistente pot fi încălzite cu un fier de lipit (sau cu un instrument dedicat) și apoi împinse în găuri. Căldura va topi plasticul, care se va întări după îndepărtarea căldurii pentru a menține inserțiile în siguranță. Utilizarea inserțiilor termorezistente este mult mai plăcută decât șuruburile filetate direct în plastic.

Introduceți cele șase inserții termorezistente. Apoi utilizați câteva șuruburi M3 scurte (aproximativ 10mm) pentru a monta cadranul. Luați notă de crestătura din decupaj, unde se va opri degetul metalic. Apoi, așezați cu atenție Arduino Nano - cu cablu USB conectat - în interiorul carcasei (este slăbit, nu este montat) și înșurubați baza în poziție.

Probabil că veți dori să utilizați bandă față-verso sau benzi de comandă 3M pentru a fixa carcasa pe birou, astfel încât să nu se miște când rotiți cadranul.

Pasul 7: Configurați scriptul Python

Configurați scriptul Python
Configurați scriptul Python

Mai întâi, asigurați-vă că aveți instalat Python (utilizați Python 3, deoarece Python 2 este eliminat treptat).

Apoi, va trebui să instalați cele două biblioteci necesare: PyCAW și PySerial.

Utilizare:

„pip install pycaw” și „pip install pyserial” (din fereastra Python sau Windows Powershell)

Apoi verificați la ce port este conectat Arduino Nano. Puteți verifica acest lucru din interiorul IDE Arduino. Asigurați-vă că ați selectat acel port, apoi deschideți monitorul serial. Asigurați-vă că rata de transmisie este setată la 9600, apoi formați câteva numere pentru a vă asigura că apar pe monitorul serial.

Dacă da, modificați codul „rotary.py” cu numărul de port. Dacă rulați scriptul, atunci ar trebui să puteți schimba volumul formând un număr.

Ultimul pas este configurarea scriptului pentru a rula automat în fundal atunci când porniți computerul.

Pentru aceasta, schimbați „rotary.py” la „rotary.pyw”, ceea ce îi va permite să ruleze în fundal. Apoi plasați acel script în următorul folder: C: / Users / current_user / AppData / Roaming / Microsoft / Windows / Start Menu / Programs / Startup

Evident, va trebui să schimbați „current_user” la numele propriu al folderului de utilizator.

Asta e! Ori de câte ori computerul pornește, acel script Python va începe să ruleze. Acesta va monitoriza conexiunea serială de pe Arduino și va seta toate volumele programului la orice apelați!

Concurs Arduino 2020
Concurs Arduino 2020
Concurs Arduino 2020
Concurs Arduino 2020

Locul doi în concursul Arduino 2020

Recomandat: