2.3 ChatGPT und andere KI

Wie einfach es ist, schlechten Sourcecode zu schreiben, möchte ich an diesem kleinen Beispiel zeigen. Anschließend soll KI (genauer gesagt ChatGPT) genutzt werden, denn die gute Nutzung ist sehr vorteilhaft, während eine schlechte Nutzung in Sackgassen führt; und am Ende muss man von vorne neu von Hand anfangen.

Hinweis: Einrückungen

In Python sind Einrückungen total wichtig, da das Programm daran erkennt, was Teil einer Schleife, Anweisung oder Funktion ist. In Thonny verwenden wir die Tab-Taste für eine Einrückung.

Wir wollen die interne LED nun blinken lassen.

Hier das erste schlechte Script, das zwar funktioniert, aber nicht erweiterbar ist. Genutzt wird eine Endlosschleife (while), die den eingerückten Codeblock immer wieder erneut ausführt.

# Interne LED blinken lassen - schlecht 1
# J. Thomaschewski, 12.08.2024
from machine import Pin
from time import sleep
led = Pin('LED', Pin.OUT)
while True:
    led.on()
    sleep(0.5)
    led.off()
    sleep(0.5)

Nun das zweite schlechte Script, das ebenso funktioniert, aber ebenfalls nicht erweiterbar ist. Statt led.on() und led.off() verwenden wir die Funktionalität led.toggle().

1
2
3
4
5
6
7
8
# Interne LED blinken lassen - schlecht 2
# J. Thomaschewski, 12.08.2024
from machine import Pin
from time import sleep
led = Pin('LED', Pin.OUT)
while True:
    led.toggle()
    sleep(2)

Schlecht deshalb, da wir eine while-Schleife nutzen, die endlos läuft und wir das Programm somit nicht erweitern können. Die gute Lösung enthält eine Definition einer Funktion, die über einen Timer gesteuert wird. Hier soll uns der Sourcecode noch nicht interessieren, sondern nur die Tatsache, dass es gute und schlechte Ansätze in der Programmierung gibt (und dass ChatGPT oftmals zu den schlechten Versionen greift).

1
2
3
4
5
6
7
8
9
# Interne LED blinken lassen - gut
# J. Thomaschewski, 12.08.2024
from machine import Pin, Timer
led = Pin('LED', Pin.OUT)

def blink(timer):
    led.toggle()

Timer().init(freq=5, callback=blink)

Nutzung von KI am Beispiel von ChatGPT

Ich gebe eine deutliche Empfehlung für die Nutzung von Künstlicher Intelligenz (KI).

Zunächst verweise ich auf die Regeln der Hochschule zur Nutzung der KI, die in einem Positionspapier zusammengefasst sind und derzeit hier zu finden sind.

ChatGPT programmieren lassen

Hier schauen wir uns ChatGPT-Ergebnisse an.

Fragestellung an ChatGPT 4o am 12.08.2024

Erstelle mir ein MicroPython-Script für die Nutzung durch den Raspberry Pi Pico. Die interne LED soll blinken.

Antwort

from machine import Pin
import time

# Die interne LED des Raspberry Pi Pico ist an Pin 25 angeschlossen
led = Pin(25, Pin.OUT)

while True:
    led.value(1)  # LED einschalten
    time.sleep(0.5)  # 500 Millisekunden warten
    led.value(0)  # LED ausschalten
    time.sleep(0.5)  # 500 Millisekunden warten

WICHTIG: Die Antwort von ChatGPT ist zwingend um einen Kommentarheader zu ergänzen und lautet dann für die Nutzung durch uns z.B. wie folgt

# Interne LED blinken lassen - gut
# Script erstellt von ChatGPT 4o
# J. Thomaschewski, 12.08.2024
from machine import Pin
import time

# Die interne LED des Raspberry Pi Pico ist an Pin 25 angeschlossen
led = Pin(25, Pin.OUT)

while True:
    led.value(1)  # LED einschalten
    time.sleep(0.5)  # 500 Millisekunden warten
    led.value(0)  # LED ausschalten
    time.sleep(0.5)  # 500 Millisekunden warten

Es gibt die drei Varianten

  1. Sourcecode erstellt von ChatGPT 4o
    Dies ist zu nutzen, wenn ChatGPT den Hauptteil erstellt hat und nur minimale Änderungen stattgefunden haben.

  2. Sourcecode mit Hilfe von ChatGPT 4o
    Hier muss der Sourcecode und die Struktur einen erheblichen Eigenanteil aufweisen. Ansonsten ist die Variante A. zu wählen.

  3. XYZ wurde von ChatGPT 4o erstellt
    Wenn ein eindeutiger Teil von ChatGPT erstellt wurde, dann würde ich dies immer genau benennen.

Die Verwendung von KI-Tools ist in dieser Veranstaltung ausdrücklich erlaubt, sofern eine Kennzeichnung vorhanden ist.

Hinweis: Probleme mit ChatGPT

Das Problem ist bei ChatGPT oftmals nicht der schlechte Sourcecode, sondern die mangelnde Erweiterbarkeit. Man fängt mit einem kleinen Stückchen Sourcecode an und lässt es sich erstellen. Dann kommen die nächsten und nächsten Wünsche und irgendwann bekommt es ChatGPT nicht mehr hin. Aber man selbst bekommt es dann auch nicht mehr hin und muss von Hand von vorne anfangen.

Lassen Sie sich also immer nur ein Stückchen helfen!

ChatGPT kommentieren lassen

Eine sehr gute Verwendung ist die Verwendung von ChatGPT als "Kommentator".

Fragestellung an ChatGPT 4o am 12.08.2024

Hinweis: Ich studiere im 1. Semester und habe keine Ahnung von Programmierung.
Kommentiere mir das Script (MicroPython für Raspberry Pi Pico) so ausführlich, sodass ich es gut verstehe.

from machine import Pin
from time import sleep
led = Pin('LED', Pin.OUT)
while True:
    led.toggle()
    sleep(2)

Antwort

# Importieren der notwendigen Module
from machine import Pin  # Das Modul 'machine' enthält Klassen zur Steuerung der Hardware des Raspberry Pi Pico. Hier wird speziell die Klasse 'Pin' importiert.

from time import sleep   # Das Modul 'time' enthält Funktionen zur Zeitsteuerung. Hier wird speziell die Funktion 'sleep' importiert.

# Initialisieren der LED
led = Pin('LED', Pin.OUT)  # Ein Pin-Objekt namens 'led' wird erstellt. Der Parameter 'LED' steht für den integrierten LED-Pin des Raspberry Pi Pico. 'Pin.OUT' bedeutet, dass dieser Pin als Ausgang konfiguriert wird.

# Endlosschleife
while True:  # Dies ist eine Endlosschleife, die ununterbrochen läuft.
    led.toggle()  # Die Methode 'toggle()' wechselt den Zustand der LED. Wenn sie an ist, wird sie ausgeschaltet und umgekehrt.
    sleep(2)      # Die Funktion 'sleep(2)' pausiert das Programm für 2 Sekunden, bevor die Schleife erneut durchlaufen wird.

Zusammenfassung

  • Sie haben die Erstinstallation vorgenommen und die interne LED anschalten können. Damit sind Sie einsatzbereit für die kommenden Aufgaben.
  • Sie können Scripte in Thonny schreiben und abspeichern, sowohl auf einem lokalen Computer als auch auf dem Pi Pico Board.
  • Sie wissen, dass Sie bei mir unbedingt einen Kommentarheader verwenden müssen.
  • Sie wissen, wie Sie ChatGPT oder andere KI-Tools nutzen können und dass die Nutzung zwingend im Programmheader angegeben werden muss.