Voraussetzung ist eine erfolgreich durchgeführte und getestete Basisinstallation unserers Projektes anhand der Installationsanleitungen:
Der "Einzelspielmodus" ist für Oberstufe empfohlen, und kann optional mit der Expertenvariante (Orange) erweitert werden. Dies hier ist die Anleitung für die Basisversion.
Die Nutzeranleitung für die Expertenvariante ist hier zu finden:
Im "Einzelspielmodus" kann jeder Schüler seine eigene künstliche Intelligenz trainieren. Dafür benötigt jeder Schüler mindestens eine Basisinstallation auf seinem Schülerrechner, optional die Expertenvariante mit Orange.
Pro Schüler wird 1 "Rennspiel-Calliope" benötigt, der direkt per USB an den Rechner des Schülers angeschlossen wird.
Seit Release "Speedy" (19.12.2022) können die Schritte 1 bis 5A statt manuell bzw. via Kommandozeile auch via einer komfortablen grafischen Nutzeroberfläche (GUI) durchgeführt werden (Stand 19.12.2022 nur für Windows verfügbar)
Dazu im Unterverzeichnis /ki-in-schulen-master/Calliope-Rennspiel/Python/
folgenden Befehl ausführen: python ki-gui-win.py
Die unten beschriebenen Schritte sind dann entsprechend über die Menüpunkte des erscheinenden Fenster nutzbar.
Diesen Schritt muss jeder Schüler durchführen.
Hierzu muss ein Calliope mini per USB an den Schülerrechner angeschlossen werden.
MakeCode-Variante
- Die Datei
/ki-in-schulen-master/Calliope-Rennspiel/Makecode/rennspiel-funkgruppe1-makecode.hex
auf den per USB angeschlossenen Calliope mini kopieren. (Die Funkgruppe ist im Einzelspielmodus egal, da die Datensammlung über USB funktioniert)
OpenRoberta-Variante
- Die Datei
/ki-in-schulen-master/Calliope-Rennspiel/OpenRoberta/rennspiel-openroberta.hex
auf den per USB angeschlossenen Calliope mini kopieren. (Die Funkgruppe muss beim Start auf 0 gewählt bleiben, damit das USB-Logging aktiv ist)
-
Windows: via Gerätemanager, wird als "USB Serial Device" angezeigt
-
Linux:
ls -al /dev/ttyACM*
ggf. Nutzer zur
dialout
Nutzergruppe hinzufügen, damit dieser auf den Calliope mini auch zugreifen darf.sudo usermod -aG <username> dialout
sudo adduser <username> dialout
-
Auf jedem Schülerrechner ausführen:
python ki-datenlogger.py <COM-Port>
(COM-Port in Schritt 2 herausgefunden) -
Startschuss für das Rennspiel auf dem "Rennspiel"-Calliope jedes Schülers (Calliope muss per USB am Schülerrechner angeschlossen bleiben). Die Schüler spielen das Rennspiel, so lange vorgegeben; dabei werden die Rohdaten per USB an den Schülerrechner übertragen. Am Ende ist eine beliebige Taste am Schülerrechner zu drücken, um das Datensammeln zu beenden und die Rohdaten in eine Datei zu speichern.
-
Im Unterverzeichnis
csv-rohdaten
werden die Rohdaten abgelegt unter dem angezeigten Dateinamen, bspw.ki-rennspiel-log-20210303111213.csv
-
Auf jedem Schülerrechner ausführen:
python ki-trainieren-sklearn.py <CSV-Datei>
(CSV-Datei in Schritt 3 gespeichert) -
Im Unterverzeichnis
modelle
wird ein trainiertes neuronales Netzwerk abgelegt unter dem angezeigten Dateinamen, bspw.sklearn-py-modell-20210302220807.pkcls
undsklearn-py-modell-20210302220807.json
Variante A: IQ-Test auf Schülergruppenrechner
-
Auf jedem Schülergruppenrechner ausführen:
python ki-rennspiel.py sklearn <PKCLS-Datei>
(PKCLS-Datei in Schritt 5 gespeichert) -
Um zu sehen, wie gut oder schlecht die angelernte KI steuert:
- Turbo ausgeschaltet lassen (Standard)
- KI spielen lassen durch Drücken von Taste 2
-
Da es sich um ein zufallsgesteuertes Rennspiel handelt, wird für eine Auswertung der KI-Leistung das Rennspiel 50-mal durch die KI gespielt und dann der Medianwert der erreichten Punktzahl angezeigt:
- Turbo anschalten durch Drücken Taste T
- KI spielen lassen durch Drücken von Taste 2
- 50 Episoden werden durch die KI gespielt
- Medianwert der erreichten Punktzahl wird angezeigt.
Variante B: IQ-Test auf Calliope mini
Das trainierte neuronale Netzwerk kann auch direkt auf dem Calliope mini getestet werden.
Projektziel ist es, die "Hirntransplantation" des trainierten KI-Modells für die SuS über die Oberfläche auf https://makecode.calliope.cc nachvollziehbar zu machen; Stand März 2021 verhinderte jedoch ein Bug in Makecode diese Variante.
Daher wurde im Projekt ein temporärer Behelfsmechanismus implementiert:
- Auf dem Schülergruppenrechner ins Verzeichnis wechseln:
ki-in-schulen-master/Calliope-Rennspiel/Python/iq-test-calliope/
- Auf dem Schülergruppenrechner ausführen:
python iq-test-erstellen.py -r <JSON-Modelldatei>
(Die JSON-Modelldatei ist eine in Schritt 4 erzeugte Modelldatei, bspw.sklearn-py-modell-20210302220807.json
) - Die erzeugte Calliope Hex-Datei
iq-test-calliope.hex
kann auf einen Calliope mini kopiert werden - Die trainierte KI übernimmt die Steuerung im Rennspiel (manuelle Steuerung ist zusätzlich möglich)