Add-On: Rundenzeiten

Im Praktikum „Fadenpendel“ haben die Schülerinnen und Schüler die Messwerte mit Excel erfasst, aber die Zeit mit dem Smartphone gestoppt.

Wäre es nicht naheliegend, die Zeit auch mit Excel zu stoppen? Eine einfache Möglichkeit ist die Zeit mit in einem Python-Skript zu stoppen und direkt in die Exceltabelle zu schreiben.

Folgende Lösung hat ChatGPT vorgeschlagen:

import time
import pandas as pd

def save_lap_times(lap_times, lap_count):
    file = 'Messwerte.xlsx'
    sheet_name = 'Rundenzeiten'

    lap_times = [round(lt, 3) for lt in lap_times]
    data = {f'Rundenzeit {lap_count}': lap_times}
    lap_time_df = pd.DataFrame(data)

    try:
        existing_df = pd.read_excel(file, sheet_name=sheet_name)
        new_df = pd.concat([existing_df, lap_time_df], axis=1)
    except FileNotFoundError:
        new_df = lap_time_df

    new_df.to_excel(file, sheet_name=sheet_name, index=False)

print('Drücken Sie Enter, um die Stoppuhr zu starten. Geben Sie "n" ein und drücken Sie Enter, um eine neue Messung zu beginnen. Geben Sie "x" ein und drücken Sie Enter, um die Messung zu beenden und die Daten in Excel zu speichern.')

lap_count = 1

input('Wollen Sie die Messung starten (ja: Enter, nein: x)? ')
lap_times = []
start_time = time.time()
print('Rundenzeit gestartet.')

while True:
    user_input = input('Runde: Enter, Stopp: x : ')
    if user_input == '':
        lap_time = time.time() - start_time
        lap_times.append(lap_time)
        print(f'Rundenzeit gespeichert: {lap_time:.3f} Sekunden')
        start_time = time.time()
    elif user_input.lower() == 'n':
        lap_count += 1
        print('Neue Messung gestartet.')
        break
    elif user_input.lower() == 'x':
        print('Messung beendet. Daten werden in Excel gespeichert...')
        save_lap_times(lap_times, lap_count)
        break

AddOns

Im Unterricht fallen mir immer wieder kleine Ideen ein, die einem das Leben leichter machen könnten. Mithilfe von ChatGPT und Python, lassen sich oft Probleme recht einfach lösen.

IR-Empfänger-Diode (KY-022 Infrared-Receiver)

Wir möchten eine Kommunikation zwischen R2D2 und C3Po aufbauen. Das KY-022 empfänger Modul ist dafür ausgelegt ein IR-Signal z.B. von einer Fernbedinung zu detektieren. Dort werden immer Impulse mit einer hohen Frequen gesendet.

Damit C3Po das Signal kontinuierlich detektieren kann müssen wir bei unserer Sender-Diode mit einer Fequenz senden. Ein kontinuierliches Signal würde uns hier nicht weiter bringen.