Spiel1.tar.gz Linux-Version (Opensuse, Ubuntu, ...)
Spiel1.7z Windows-Version (Visual Studio 2019)
Spiel1exe.7z direkt ausführbare Windows-Version (da sollte kein Compiler nötig sein)
Spektrumexplorer. Dies ist eine Variante von Spiel1 mit der man
xyz-Daten einlesen kann um dann in der entsprechenden Landschaft rumzulaufen.
Diese Daten können z.B. ein 2D-IR-Spektrum sein.
GPX-Dateien lassen sich auch einlesen um z.B. einen Track von der Läuferuhr
dreidimensional darzustellen.
Bei der Darstellung von GPX-Dateien lässt sich noch eine Karte auf die Landschaft legen. (als Textur)
Spectplorer.tar.gz Linux-Version
Spectplorer.7z Windows-Version (Visual Studio 2019)
Spectplorerexe.7z direkt ausführbare Windows-Version
Spectplorerexe2022.7z Test: mit VisualStudio2022 übersetzte Version
objmodelexporter.7z Hilfsprogramm um OBJ-Dateien (Wavefront-Format) von Blender einzulesen
Um eine OBJ-Datei zu erhalten muss in Blender beim Exportieren unbedingt noch der
Haken bei "Triangulate Faces" gesetzt werden.
Die mit objmodelexporter erhaltene .bmf-Datei kann nach Spectplorer/models/ kopiert werden,
und dann in models/objekte.txt Position und Skalierfaktor für das Objekt gesetzt werden.
Allfällige Texturen (JPG oder PNG-Dateien) sollten nach Spectplorer/texturen/ kopiert werden.
wgs84.tar.gz Hilfsprogramm für Umrechnungen zwischen GPS- und Schweizer-Koordinaten
Dies wird benötigt um zwischen den Koordinaten von GPX-Dateien und den Koordinaten, die in den Karten von
Swisstopo benutzt werden, umzurechnen.
Um aktuelle Karten automatisch zu downloaden wird noch OpenSSL und ImageMagick benötigt.
Hinweise zur Installation sind in "Liesmich.txt" zu finden.
ImageMagick wird immer gebraucht, OpenSSL nur wenn man selbst kompilieren will.
sudoku.tar.gz
Dies sind ein paar kleine Programme um Sudokus zu erstellen, zu drucken
und automatisch zu lösen.
> machsudoku -z123 >neu.txt > printsudoku neu.txt neu.ps > lpr neu.ps ;den Ausdruck nehmen und von Hand lösen. > sudoku neu.txt ;Überprüfen der Lösung
Dies ist ein Spiel ähnlich lights-off oder lights-out.
Das Ziel dieses Spiels ist es in einem Feld von 5*5 Lampen alle Lichter zu
löschen. Die Schwierigkeit dabei ist, dass wenn man ein Licht ein- oder
aus-schaltet, die benachbarten Lichter auch ihren Zustand wechseln.
lichteraus.tar.gz
Das Programm funktioniert unter Linux und MacOSX und vielleicht auch andern
Unix-Varianten.
Dieses Nimm-Spiel ist die Variante Mariabad in der Misereversion. Das heisst wer den letzten nimmt hat verloren.
Das ist das erste Beispielprogramm für die RGB-LED-Matrix,
die mit Mikrocontrollern angesteuert wird.
Das Programm läuft also auf einem dieser Mikrocontroller.
Hier zwei kleine Spiele, mit der Programmiersprache Python. Um sie zu spielen sollte Python-2.7.6 oder neuer installiert sein.
Das Nimm-Spiel funktioniert gleich wie obige Variante mit der LED-Matrix, aber nur im Textmodus.
Das Memory-Spiel ist noch mit Optionen im Programm anpassbar.
In den Voreinstellungen werden Aminosäuren und die entsprechenden 1-Buchstaben
und 3-Buchstaben-Abkürzungen verwendet.
Es müssen also jeweils 3 Felder richtig ausgewählt werden um aufzudecken.
Man kann mit den Optionen aber auch einstellen, dass nur 2 aufgedeckt werden müssen.
Dies ist ein erster Versuch den Zauberwürfel auf dem Computer zu simulieren.
Mit Linker Maustaste in der Abwicklung geklickt dreht nach links, mit der Rechten Maustaste nach rechts,
und mit mittlerer Maustaste wird gleich um 180 Grad gedreht.
rubik.tar.gz
Das Programm ist bisher nur unter Linux getestet. Könnte aber auch auf andern Systemen funktionieren.
Dies ist mein zweiter Versuch zum Bau eines Schachroboters.
Der Mechanismus zum fahren in x-y-Richtung ist ähnlich wie die x-y-Plotter von Thingiverse.
Die meisten Teile (ausser Stangen, Aluprofile, Kugellager) sind mit einem
3D-Drucker mit PLA- oder ABS-Kunststoff gedruckt. Die entsprechenden Blender-Dateien sind frei verfügbar.
Das alte Sensorfeld war mit 64 Magnetfeldsensoren (SS495A) versehen. Diese haben jedoch die Figuren nicht
zuverlässig erkannt, besonders wenn nicht genau in Feldmitte platziert.
Das neue Sensorfeld ist jetzt mit Spulen aufgebaut. Eine Spule von etwa 200uH zusammen mit einem Kondensator
von 3.3nF bildet einen Schwingkreis. Dieser wird dann beim Setzen von metallhaltigen Schachfiguren
(Magnet, Unterlagscheibe oder Münze angeklebt) gestört, was sich leicht detektieren lässt.
Das Schachbrett ist also mit 64 dieser Sensoren ausgestattet.
Neben dem einfachen selbst programmierten Schachprogramm funktioniert jetzt auch die UART-USB-Verbindung
zu einem Linux-Computer auf dem Stockfish läuft.
Der verwendete Microcontroller ist der Atmega1284P. Das ist der AVR-Controller mit am meisten RAM (16KB).
Das Mikrocontroller-Programm funktioniert mit einer 4-Zeilen-LCD-Anzeige und 5 Tasten als Eingabe um Einstellungen wie z.B. Spielstärke zu machen. Die UART wird für die Verbindung zum Linuxcomputer verwendet (über ein myUSBtoUART-Modul).
Zur Ansteuerung der Schrittmotoren wurde ein zweiter Atmega1284P verwendet.
Dazu noch 4 Schrittmotor-Module und 4 Sensoren um Endpositionen der Schrittmotoren festzustellen.
Es wurde die UART1 verwendet um die Verbindung zum ersten Mikrocontroller zu realisieren
(UART0 würde auch gehen).
Auf dem ersten Mikrocontroller wurde eine Software-UART für diese Verbindung verwendet,
da die Leitungen für die zweite UART schon belegt waren.
Downloadbare Programme:
schachroboter2023.tar.gz Programme für die Mikrocontroller
blender-schachroboter.tar.gz Konstruktionsdateien als Blenderdaten
schach.tar.gz Programm das unter Linux läuft
Das Schachprogramm, also der Teil der die Züge berechnet ist das gleiche auf dem Mikrocontroller und
unter Linux. So kann man das Programm auch direkt auf einem Linux-Computer austesten.
Einige Kleinigkeiten die eventuell noch nicht perfekt funktionieren:
Es sind die folgenden fleissigen Biber bekannt:
(Bei den Zuständen (Z) ist Halt nicht mitgezählt.)
Z Anzahl Einsen, benutzte Bandlänge, Anzahl Schritte 1 1 2 1 2 4 4 6 3 5 5 21 (wenn maximale Schrittzahl gesucht) 3 6 6 14 (wenn maximale Anzahl Einsen) 3 5 7 16 (wenn maximale Bandlänge) 4 13 15 107 (maximale Schritte und Anzahl Einsen) 4 9 16 61 (maximale Bandlänge) 5 4098 12290 47176870 (nicht sicher ob das wirklich ein Fleissiger Biber ist) 6 ?? ?? ?? (im Spektrum angegebene Minimalwerte nicht überprüfbar)Hier meine bisherigen Programme um fleissige Biber zu suchen:
Definitionen: