Czy możliwe jest zbudowanie urządzenia HID (takiego jak klawiatura) przy użyciu Arduino Uno?
Na razie mam wejścia na Arduino, które dają wyjścia na linii szeregowej. Jak mogę przekształcić moje obecne oprogramowanie w coś, co może zachowywać się jak klawiatura HID?
- Czy mam napisać nowy sterownik urządzenia z oknem?
- Czy mam utworzyć warstwę oprogramowania, która mogłaby pobierać moje dane szeregowe i pozwolić Windowsowi odczytać je jako dane wejściowe HID?
- Czy istnieje lepszy sposób na osiągnięcie tego, jeśli jest to w ogóle możliwe?
arduino-uno
serial
Anomalia
źródło
źródło
Odpowiedzi:
Tak to jest! I jest to świetny tutorial jak to zrobić nad tutaj
Jak pokazuje samouczek, musisz przekształcić kod oprogramowania układowego, więc zamiast drukować zdarzenia, tak naprawdę je wywołujesz. Co musisz zrobić, to dodać do kodu:
To, co tu robisz, to wysyłanie z głównych zdarzeń mikrokontrolera Arduino przez linię szeregową do mniejszego mikrokontrolera, który obsługuje komunikację USB. Ten mikrokontroler weźmie te „bufory” klawiszy i przeniesie je w miarę naciskania klawiszy USB HID na USB.
Uważaj, że kluczowy znak (tutaj
chr
w kodzie) to tak naprawdę kod klucza wysyłany przez USB, który jest interpretowany przez sterownik USB HID, który następnie przekształca go w prawdziwy znak przy użyciu bieżącego układu skonfigurowanego dla klawiatury.Ta
mod
postać jest jednym z klawiszy modyfikujących, które masz na klawiaturze (Shift, Control, Alt ...),0x00
ponieważ nie jest modyfikatorem.Nie, nie potrzebujesz! Dzięki aktualizacji DFU Twój arduino będzie widoczny w systemie Windows jako klawiatura USB.
Nie musisz tego robić, a to z wielu powodów bardzo zły pomysł:
W końcu masz obawy, w komentarzu, o zburzeniu twojego arduino. Uwierzcie mi i autorowi artykułu, że nie da się arduino zbudować flashowania oprogramowania układowego:
UWAGA: Nie ma możliwości „zamurowania” urządzenia przy użyciu tej metody. Oprogramowanie rozruchowe Arduino można zawsze zaktualizować przy użyciu protokołu DFU!
W przypadku, gdy coś naprawdę źle się dzieje, a w AVR (atmega8u2) pojawia się uszkodzenie bootloadera, nadal możesz go przeflashować za pomocą innego arduino lub programatora atmel za pomocą 6 pinów obok wtyczki USB.
Na koniec wiedz, że jedynym sposobem na zmontowanie AVR, a więc także Arduino, jest granie bezpiecznikami i resetowanie bezpieczników programujących. I nawet wtedy możesz użyć HVSP, aby zapisać swoje urządzenie, choć często mniejszym problemem jest po prostu wzięcie nowego układu.
źródło
Stworzyłem projekt, który całkowicie zastępuje Arduino Bootloader. Możesz przesyłać szkice i używać go jako HID. Zobacz Project HID na Github: https://github.com/NicoHood/HID
źródło