Оглавление:

Винтажный поворотный телефонный диск с регулятором громкости ПК: 7 шагов (с изображениями)
Винтажный поворотный телефонный диск с регулятором громкости ПК: 7 шагов (с изображениями)

Видео: Винтажный поворотный телефонный диск с регулятором громкости ПК: 7 шагов (с изображениями)

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

Если вы похожи на меня, вы обнаружите, что довольно часто меняете громкость на своем компьютере. Некоторые видео звучат громче других, иногда вы хотите, чтобы звук на вашем компьютере был отключен, пока вы слушаете подкасты или музыку, и вам может потребоваться быстро уменьшить громкость, если вам поступит телефонный звонок. Если у вас нет встроенных средств управления мультимедиа на вашем компьютере, вы можете превратить старинный поворотный переключатель телефона в регулятор громкости для вашего ПК с Windows.

Это устройство регулировки громкости подключается к вашему компьютеру через USB-порт и автоматически устанавливает громкость каждой открытой программы на любой номер, который вы набираете. Если вы наберете «2», громкость будет установлена на 20%. Наберите «8», и он будет установлен на 80%. Набор «0» устанавливает значение 0% и действует как отключение звука. Это быстро, приятно и увлекательно, чем нажимать на регулятор громкости на панели задач.

Запасы

  • Поворотный телефон Vintage Bell Systems Trimline
  • Ардуино Нано
  • Вкладыши с резьбой M3 для термоусадки
  • Крепежные винты M3
  • Резисторы (470 Ом и 10 кОм)
  • Проволока
  • Доступ к 3D-принтеру

Шаг 1: теория работы

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

У guidomax есть фантастический учебник по Instructables, в котором подробно рассказывается, как именно это работает, и вы можете найти там более подробную информацию.

В этом проекте мы используем Arduino Nano для подсчета импульсов. Затем Arduino отправляет номер на ПК через последовательное соединение. Я написал базовый сценарий Python, который работает в фоновом режиме и отслеживает это последовательное соединение. Когда он получает биты, он принимает номер и использует библиотеку Windows Python Core Audio для установки соответствующей громкости.

Из-за ограничений Windows и этой библиотеки скрипт не устанавливает общую громкость системы (главный ползунок на панели задач). Вместо этого он устанавливает индивидуальную громкость для каждой запущенной в данный момент программы. Эффект тот же, за исключением того, что вы не можете поддерживать разные относительные уровни громкости между программами.

Шаг 2: снимите циферблат

Снимите циферблат
Снимите циферблат

Этот шаг прост: просто разберите трубку телефона Trimline, чтобы снять механизм набора. По сути, это автономный модуль, поэтому вам просто нужно открутить его от телефона.

Я выбрал модель Trimline для этого проекта, потому что этот модуль набора более компактен, чем те, которые вы найдете на большинстве других поворотных телефонов.

Если вы дадите ему несколько тестовых вращений, вы должны услышать щелчок переключателя, когда он возвращается в исходное положение.

Шаг 3. Распечатайте корпус

Распечатать приложение
Распечатать приложение

Используйте два предоставленных файла STL для печати деталей корпуса. Вы можете использовать любой материал, который вам больше нравится (я использовал PLA). Конкретные настройки, которые вы используете, не так важны, но я рекомендовал использовать опоры для части «Rotary_Top». Вы можете распечатать эти две части, работая над остальной частью проекта.

Шаг 4: запрограммируйте свой Arduino

Запрограммируйте свой Arduino
Запрограммируйте свой Arduino

Код, который вы загрузите на свой Arduino Nano, взят прямо из руководства guidomax, так как он отлично работает для этого проекта:

int needToPrint = 0; int count; int in = 2;

int lastState = LOW;

int trueState = LOW;

long lastStateChangeTime = 0;

int очищено = 0;

// константы

int dialHasFinishedRotatingAfterMs = 100;

int debounceDelay = 10;

void setup () {

Serial.begin (9600);

pinMode (в, ВХОД); }

void loop () {

int чтение = digitalRead (in);

if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// набор номера не набирается или только что закончился набор.

if (needToPrint) {// если набор только что закончился, нам нужно отправить номер по последовательной // строке и сбросить счетчик. Мы модифицируем счетчик на 10, потому что «0» отправит 10 импульсов.

Serial.print (count% 10, DEC);

needToPrint = 0;

count = 0;

очищено = 0; }}

если (чтение! = lastState) {lastStateChangeTime = millis ();

}

if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - это происходит после стабилизации

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

count ++;

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

}

}

}

lastState = чтение; }

Шаг 5: Подключите все

Подключить все
Подключить все
Подключить все
Подключить все
Подключить все
Подключить все

Электромонтаж для этого проекта действительно прост. На задней стороне модуля циферблата должны быть две шестигранные стойки с винтами. Это коммутационные соединения. Полярность не имеет значения.

Примечание: не обращайте внимания на цвета моих проводов на фотографиях. Я перепутал землю и 5В, так что они поменялись местами.

Подключите один провод к выводу A (GND) и подключите его к контакту заземления на Arduino Nano. Возьмите второй провод и припаяйте его и третий провод к одной стороне резистора 470 Ом. Второй провод пойдет к выводу B (+) на циферблате. Третий провод будет припаян к одной стороне резистора 10 кОм. Возьмите четвертый провод и припаяйте его с другой стороны резистора 470 Ом к контакту 2 на Arduino Nano. Наконец, пятый провод должен соединить другую сторону резистора 10 кОм с контактом 5 В на Arduino Nano.

Мы используем резисторы и вывод 5V, чтобы поднять вывод на высокий уровень, когда переключатель разомкнут (как во время каждого «импульса»).

Шаг 6: Сборка

сборка
сборка
сборка
сборка

Вы должны заметить, что часть Rotary_Top корпуса имеет шесть маленьких отверстий. Это для ваших резьбовых вставок с термофиксацией. Три верхних (на нижней стороне верхней поверхности) предназначены для установки поворотного переключателя. Три нижних предназначены для прикручивания Rotary_Base к Rotary_Top.

Термостабильные вставки можно нагреть с помощью паяльника (или специального инструмента), а затем вставить в отверстия. Тепло расплавит пластик, который затвердеет после снятия тепла, чтобы надежно удерживать вставки на месте. Использовать термофиксированные вставки намного приятнее, чем ввинчивать винты прямо в пластик.

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

Вы, вероятно, захотите использовать двусторонний скотч или полоски 3M Command Strips, чтобы прикрепить корпус к своему столу, чтобы он не двигался, когда вы поворачиваете диск.

Шаг 7. Настройте скрипт Python

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

Во-первых, убедитесь, что у вас установлен Python (используйте Python 3, поскольку Python 2 постепенно прекращается).

Затем вам нужно будет установить две необходимые библиотеки: PyCAW и PySerial.

Использовать:

"pip install pycaw" и "pip install pyserial" (из окна Python или Windows Powershell)

Затем проверьте, к какому порту подключен ваш Arduino Nano. Вы можете проверить это в среде Arduino IDE. Убедитесь, что у вас выбран этот порт, затем откройте монитор последовательного порта. Убедитесь, что ваша скорость передачи установлена на 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

Рекомендуемые: