import serial import time # Configure a porta COM de acordo com o seu computador (ex: COM3 no Windows ou /dev/ttyUSB0 no Linux) porta_usb = 'COM3' baud_rate = 115200 try: ser = serial.Serial(porta_usb, baud_rate, timeout=1) print(f"Conectado com sucesso na porta {porta_usb}") except: print("Erro: Nao foi possivel abrir a porta USB.") exit() def atualizar_kml(lat, lon, alt): """Cria e atualiza dinamicamente o arquivo de mapa do Google Earth""" kml_conteudo = f""" Posicao Atual do Foguete Altitude: {alt} metros absolute {lon},{lat},{alt} """ with open("foguete.kml", "w") as f: f.write(kml_conteudo) # Loop continuo para processar os dados que chegam do espaco while True: if ser.in_waiting > 0: linha = ser.readline().decode('utf-8').strip() # O dado esperado deve ser algo como: -23.550520,-46.633308,60000.00 dados_separados = linha.split(',') if len(dados_separados) == 3: try: lat = float(dados_separados[0]) lon = float(dados_separados[1]) alt = float(dados_separados[2]) print(f"Telemetria Recebida -> Lat: {lat} | Lon: {lon} | Alt: {alt}m") # Atualiza o arquivo de mapa atualizar_kml(lat, lon, alt) except ValueError: print("Erro: Dados corrompidos recebidos na transmissão.") time.sleep(0.1)