Mündəricat:

Vintage Rotary Telefon Dial PC Səs İdarəçiliyi: 7 addım (şəkillərlə)
Vintage Rotary Telefon Dial PC Səs İdarəçiliyi: 7 addım (şəkillərlə)

Video: Vintage Rotary Telefon Dial PC Səs İdarəçiliyi: 7 addım (şəkillərlə)

Video: Vintage Rotary Telefon Dial PC Səs İdarəçiliyi: 7 addım (şəkillərlə)
Video: Vintage 50s bakelite GPO rotary dial telephone sound 2024, Noyabr
Anonim
Image
Image
Dialı çıxarın
Dialı çıxarın

Mənim kimi birisənsə, kompüterdəki səsin tez -tez dəyişdiyini görürsən. Bəzi videolar digərlərindən daha yüksəkdir, bəzən podkast və ya musiqi dinləyərkən kompüterinizdə səsin kəsilməsini istəyərsiniz və telefon zəngi alsanız səsi tez bir zamanda söndürməyiniz lazım ola bilər. Kompüterinizdə media nəzarətiniz yoxdursa, üzümlü fırlanan telefon düyməsini Windows PC üçün səs səviyyəsinə çevirə bilərsiniz.

Bu səs idarəetmə cihazı kompüterinizə USB vasitəsilə qoşulur və hər açıq proqramın həcmini avtomatik olaraq yığdığınız nömrəyə təyin edir. "2" yığsanız, səs 20%olaraq təyin ediləcək. "8" yığın və 80%olaraq təyin ediləcək. "0" yığmaq onu 0% olaraq təyin edir və səssiz kimi işləyir. Tapşırıq çubuğunuzdakı səs səviyyəsinə nəzarət etməkdən daha sürətli, məmnun və daha əyləncəlidir.

Təchizat

  • Vintage Bell Systems Trimline fırlanan telefon
  • Arduino Nano
  • M3 yivli istilik qurğuları
  • M3 maşın vintləri
  • Rezistorlar (470 ohm və 10k ohm)
  • Tel
  • 3D printerə giriş

Addım 1: Əməliyyat nəzəriyyəsi

Bu layihədə istifadə olunan Bell Systems Trimline da daxil olmaqla fırlanan telefonlar sırf analoq elektromexaniki qurğulardır. Düyməni döndərdiyiniz zaman, yay yay düyməsini orijinal vəziyyətinə qaytarır. Hər nömrə keçdikcə bir açar qısa bir müddətə kəsilir (və ya bağlanır) və nəbz yaradır. Etməli olduğumuz şey, hansı nömrənin yığıldığını müəyyən etmək üçün bu zərbələri saymaqdır.

guideomax -ın bunun necə işlədiyini dərindən izah edən fantastik bir Instructables dərsliyi var və orada daha ətraflı məlumat tapa bilərsiniz.

Bu layihə üçün nəbzləri saymaq üçün Arduino Nano istifadə edirik. Arduino daha sonra nömrəni serial bağlantısı ilə PC -yə göndərir. Arxa planda işləyən və bu serial bağlantısını izləyən əsas Python skriptini yazdım. Bitləri aldıqda, nömrəni alır və müvafiq səsi təyin etmək üçün Python Core Audio Windows kitabxanasından istifadə edir.

Windows və kitabxanada olan məhdudiyyətlər səbəbindən skript ümumi sistem həcmini təyin etmir (tapşırıq çubuğunuzdakı əsas sürüşdürücü). Bunun əvəzinə, hazırda işləyən hər bir proqram üçün fərdi həcmi təyin edir. Proqramlar arasında fərqli nisbi səs səviyyələrini saxlaya bilməyəcəyiniz istisna olmaqla, təsir eynidır.

Addım 2: Dialı çıxarın

Dialı çıxarın
Dialı çıxarın

Bu addım sadədir: yığım mexanizmini çıxarmaq üçün Trimline telefonunuzu sökün. Əslində öz-özünə qurulmuş bir moduldur, buna görə onu telefondan çıxartmalısınız.

Bu layihə üçün Trimline modelini seçdim, çünki bu yığma modulu digər fırlanan telefonlarda tapa biləcəyinizdən daha yığcamdır.

Bir neçə test fırlatsanız, ev mövqeyinə qayıdarkən açarın uzaqlaşdığını eşitməlisiniz.

Addım 3: Korpusu çap edin

Kassanı çap edin
Kassanı çap edin

Kassa hissələrini çap etmək üçün təqdim olunan iki STL faylını istifadə edin. İstədiyiniz filament materialından istifadə edə bilərsiniz (PLA istifadə etdim). İstifadə etdiyiniz xüsusi parametrlər o qədər də əhəmiyyətli deyil, amma "Rotary_Top" hissəsi üçün dəstəklərdən istifadə etməyi məsləhət gördüm. Layihənin qalan hissəsi üzərində işləyərkən bu iki hissəni çap edə bilərsiniz.

Addım 4: Arduino proqramlaşdırın

Arduino proqramlaşdırın
Arduino proqramlaşdırın

Arduino Nano'nuza yüklədiyiniz kod, doğrudan bu təlimat üçün təlimatlardan götürülmüşdür, çünki bu layihə üçün mükəmməl işləyir:

int needToPrint = 0; int sayı; int = 2;

int lastState = LOW;

int trueState = LOW;

long lastStateChangeTime = 0;

int silindi = 0;

// sabitlər

int dialHasFinishedRotatingAfterMs = 100;

int debounceDelay = 10;

boş quraşdırma () {

Serial.begin (9600);

pinMode (giriş, GİRİŞ); }

boşluq döngəsi () {

int oxu = digitalRead (in);

if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// yığım yığılmır və ya yığılmağı bitirdi.

if (needToPrint) {// yalnız yenicə yığılmaq üzrədirsə, nömrəni serial // xəttinə göndərib sayımı sıfırlamalıyıq. Sayını 10 -a dəyişdiririk, çünki '0' 10 zərbə göndərəcək.

Serial.print (say % 10, DEC);

needToPrint = 0;

say = 0;

silindi = 0; }}

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

}

if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - bu, sabitləşdikdən sonra baş verir

if (oxu! = trueState) {// bu o deməkdir ki, keçid ya qapalı-> açıqdan, ya da əksinə getdi. trueState = oxu; if (trueState == YÜKSEK) {// yüksək olarsa nəbz sayını artırın.

saymaq ++;

needToPrint = 1; // bu nömrəni çap etməliyik (kadr fırlanmasını bitirdikdən sonra)

}

}

}

lastState = oxu; }

Addım 5: Hər şeyi bağlayın

Hər şeyi tel edin
Hər şeyi tel edin
Hər şeyi tel edin
Hər şeyi tel edin
Hər şeyi tel edin
Hər şeyi tel edin

Bu layihənin naqilləri çox sadədir. Dial modulunun arxasında vintlər olan iki altıbucaqlı dirək olmalıdır. Bunlar keçid əlaqələridir. Qütblüyün heç bir əhəmiyyəti yoxdur.

Qeyd: Şəkillərdəki tellərimin rənglərinə fikir verməyin. Zəmini və 5V -ni qarışdırdım, buna görə də bunlar əksinədir.

Post A -dan (GND) bir tel bağlayın və Arduino Nano'nuzdakı bir torpaq pininə qoşun. İkinci bir tel götürün və 470 ohm müqavimətinin bir tərəfinə üçüncü bir teli lehimləyin. İkinci tel, kadrdakı B Postuna (+) gedəcək. Üçüncü tel, 10k ohm rezistorun bir tərəfinə lehimlənəcək. Dördüncü bir tel götürün və 470 ohm müqavimətinin digər tərəfindən Arduino Nano -da Pin 2 -ə lehimləyin. Nəhayət, beşinci bir tel, 10k ohm müqavimətinin digər tərəfini Arduino Nano üzərindəki 5V pininə bağlamalıdır.

Açar açıq olduqda (hər "nəbz" zamanı olduğu kimi) pimi yuxarıya çəkmək üçün rezistorlardan və 5V pinindən istifadə edirik.

Addım 6: Quraşdırma

Məclis
Məclis
Məclis
Məclis

Mühərrikin Rotary_Top hissəsində altı kiçik deşik olduğuna diqqət yetirməlisiniz. Bunlar yivli istilik qurğuları üçündür. İlk üçü (üst səthin alt tərəfində) fırlanan kadrın quraşdırılmasıdır. Alt üçü Rotary_Base -ni Rotary_Top -a bağlamaqdır.

İstilik qurğuları bir lehimləmə dəmiri (və ya xüsusi bir alət) ilə qızdırıla bilər və sonra çuxurlara itələ bilər. İstilik, plastikləri əridir, bu da parçaları yerində möhkəm tutmaq üçün istilik çıxarıldıqdan sonra sərtləşir. İstilik qurğusundan istifadə etmək, vintləri birbaşa plastikə bağlamaqdan daha xoşdur.

Altı istilik qurğusunu daxil edin. Daha sonra kadranı montaj etmək üçün bir neçə qısa (10 mm və ya daha çox) M3 maşın vintlərindən istifadə edin. Metal barmaq dayanacağının gedəcəyi kəsikdəki çentiklərə diqqət yetirin. Arduino Nano-nu qoşulmuş USB kabeli ilə korpusun içərisinə diqqətlə yerləşdirin (boşdur, quraşdırılmamışdır) və bazanı yerə vidalayın.

Kassanı masanıza yapışdırmaq üçün çox güman ki, iki tərəfli lent və ya 3M əmr şeridlərindən istifadə etmək istəyəcəksiniz, buna görə də düyməni döndərdiyiniz zaman hərəkət etməyəcəkdir.

Addım 7: Python Scriptini qurun

Python Script qurun
Python Script qurun

Birincisi, Python -un quraşdırıldığından əmin olun (Python 2 -nin ləğv edildiyi üçün Python 3 -dən istifadə edin).

Sonra iki tələb olunan kitabxananı qurmalısınız: PyCAW və PySerial.

İstifadə edin:

"pip install pycaw" və "pip install pyserial" (Python pəncərəsindən və ya Windows Powershell -dən)

Arduino Nano'nun hansı limana bağlı olduğunu yoxlayın. Bunu Arduino IDE -dən yoxlaya bilərsiniz. Bu portu seçdiyinizə əmin olun, sonra serial monitoru açın. Baud sürətinizin 9600 olaraq təyin olunduğundan əmin olun və sonra serial monitorda göründüyündən əmin olmaq üçün bəzi nömrələri yığın.

Əgər etsələr, "rotary.py" kodunu port nömrənizlə birlikdə düzəldin. Ssenarini işə salırsınızsa, indi nömrəni yığaraq səs səviyyəsini dəyişə bilərsiniz.

Son addım, kompüterinizi yüklədiyiniz zaman skriptin avtomatik olaraq arxa planda işləməsini qurmaqdır.

Bunu etmək üçün "rotary.py" faylını "rotary.pyw" olaraq dəyişdirin ki, bu da arxa planda işləməyə imkan verəcəkdir. Sonra bu skripti aşağıdakı qovluğa yerləşdirin: C: / Users / current_user / AppData / Roaming / Microsoft / Windows / Start Menu / Programs / Startup

Aydındır ki, "current_user" ı əsl istifadəçi qovluq adınıza dəyişməlisiniz.

Bu belədir! Nə vaxt kompüter işə salınsa, o Python skript işləməyə başlayacaq. Arduino -dan serial bağlantısını izləyəcək və bütün proqram həcmini yığdığınız hər şeyə təyin edəcək!

Arduino Müsabiqəsi 2020
Arduino Müsabiqəsi 2020
Arduino Müsabiqəsi 2020
Arduino Müsabiqəsi 2020

Arduino 2020 Müsabiqəsində ikinci yer

Tövsiyə: