![]() | ![]() | ![]() | ![]() | ||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||
| Commodore 1530/1531 Datasette mit digitalem Bandzählwerk Ich hatte mal wieder Zeit und Lust ein neues Projekt in Angriff zu nehmen. Diesmal ging es einer Commodore 1530 bzw. 1531 Datasette an den Kragen. Durch Zufall bin ich aufgrund einer Bestellung eines Arbeitskollegen auf winzige 7-Segment LED-Anzeigen, sogenannte "Bubble Displays" aufmerksam geworden. Einige werden diese Anzeigen vielleicht von älteren Taschenrechner bzw. Uhren kennen. Besonders die Firma HP, hatte diese Segment-Anzeigen in Ihre Taschenrechner verbaut. 5 Stück kosten gerade mal umgerechnet 7,50 €. Ein Schnäppchen wie ich finde. Da diese Bauteile ein paar Tage später bereits geliefert wurden, hatte ich mir überlegt wo man diese nun sinnvoll einsetzen könnte. Und da fiel mir auf Anhieb aufgrund der geringen Abmessungen das mechanische Zählwerk der Datasette ein. Also warum nicht dieses durch ein digitales Zählwerk ersetzen. Eine nette Spielerei die optisch einiges her machen würde. Dadurch ein LED 7-Segment-Baustein aus jeweils 4 Ziffern besteht, wäre ein Zählwerk bis 9999 möglich. Was anhand der maximalen Länge eines Bandes mehr als ausreichen sollte. Bandzählwerke von HiFi-Kassettendecks bestehen in der Regel aus max. 3 Ziffern. Ich musste nun zuerst mal in Erfahrung bringen wie solche Zählwerke funktionieren. Bei den mechanischen Zählwerken, wie es standardmäßig in der Datasette verbaut ist, wird mittels Antriebsriemen der mit einen der zwei Laufrollen verbunden ist, eine Spindel angetrieben die über ein zusätzliches Zahnrad das Zählwerk in gleichmäßiger Geschwindigkeit dreht. Will man das ganze nun "digitalisieren" wird ein optischer Sender/Empfänger benötigt, der bei einer bestimmten Position des Riemens bzw. Riemenrades ein Signal an die Elektronik sendet umso festzustellen dass eine Drehung stattgefunden hat. Will man dann noch die Laufrichtung bestimmen sind zwei dieser optischen Elemente erforderlich. Zu aller erst habe ich mir das Innenleben der Datasette zur Brust genommen um zu überprüfen wo man die Schaltung denn platzmäßig am besten unterbringen könnte. Da das mechanische Zählwerk sowieso entfernt wird erhält man dadurch einiges an Platz im Gehäuse. Allerdings gerade Mal so viel das die Platine auf Biegen und Brechen noch ins Gehäuse passt, wie sich am Ende herausgestellt hat. Das Rad, das mit dem Riemen angetrieben wird ist direkt an dem Zählwerk montiert. Da man dieses allerdings benötigt um später dann seinen optischen Abnehmer darauf zu befestigen, muss dieses also etwas modifiziert werden. Das Zählwerk habe ich dazu erst mal komplett auseinander genommen, sodass nur mehr das leere Gerüst übrig bleibt. Der Kunststoff ist auf einem Metallbügel der wiederum direkt an der Laufwerksmechanik verschraubt ist aufgesteckt und arretiert mittels 3 Haken. Dieser muss also weiterhin bleiben. Ebenso wie der Stift, indem sich die Antriebsrolle bewegt. Der Rest kann entweder abgezwickt oder abgeschnitten werden. Des Weiteren habe ich dann noch den Stift des Rades etwas gekürzt, sowie die Haltehülse die den Stift an der Unterseite im Schaft hält, da dieser sonst der am Ende eingebauten Platine im Weg wäre. Ist dieser Teil dann entkernt und aufs notwendigste gekürzt, kann man sich erst mal der Entwicklung der Platine bzw. der Schaltung widmen. Die 7-Segment LED-Anzeigen muss mittels Multiplexing angesteuert werden, will man die Zeichen aller 4 Segmente unabhängig darstellen. Dies kann man entweder über eine Ansammlung von Analogbausteinen lösen oder besser mittels Mikrocontroller. Ich habe dafür den ATtiny2313/V gewählt. Dieser verfügt über genau die Anzahl der Anschlüsse die für diese Schaltung benötigt werden und gehört somit auch zu den kleineren AVR's der Baureihe. Die komplette Schaltung besteht in gewisser Weise aus 2 Teile. Da wäre die Ansteuerung der Segment-Anzeige und das einlesen der Bandposition. Der zweite Teil wird mittels zwei Reflexlichtschranken realisiert. Diese bestehen aus nichts anderes als eines IR-Senders und eines IR-Empfängers. Das Ganze funktioniert vom Prinzip her wie eine Lichtschranke wobei jedoch Sender und Empfänger im gleichen Gehäuse untergebracht sind und daher auf einen reflektierenden Unterbrecher angewiesen sind. Dieser wird mittels Drehscheibe realisiert die ein bestimmtes Oberflächenmuster aufweist. Ich habe dazu mit einigen Mustern experimentiert. Unter anderem diese hier: ![]() Es kommt nun darauf an mit welcher Genauigkeit das Zählwerk zählen und wie schnell es sich drehen soll. Will man z.B. höhere Genauigkeit, zählt man lieber jede Viertel Umdrehung. Das Zählwerk dreht sich allerdings dabei 4-mal so schnell wie das originale, mechanische. Zählt man hingegen nur jede volle Umdrehung, läuft dies dann ungefähr mit der gleichen Geschwindigkeit wie das mechanische Zählwerk, muss dadurch jedoch eine ungenaue Bandposition in Kauf nehmen. Ein weiterer Faktor kommt jedoch noch hinzu, auf den ich jedoch erst später eingehen möchte. Ich habe die Schaltung zuerst mal auf einem Experimentierbrett entworfen. bis das Ganze dann soweit lief wie ich es gerne hätte und dank Unterstützung aus dem mikrocotroller.net-Forum und Forum64, habe ich ca. 1 Woche daran gearbeitet. Hier sieht man wie der Testaufbau aussieht: ![]() Die Schaltung ist aufgrund der geringen Menge an Bauteilen und "Low Current"-Segmentanzeigen relativ stromsparend. Im Betrieb konnte ich gerade mal an die 35mA messen. Als besonderes Feature habe ich noch eine Funktion dazu programmiert, die es erlaubt einen beliebigen Zählerstand zu speichern, der sobald dieser beim Spulen oder Abspielen der Kassette, sobald er erreicht wird, ein Stoppen des Bandmotors zufolge hat. Damit lassen sich bestimmte Stellen, wie Programmanfänge, bequem über das schnelle Spulen erreichen. Die Schaltung verfügt somit über folgende Funktionen:
Die fertige Platine sieht schlussendlich nun so aus: ![]() ![]() Das erstellte Lochraster-Layout und der Schaltplan dazu: ![]() ![]() ![]() An der Rückseite befinden sich die beiden Lichtschranken und die Anschlüsse für die Spannungsversorgung und die Speicher-LED (Der Bügel an dem diese ursprünglich montiert war, musste übrigens entfernt werden). Der ATtiny musste eingelötet werden, da dieser mit Sockel eine zu hohe Einbauhöhe hätte. Das Gehäuse selbst musste ebenfalls noch etwas bearbeitet werden. Streben beschnitten, Halterungen gekürzt und an der Vorderseite das Gehäuse etwas "erweitert" werden. Um die Platine zu befestigen habe ich 3 Haltebolzen ins Gehäuse geklebt. Als Taster habe ich mir den Originalen vom mechanischen Zählwerk zurechtgeschnitten. Die 7-Segmentanzeige passt übrigens perfekt in die Bereits vorhandene Öffnung. Es sind somit keine zusätzlichen Löcher, Schlitze, etc. im Gehäuse erforderlich. Für die Stromversorgung zweigt man einfach die beiden Anschlüsse B-2 (+5V) und A-1 (Masse) von dem Kassettenport des C64 ab, die mit der Platine in der Datasette verbunden sind. Zur Steuerung des Motors trennt man die rote Leitung die zum Motor führt auf und verbindet sie mit der Ansteuerung des Mikrocontrollers. Das 1530 Datasettengehäuse ohne und mit eingebauter Platine: ![]() ![]() ![]() Oben drüber die Reflexscheibe, ausgedruckt mit einem Laserdrucker auf handelsüblichen Kopierpapier und auf Pappe zwecks Festigkeit aufgeklebt und anschließend mit transparenten Klebeband fixiert um die Reflexion zu begünstigen, die auf der ursprünglichen Zählwerksrolle montiert ist. Die Scheibe sollte man nicht zu groß und auch nicht zu klein wählen, da sie sonst am Gehäuse schleift oder die Lichtschranke gar nicht berühren. Des Weiteren sollte man darauf achten den Abstand zwischen Scheibe und Lichtschranke so gering wie möglich zu wählen. Damit so wenig wie möglich Lichteinfall von außen die Funktionsweise der Schaltung beeinträchtigen kann. Die Gehäuse in zusammengebauten und funktionsbereiten Zustand und seit einigen Tagen auch in der 1531 Datasetten Version: ![]() ![]() ![]() ![]() Und noch ein kurzes Video dazu: ![]() Wie man am Video erkennen kann, gibt es bei der ganzen Sache ein paar kleine Schönheitsfehler, mit denen man allerdings meiner Meinung nach leben kann. Den ersten Betrifft die Genauigkeit des Zählwerkes. Da sich der Nullpunkt immer auf einer anderen Position der Drehscheibe befinden kann, beginnt das Bandzählwerk nie exakt immer an der gleiche Position zu zählen. Man hat somit immer eine Toleranz von +/- einer Umdrehung (vorausgesetzt man misst immer nur eine komplette Umdrehung). Dies wiederspiegelt sich auch beim stoppen des Motors bei einer programmierten Position. Aufgrund des Nachlaufes des Motors, springt das Zählwerk immer um mindestens 1 Stelle weiter bis der Motor zu stehen kommt. (auch hier ist Voraussetzung dass eine ganze Umdrehung gemessen wird). Zählt man um eine genauere Messung zu erhalten jede halbe oder sogar Viertel Umdrehung, zählt der Zähler beim Stoppen des Bandes sogar 2 oder mehr Schritte weiter bevor der Motor stoppt. Es bleibt einem somit überlassen welchen Kompromiss man wählt. Kleiner Nachtrag: In dem Video sieht man jetzt nicht den letzten Stand der Software, da das Video bereits einige Tage vor dem letzten Feinschliff entstanden ist. So wurde die Software nun so angepasst das beim erreichen des Zählerstandes von 0000, der Zähler von 9999 wieder rückwärts zählt. Er bleibt also nicht bei 0000 stehen, wie auf dem Video ersichtlich. Im Großen und Ganzen eine nette Bastelei, bei der man sich allerdings zurecht fragen darf ob der Nutzen die investierte Zeit gerechtfertigt. Man muss schon genügend Spaß am Basteln mitbringen wenn man sich an diesen Umbau heranwagt. Wer jedoch etwas fürs Auge sucht, ist damit bestens bedient :) | ![]() | ![]() | ![]() | ![]() |