Tabla de contenido:

Control de volumen de PC con dial giratorio vintage: 7 pasos (con imágenes)
Control de volumen de PC con dial giratorio vintage: 7 pasos (con imágenes)

Video: Control de volumen de PC con dial giratorio vintage: 7 pasos (con imágenes)

Video: Control de volumen de PC con dial giratorio vintage: 7 pasos (con imágenes)
Video: mi sobrino siempre a querido una silla gamer #setup #humor 2024, Noviembre
Anonim
Image
Image
Retire el dial
Retire el dial

Si eres como yo, te encontrarás cambiando el volumen de tu computadora con bastante frecuencia. Algunos videos son más fuertes que otros, a veces desea que el volumen de su computadora esté silenciado mientras escucha podcasts o música, y es posible que deba bajar el volumen rápidamente si recibe una llamada telefónica. Si no tiene controles multimedia integrados en su computadora, puede convertir un dial de teléfono giratorio clásico en un control de volumen para su PC con Windows.

Este dispositivo de control de volumen se conecta a su computadora a través de USB y establecerá automáticamente el volumen de cada programa abierto en cualquier número que marque. Si marca un "2", el volumen se ajustará al 20%. Marque un "8" y se establecerá en 80%. Al marcar "0" se establece en 0% y actúa como silencio. Es rápido, satisfactorio y más divertido que hacer clic en el control de volumen de la barra de tareas.

Suministros

  • Teléfono rotativo Vintage Bell Systems Trimline
  • Arduino Nano
  • Inserciones termoendurecibles roscadas M3
  • Tornillos de máquina M3
  • Resistencias (470 ohmios y 10k ohmios)
  • Cable
  • Acceso a una impresora 3D

Paso 1: teoría de funcionamiento

Los teléfonos rotativos, incluido el Bell Systems Trimline utilizado en este proyecto, son dispositivos electromecánicos puramente analógicos. Cuando gira el dial, un resorte hace girar el dial de nuevo a la posición original. A medida que pasa cada número, un interruptor se desconecta (o conecta) por un breve momento, creando un pulso. Todo lo que tenemos que hacer es contar esos pulsos para determinar qué número se marcó.

guidomax tiene un fantástico tutorial de Instructables que profundiza en cómo funciona exactamente, y puede encontrar más detalles allí.

Para este proyecto, usamos el Arduino Nano para contar los pulsos. Luego, el Arduino envía el número a la PC a través de la conexión en serie. Escribí un script Python básico que se ejecuta en segundo plano y monitorea esa conexión en serie. Cuando recibe bits, toma el número y usa la biblioteca Python Core Audio de Windows para establecer el volumen apropiado.

Debido a las limitaciones de Windows y esa biblioteca, la secuencia de comandos no establece el volumen general del sistema (el control deslizante principal de la barra de tareas). En cambio, establece el volumen individual para cada programa que se está ejecutando actualmente. El efecto es el mismo, excepto que no puede mantener diferentes niveles de volumen relativo entre programas.

Paso 2: Retire el dial

Retire el dial
Retire el dial

Este paso es sencillo: simplemente desmonte el auricular de su teléfono Trimline para quitar el mecanismo de marcación. Es esencialmente un módulo autónomo, por lo que solo necesita desenroscarlo del teléfono.

Elegí el modelo Trimline para este proyecto, porque ese módulo de marcación es más compacto que los que encontrará en la mayoría de los otros teléfonos rotativos.

Si le da algunos giros de prueba, debería escuchar el clic del interruptor cuando regresa a la posición inicial.

Paso 3: imprima el gabinete

Imprima el gabinete
Imprima el gabinete

Utilice los dos archivos STL proporcionados para imprimir las piezas de la carcasa. Puedes usar el material de filamento que prefieras (yo usé PLA). La configuración particular que usa no es tan importante, pero le recomiendo usar soportes para la parte "Rotary_Top". Puede imprimir estas dos partes mientras trabaja en el resto del proyecto.

Paso 4: programa tu Arduino

Programa tu Arduino
Programa tu Arduino

El código que cargará en su Arduino Nano se toma directamente del tutorial de guidomax, ya que funciona perfectamente para este proyecto:

int needToPrint = 0; int count; int en = 2;

int lastState = LOW;

int trueState = LOW;

long lastStateChangeTime = 0;

int aclarado = 0;

// constantes

int dialHasFinishedRotatingAfterMs = 100;

int debounceDelay = 10;

configuración vacía () {

Serial.begin (9600);

pinMode (en, ENTRADA); }

bucle vacío () {

lectura int = digitalRead (en);

if ((millis () - lastStateChangeTime)> dialHasFinishedRotatingAfterMs) {// el dial no se está marcando, o acaba de terminar de ser marcado.

if (needToPrint) {// si recién se terminó de marcar, necesitamos enviar el número por la línea de serie // y restablecer el conteo. Modificamos el conteo por 10 porque '0' enviará 10 pulsos.

Serial.print (recuento% 10, DEC);

needToPrint = 0;

cuenta = 0;

despejado = 0; }}

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

}

if ((millis () - lastStateChangeTime)> debounceDelay) {// debounce - esto sucede una vez que está estabilizado

if (reading! = trueState) {// esto significa que el interruptor acaba de pasar de cerrado-> abierto o viceversa. trueState = lectura; if (trueState == HIGH) {// incrementa el recuento de pulsos si es alto.

contar ++;

needToPrint = 1; // necesitaremos imprimir este número (una vez que el dial haya terminado de girar)

}

}

}

lastState = lectura; }

Paso 5: Conecte todo

Conecta todo
Conecta todo
Conecta todo
Conecta todo
Conecta todo
Conecta todo

El cableado de este proyecto es realmente sencillo. El módulo de marcación debe tener dos postes hexagonales en la parte posterior con tornillos. Esas son las conexiones del interruptor. La polaridad no importa.

Nota: ignore los colores de mis cables en las fotos. Mezclé tierra y 5V, por lo que en realidad están invertidos.

Conecte un cable del Poste A (GND) y conéctelo a un pin de tierra en su Arduino Nano. Tome un segundo cable y suéldelo y un tercer cable a un lado de la resistencia de 470 ohmios. El segundo cable irá al Poste B (+) en el dial. El tercer cable se soldará a un lado de la resistencia de 10k ohmios. Tome un cuarto cable y suéldelo desde el otro lado de la resistencia de 470 ohmios al Pin 2 del Arduino Nano. Finalmente, un quinto cable debe conectar el otro lado de la resistencia de 10k ohmios al pin de 5V en el Arduino Nano.

Estamos usando las resistencias y el pin de 5V para llevar el pin a alto cuando el interruptor está abierto (como lo está durante cada "pulso").

Paso 6: Montaje

Montaje
Montaje
Montaje
Montaje

Debe notar que la parte Rotary_Top del gabinete tiene seis pequeños orificios. Estos son para sus inserciones roscadas termoendurecibles. Los tres superiores (en la parte inferior de la superficie superior) son para montar el dial giratorio. Los tres inferiores son para atornillar Rotary_Base a Rotary_Top.

Los insertos termoendurecibles se pueden calentar con un soldador (o una herramienta especial) y luego empujarlos en los orificios. El calor derretirá el plástico, que se endurecerá después de quitar el calor para mantener los insertos en su lugar de forma segura. Usar insertos termoendurecibles es mucho más agradable que enroscar tornillos directamente en el plástico.

Inserte las seis inserciones termofijadas. Luego, use algunos tornillos de máquina M3 cortos (10 mm más o menos) para montar el dial. Tome nota de la muesca en el corte, que es donde irá el tope de metal. Luego coloque con cuidado el Arduino Nano-con el cable USB conectado-dentro de la caja (está suelto, no montado), y atornille la base en su lugar.

Probablemente desee usar cinta de doble cara o tiras de comando de 3M para fijar el gabinete a su escritorio, de modo que no se mueva cuando gire el dial.

Paso 7: configurar el script de Python

Configurar el script de Python
Configurar el script de Python

Primero, asegúrese de tener Python instalado (use Python 3, ya que Python 2 se está eliminando).

Luego, deberá instalar las dos bibliotecas necesarias: PyCAW y PySerial.

Usar:

"pip install pycaw" y "pip install pyserial" (desde la ventana de Python o Windows Powershell)

Luego, verifique a qué puerto está conectado su Arduino Nano. Puede comprobarlo desde el IDE de Arduino. Asegúrese de tener ese puerto seleccionado, luego abra el monitor serial. Asegúrese de que su velocidad en baudios esté configurada en 9600 y luego marque algunos números para asegurarse de que aparezcan en el monitor en serie.

Si es así, edite el código "rotary.py" con su número de puerto. Si ejecuta el script, ahora debería poder cambiar el volumen marcando un número.

El último paso es configurar el script para que se ejecute en segundo plano automáticamente cuando inicie su PC.

Para hacer eso, cambie "rotary.py" a "rotary.pyw", lo que permitirá que se ejecute en segundo plano. Luego coloque ese script en la siguiente carpeta: C: / Users / current_user / AppData / Roaming / Microsoft / Windows / Start Menu / Programs / Startup

Obviamente, necesitará cambiar "current_user" por su nombre de carpeta de usuario real.

¡Eso es todo! Siempre que su computadora se enciende, esa secuencia de comandos de Python comenzará a ejecutarse. Supervisará la conexión en serie del Arduino y configurará todos los volúmenes del programa a lo que marque.

Concurso Arduino 2020
Concurso Arduino 2020
Concurso Arduino 2020
Concurso Arduino 2020

Finalista en el Concurso Arduino 2020

Recomendado: