ich möchte euch ein Projekt vorstellen, an dem ich seit einigen Wochen arbeite: den DigiTrainer, einen browserbasierten Simulator des historischen ITT Digi-Trainer 2.
Der ITT Digi-Trainer 2 war ein Experimentiersystem zum Erlernen der Digitaltechnik. Über Steckbuchsen und Patchkabel konnten unterschiedliche Logikschaltungen aufgebaut und deren Verhalten anhand von LEDs und einer Siebensegmentanzeige untersucht werden.
Mein Ziel ist es, dieses Gerät möglichst originalgetreu im Browser nachzubilden – nicht nur optisch, sondern auch funktional.
Als Grundlage dient ein Foto des Originalgeräts. Sämtliche Steckbuchsen und Bedienelemente wurden mit interaktiven Funktionen versehen. Patchkabel lassen sich mit der Maus oder per Touch zwischen den Buchsen ziehen. Die entstehenden elektrischen Netze werden ausgewertet und die angeschlossenen Bausteine entsprechend simuliert.
Aktueller Entwicklungsstand (v0.61):
Interaktive Schalter, LEDs und mehr als 200 Steckbuchsen
Frei steckbare und einzeln entfernbare Patchkabel
Elektrische Netzbildung mit Erkennung von Kurzschlüssen und Ausgangskonflikten
Simulation der vorhandenen TTL- und CMOS-Logikgatter
Taktgenerator mit 1 Hz, 10 Hz und manuellem Takt
4-Bit-Binärzähler SN74LS293N
Hexadezimale Siebensegmentanzeige mit MC14495P
4-Bit-ALU SN74LS382N
Experimentelle Simulation des 6-Bit-A/D-Wandlers NE5037N
Passive Verbindungsschienen L0–L4
Die Simulation erfolgt vollständig mit HTML, CSS und JavaScript. Es ist weder eine Installation noch zusätzliche Hardware erforderlich.
Der Schwerpunkt liegt auf dem logischen Verhalten der Schaltungen. Eine vollständige elektrische Simulation mit realen Laufzeiten und analogen Eigenschaften ist nicht vorgesehen.
Wichtiger Hinweis zur Bedienung
Die Bedienung ist bewusst in zwei Betriebszustände aufgeteilt: Bei ausgeschaltetem Gerät können die Patchkabel gesteckt oder entfernt werden, bei eingeschaltetem Gerät lassen sich die Schalter bedienen und die Schaltungen simulieren. Der Wechsel der Betriebszustände erfolgt durch den Klick auf den Power-Button oben links.
Hier könnt ihr den DigiTrainer direkt ausprobieren:
Das Projekt befindet sich weiterhin in Entwicklung. Als nächste Erweiterungen sind unter anderem eine visuelle Anzeige der Schiebeschalter und der der HIGH/LOW-Pegel an den Steckbuchsen, das Speichern und Laden von Schaltungen sowie möglicherweise ein virtueller Signalprüfer vorgesehen.
Mich würden besonders eure Meinungen zur technischen Umsetzung und zur Bedienbarkeit interessieren. Auch Hinweise zur Originalhardware sind willkommen, da mir selbst kein ITT Digi-Trainer 2 zur Verfügung steht.
Die Schiebeschalter S0–S7 lassen sich erst betätigen, wenn der DigiTrainer über den Hauptschalter links oben eingeschaltet wurde.
Die Bedienung ist bewusst in zwei Betriebszustände aufgeteilt: Bei ausgeschaltetem Gerät können die Patchkabel gesteckt oder entfernt werden, bei eingeschaltetem Gerät lassen sich die Schalter bedienen und die Schaltungen simulieren.
Falls du den Hauptschalter bereits eingeschaltet hattest und die Schalter trotzdem nicht reagieren, wäre das natürlich ein Fehler. Dann müsste ich mir das Verhalten unter Linux/Firefox genauer ansehen.
Eine deutlichere Anzeige des aktuellen Schalterzustands steht übrigens bereits auf meiner To-do-Liste.
Coole Sache. Habe nach etwas probieren zumindest hinbekommen dass die Siebensegmentanzeige oben, getaktet durch 1Hz am Latch, die Stellung der Schalter unten anzeigt.
Zum erklären von Digitaltechnik gut geeignet, denke ich.
Sehr gut gemacht.
Wie lösche ich Verbindungen?
Und vielleicht, wenn möglich, bei den Standardgattern auch die Pinbelegung (evtl. als Overlay?) mit angeben? Man weiß sie halt nicht immer auswendig.
Aber hier stehe ich noch auf dem Schlauch: zwei Eingänge des NAND-Gatters mit dem Schalter verbunden, den Ausgang mit der LED. Warum leuchtet die in keiner Stellung des Schalters?
Vielen Dank für eure Rückmeldungen und die ersten Experimente mit dem DigiTrainer!
Schön zu sehen, dass bereits eigene Schaltungen aufgebaut werden und sogar Grok erfolgreich einen Zähler verdrahten konnte. :)
Noch zwei Hinweise zur Bedienung:
Patchkabel entfernen: Einfach dieselbe Verbindung ein zweites Mal ziehen. Dabei spielt die Richtung keine Rolle - Lutz S. hatte das selbst schon herausgefunden.
IC-Pinbelegung: Wenn man mit der Maus über eine Anschlussbuchse eines Logik-ICs fährt, wird die jeweilige Pin-Funktion als Tooltip angezeigt.
Und ja, die Stromversorgung der Logik-ICs auf den Steckplätzen 0 bis 5 muss tatsächlich verdrahtet werden. Ohne +5 V und GND funktionieren die Gatter im Simulator nicht – genau wie bei der echten Hardware, und Ove M. hatte genau den richtigen Hinweis gegeben ;)
Die Bedienung und die Hinweise werde ich noch etwas verbessern, damit solche Funktionen leichter zu entdecken sind.
Weiterhin viel Spaß beim Experimentieren!
Spoiler: Im Moment sind die Logik-ICs auf den Steckplätzen 0 bis 5 fest zugeordnet. Die werden später aber austauschbar sein durch beliebige andere Logik-ICs der 74er Baureihe ;)
DigiTrainer v0.63 – Neue Features
Schwerpunkt: Visuelle Darstellung der digitalen Signalzustände
Debug-Modus ein-/ausschaltbar
Neue Checkbox „Debug“ in der Bedienleiste.
Standardmäßig deaktiviert, um die klassische Darstellung beizubehalten.
Jederzeit während der Simulation umschaltbar.
16 digitale Pegelanzeigen
Anzeige von 0 und 1 in den acht gelben Feldern unter den Schaltern S0–S7.
Anzeige der logischen Pegel in den acht gelben Feldern unter den LEDs D0–D7.
Automatische Aktualisierung bei Signaländerungen.
Nur bei aktiviertem Debug-Modus und eingeschaltetem Gerät sichtbar.
Dynamische Patchkabelfarben
Rot: HIGH (1)
Hellblau: LOW (0)
Hellgrau: Undefinierter Pegel
Die Farben ändern sich während der Simulation automatisch, beispielsweise beim Umschalten eines Schalters oder bei Taktimpulsen.
Realistische Steckerköpfe
Kleine, runde Steckerköpfe an beiden Enden jedes Patchkabels.
Gleiche Farbe wie das zugehörige Kabel.
Skalieren beim Zoomen mit der Platine.
Klassische Kabelfarben im Wiring-Modus
Rot: Verbindungen mit +5 V.
Blau: Verbindungen mit GND.
Grün: Alle anderen Verbindungen.
Auch indirekte Verbindungen über weitere Buchsen werden berücksichtigt.
Verbesserte Farbdarstellung
Helleres Blau und Grau für bessere Erkennbarkeit auf dem blauen Platinenhintergrund.
Keine Änderungen an der eigentlichen Logiksimulation.
Fazit: Mit v0.63 erhält der DigiTrainer eine zuschaltbare, visuelle Signalverfolgung, die weit über die Möglichkeiten der historischen Hardware hinausgeht – ohne deren ursprüngliches Erscheinungsbild aufzugeben.
Das sieht ja richtig schön aus, auch wenn ich es nie verwenden werde.
Tolle Arbeit!
Das ist jetzt pingelig, aber mich hat sofort gestört, dass die Drähte keinen Schatten haben. Haben, nicht werfen! Der Rest ist ja sehr realistisch und mit Liebe zum Detail gemacht. Da stechen die Drähte halt raus.
@Lutz: Das Speichern und spätere Laden von Schaltungen steht bereits auf meiner Wunschliste. Ich denke dabei zunächst an JSON-Dateien, damit man seine Experimente auch mit anderen austauschen kann.
Zu den offenen TTL-Eingängen: Guter Hinweis! Momentan behandelt der Simulator offene Eingänge als undefiniert. Bei den klassischen 74LS-Bausteinen entspricht das nicht ganz dem Verhalten der realen Hardware, wo offene Eingänge normalerweise als HIGH erkannt werden. Das werde ich mir noch einmal genauer ansehen. Bei CMOS-Bausteinen sieht die Sache natürlich anders aus.
@Nick: Danke für das Lob! Und nein, das ist gar nicht pingelig. 😉 Die Patchkabel sind bisher einfache SVG-Linien. Ein dezenter Lichtreflex oder eine plastischere Darstellung würde tatsächlich besser zum restlichen DigiTrainer passen. Das nehme ich gerne als Verbesserungsvorschlag mit.
Es gibt also noch einiges zu tun. Aber genau solche Rückmeldungen helfen dabei, den Simulator Schritt für Schritt besser zu machen!
Danke für das Lob! Und nein, das ist gar nicht pingelig
Bitte, gerne geschehen! Dass die Kabel so sind wie sie jetzt sind, ist verständlich. So hat es halt angefangen.
Ich musste heute in der Arbeit paarmal schmunzeln als ich an deinen Simulator gedacht hab. Mir war aber nicht so recht klar, was mich daran so erfreut.
Bis mir dann das Stichwort "Weihnachten" in den Sinn kam. Das ist, wie wenn man als Jugendlicher zu Weihnachten den Digitrainer geschenkt bekommt. Honigkuchenpferd pur!
Also, Danke für deine Arbeit! Du hast mir damit Freude gemacht, und ich wünsch dir, dass sich noch mehr darüber freuen.
Es gibt wieder Neuigkeiten von meinem DigiTrainer-Simulator. Inzwischen sind wir bei Version 0.64 angekommen. :)
Die wichtigste Neuerung ist die Möglichkeit, selbst aufgebaute Schaltungen zu speichern und später wieder zu laden.
Dabei gibt es zwei Möglichkeiten:
Projekte unter einem frei wählbaren Namen direkt im Browser speichern und wieder laden.
Schaltungen als JSON-Datei exportieren und importieren, um sie beispielsweise mit anderen auszutauschen.
Gespeichert werden die Verdrahtung, die Schalterstellungen, die Einstellungen des Taktgenerators und der Debug-Modus.
Besonders gefreut hat mich, dass diese Erweiterung nicht von mir stammt, sondern von Lutz (lschulze). Er hat die Projektverwaltung entwickelt und als ersten Pull Request zum GitHub-Projekt beigetragen. Vielen Dank dafür!
Auch die Debug-Anzeige wurde inzwischen ergänzt. Damit lassen sich die logischen Pegel an den Verbindungen farblich darstellen, was die Fehlersuche deutlich erleichtert.
Ein weiteres interessantes Thema ist bereits aufgetaucht: Unbeschaltete Eingänge der 74LS-TTL-Bausteine werden in der Praxis typischerweise als HIGH erkannt, während das bei CMOS-Eingängen nicht gilt. Dieses Verhalten möchte ich als Nächstes in der Simulation berücksichtigen.
Die Patchkabel sind jetzt bunt! Das erleichtert die Übersicht bei komplexeren Schaltungen erheblich.
Dabei bekommt nicht einfach jedes Kabel eine andere Farbe, sondern alle Leitungen, die elektrisch miteinander verbunden sind, erhalten dieselbe Farbe. So lässt sich der Signalverlauf viel leichter verfolgen.
Außerdem werden unbeschaltete TTL-Eingänge jetzt wie beim echten 74LS-Baustein als HIGH interpretiert.
Und noch etwas:
@Nick: Die Patchkabel haben jetzt auch einen Schatten bekommen. ;)
Dank der tatkräftigen Unterstützung von Lutz (lschulze) gibt es wieder einige schöne Verbesserungen bei der Bedienung der Patchkabel:
Kabel markieren: Einfach auf eine Leitung klicken oder tippen.
Kabel entfernen: Erneut anklicken, Entf drücken oder per Rechtsklick löschen.
Stecker umstecken: Einen Stecker eines markierten Kabels abziehen und auf eine andere Buchse stecken. Fast wie beim echten Digi-Trainer! ;)
Rückgängig: Mit Strg+Z oder dem neuen ↶-Button lassen sich die letzten Kabeländerungen rückgängig machen.
Das Ganze funktioniert mit Maus und Touchscreen. Die bisherige Möglichkeit, eine Verbindung durch erneutes Ziehen zu entfernen, bleibt natürlich erhalten.
Lutz hat die Erweiterung wieder als eigenständiges JavaScript-Modul umgesetzt und auch die Online-Hilfe entsprechend ergänzt.
Vielen Dank an Lutz für seinen inzwischen zweiten Pull Request! Es freut mich sehr, dass sich der DigiTrainer langsam zu einem kleinen Gemeinschaftsprojekt entwickelt. :)
Es gibt wieder ein paar Neuerungen bei meinem webbasierten Simulator des ITT Digi-Trainer 2.
Der Hauptschalter ist jetzt auch optisch funktionsfähig. Beim Einschalten wird ein passender Bildausschnitt eingeblendet, sodass der Schalter tatsächlich seine Stellung verändert. Die rote Betriebs-LED leuchtet natürlich weiterhin.
Außerdem gibt es jetzt im GitHub-Repository einen neuen Ordner projects/ mit ersten fertigen Beispielschaltungen:
4-Bit-Zähler mit hexadezimaler 7-Segment-Anzeige
4-Bit-Zähler mit zusätzlicher binärer LED-Anzeige
8-LED-Lauflicht von links nach rechts
8-LED-Pendellauflicht, das anschließend wieder zurückläuft
Gerade die beiden Lauflichter waren ein schöner Test für die Simulation. Sie verwenden ausschließlich die bereits vorhandenen Bauteile des DigiTrainers, einschließlich der sechs Logik-ICs. Es musste also nichts speziell für diese Experimente programmiert werden – die Schaltungen funktionieren allein durch die entsprechende Verdrahtung. :)
Die Beispielprojekte lassen sich als JSON-Dateien herunterladen und über die Projektverwaltung direkt in den Simulator importieren.
Dank der Unterstützung von Lutz gibt es wieder eine schöne Erweiterung!
Über den Button Projekt können jetzt nicht nur eigene Schaltungen gespeichert und geladen werden, sondern auch fertige Beispielprojekte direkt aus GitHub.
Aktuell stehen vier Schaltungen zur Auswahl:
Zwei 4-Bit-Binärzähler mit 7-Segment-Anzeige
Ein Lauflicht über alle acht LEDs D0–D7
Ein Pendellauflicht von D0 nach D7 und zurück
Zu jedem Projekt gibt es eine kurze Beschreibung. Diese ist inzwischen direkt in der jeweiligen JSON-Datei hinterlegt.
Außerdem habe ich die Projektverwaltung etwas übersichtlicher gestaltet: „Meine Projekte“ und „Beispielprojekte“ sind jetzt getrennt aufgeführt.
Vielen Dank an Lutz für die tolle Erweiterung! :)
Und noch etwas zur Idee hinter den Beispielprojekten:
Die Liste soll natürlich nicht bei meinen vier Schaltungen bleiben. ;)
Wenn ihr eigene Schaltungen mit dem DigiTrainer entwickelt habt, könnt ihr mir diese gerne als JSON-Datei zusenden. Ich nehme sie dann in die Liste der Beispielprojekte auf, sodass auch andere sie direkt im DigiTrainer laden und ausprobieren können.
Vielleicht entsteht so mit der Zeit eine schöne Sammlung interessanter Schaltungen und Experimente. :)
Es gibt wieder Neuigkeiten von meinem DigiTrainer, dem webbasierten Simulator des ITT Digi-Trainer 2.
Und diesmal ist es eine Erweiterung, über die ich mich ganz besonders freue! :)
Ab Version 0.69 kann der DigiTrainer aus der gesteckten Verdrahtung automatisch einen richtigen Schaltplan erzeugen!
Ein Klick auf den neuen Button „Schaltplan“ genügt, und schon wird aus den vielen bunten Patchkabeln auf dem Experimentierboard ein übersichtlicher digitaler Logikschaltplan.
Dabei gibt es einige interessante Funktionen:
Automatische Anordnung der Logikgatter und Baugruppen
Darstellung des Signalflusses möglichst von links nach rechts
Wahlweise IEC-60617-Symbole oder amerikanische Gattersymbole
Optionale Übernahme der Kabelfarben
Automatische Leitungsführung einschließlich Verzweigungen und Rückkopplungen
Export als skalierbare SVG-Grafik
Druckfunktion für den fertigen Schaltplan
Ich habe die neue Funktion bereits mit unseren vier Beispielprojekten ausprobiert. Besonders bei den beiden Binärzählern entstehen sehr schöne und gut lesbare Schaltpläne. Bei den beiden Lauflichtern wird es aufgrund der vielen Verbindungen natürlich etwas komplizierter, aber auch diese Schaltungen werden automatisch umgesetzt.
Das wirklich Beeindruckende daran:
Die Schaltpläne werden nicht einfach aus einer fertigen Vorlage geladen. Der DigiTrainer analysiert tatsächlich die gesteckten Verbindungen, ermittelt daraus die elektrischen Netze und erzeugt anschließend selbstständig die Anordnung der Bauteile und Leitungen.
Und jetzt kommt das Beste: Diese tolle Erweiterung stammt wieder von Lutz (lschulze)!
Nachdem Lutz bereits die Projektverwaltung, die verbesserte Kabelbedienung und die Beispielprojektbibliothek beigesteuert hat, hat er mit der automatischen Schaltplanerstellung noch einmal ordentlich nachgelegt.
Er hat sogar eine dreiseitige technische Dokumentation geschrieben, in der er erklärt, wie das Ganze funktioniert. Dabei kommen unter anderem Graphenalgorithmen und das sogenannte Sugiyama-Verfahren zum Einsatz.
Die Dokumentation findet ihr ebenfalls im GitHub-Repository:
ich möchte euch ein Projekt vorstellen, an dem ich seit einigen Wochen
arbeite:
Ist das mit oder ohne KI erstellt? Wenn ja, wäre es interessant zu wissen, ob die Lizenz dann so gültig ist und ob man die Verwendung der KI erwähnen muss.
Der DigiTrainer analysiert tatsächlich die gesteckten Verbindungen,
ermittelt daraus die elektrischen Netze und erzeugt anschließend
selbstständig die Anordnung der Bauteile und Leitungen.
ich möchte euch ein Projekt vorstellen, an dem ich seit einigen Wochen
arbeite:
Ist das mit oder ohne KI erstellt? Wenn ja, wäre es interessant zu
wissen, ob die Lizenz dann so gültig ist und ob man die Verwendung der
KI erwähnen muss.
Hallo Christoph,
ja, bei der Entwicklung des DigiTrainers kommt auch KI zum Einsatz. Das ist für mich kein Geheimnis. :)
Die Idee, die Konzeption und die Vorgaben stammen von mir. Bei der Programmierung nutze ich ChatGPT als Unterstützung, beispielsweise zum Erstellen und Überarbeiten von JavaScript-Code, zur Fehlersuche und zur Dokumentation.
Die Ergebnisse werden anschließend im Simulator ausprobiert, überprüft und bei Bedarf korrigiert. Inzwischen gibt es auch Beiträge anderer Entwickler, insbesondere von Lutz, der unter anderem die automatische Schaltplanerstellung beigesteuert hat.
Was die Lizenz betrifft: Soweit ich weiß, ist der Einsatz von KI bei der Softwareentwicklung grundsätzlich kein Hindernis für eine Open-Source-Lizenz. Allerdings ist die urheberrechtliche Schutzfähigkeit rein KI-generierter Bestandteile tatsächlich eine interessante Frage. Menschliche Entwicklungsbeiträge und Beiträge anderer Entwickler sind davon zu unterscheiden.
Eine generelle Pflicht, KI-Unterstützung bei der Programmierung anzugeben, ist mir nicht bekannt. Ich habe aber auch kein Problem damit, das im README transparent zu erwähnen.
Für mich ist KI vor allem ein Werkzeug, mit dem ich Ideen umsetzen kann, für die mir sonst schlicht die Zeit fehlen würde.
Viele Grüße
Manfred
Nachtrag: Ich habe inzwischen auch die README auf GitHub um einen Abschnitt zur KI-Unterstützung bei der Entwicklung ergänzt.
Mir ist wichtig, dass die Verwendung von KI transparent dokumentiert ist. Schließlich soll niemand den Eindruck bekommen, ich würde daraus ein Geheimnis machen. :)
Was die Lizenz betrifft: Soweit ich weiß, ist der Einsatz von KI bei der
Softwareentwicklung grundsätzlich kein Hindernis für eine
Open-Source-Lizenz. Allerdings ist die urheberrechtliche Schutzfähigkeit
rein KI-generierter Bestandteile tatsächlich eine interessante Frage.
Menschliche Entwicklungsbeiträge und Beiträge anderer Entwickler sind
davon zu unterscheiden.
Wenn man KI als ein Tool betrachtet, welches das "Prompting" in ein Programm umsetzt, ist ja die Idee und das Prompting die "kreative Eigenleistung". Ich könnte mir vorstellen, dass die Lizenz eine gewisse Schwierigkeit darstellt. Nehmen wir an, man stellt ein Projekt unter die "MIT Lizenz", dann könnte es ja sein, das beim KI-Coden sich 1:1 Abschnitte aus Projekten mit anderen Lizenzen befinden. Da ist mir ganz allgemein noch nicht klar, wie das gehandhabt wird. Es interessiert mich auch für die Veröffentlichung eigener Projekte.
Wenn man KI als ein Tool betrachtet, welches das "Prompting" in ein
Programm umsetzt, ist ja die Idee und das Prompting die "kreative
Eigenleistung". Ich könnte mir vorstellen, dass die Lizenz eine gewisse
Schwierigkeit darstellt. Nehmen wir an, man stellt ein Projekt unter die
"MIT Lizenz", dann könnte es ja sein, das beim KI-Coden sich 1:1
Abschnitte aus Projekten mit anderen Lizenzen befinden. Da ist mir ganz
allgemein noch nicht klar, wie das gehandhabt wird. Es interessiert mich
auch für die Veröffentlichung eigener Projekte.
Hallo Christoph,
ja, das ist tatsächlich ein interessanter Punkt, über den ich mir bisher noch nicht allzu viele Gedanken gemacht habe.
Du hast natürlich recht: Wenn eine KI Code erzeugt, der möglicherweise ganz oder teilweise aus einem anderen Projekt stammt, könnte das bei einer Veröffentlichung unter der MIT-Lizenz problematisch werden.
Andererseits besteht dieses Risiko grundsätzlich auch bei der herkömmlichen Programmierung, beispielsweise wenn man Codebeispiele aus dem Internet übernimmt, ohne deren Herkunft und Lizenz genau zu kennen.
Bei meinem DigiTrainer lasse ich mir von ChatGPT hauptsächlich konkrete Funktionen nach meinen Vorgaben entwickeln oder bestehenden Code überarbeiten. Die Ergebnisse werden anschließend getestet und gegebenenfalls angepasst. Eine Garantie, dass dabei niemals Ähnlichkeiten mit fremdem Code entstehen, ist das natürlich nicht.
Ich denke, hier müssen sich in den kommenden Jahren noch einige rechtliche und praktische Fragen klären. Besonders interessant wäre für mich, wie man als Entwickler mit vertretbarem Aufwand sicherstellen kann, dass KI-generierter Code keine fremden Lizenzbedingungen verletzt.
Jedenfalls danke für den Denkanstoß! Das Thema betrifft vermutlich immer mehr Hobbyentwickler, die ihre Projekte als Open Source veröffentlichen möchten.
Wenn KI bei der Entwicklung hilft, wäre es doch auch sicher möglich, eine Offline-Version zu erstellen, oder? Z.B. in Java oder in HTML/Javascript (mit embedded Image in einer einzigen (!) Datei) ... ?
ja, eine Offline-Version gibt es im Prinzip bereits! :)
Der DigiTrainer besteht vollständig aus HTML, CSS und JavaScript und kann auch ohne Internetverbindung betrieben werden.
Ich habe das unter Windows 10/11 bereits erfolgreich getestet.
Der einzige kleine Workaround besteht darin, einen lokalen Webserver zu starten, da die Browser beim direkten Öffnen der index.html einige Zugriffe auf lokale JSON-Dateien blockieren.
Dazu einfach das GitHub-Repository als ZIP herunterladen, entpacken und im DigiTrainer-Verzeichnis folgenden Befehl ausführen:
"py -m http.server 8000"
Anschließend im Browser http://localhost:8000 aufrufen.
Das funktioniert komplett offline, einschließlich der Simulation und Verdrahtung.
Eine eigenständige HTML-Datei ohne lokalen Webserver wäre natürlich noch eleganter. Das könnte eine spätere Erweiterung werden.
Viele Grüße
Manfred
PS: Unter Linux wird der Server so gestartet:
python3 -m http.server 8000