2016 - 4 - 1 : Ein sprechender Arduino-basierter Busch 2090 Microtronic-Emulator

Busch
Microtronic 2090
Busch
Microtronic 2090 Emulator for Arduino Mega 2560

Der Busch Microtronic 2090 Experimentiercomputer der Firma Busch Modellbau aus Viernheim wurde 1981 zur Erweiterung der Busch Experimentier-Systeme vorgestellt. Unter dem Motto "Programmieren - Experimentieren - spielend lernen wie ein Computer funktioniert" konnte man diesen genialen kleinen 4-Bit-Computer in einer vereinfachten Maschinensprache programmieren, und zusätzliche Hardware-Erweiterungen mit den Busch Experimentierkästen aufbauen. Das Microtronic war mein erster Computer; ich bekam ihn 1983 zu Weihnachten von meinen Eltern und war tagelang elektrisiert.

Zum 35jährigen Jubiläum des Microtronics habe ich einen sprechenden Microtronic-Emulator auf Arduino-Basis realisiert. Das Bild oben zeigt Original-Microtronic und Emulator Mega-Version 3 mit Laser-zugeschnittener Frontplatte. Dieses YouTube-Video zeigt den Emulator in Version 3 in Aktion. Weitere Konfigurationen sind natürlich denkbar, wie in diesen YouTube Videos zu sehen, die unterschiedliche Ausbaustufen aufzeigen, u.a.

Im Github-Verzeichnis des Projektes sind alle benötigten technischen Dokumente enthalten, um das Gerät wieder zum Leben zu erwecken. Zudem enthält es die Busch-Anleitungen und einige Programme im .MIC-Dateiformat.

Busch Elektronikkasten 1
Busch Elektronikkasten 2

Prinizipiell sind selbst die Elektronik-Schaltungen aus den Busch-Anleitungsbüchern dank diskreter digitaler Ein- und Ausgänge nachvollziehbar mit dem Emulator. In diesem YouTube-Video wurde ein 555-basierter Tongenerator an die digitalen Ausgänge des Microtronic angeschlossen. In den Bildern rechts habe ich den Tongenerator aus Microtronic-Anleitung Band 2, Seite 55 aufgebaut; ein entsprechendes Video ist hier zu sehen. Aus der Frontplatte kommen 4 Input/Output-Kabelpaare, 9V Betriebsspannung, GND, und 1 Hz Taktsignal heraus, sodass Elektronikexperimente einfach angeschlossen werden können, wie mit dem Original-Microtronic.

Mega Emulator Amaturenbord Erläuterung

Der Emulator wurde unter den Gesichtspunkten "Bewahrung der Authentizität und des originalen Look & Feels des Microtronics" sowie "Bereitstellung zusätzlicher Funktionalität durch moderne Hardware" entworfen. So wird z.B. das LCD Display nur verwendet, um das Laden und Speichern von Programmen auf SD-Karte zu ermöglichen, und um zusätzlichen Einblick in den Status des Microtronic zu erhalten (CPU und Register-Status-Anzeigen). Die zentralen Bedieneinheiten sind nach wie vor das 7-Segment-Display und das hexadezimale Tastenfeld, wie beim 1981er Original.

Innenleben des Mega Emulators Version 3

Im Vergleich zum Original gibt es einige weitere kleine Extras, z.B. einen blinkenden Cursor auf dem LED-Display, einen CPU-Geschwindigkeits-Drehregler und Taktfrequenz-LED; die Möglichkeit, Programme auf SD-Speicherkarte zu speichern und wieder einzulesen, und das bereits erwähnte LCD-Status-Display. Die Einzelschritt- und Breakpoint-Funktionen (Funktionstasten BKP und STEP) sind ebenfalls implementiert.

Die im Original-Microtronic eingebauten ROM-Programme sind im EEPROM des Arduinos abgelegt, insbesondere das Nimm-Spiel (PGM 7). Die Programme PGM 1 und PGM 2 werden zum Laden und Speichern auf SD-Speicherkarte verwendet (statt der Kassetteninterface-Programme). PGM 3 und 4 (Echtzeituhr) funktionieren ebenfalls. PGM 5 löscht den Programmspeicher, und PGM 6 lädt ihn mit NOPs. PGM 8 bis PGM A bringt einige kleinere zusätzliche Demo-Programme, die im nicht im Original-Microtronic gespeichert waren. Diese ROM-Programme können prinizipiell durch beliebige eigene Programme ersetzt werden, indem der Quelltext des EEPROM-Initialisierungsprogrammes editiert wird. Natürlich können beliebige Programme auch direkt über die Tastenfelder eingegeben und (in der Mega-Version) auf SD-Speicherkarte gesichert und später wieder eingeladen werden. Das PGM 0 (Selbsttest-Programm) ist nicht implementiert.

Microtronic Speech Synthesizer 1
Microtronic Speech Synthesizer 2

Im Anleitungsbuch Band 1 (S. 77) wurde schon 1981 ein Sprachsynthesizer als Microtronic-Erweiterung in Aussicht gestellt - "Das Microtronic-Computersystem wird zum Sprach-Computer!". Der Sprachsynthesizer wurde jedoch nie veröffentlicht von Busch. Nun, 35 Jahre später habe ich diese Idee einmal realisiert, unter Verwendung des Emic 2 Sprachsynthesizers. Das funktioniert sowohl mit dem Original-Microtronic (YouTube-Video Emic 2 mit Original Microtronic), s. auch Bild links, als auch mit dem Emulator (You-Tube-Video Emic 2 mit Microtronic Mega Emulator).

Da mir der Emic 2 so gut gefiel, habe ich einen zweiten gekauft, und diesen fest in den Mega Emulator (in der Version 3) eingebaut. Wie in diesem YouTube Video zu sehen, kann der Emic 2 den Display-Inhalt "vorlesen", Tastendrücke bzw. Kommandos bestätigen, den Status bzw. Zustand des Microtronics beschreiben, als sprechende Uhr dienen, Zitate von HAL 9000 ausgeben, usw.

Der Microtronic-Befehlssatz wurde zudem leicht erweitert, damit beliebige Texte auch direkt per Microtronic-Programm gesprochen werden können. Im Unterschied zum "externen" Emic 2 oben, der ja über die digitalen Ausgänge "programmiert" wird und einen weiteren Arduino als intelligente Schnittstelle benötigt, ist es natürlich wünschenswert, den Emic 2 direkt mit einem Microtronic-Maschinenbefehl anzusprechen, ohne dass weitere Verkabelung plus zusätzlichem Arduino benötigt werden. Ich habe hierzu den MOV-Befehl mit einem weiteren Seiteneffekt versehen - MOV XY, code 0xy kopiert den Inhalt von Register x in Register y. Natürlich ist 0xx weitgehend sinnlos, und kein (sinnvolles) Microtronic-Programm verwendet solche Befehle. Ein zusätzlicher Effekt von MOV xx im Emulator is daher, ein (low bzw. high) Nibble an den Emic 2 zu senden. Ein ASCII Zeichen mit Dezimalcode xy wird dann durch die Sequenz MOV xx, MOV yy bzw. 0xx, 0yy an den Emic 2 gesendet. So können dann direkt beliebige Texte durch eine Sequenz von MOV-Befehlen gesprochen werden, wie in diesem YouTube-Video demonstriert.

The Project at Atmel Makes Tweat
Featured Project at Hackaday.com

Ich freue mich, dass das Microtronic Emulator-Projekt inzwischen einige Aufmerksamkeit in der Bastler/Hacker/"Maker"-Gemeinde gefunden hat - so war der Emulator inzwischen sowohl bei Hackaday.io als "Featured Project" auf der Titelseite (vom 10.5.2016 bis zum 17.5.2016), als auch auf der Titelseite des "Adafruit Arduino Monday" Blogs (am 23.5.2016). Wer hätte gedacht, dass eine Neuimplementation eines 35 Jahre alten Lerncomputers noch so viele Leute interessiert!

Emulator on the Arduino Blog of Adafruit
Emulator on the Arduino Blog of Adafruit - 2

Vielen Dank an dieser Stelle an Herrn Vallen von Busch, den Entwickler des Microtronic und Autor der didaktisch hervorragenden Handbücher. Zudem gab er freundlicherweise die Erlaubnis, die Handbücher im Github-Verzeichnis zu hinterlegen. Auch freue ich mich, dass er einen Link auf diese Seite von der Microtronic-Hauptseite bei Busch gesetzt hat. Herr Vallen, mit Ihrem Microtronic haben Sie sicherlich viele (damals) junge Menschen in ihrer Berufswahl beeinflusst (u.a. mich). An dieser Stelle hoffe ich, das Sie vielleicht eines Tages doch noch eine Neuauflage des Microtronic veröffentlichen.