Mundarija:

Amp Rotary Telefon Dial Kompyuter Ovozini boshqarish: 7 qadam (rasmlar bilan)
Amp Rotary Telefon Dial Kompyuter Ovozini boshqarish: 7 qadam (rasmlar bilan)

Video: Amp Rotary Telefon Dial Kompyuter Ovozini boshqarish: 7 qadam (rasmlar bilan)

Video: Amp Rotary Telefon Dial Kompyuter Ovozini boshqarish: 7 qadam (rasmlar bilan)
Video: САМАЯ ДЕШЕВАЯ мини wifi камера со СЛЕЖЕНИЕМ. 2024, Noyabr
Anonim
Image
Image
Raqamni olib tashlang
Raqamni olib tashlang

Agar siz menga o'xshagan bo'lsangiz, kompyuteringizning ovozini tez -tez o'zgartirasiz. Ba'zi videolar boshqalarga qaraganda balandroq bo'ladi, ba'zida siz podkastlar yoki musiqa tinglayotganingizda kompyuteringizda ovoz balandligini o'chirishni xohlaysiz va agar siz qo'ng'iroq qilsangiz, ovozni tezda o'chirib qo'yishingiz kerak bo'ladi. Agar sizning kompyuteringizda media -boshqaruv elementlari bo'lmasa, vintli aylanadigan telefonni Windows kompyuteringiz ovoz balandligini boshqarishga aylantirishingiz mumkin.

Ovozni boshqarish moslamasi kompyuterga USB orqali ulanadi va har bir ochilgan dasturning ovozini avtomatik ravishda siz tergan raqamga o'rnatadi. Agar siz "2" ni tersangiz, ovoz balandligi 20%ga o'rnatiladi. "8" raqamini tering va u 80%ga o'rnatiladi. "0" terish uni 0% ga o'rnatadi va ovozni o'chiradi. Vazifalar panelidagi ovoz balandligini boshqarish tugmachasini bosishdan ko'ra, bu tez, qoniqarli va qiziqarli.

Ta'minotlar

  • Vintage Bell Systems Trimline aylanadigan telefon
  • Arduino Nano
  • M3 tishli issiqlik moslamalari
  • M3 mashina vintlari
  • Rezistorlar (470 ohm va 10 k ohm)
  • Tel
  • 3D printerga kirish

1 -qadam: Operatsion nazariyasi

Aylanadigan telefonlar, shu jumladan Bell Systems Trimline, bu loyihada ishlatilgan, faqat analog elektromexanik qurilmalar. Tugmani aylantirganda, buloq kadrni dastlabki holatiga qaytaradi. Har bir raqam o'tib ketganda, kalit qisqa vaqtga uziladi (yoki ulanadi), puls hosil qiladi. Qaysi raqam terilganligini aniqlash uchun biz faqat shu zarbalarni sanashimiz kerak.

Guidomax -da "Instructables" ning ajoyib qo'llanmasi bor, u aynan qanday ishlashini chuqur o'rganib chiqadi va siz u erda batafsil ma'lumotni topishingiz mumkin.

Ushbu loyiha uchun biz impulslarni hisoblash uchun Arduino Nano -dan foydalanamiz. Keyin Arduino raqamni kompyuterga ketma -ket ulanish orqali yuboradi. Men fonda ishlaydigan va ketma -ket ulanishni kuzatadigan asosiy Python skriptini yozdim. Bitlarni qabul qilganda, u raqamni oladi va mos keladigan ovoz balandligini o'rnatish uchun Python Core Audio Windows kutubxonasidan foydalanadi.

Windows va kutubxonadagi cheklovlar tufayli skript tizimning umumiy hajmini o'rnatmaydi (vazifalar panelidagi asosiy slayder). Buning o'rniga, u hozirda ishlayotgan har bir dastur uchun individual ovoz balandligini o'rnatadi. Ta'sir bir xil, faqat dasturlar orasidagi har xil nisbiy tovush darajasini saqlab bo'lmaydi.

2 -qadam: Raqamni olib tashlang

Raqamni olib tashlang
Raqamni olib tashlang

Bu qadam oddiy: terish mexanizmini olib tashlash uchun Trimline telefonini ajratib oling. Bu, aslida, o'z-o'zidan ishlaydigan modul, shuning uchun siz uni telefondan echib olishingiz kerak.

Men ushbu loyiha uchun Trimline modelini tanladim, chunki bu terish moduli boshqa aylanadigan telefonlarnikiga qaraganda ixchamroq.

Agar siz unga bir nechta testni aylantirsangiz, u uy holatiga qaytganda, kalitning sekin urilishini eshitishingiz kerak.

3 -qadam: Korpusni chop eting

Qoplamani chop eting
Qoplamani chop eting

Korpus qismlarini chop etish uchun ikkita taqdim etilgan STL fayllaridan foydalaning. Siz xohlagan filament materialidan foydalanishingiz mumkin (men PLA ishlatganman). Siz foydalanadigan sozlamalar unchalik muhim emas, lekin men "Rotary_Top" qismi uchun tayanchlardan foydalanishni tavsiya qildim. Loyihaning qolgan qismi ustida ishlayotganda siz bu ikki qismni chop etishingiz mumkin.

4 -qadam: Arduino -ni dasturlash

Arduino -ni dasturlash
Arduino -ni dasturlash

Arduino Nano -ga yuklaydigan kod to'g'ridan -to'g'ri guidomax o'quv qo'llanmasidan olinadi, chunki u ushbu loyiha uchun juda yaxshi ishlaydi:

int needToPrint = 0; int soni; int in = 2;

int lastState = LOW;

int trueState = LOW;

long lastStateChangeTime = 0;

int tozalandi = 0;

// doimiylar

int dialHasFinishedRotatingAfterMs = 100;

int debounceDelay = 10;

bo'sh o'rnatish () {

Serial.begin (9600);

pinMode (kirish, Kirish); }

void loop () {

int o'qish = digitalRead (in);

if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// terish qilinmayapti yoki terishni tugatgan.

if (needToPrint) {// agar terish endigina tugagan bo'lsa, biz raqamni ketma -ket // satriga yuborishimiz va hisobni tiklashimiz kerak. Biz hisobni 10 ga o'zgartiramiz, chunki "0" 10 ta impuls yuboradi.

Serial.print (hisoblash % 10, DEC);

needToPrint = 0;

hisoblash = 0;

tozalangan = 0; }}

agar (o'qish! = lastState) {lastStateChangeTime = millis ();

}

if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - bu barqarorlashtirilgandan keyin sodir bo'ladi

if (o'qish! = trueState) {// bu shuni anglatadiki, bu kalit yopiq-ochiqdan yoki aksincha. trueState = o'qish; if (trueState == HIGH) {// yuqori bo'lsa, impulslar sonini ko'paytiring.

hisoblash ++;

needToPrint = 1; // biz bu raqamni chop etishimiz kerak (kadr aylanishi tugagach)

}

}

}

lastState = o'qish; }

5 -qadam: Hamma narsani ulang

Hamma narsani sim bilan ulang
Hamma narsani sim bilan ulang
Hamma narsani sim bilan ulang
Hamma narsani sim bilan ulang
Hamma narsani sim bilan ulang
Hamma narsani sim bilan ulang

Loyihaning simlari juda oddiy. Raqamli modulning orqa tomonida vintlardek ikkita olti burchakli ustun bo'lishi kerak. Bu ulanishlar. Qutblilik muhim emas.

Eslatma: fotosuratlardagi simlarimning ranglariga e'tibor bermang. Men erni va 5Vni aralashtirdim, shuning uchun ular aslida teskari.

Post A (GND) dan bitta simni ulang va uni Arduino Nano -dagi topraklama piniga ulang. Ikkinchi simni oling va uni va uchinchi simni 470 ohmli rezistorning bir tomoniga lehimlang. Ikkinchi sim terish ustuni B (+) ustuniga o'tadi. Uchinchi sim 10k ohmli rezistorning bir tomoniga lehimlanadi. To'rtinchi simni oling va uni 470 ohmli qarshilikning boshqa tarafidan Arduino Nano -dagi 2 -pinga lehimlang. Nihoyat, beshinchi sim 10k ohmli rezistorning boshqa tomonini Arduino Nano -dagi 5V piniga ulashi kerak.

Biz rezistorlar va 5V pinidan foydalanib, kalit ochilganda pinni yuqoriga ko'taramiz (har bir "zarba" paytida bo'lgani kabi).

6 -qadam: yig'ish

O'rnatish
O'rnatish
O'rnatish
O'rnatish

E'tibor bering, Rotary_Top korpusining oltita kichik teshigi bor. Bu sizning tishli issiqlik moslamalari uchun. Yuqori uchlik (yuqori yuzaning pastki qismida) aylanadigan kadranni o'rnatishi kerak. Pastki uchtasi - Rotary_Base -ni Rotary_Top -ga ulash.

Issiqlik moslamalarini lehimlantiruvchi temir (yoki maxsus asbob) yordamida qizdirib, keyin teshiklarga surish mumkin. Issiqlik plastmassani eritib yuboradi, u qo'shimchalarni mahkam ushlab turish uchun issiqlik chiqarilgandan keyin qattiqlashadi. Issiqlik moslamalarini ishlatish vintlarni to'g'ridan-to'g'ri plastmassaga burishdan ko'ra ancha yoqimli.

Oltita issiqlik moslamasini joylashtiring. Keyin kadranni o'rnatish uchun bir nechta qisqa (10 mm yoki undan ko'p) M3 mashina vintlarini ishlating. Metall barmoqlar to'xtaydigan joyning kesilgan joyiga e'tibor bering. Keyin ehtiyotkorlik bilan Arduino Nano-ni ulangan USB kabeli bilan korpus ichiga joylashtiring (u bo'shashmagan, o'rnatilmagan) va poydevorni joyiga burab qo'ying.

Siz, ehtimol, korpusni ish stoliga yopishtirish uchun ikki tomonlama lentani yoki 3M buyruqlar tasmasini ishlatishni xohlaysiz, shuning uchun kadrni aylantirganda u qimirlamaydi.

7 -qadam: Python skriptini o'rnating

Python skriptini o'rnating
Python skriptini o'rnating

Birinchidan, Python -ni o'rnatganingizga ishonch hosil qiling (Python 3 -dan foydalaning, chunki Python 2 bosqichma -bosqich o'chirilmoqda).

Keyin ikkita kerakli kutubxonani o'rnatishingiz kerak bo'ladi: PyCAW va PySerial.

Foydalanish:

"pip install pycaw" va "pip install pyserial" (Python oynasidan yoki Windows Powershell -dan)

Keyin Arduino Nano qaysi portga ulanganligini tekshiring. Buni Arduino IDE -da tekshirishingiz mumkin. Port tanlanganligiga ishonch hosil qiling, so'ngra ketma -ket monitorni oching. Baud tezligi 9600 ga o'rnatilganligiga ishonch hosil qiling va ketma -ket monitorda ko'rsatilishi uchun ba'zi raqamlarni tering.

Agar shunday bo'lsa, "rotary.py" kodini port raqamingiz bilan tahrir qiling. Agar siz skriptni ishga tushirsangiz, endi siz raqamni terish orqali ovoz balandligini o'zgartirishingiz kerak.

Oxirgi qadam - kompyuterni yuklashda skriptni avtomatik ravishda fonda ishlashini sozlash.

Buning uchun "rotary.py" ni "rotary.pyw" ga o'zgartiring, bu fonda ishlashiga imkon beradi. Keyin skriptni quyidagi papkaga joylashtiring: C: / Users / current_user / AppData / Rouming / Microsoft / Windows / Start Menu / Programs / Startup

Shubhasiz, siz "current_user" ni haqiqiy foydalanuvchi papkasining nomiga o'zgartirishingiz kerak bo'ladi.

Bo'ldi shu! Kompyuter ishga tushganda, Python skriptlari ishlay boshlaydi. U Arduino -dan ketma -ket ulanishni kuzatadi va siz qo'ng'iroq qilayotgan barcha dasturlar hajmini o'rnatadi!

Arduino musobaqasi 2020
Arduino musobaqasi 2020
Arduino musobaqasi 2020
Arduino musobaqasi 2020

Arduino 2020 musobaqasida ikkinchi o'rinni egalladi

Tavsiya: