Nu vill jag ju kunna starta om den utan att behöva vara där och trycka F1, så jag satte ihop en Arduino Mini Pro till att göra jobbet åt mig.
Den ansluter till datorn genom en mini DIN 6-pin (PS/2). Jag bara startar (eller startar om datorn), och så väntar Arduinon tio sekunder, blinkar lite, och sänder sedan F1. Fattas bara lite genomskinlig krympslang runt paketet för att snygga till det lite. Någon som vet var man får tag i det i lämplig storlek?
Jag trodde jag skulle behöva lära mig PS/2-protokollet och skriva en ISR, men det finns ett bibliotek "ps2dev" som går att ladda ned direkt från Arduino IDE:n. Se koden längst ner i inlägget.
Ett lagom helgprojekt.
Kod: Markera allt
#include <ps2dev.h>
#include <avr/sleep.h>
PS2dev keyboard(3, 2); /* clock, data */
void setup()
{
keyboard.keyboard_init();
pinMode(LED_BUILTIN, OUTPUT);
delay(1000 * 10); /* wait 10 seconds */
}
void loop()
{
/* blink LED before sending F1 */
int blinks = 0;
while (blinks++ < 3) {
delay(200);
digitalWrite(LED_BUILTIN, HIGH);
delay(50);
digitalWrite(LED_BUILTIN, LOW);
}
keyboard.write(keyboard.F1);
cli();
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_cpu();
}