Há vários anos, tive guardado em meu armário o controle de meu master system, (aquele da TecToy), então, tentei usa-lo no meu computador, conectando ao meu Arduíno e fazendo a interpretação dos botoes com Python para ele interagir com o windows.
'----------------------- libs ------------------------------'
Videos:
Usei um código de leitura dos botoes do Joystick e mandei os valores direto para a serial para fazer a leitura via Python
Em meu código precisei usar bibliotecas auxiliares:
'----------------------- libs ------------------------------'
- py_Serial: leitura da serial.
- re : encontrar as letras em minha serial, de forma mais eficiente.
- pyautogui: interação do Python com windows.
- win32com: interação do Python com windows, mais rápida que a pyautogui, contudo parou de responder, então tive que substitui-la
Código esta escrito abaixo não é lá grande coisa, mais por falta de pratica em programação fiz o máximo e pouco tempo.
Videos:
from ctypes import py_object from json.encoder import py_encode_basestring_ascii import serial import re #import win32com.clientimport time import pyautogui ser = serial.Serial() ser.baudrate= 250000ser.port = 'COM9'ser.timeout = 5ser.open() a = 1while a == 1: s = ser.read(15) l1 = re.findall('[A-Z]', s) nu = len(re.findall('[A-Z]', s)) while l1 != []: if nu == 1: b1 = l1[0] print("Tecla pressionada ", b1) pyautogui.press(b1) #win32com.client.Dispatch("WScript.Shell").SendKeys(b1) ser.reset_input_buffer() if nu == 2: l1 = re.findall('[A-Z]', s) b1 = l1[0] b2 = l1[1] pyautogui.press(b1) and pyautogui.press(b2) #win32com.client.Dispatch("WScript.Shell").SendKeys(b1) and win32com.client.Dispatch("WScript.Shell").SendKeys(b2) print("Teclas pressionadas ", b1, " e ", b2) ser.reset_input_buffer() if nu == 3: l1 = re.findall('[A-Z]', s) b1 = l1[0] b2 = l1[1] b3 = l1[2] #win32com.client.Dispatch("WScript.Shell").SendKeys(b1) and win32com.client.Dispatch("WScript.Shell").SendKeys(b2) and win32com.client.Dispatch("WScript.Shell").SendKeys(b3) pyautogui.press(b1) and pyautogui.press(b2) and pyautogui.press(b3) print("Teclas pressionadas ", b1, " , ", b2," e ", b3) l1 = re.findall('[A-Z]',ser.read(15)) ser.reset_input_buffer() print(l1)