Projekte |
C-64 Interface an RoboPro
Das fischertechnik-Interface für den C-64 (und auch für den PC) war damals seiner Zeit voraus. Lange vor
anderen Herstellern von Konstruktionsbaukästen erkannten die fischerwerke die Zeichen der Zeit
und brachten durch ein Interface die Robotik in die Kinderzimmer. Den C-64 gibt es zwar noch vereinzelt
gebraucht zu kaufen, aber der PC ist dann doch Stand der Technik, so sind auch Umbauten auf den
PC für dieses Interface möglich und durchgeführt worden. Hierzu möchte ich die Seiten von
Ulrich Müller, der sich intensiv mit den verschiedenen Interfaces und ihrer Ansteuerung beschäftigt hat,
empfehlen: http://www.ft-computing.de
In letzter Zeit greifen aber immer mehr Sparmaßnahmen um sich: Nach und nach verschwinden
(leider) die altbewährten seriellen und parallelen Schnittstellen. Gerade bei Laptops ist
dieser Schnittstellenschwund zu gunsten der USB-Schnittstelle zu beobachten. Dies hat
zur Folge, daß alte Hardware nun nicht mehr angeschlossen werden kann.
Auch die Software macht einen Zeitwandel durch: So ist die neue RoboPro-Software von
fischertechnik nicht mehr in der Lage, die alten parallelen Interfaces anzusteuern.
Es gibt aber einen Ausweg: Mithilfe eines µControllers kann auf der einen Seite das
Protokoll des C-64 (bzw. des PC) nachgebildet werden und auf der anderen Seite eine Schnittstelle
angeboten werden, die den Anschluß auch an moderne PCs ermöglicht. Der Einfachheit halber verfügt
der Adapter über eine serielle Schnittstelle, die bei Bedarf mit einem USB-seriell-Kabel auf USB
aufgerüstet werden kann. USB-seriell Adapter kosten ca. 10 Euro, das ist (momentan) preiswerter, als einen
USB-Anschluß direkt zu integrieren.
Die Hardware
Die Hardware beschränkt sich, dank eines programmierbaren µControllers, auf einige wenige Komponenten.
Schaltplan als JPG
Schaltplan im Eagle-Format
Bestückungsplan als JPG
Layout im Eagle-Format
Die Software
Die Software
erzeugt alle für den Betrieb des C-64 Interface benötigten
Signale, setzt die Ausgänge und fragt die Eingänge ab. Es
können bis zu zwei Interfaces an den Adapter angeschlossen werden,
Interface 1 wird an Anschlußleiste JP1 und Interface 2 an
Anschlußleiste JP2 angeschlossen. Das Adapter verhält sich
wie ein Intelligent Interface und kann sowohl mit LLWIN als auch
RoboPro verwendet werden. Die Analog-Eingänge von Interface 1
werden ebenfalls abgefragt und der PC-Software zur Verfügung
gestellt. Momentan können die Analogwerte nur Werte von ca. 15 -
200 annehmen, dies liegt an der Art und Weise, wie die Analogwerte von
den C-64 Interfaces digitalisiert werden.
Da der ATMega-8 über eigene Analogeingänge verfügt, die
nicht nur Widerstandswerte (wie das C-64 Interface) sondern auch echte
Spannungen messen können, ist als spätere Option eine Abfrage
dieser Eingänge vorgesehen. Hierzu sind auf der Platine bereits
vier analoge Eingänge zusätzlich vorgesehen, sie werden aber
von der Software noch nicht benutzt.
Momentan werden die digitalen Aus- und Eingänge parallel zu den
Analogeingängen abgefragt, die Abfragerate beträgt ca. 400x
pro Sekunde. Hierbei werden alle Signale gestreckt, dies dient auch der
Vermeidung hochfrequenter Abstrahlung über das Flachbandkabel.
Eine höhere Abtastrate wäre über die 9600 Baud sowieso
nicht möglich.
ACHTUNG!
Das C-64 Interface kann beschädigt werden, wenn beide
Ausgänge eines Motors auf logisch 1 gesetzt werden. Die
Transistorenstufe wird durch diesen Zustand kurzgeschlossen, dies kann
zur Zerstörung der Endstufen führen! In zukünftigen
Softwareversionen wird dieser Zustand abgefragt werden, so daß
dies nicht mehr passieren kann. Wenn bei der Verwendung von LLWIn oder
RoboPro grundsätzlich nur Motorenbausteine (keine Lampen oder
Magnete) verwendet werden, kann nichts passieren.
Die Software liegt als Hex-File vor, das mit den üblichen Programmen in das Flash des ATMega-8 programmiert werden
kann.
Hex-File Hauptprogramm
Wichtig:
Die Fuses des ATMega-8 müssen auf das externe Quarz umprogrammiert werden.
Wer keine Möglichkeit hat, einen ATMega-8 zu programmieren, kann
einen programmierten µController bei mir anfordern. Die von mir
programmierten µController erhalten zusätzlich einen
Bootloader, der Updates über die sowieso integrierte serielle
Schnittstelle ermöglicht.
Geplant sind noch folgende Erweiterungen:
- Überwachung der Zustände der Ausgänge (Vermeidung von Kurzschlüssen)
- Ansteuerung der PC-Interfaces
- Verbesserung des Timings
- Zusätzliche Abfragemöglichkeit der Analog-Eingänge
- Sicherheitstimer integrieren
- Umrechnung der Analogwerte
- Höhere Übertragungsrate für eigene PC-Software
Projekte |