Forside | Regler | Praktisk | Kom i gang | Til læreren | Historie | Billedgalleri
Hvis jeres data ankommer til en laptop-computer via USB-porten, skal I have et program kørende på computeren, som modtager disse data og gemmer dem i en fil.
Det frarådes på det kraftigste at bruge et terminalprogram til at modtage data, for typisk bliver data ikke gemt automatisk, og hvis man kommer til at lukke programmet, inden man har gemt, eller computeren f.eks. løber tør for strøm og lukker ned, mister man sine data.
Nedenstående python-program skal køres i en terminal. Det modtager data fra USB-porten, gemmer det i en fil, og skriver det ud i terminalen.
#!/usr/bin/env python3
import serial,datetime,os
port = '/dev/ttyUSB0' # F.eks. Linux og MacOS
#port = "COM3" # Windows
baudRate = 9600
ser = serial.Serial(port, baudRate)
f = open("serialdump.txt", "a+") # Filen, som data bliver gemt til
while True:
s = ser.readline()
now = str(datetime.datetime.now()) # Timestamp, der skrives til filen
line = ""
line += str(now) # Tilføj timestamp
line += "," # Tilføj komma
line = s.decode('utf-8').replace('\r\n','') # Fjern evt. overflødige linjeskift
data = s.decode(encoding='ascii',errors='ignore') # Dekod data
line += data
print(line.replace('\r\n','')) # Print til terminal - her fjernes også overflødige linjeskift
f.write(line) # Sender data til bufferen til at skrive til filen
f.flush() # Skriver det rent faktisk til filen
Hvis I kopierer koden ind i en fil, som I f.eks. kan kalde readserial.py, skal I køre den
fra en terminal med kommandoen
python3 readserial.py – og så skal I lige tjekke, om data
nu også bliver skrevet til den fil, I har defineret.
Pris
Gratis
Målgruppe
Elever fra STX og HTX, 14−19 år
Vinderholdet
– går videre til Space Engineer for a Day på ESA-centeret ESTEC i Holland.
Gratis lærerkursus
Dato kommer senere
Spørgsmål?
Kontakt Steen Eiler Jørgensen, sej@astra.dk
Den danske CanSat-konkurrence arrangeres af ESERO Danmark.