39 lines
1019 B
Python
39 lines
1019 B
Python
|
|
import serial
|
||
|
|
import keyboard
|
||
|
|
import time
|
||
|
|
|
||
|
|
# Thay 'COM3' bằng cổng Arduino của bạn, ví dụ 'COM3' trên Windows hoặc '/dev/ttyACM0' trên Linux/macOS
|
||
|
|
SERIAL_PORT = 'usbmodem1401'
|
||
|
|
BAUD_RATE = 9600
|
||
|
|
|
||
|
|
try:
|
||
|
|
ser = serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=1)
|
||
|
|
except serial.SerialException:
|
||
|
|
print(f"Không thể mở cổng {SERIAL_PORT}. Kiểm tra kết nối Arduino.")
|
||
|
|
exit()
|
||
|
|
|
||
|
|
print("Đang lắng nghe phím W A S D, nhấn ESC để thoát...")
|
||
|
|
|
||
|
|
while True:
|
||
|
|
if keyboard.is_pressed('w'):
|
||
|
|
ser.write(b'w')
|
||
|
|
print("Send: w")
|
||
|
|
time.sleep(0.2)
|
||
|
|
elif keyboard.is_pressed('a'):
|
||
|
|
ser.write(b'a')
|
||
|
|
print("Send: a")
|
||
|
|
time.sleep(0.2)
|
||
|
|
elif keyboard.is_pressed('s'):
|
||
|
|
ser.write(b's')
|
||
|
|
print("Send: s")
|
||
|
|
time.sleep(0.2)
|
||
|
|
elif keyboard.is_pressed('d'):
|
||
|
|
ser.write(b'd')
|
||
|
|
print("Send: d")
|
||
|
|
time.sleep(0.2)
|
||
|
|
elif keyboard.is_pressed('esc'):
|
||
|
|
print("Thoát chương trình.")
|
||
|
|
break
|
||
|
|
|
||
|
|
ser.close()
|