프로그래밍/파이썬

파이썬으로 간단한 시리얼 통신

Reo- 2021. 9. 29. 19:28
반응형

 

 

 

안녕하세요 레오입니다.

오늘은 파이썬으로 간단한 시리얼 통신을 해보겠습니다.

 

F4를 누르면 아두이노에 AM2442.17 과 LC 를 보내 주는 예제입니다.

 

 

(저의 아두이노 레오나르도는 저 신호를 받으면 마우스를 x좌표 2442 , y좌표 17로 보내주고 LeftClick을 합니다.)

(최소화 버튼 클릭)

import serial
import time

class ExternalHID:
	ser = 0
	def __init__(self, comport):
		try:
			self.ser = serial.Serial(comport, 9600, timeout=1)
		except Exception as e:
			print(str(e))
	
    def disconnectSerial(self):
		self.ser.close()
	
    def checkSerial(self):

		if self.ser == 0:
			print('Serial Not available')
			return False

		else:
			return True

	def keyboardInput(self, keyinput):
		if not self.checkSerial():
			return False
		moveCommand = '%s' % keyinput
		self.ser.write(str.encode(moveCommand))
		rsp = self.ser.readline()

		if rsp.strip() == b'Key':
			return True
		else:
			return False

if __name__ == "__main__":
	import keyboard as key
	import time
	ser = ExternalHID('COM18')
	#사용하시는 포트로 변경하세요

	def GoAndClick():
		state = False
		returnList = []
		
        while True:
			val = key.is_pressed('F4')
			if state != val:
				if val == True:
					time.sleep(3)
					ser.keyboardInput('AM2442.17')
					time.sleep(1)
					ser.keyboardInput('LC')

				state = val

	while True:
		time.sleep(0.001)
		GoAndClick()

티스토리 오류로 소스가 조금 뒤틀려서 보이네요 위에 이미지 보시고 들여쓰기 확인하시기 바랍니다.

알려주신 지니어스님 고맙습니다.

반응형