Cuprins:
- Provizii
- Pasul 1: Teoria funcționării
- Pasul 2: Eliminați cadranul
- Pasul 3: Imprimați carcasa
- Pasul 4: Programați-vă Arduino
- Pasul 5: conectați totul
- Pasul 6: Asamblare
- Pasul 7: Configurați scriptul Python
Video: Controlul volumului pentru apelare telefonică rotativă vintage: 7 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
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
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
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
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
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
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
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!
Locul doi în concursul Arduino 2020
Recomandat:
Alarmă de apelare Internet pentru Aritech cu Arduino: 6 pași
Alarmă de casă Internet Dialer pentru Aritech Cu Arduino: o alarmă de uz casnic și de afaceri foarte utilizată în multe țări din Europa sunt seria de panouri de alarmă Aritech. Acestea au fost instalate până la începutul anului 2000 în sutele lor de mii și multe există și astăzi în case - de obicei sunt re-insigne de către
Carcasă rotativă pentru telefon Raspberry Pi: 10 pași (cu imagini)
Carcasă rotativă pentru telefon Raspberry Pi: Căutam un proiect distractiv pentru Raspberry Pi și am decis că un caz ar fi distractiv. Am găsit un telefon rotativ vechi și l-am transformat într-o carcasă pentru Pi. Am avut nevoie de piese în valoare de aproximativ 40 USD, s-ar putea să o puteți face pentru mai puțin. Întregul proiect a durat
Circuit OLED pentru lumânări cu fotorezistență pentru controlul intensității (TfCD): 4 pași (cu imagini)
Circuit OLED pentru lumânări cu fotorezistență pentru controlul intensității (TfCD): În acest instructable vă arătăm cum să realizați un circuit care să arate LED-urile care clipesc ca o lumânare și să reacționeze la intensitatea mediului. Cu o intensitate a luminii mai mică, este necesară o lumină mai redusă de la sursele de lumină. Cu această aplicație
Control mai bun al volumului pentru TV: 3 pași
Control mai bun al volumului pentru T.v .: Problema: noul meu t.v. are un control digital al volumului, care este destul de tremurat, este fie LOUD, fie OFF Soluția: adăugarea unui control analogic secundar al volumului Materialele: 1. sârmă 2. lipire 3. tub de micșorare 4. potențiometru (am folosit 1 Mohm bun pentru
Rotița de derulare a desktopului și controlul volumului !: 8 pași (cu imagini)
Rotița de derulare a desktopului și controlul volumului !: Faceți proiectul de weekend al revistei, 04.04.09 Unele fundaluri Recent, am citit o mulțime de bloguri diferite. În fiecare zi voi citi cele mai recente postări despre engadget, lifehacker, hackaday, BBG și blogul MAKE :. Problema pentru mine a venit când mi-am dat seama că o