Тинтер отстает при получении данных от Arduino с использованием серийного модуляPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Тинтер отстает при получении данных от Arduino с использованием серийного модуля

Сообщение Anonymous »

Я пытаюсь получить данные от Arduino с простым циклом, отправляя данные каждые 100 мс. Я пытаюсь вытащить то же самое, используя Tkinter и отобразить его на холсте. Но данные отстают. Я также попробовал очередь и нить, но все же возникает та же проблема. Я прошу пользователя ввести порт №. который собирается с помощью кнопки Enter и передайте ее функции fetch_data
from queue import Queue
from threading import Thread
import serial
import tkinter as tk

queue = Queue()
port_no = 0

def fetch_data(queue):
global port_no
while True:
data = serial.Serial(port=F"com{port_no}", baudrate=250000)
while data.in_waiting == 0:
pass
data = data.readline()
data = str(data, "UTF-8")
queue.put(data)

# function for after loop
def display_data():

data = queue.get()
my_canvas.itemconfig(my_text, text=f"{data}")
window.after(100, display_data)

def get_data():
global port_no
port_no = comp_entry.get()
Thread(target=fetch_data, args=(queue,), daemon=True).start()

window = tk.Tk()
window.title("ISS Position")
window.config(padx=50, pady=50)
window.minsize(300, 300)

my_canvas = tk.Canvas(height=300, width=300, highlightthickness=0)
my_canvas.grid(column=0, row=0, padx=10, columnspan=2)
my_text = my_canvas.create_text(150, 150, text="Arduino data", font=("arial", 16, "bold"))

comp_entry = tk.Entry(width=6, font=("arial", 16, "bold"))
comp_entry.grid(column=0, row=1, pady=10)

comp_text = tk.Label(text="Enter Comp port", font=("arial", 16, "bold"))
comp_text.grid(column=1, row=1)

start_button = tk.Button(text="Start", command=display_data, font=("arial", 16, "bold"))
start_button.grid(column=0, row=2, pady=10)

connect_button = tk.Button(text="Enter", command=get_data, font=("arial", 16, "bold"))
connect_button.grid(column=1, row=2)

window.mainloop()


Подробнее здесь: https://stackoverflow.com/questions/794 ... ial-module
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»