Einplatinenrechner mit BASIC-Interpreter

Der kleine BASIC-Steuercomputer Color Maximite 2 besteht im Prinzip nur aus einem einzigen PIC32-Chip, bietet aber trotzdem Farbgrafik auf einem VGA-Monitor. Arduino-kompatible Shield-Buchsenleisten machen das Gerät auch für fortgeschrittene Bastler interessant.

In Pocket speichern vorlesen Druckansicht 68 Kommentare lesen
Lesezeit: 4 Min.
Von
  • Carsten Meyer

Das Maximite-Fertigplatine ist mit SD-Slot, RTC, einem praktischen Lochrasterfeld und einem RS-232-Pegelumsetzer ausgestattet. Kleinere Versionen ohne diesen Luxus sind ebenfalls verfügbar.

Monitor und Tastatur anschließen, einschalten und nach einer Sekunde losprogrammieren: Geoff Grahams Maximite war im letzten Jahr eines der beliebtesten Projekte der australischen Zeitschrift Silicon Chip. Inzwischen hat Graham das Projekt mit Farbgrafik erweitert. Ausgestattet ist der neue, als Fertigbaustein rund 50 US-$ teure Color Maximite 2 mit einem sehr leistungsfähigen BASIC-Interpreter, der zu Microsofts MBASIC für DOS weitgehend kompatibel ist und noch einige sehr brauchbare Erweiterungen für die 20 Portleitungen, die "On Chip" befindlichen I2C-, CAN-, 1-Wire- und SPI-Interfaces sowie die serielle Schnittstelle mitbringt. Wer es sich zutraut, kann den auf Anfrage erhältlichen, in ANSI-C geschriebenen Interpreter auch durch eigene Befehle erweitern; die nötige PIC-IDE von Microchip ist kostenlos.

VGA-Monitor und Keyboard dienen hier nicht nur zur Datensichtung und -eingabe, sondern taugen dank der interpretierten Programmabarbeitung auch für spontane Programmierideen, zum Debuggen und zur Evaluierung: So ist "mal eben" ein I2C- oder SPI-Baustein angeschlossen und mit einem BASIC-Dreizeiler abgefragt – derart fix ist man weder mit Arduino noch mit Raspberry Pi direkt an der Hardware. Erleichtert wird das unmittelbare Programmier-Erlebnis durch den eingebauten Full-Screen-Editor. In Verbindung mit strukturierenden BASIC-Befehlen kommt der Maximite ohne die berüchtigten GOTOs und Zeilennummern aus (unterstützt sie aber aus Kompatibilitätsgründen).

Auf einem VGA-Monitor stellt der Maximite maximal 480×432 Pixel dar. Bei halbierter Auflösung sind acht Farben gleichzeitig möglich.

Die Ansteuerung des VGA-Monitors erledigt der Controller PIC32MX795F nach Art des Sinclair ZX81 höchstselbst, indem er die Datenausgänge von drei SPI-Ports per DMA trickreich zur Video-Ausgabe missbraucht. Denkpausen oder Flicker-Effekte wie dereinst beim ZX81 entstehen hier aber nicht – immerhin sitzt im PIC32 ein MIPS-M4K-Kern mit 32 Bit und 80**MHz. BASIC-Programme, die im 128-KByte-RAM des Mikrocontrollers untergebracht werden, laufen deshalb durchaus flott: Eine Zeile ist in durchschnittlich 35 µs abgearbeitet, wobei der Speicher 1000 und mehr Programmzeilen fasst.

Der Textmodus zeigt 33 Zeilen mit je 80 Zeichen in verschiedenen Farben. Der Einchip-Kleinstrechner kennt sogar einige Grafikmodi bis 480×432 Pixel (das galt noch 1985 als "hochauflösend"), einen Game-Modus mit BLIT-Befehlen (schnelles Kopieren und Verschieben von Grafikspeicherinhalten) acht Farben und einfach zu programmierende Sprites. Die Fähigkeit, gleichzeitig auch noch MOD-Files in Stereo abzuspielen, zeigt nebenbei die Leistungsfähigkeit moderner Mikrocontroller der 5-Euro-Klasse, und auch: Es muss nicht immer ARM sein.

180 KByte des Controller-internen Flash-Speichers können als Daten- und Programmspeicher-Laufwerk "A:" abgezweigt werden. Die Platine enthält aber auch einen Kartenslot für SD(HC)-Karten als "Drive B:". Bis zu zehn Dateien dürfen gleichzeitig geöffnet sein, damit macht der Maximite auch als Datenlogger eine gute Figur, zumal ein Echtzeit-Uhrenchip mit Batteriepufferung eingebaut ist.

Für Stand-alone-Anwendungen kann man ihn übrigens auch über die eingebaute USB-Schnittstelle mit Programmen füttern; bei größeren BASIC-Projekten dürfte ein auf dem PC-Host laufender Programmeditor ohnehin bequemer sein als die eingebaute Minimal-Lösung. Einen automatischen Programmstart erreicht man, wenn man sein BASIC-Programm als AUTOSTART.BAS abspeichert – Keyboard und Monitor sind dann nicht mehr unbedingt nötig.

Ausbaufähig ist Grahams Idee, 20 weitere Portleitungen des Controllers auf einen Arduino-kompatiblen Sockel zu legen; eine direkte Treiber-Unterstützung für aufwendigere Arduino-Shields gibt es nämlich (noch) nicht. Immerhin steht einem aber auf diese Weise das Tor zu einer Unzahl an fertigen Erweiterungen offen, sei es ein Temperatursensor, ein Motortreiber oder ein A/D-Wandler – die lassen sich auch mit ein paar BASIC-Befehlen ansteuern. Wir erhielten unseren Color Maximite 2 von CircuitGizmos, die ihn mit einem praktischen Lochrasterfeld und einem RS-232-Pegelumsetzer erweiterten. Optional sind Treiber-ICs für RS-485 und CAN-Bus. CircuitGizmos hat auch einfachere Maximite-Versionen ab 29 US-Dollar im Programm, die Monochrom-Version mit Cinch-Videoausgang ist ebenfalls noch verfügbar. (cm) (cm)