Skocz do zawartości

Zaprogramowanie przycisków jako wyjściowe


Pomocna odpowiedź

Napisano

Posiadam moduł arduino uno r3 i kupiłem moduł przycisku. Chciałbym aby gdy kliknę w ten przycisk to np. włącza mi się ręczny w jakiejś grze. Nie chce gotowego kodu i schematu rozmieszczenia kabli po prostu chce mały i szybki poradnik.

@Janizator witam na forum 🙂 Jak rozumiem interesuje Cię po prostu symulowanie działania klawiatury. Wciskasz przycisk, a Arduino wysyła do komputera informację, która jest intepretowana jako naciśnięcie jakiś klawiszy na komputerze. Zgadza się? Jeśli tak to najprościej będziesz, gdy zdecydujesz się na zmianę Arduino UNO na Arduino Leonardo - tam będzie to znacznie łatwiejsze. Tutaj więcej informacji: https://www.arduino.cc/reference/en/language/functions/usb/keyboard/

  • Lubię! 1
(edytowany)

Szukając niedawno informacji o HID USB natknąłem się na HID z Arduino UNO (ale musi mieć 16U2 czy co tam jest, nie jakiś mostek tylko. W sumie płytka dwukontrolerowa, potencjał jednego (połowy Leonardo) się marnuje), choć to nie zgodne z filozofią Arduino, bardziej hakowanie Arduino. "Łatwiejsze" może się okazać połączenie szeregowe i program co będzie klikał w klawisze, np. skrypt (można pominąć krok aktywacji okna po tytule, to co będzie aktywne, tam pędzie "pisać", działa, ciekawa funkcja, przyda się) w PowerShellu. Np. prosty terminal, gdzie możesz po otrzymaniu konkretnej wiadomości (to już samemu dopisać) coś zrobić. Ulepione, ale działa:

@echo off
mode con: cols=50 lines=16
PowerShell ^
$bol = 1; ^
$port = new-Object System.IO.Ports.SerialPort COM23,921600,None,8,one; ^
$port.DTREnable = $True; ^
do {try{$port.open(); $bol = 0} catch{$bol = 1}; Start-Sleep -Milliseconds 20} while ($bol -eq 1); ^
while ($true) {$port.ReadLine()}

Nie miało być, ale gotowiec:

@echo off
mode con: cols=50 lines=16
PowerShell ^
$wshell = New-Object -ComObject wscript.shell; ^
$bol = 1; ^
$port = new-Object System.IO.Ports.SerialPort COM23,921600,None,8,one; ^
$port.DTREnable = $True; ^
do {try{$port.open(); $bol = 0} catch{$bol = 1}; Start-Sleep -Milliseconds 20} while ($bol -eq 1); ^
while ($true) {if ($port.ReadLine() -eq 'r') {$wshell.SendKeys('r')}}

Jak Arduino wyśle portem szeregowym "r", to kliknie system w "r".

Edytowano przez matsobdev
  • Lubię! 2

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...