반응형 저울14 [파이썬 저울 연결] 7. GUI 만들기 #1. 윈도우 만들기 GUI로 만들어서 화면에 현재 무게를 띄워보려고 한다. 파이썬 GUI 중 가장 쉬운게 Tkinter 라고 해서 이걸로 시작해보았다. 파이썬을 깔면 내장되어 있어서 추가 설치도 필요 없다. 아래와 같이 import 해온다. import tkinter as tk 먼저 윈도우를 만들어줘야 한다. 아래와 같이 만든다. root 라는 변수에 윈도우를 만들어 주었다. 이 윈도우의 클래스들을 이용하여 윈도우 이름도 정하고, 사이즈도 정할 수 있다. import tkinter as tk #윈도우 생성 root=tk.Tk() #윈도우 이름 root.title('무게 출력하기') #창 크기 +붙은 부분은 좌상단 떨어진 위치 root.geometry("600x400+50+50") #창 크기 조절 가능 여부 (디폴트 True.. 2022. 1. 7. [파이썬 저울 연결] 6. 0점조절, tare 시 오류 지금까지 짠 코드는 아래와 같다. import serial import re ser = serial.Serial(port='COM8', baudrate=9600, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, timeout=0.1) while(True): ser.close() ser.open() #값 불러오기 res=ser.readline() #문자열로 변환 res=str(res) #숫자 부분 추출, 추출 결과는 ['숫자'] 형태 res=re.findall("\d+.\d+",res) #문자열 추출 res=res[0] #실수로 변환 res=float(res) print(res) 영점 조절을 하거나 tare 를 할 때 코드가 종료된다. 또는 영점조절 직후 무.. 2022. 1. 7. [파이썬 저울 연결] 5. timeout 옵션에 대하여 지금까지 짠 코드는 아래와 같다. import serial import re ser = serial.Serial(port='COM8', baudrate=9600, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, timeout=None) while(True): ser.close() ser.open() #값 불러오기 res=ser.readline() #문자열로 변환 res=str(res) #숫자 부분 추출, 추출 결과는 ['숫자'] 형태 res=re.findall("\d+.\d+",res) #문자열 추출 res=res[0] #실수로 변환 res=float(res) print(res) timeout을 0으로 두면 오류가 뜬다. None이나, 다른 수로 두면 괜찮.. 2022. 1. 7. [파이썬 저울 연결] 3. 명령어 입력 시 현재 무게 받아오기 지난시간까지 만든 코드는 아래와 같다. import serial import sys ser = serial.Serial(port='COM8', baudrate=9600, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, timeout=None) 문제가 하나 있었는데, 저울에서 정보가 1초마다 전송되기 때문에 정보가 계속 쌓인다. 따라서 ser.readline( ) 명령어로 정보를 받아올 때, 현재 정보가 아니라 누적된 정보의 초기값부터 불러오기 시작한다. 이 문제를 해결하기 위해 고민했고 방법을 찾았다. 시리얼을 닫고 연 뒤 불러오면 된다. 닫고 여는 명령어는 아래와 같다. ser.close() ser.open() 아래와 같이 while 문을 통해 물건을 올.. 2022. 1. 6. 이전 1 2 3 4 다음 반응형