Съдържание:

Винтидж ротационен телефон за набиране на контрол на силата на звука на компютъра: 7 стъпки (със снимки)
Винтидж ротационен телефон за набиране на контрол на силата на звука на компютъра: 7 стъпки (със снимки)

Видео: Винтидж ротационен телефон за набиране на контрол на силата на звука на компютъра: 7 стъпки (със снимки)

Видео: Винтидж ротационен телефон за набиране на контрол на силата на звука на компютъра: 7 стъпки (със снимки)
Видео: Свършвам бързо! Как да правя секс по-дълго? 2024, Юли
Anonim
Image
Image
Извадете циферблата
Извадете циферблата

Ако сте нещо като мен, често се променяте силата на звука на компютъра си. Някои видеоклипове са по -силни от други, понякога искате да заглушите звука на компютъра си, докато слушате подкасти или музика, и може да се наложи бързо да намалите силата на звука, ако получите телефонно обаждане. Ако нямате вградени контроли за мултимедия в компютъра си, тогава можете да превърнете старинен въртящ се циферблат на телефона в контрол на силата на звука за вашия компютър с Windows.

Това устройство за контрол на силата на звука се включва в компютъра ви чрез USB и автоматично ще настрои силата на звука на всяка отворена програма на който и да е номер, който набирате. Ако наберете „2“, силата на звука ще бъде зададена на 20%. Наберете "8" и тя ще бъде настроена на 80%. Набирането на "0" го задава на 0% и действа като заглушен. Това е бързо, удовлетворяващо и по -забавно, отколкото да щракнете върху контрола за силата на звука в лентата на задачите.

Консумативи

  • Ротационен телефон Vintage Bell Systems Trimline
  • Arduino Nano
  • M3 резбовани терморегулиращи вложки
  • Винтове за машина M3
  • Резистори (470 ома и 10 к ома)
  • Тел
  • Достъп до 3D принтер

Стъпка 1: Теория на операцията

Ротационните телефони, включително Bell Systems Trimline, използвани в този проект, са чисто аналогови електромеханични устройства. Когато завъртите циферблата, пружина завърта циферблата обратно в първоначалното му положение. Когато преминава всеки номер, превключвателят се изключва (или свързва) за кратък момент, създавайки импулс. Всичко, което трябва да направим, е да преброим тези импулси, за да определим кой номер е набран.

Guidomax има фантастичен урок за Instructables, който задълбочава как точно работи това и можете да намерите повече подробности там.

За този проект използваме Arduino Nano за преброяване на импулсите. След това Arduino изпраща номера до компютъра чрез серийна връзка. Написах основен скрипт на Python, който работи във фонов режим и следи тази серийна връзка. Когато получава битове, той взема номера и използва библиотеката Python Core Audio Windows, за да зададе подходящия обем.

Поради ограничения с Windows и тази библиотека, скриптът не задава общия обем на системата (основният плъзгач в лентата на задачите). Вместо това той задава индивидуалния обем за всяка програма, която се изпълнява в момента. Ефектът е същият, с изключение на това, че не можете да поддържате различни нива на относителна сила на звука между програмите.

Стъпка 2: Премахнете циферблата

Извадете циферблата
Извадете циферблата

Тази стъпка е ясна: просто разглобете телефона си Trimline, за да премахнете механизма за набиране. По същество това е самостоятелен модул, така че просто трябва да го развиете от слушалката.

Избрах модела Trimline за този проект, защото този модул за набиране е по -компактен от тези, които ще намерите на повечето други ротационни телефони.

Ако му дадете няколко тестови завъртания, трябва да чуете превключвателя да щракне, докато се връща в изходна позиция.

Стъпка 3: Отпечатайте кутията

Отпечатайте кутията
Отпечатайте кутията

Използвайте двата предоставени STL файла, за да отпечатате частите на кутията. Можете да използвате какъвто и да е материал с нажежаема жичка (аз използвах PLA). Конкретните настройки, които използвате, не са толкова важни, но аз препоръчах да използвате поддръжка за частта „Rotary_Top“. Можете да отпечатате тези две части, докато работите върху останалата част от проекта.

Стъпка 4: Програмирайте вашия Arduino

Програмирайте вашия Arduino
Програмирайте вашия Arduino

Кодът, който ще качите във вашия Arduino Nano, е взет направо от урока на guideomax, тъй като работи перфектно за този проект:

int needToPrint = 0; int брой; int in = 2;

int lastState = НИСКО;

int trueState = НИСКО;

long lastStateChangeTime = 0;

int изчистен = 0;

// константи

int dialHasFinishedRotatingAfterMs = 100;

int debounceDelay = 10;

void setup () {

Serial.begin (9600);

pinMode (in, INPUT); }

void loop () {

int четене = digitalRead (в);

if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// циферблатът не се набира или току -що приключи.

if (needToPrint) {// ако току -що приключи набирането, трябва да изпратим номера по серийния // ред и да нулираме броя. Ние модифицираме броя с 10, защото „0“ще изпрати 10 импулса.

Serial.print (брой % 10, DEC);

needToPrint = 0;

брой = 0;

изчистен = 0; }}

if (четене! = lastState) {lastStateChangeTime = millis ();

}

if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - това се случва, след като се стабилизира

if (четене! = trueState) {// това означава, че превключвателят или току-що е преминал от затворен-> отворен или обратно. trueState = четене; if (trueState == HIGH) {// увеличава броя на импулсите, ако той е висок.

брой ++;

needToPrint = 1; // ще трябва да отпечатаме този номер (след като циферблатът завърши завъртането)

}

}

}

lastState = четене; }

Стъпка 5: Свържете всичко

Свържете всичко нагоре
Свържете всичко нагоре
Свържете всичко нагоре
Свържете всичко нагоре
Свържете всичко нагоре
Свържете всичко нагоре

Окабеляването за този проект е наистина просто. Циферблатният модул трябва да има две шестоъгълни стойки на гърба с винтове в тях. Това са превключващите връзки. Полярността няма значение.

Забележка: Игнорирайте цветовете на кабелите си на снимките. Смесих земята и 5V, така че те всъщност са обърнати.

Свържете един проводник от Post A (GND) и го свържете към заземителен щифт на вашия Arduino Nano. Вземете втори проводник и го запоявайте и трети проводник от едната страна на резистора от 470 ома. Вторият проводник ще отиде до Post B (+) на циферблата. Третият проводник ще бъде запоен към едната страна на 10k омовия резистор. Вземете четвърти проводник и го запоявайте от другата страна на резистора от 470 ома към щифт 2 на Arduino Nano. И накрая, пети проводник трябва да свърже другата страна на 10k омовия резистор към 5V щифта на Arduino Nano.

Използваме резисторите и 5V щифта, за да издърпаме щифта до високо, когато превключвателят е отворен (както е по време на всеки "импулс").

Стъпка 6: Монтаж

Монтаж
Монтаж
Монтаж
Монтаж

Трябва да забележите, че Rotary_Top частта на корпуса има шест малки дупки. Те са за вашите резбовани вградени вложки. Горните три (от долната страна на горната повърхност) трябва да монтират въртящия се циферблат. Долните три трябва да завиете Rotary_Base към Rotary_Top.

Топлинните вложки могат да се нагреят с поялник (или специален инструмент) и след това да се натиснат в отворите. Топлината ще разтопи пластмасата, която ще се втвърди след отстраняване на топлината, за да държи вложките здраво на място. Използването на вградени вложки е много по-приятно от вкарването на винтове директно в пластмасата.

Поставете шестте вложки за нагряване. След това използвайте няколко къси (10 мм или повече) машинни винта M3, за да монтирате циферблата. Обърнете внимание на прореза в изреза, където ще отиде металната упорна пръст. След това внимателно поставете Arduino Nano-със свързан USB кабел-вътре в кутията (той е хлабав, не е монтиран) и завийте основата на място.

Вероятно ще искате да използвате двустранна лента или 3M командни ленти, за да прикрепите корпуса към бюрото си, така че да не се движи, когато завъртите циферблата.

Стъпка 7: Настройте скрипта на Python

Настройте скрипта на Python
Настройте скрипта на Python

Първо се уверете, че имате инсталиран Python (използвайте Python 3, тъй като Python 2 се прекратява).

След това ще трябва да инсталирате двете необходими библиотеки: PyCAW и PySerial.

Използвайте:

"pip install pycaw" и "pip install pyserial" (от прозореца Python или Windows Powershell)

След това проверете, за да видите към кой порт е свързан вашият Arduino Nano. Можете да проверите това от IDE на Arduino. Уверете се, че сте избрали този порт, след което отворете серийния монитор. Уверете се, че скоростта на предаване е зададена на 9600, след което наберете някои номера, за да се уверите, че те се показват в серийния монитор.

Ако това стане, редактирайте кода "rotary.py" с номера на вашия порт. Ако стартирате скрипта, сега трябва да можете да промените силата на звука, като наберете номер.

Последната стъпка е да настроите скрипта да работи във фонов режим автоматично, когато стартирате компютъра си.

За да направите това, променете „rotary.py“на „rotary.pyw“, което ще му позволи да работи във фонов режим. След това поставете този скрипт в следната папка: C: / Users / current_user / AppData / Roaming / Microsoft / Windows / Start Menu / Programs / Startup

Очевидно ще трябва да промените „current_user“на действителното име на потребителската папка.

Това е! Всеки път, когато компютърът ви се стартира, този скрипт на Python ще започне да работи. Той ще следи серийната връзка от Arduino и ще настрои всички програмни обеми на каквото и да наберете!

Arduino конкурс 2020
Arduino конкурс 2020
Arduino конкурс 2020
Arduino конкурс 2020

Вицешампион в Arduino Contest 2020

Препоръчано: