Después de analizar tu pregunta en detalle, parece que la dificultad clave a la que te enfrentas no es cómo conseguir que un arduino apague un ordenador (lo que la mayoría de las otras respuestas han abordado), sino más bien, cómo encender una tableta (sin una toma de corriente de fácil acceso como la de un ordenador de sobremesa, ni WoL que no tiene ethernet) utilizando un arduino sólo conectado a través del puerto USB.
El reto aquí, presumiblemente, es el hecho de que una tableta basada en Windows apagada (parece que estás usando una tableta HP) no tiene entradas fácilmente accesibles para despertar la máquina. Me encontré con el mismo problema con mi robot de telepresencia que utiliza una tableta Dell Windows – ¿cómo puedo despertar la tableta de forma remota cuando quiero usarlo?
He hecho algunas investigaciones sobre esto, y he encontrado algunas soluciones. Sin embargo, la mayoría parecen funcionar sólo si la tableta está en reposo, en lugar de apagada. Pero creo que usted puede tener su terminología mal en sus detalles de la pregunta – en estos días en las tabletas de Windows, golpeando el botón de encendido una vez pone la tableta a dormir, y golpeando de nuevo se despierta al instante. Este es un sueño de baja potencia y es suficiente para la mayoría de la gente. Se puede apagar completamente utilizando la opción del menú, o manteniendo el botón de encendido durante 5 a 8 segundos, pero volver a arrancar tardará entre varios segundos y minutos. Creo que tal vez lo que querías decir es que la gente no debería aconsejar el uso del salvapantallas.
Aquí están las opciones que encontré para trabajar en mi tableta, que pueden o no funcionar para la tuya, pruebas sencillas que puedes hacer para averiguarlo, y algunos consejos sobre cómo ponerlas en práctica. He asumido que tu implementación actual tiene el Arduino conectado como CDC/VCOM y algún script anfitrión interpretando los bytes recibidos y ejecutando scripts externos como autohotkey para hacer las pulsaciones de las teclas.
- La tableta PUEDE despertarse con la actividad del teclado. Puedes probar esto conectando un teclado, durmiendo la tableta, y pulsando una tecla para ver si se despierta. si esto funciona, tendrías que conectar algo que se enumere como un teclado, y enviar una pulsación de tecla para despertar. Esto podría significar ya sea la conversión de su hardware arduino para actuar como un teclado USB (que es una opción que me gusta, ya que convenientemente le permite enviar realmente las pulsaciones de teclas como atrás / adelante / sueño / etc. Y el movimiento del ratón directamente mediante la emulación de un dispositivo compuesto de teclado/ratón, sin necesidad de una secuencia de comandos de host); o el cableado de un segundo dispositivo como el talón de un teclado físico que se activa por un GPIO desde el arduino; o un segundo dispositivo programable como un TeensyUSB
- La tableta podría despertar en cualquier actividad USB. Prueba esto: ¿desconectar y volver a conectar el Arduino provoca un despertar? Si es así, podrías conectar el pin de reinicio en la parte usb-serial del arduino al microcontrolador principal (pin 5 en la cabecera ICSP, creo), que cuando se pulsa a bajo debería causar un reinicio en el usb-serial, y puede indicar a la tableta que se despierte. Alternativamente creo que tirar del cable D+ alto tiene el mismo efecto.
- La tableta PUEDE despertar cuando el cargador está enchufado/desenchufado. Puedes probar esto poniendo la tableta en reposo y viendo si vuelve a estar en línea si tiras y/o vuelves a conectar la alimentación. Este es en realidad el mecanismo eventual que utilizo en el robot de telepresencia. Tengo un relé NC en la línea de alimentación, que desconecta momentáneamente la energía del cargador. En mi tableta Dell, esto despierta la tableta durante 5 segundos. Normalmente, la tableta vuelve a dormirse de inmediato, pero he preparado un script de autohotkey que se activa con una señal de activación y que desecha la pantalla de bloqueo y evita que la tableta vuelva a dormirse inmediatamente. Si este método te funciona, necesitarías un relé o módulo SSR conectado a la fuente de alimentación (que en la mayoría de las tabletas es, afortunadamente, un simple cable USB).
BONUS: otras opciones: comprueba la configuración de tu BIOS, si tiene un «estado de encendido tras pérdida de energía», la opción 3 funciona muy bien (pero pocas tabletas tienen esta opción debido a que hay una batería. Algunas tabletas pueden tener un módulo wifi siempre encendido que puede implementar WoL, yo’no he encontrado que esto funcione a través de…
Espero que alguna de estas opciones te funcione