Home ==>
Inhaltsverzeichnis ==>
Digitaler Würfel
Seitenindex
Würfel kann man ganz verschieden aufbauen. Je nach
Komfort geht es dann immer wirrer zu.
Hier mal ein Vorschlag in CMOS und mit einer 7-Segment-Anzeige.
Das Teil würde so funktionieren. Ein Oszillator mit
einem 4093-NAND-Schmitttrigger-Gate, wie wir es schon kennen,
produziert ein schnelles Digitalsignal, z. B. mit
10 oder 100 kHz. Ein Zähler, hier ein 4029,
zählt die am CLK-Eingang an kommenden Impulse von 6 an
dauernd abwärts, da sein U/D-Eingang auf Null steht.
Wenn er Null erreicht, was mit den drei Dioden und dem
4093-Gate erkannt wird, setzt er mit dem Preset-Eingang
PE den Zählerstand wieder auf sechs und beginnt von
oben herab von vorne.
Wird die Taste Würfeln gedrückt, dann
wird der bis dahin erreichte Zählerstand der unteren
drei Bits mit einem positiven Impuls am Latch-Enable-Eingang
LE in den 7-Segment-Dekoder 4511 geschrieben. Die Mimik mit
den beiden Widerständen und dem Kondensator sorgt
dafür, dass der Schreibimpuls schon nach kurzer Zeit
wieder inaktiv wird, egal wie lange die Taste gedrückt
sein mag.
Der 7-Segment-Decoder 4511 wandelt die drei Bits in seinem
Speicher in sieben Digitalsignale für die Siebensegment-
Anzeige um und treibt die Anzeige mit gemeinsamer Kathode.
Die zuätzliche Mimik an seinem Eingang Lamptest LT
lässt auf Tastendruck alle sieben Segmente angehen.
Die am Blanking-Eingang BL angebrachte Mimik macht die
Lampen auf Tastendruck an und schaltet die Lampen nach
einer voreingestellten Zeit auch wieder aus, um
Batteriestrom zu sparen.
Als Alternative zum Siebensegment-Gelerch hier nun die Variante mit
sieben einzelnen LEDs.
Ein Oszillator-Signal müsste einen Binärzähler, z. B. einen
4516, antreiben, solange der Taster gedrückt ist. Damit der Zähler
nur von Null bis Fünf zählt, weil ein Würfel halt nur sechs
Flächen hat, auf die er fallen kann, und nicht deren zehn, muss er mit
einem Sechs-Erkenner wieder zurückgesetzt werden. Das ist der Fall, wenn
beim Zähler die Ausgänge Q2 und Q3 beide Eins sind. Das geht mit
einem UND-Gatter und einem Inverter, z. B. in einem 4093.
Damit aus dem binären Kauderwelsch erst mal ein dezimales wird, schalten
wir einen Dezimaldekoder nach, z.B. einen 4028. Der macht seine 0- bis
9-Ausgänge high, wenn an den vier Eingängen das entsprechende
Binärsignal liegt.
Jetzt brauchen wir für die dekodierten Signale noch einen Kombinierer.
Das könnten wir auch mit ODER-Gattern machen, aber mit Dioden ist es
einfacher. Der Kombinierer macht die mittlere Lampe (1) vom Würfel an,
wenn der Zählerstand entweder bei 0 (eine Eins wurde gewürfelt),
bei 2 (drei gewürfelt) oder bei 4 (eine Fünf) ist. Die Ausgänge
vom Dekoder werden mit Dioden zusammengeschaltet, damit die Lampe (1) angeht,
wenn einer dieser drei Fälle vorliegt.
Das ganze Diodennetzwerk ist ein Verhau aus zwölf Dioden. Bei den Lampen
(2) brauchen wir vier Dioden, da die beiden hintereinander geschalteten LED
bei Zählerständen von 1, 2, 4 und 5 an sein müsen;. Bei den
beiden Lampen (3) sind es drei Dioden (3, 4 und 5) und bei den Lampen (4)
sind es noch zwei Dioden (4 und 5).
Insgesamt sind das vier CMOS-ICs und 12 Dioden für das Netzwerk. Die
Verdrahtung des Ganzen ist schon richtig komplex und fehleranfällig.
Wenn nun noch das Torkeln nach dem Würfeln und das Löschen der
Lampen nach z. B. 20 Sekunden Inaktivität hinzukämen,
dürfte unser Breadboard voll mit Bauteilen und Kabeln sein.
Und nun alles ganz einfach mit einem Mikrocontroller
Das alles spart man sich mit einem Herrn Mikroprozessor in einem einzigen
fitzeligen 8-poligen Minigehäuse. Wie gut, dass es heute solche
praktischen Kleinstcomputer gibt, bei denen alles schon intern verdrahtet
ist und der Digitalelektroniker außen nur noch Leuchtdioden und ihre
Vorwiderstände anschließen muss. Die ganze Intelligenz steckt
dann aber im Programmcode.
Mikrocontroller-gesteuerter Würfel
Bis hierhin haben wir den Aufbau, die Anwendung und die
Vielseitigkeit von Digitalschaltungen kennengelernt.
Wir könnten jetzt nach der CMOS-Veranstaltung damit
fortfahren auch noch andere Familien kennenzulernen, die
heute so erhältlich sind, um digitale Aufgaben zu
erledigen. Z. B. TTL, LS-TTL, TTL-HC, TTL-HCMOS u.v.a.m.
Das ist aber schrecklich langweilig, weil es immer dasselbe
wie unser CMOS ist, also Gatter, Flipflops, Zähler,
Decoder, Treiber. Das alles, was wir schon kennen, nur mit
mehr Stromverbrauch und nur mit 5 V zu betreiben,
wofür es keine Batterien zu kaufen gibt (nur vier
hintereinandergeschaltete Akkus zu je 1,2 Volt). Also
keine Langeweile, deswegen kommt jetzt was wirklich
revolutionär Neues.
Indirekt und lautlos haben wir an den Experimenten auch
eine Reihe von Prinzipien erlernt, die in der Digitaltechnik
wirklich grundlegend sind, wie z. B.
- High und Low und nix dazwischen,
- Bits, Binärzahlen und BCD-Ziffern, Zählen,
- Speicher, Flipflops, Teiler durch Zweierpotenzen,
- Anzeigen wie LEDs und solche mit sieben Segmenten.
Das ist so das Instrumentarium, das es braucht, um die
nächste digitale Hürde anzugehen: die
Mikroprofessoren (die meisten nennen sie Mikroprozessoren,
ich nicht). Die sind so etwas wie die Fortsetzung der
Digitaltechnik mit anderen Mitteln und mit noch mehr
Flexibilität und Möglichkeiten.
Das wird jetzt kein Kurs in Mikroprofessortechnik, dann
würde es zu arg ausufern. Das folgende Experiment soll
nur den Mund dafür wässrig machen, was man in
einem achtpoligen IC heute so alles unterbringen kann und
wie man auch noch selbst darüber bestimmen kann, an
welchem Pin welches Signal ausgegeben wird.
Damit es auch was Praktisches hat, das wir unseren Nachbarn,
den digitaltechnischen Laien, freudig unter die Nase reiben
können und das sie nirgends fertig kaufen können,
bauen wir einen elektronischen W¨rfel. Im Gegensatz zu
den langweiligen Klötzchen, mit denen wir die Aufgabe
sonst erledigen, taumelt unser Würfel ein wenig herum
und macht damit Würfelspiele noch spannender.
Und was das Schönste ist: die Teile für unseren
Spezialwürfel kosten gerade mal 4 bis 6 €, also
nicht gerade die Welt. Für so ein Designerteil, was
sonst auf der Welt keiner hat, jedenfalls recht billig.
Wer jetzt Oszillatoren, Zähler, Gatter erwartet hat,
wird von der Schlichtheit der Schaltung enttäuscht
sein. Das ist es schon:
Die Schaltung besteht aus dem Mikroprozessor ATtiny13.
An vier Pins sind über 100Ω-Widerstände
sieben Leuchtdioden angeschlossen, deren Nummerierung
aus dem folgenden Bild hervorgeht.
Gewürfelt wird mit dem Taster, der an einen weiteren
Pin des Prozessors angeschlossen ist.
Der Reset-Eingang des Prozessors ist mit einem 10k-Widerstand
an die Betriebsspannung gelegt. Der Abblockkondensator von
100 nF sorgt für eine saubere Betriebsspannung.
Die Versorgung der Schaltung erfolgt aus zwei AAA-Batterien
mit zusammen 3 V. Und auch noch auf den Schalter
können wir verzichten wenn wir den Würfel nicht in
ein Gehäuse einbauen und nach dem Spielen einfach die
Batterien aus der Halterung nehmen.
Die LEDs, den
Taster und den
Abblockkondensator 100 nF
kennen wir schon.
Das unscheinbare Ding hier ist ein Mikrocomputer.
Wie Computer? Sind das nicht die Teile in riesigen
Metall- oder Plastikkisten mit Netzanschluss und
Bildschirm? Und mit Riesenstromverbrauch? Nun ja, das
"Mikro-" vor dem Computer heißt so viel
wie "Kleinst-", also ein Kleinstcomputer.
Das Ding ist halb so groß wie unsere CMOS-Dinger,
enthält aber ein Vielfaches an Einzelteilen,
MOS-Transistoren und vieles andere mehr. Die wichtigsten
Bestandteile, die wir beim Würfel tatsächlich
verwenden:
- fünf Ein- und Ausgabepins, von denen wir einen
als Eingang für den Taster benutzen, die anderen
vier als Ausgänge für die LEDs,
- der Eingangspin hat einen Widerstand von ca.
50 kΩ gegen die positive Betriebsspannung,
damit wir den Taster ohne weiteren externen
Widerstand anschließen können,
- einen internen Taktgenerator mit 9.600.000
Schwingungen pro Sekunde, der mit einem Teiler durch
acht geteilt wird und den Programmablauf auf
1.200.000 Befehle pro Sekunde verlangsamt (können
tät er es schon, aber weil wir es schneller gar
nicht brauchen, machen wir ihn langsamer),
- einen Binärzähler mit 8 Bit Breite, der von
Null bis fünf zählt und dann wieder von vorne
anfängt (zählen könnt er bis 255, aber
Würfel mit 256 Flächen sind unpraktisch,
deshalb ist der Zähler auf die 5 begrenzt und geht
schon bei 6 wieder auf Null),
- einen Vorteiler durch 64, der diesen Zähler aus
dem Prozessortakt laufen lässt (andere mögliche
Vorteilerraten wären 1, 8, 256 oder 1.024, wir
verwenden 64),
- etwa 10 schnelle Speicher mit je acht Bits (haben tut
er 32 davon, den Rest brauchen wir für den Würfel
nicht),
- eine Unterbrechungslogik, die immer dann zuschlägt,
wenn wir den Taster auf Low ziehen (würfeln) und
wenn der Zähler überläuft (haben täte
er acht solche Unterbrechungen, wir brauchen nur zwei
davon),
- einen Programmspeicher mit etwa 117 Speicherzellen zu
je 16 Bit Breite (haben täte er 512, wir brauchen nur
ein knappes Viertel davon für den Würfel).
In der kleinen Kiste wären auch noch
- 64 langsame Speicher zu je acht Bits,
- 64 nicht-flüchtige Dauerspeicher zu je acht Bits
(die ihren Inhalt auch ohne Stromversorgung für
mindestens 20 Jahre lang behalten),
- vier AD-Wandler (die an den vier Pins anliegende
Spannungen in eine 10 Bit breite Binärzahl umwandeln
können),
- ein Vergleicher (der zwei Spannungen an zwei Pins
vergleicht und kleiner oder größer als Ergebnis
ausgibt),
- einen Wachhundzähler (der den Professor aufwecken
kann, falls der mal weggepooft ist), und
- eine vierpolige Programmierschnittstelle (mit der sich
der Inhalt des Programmspeichers und des nicht-flüchtigen
Speichers von außen manipulieren lassen).
Alles das wird im Würfel gar nicht verwendet, liegt aber
in dem 8-poligen IC herum und ließe sich bei Bedarf verwenden.
Aber wie das nun mal so ist: von sich aus tut das Ding rein gar
nix, alles muss man ihm erst mühsam beibringen (Spliff:
"Computer sind doof!", nein sie sind auch noch dumm wie
Stroh). Wer sich so ein Ding für ein paar Cent zulegt,
wird enttäuscht sein: es macht wirklich gar nix und
lässt sich auch von Bitgeklapper an seinen Pins nicht
beeindrucken. Erst nach dem Programmieren erwacht es zum Leben,
und macht dann aber auch nur das, was man ihm im Programm gesagt
hat.
Und das alles zusammen hat einen Stromverbrauch von weniger als
einem Milliampere, also mehr als zehn mal weniger als eine
einzige LED. Also für Batteriebetrieb auch über
lange Zeit gut geeignet. Deshalb macht der Würfel nach
zwanzig Sekunden die Lampen aus.
Wer alles das Extrazeugs im Mikrocomputer verwenden will, kann
sich die Verwendung in der
Präsentation anschauen (mit elf Aufgaben und ihren
Lösungen) und braucht zwei ganze Tage dafür das
alles zu lernen. Online ist die Präsentation
hier anzuschauen. Alles über diese Familie von
Mikroprofessoren und ihre Programmierung in Assembler und viele
einfache und kompliziertere Anwendungsbeispiele gibt es
hier anzuschauen.
Die Widerstände von 100 Ω sehen so aus:
Die Ringe sind braun (1), schwarz (0), schwarz (0) und schwarz
(keine zusätzliche Nullen).
Der Widerstand von 10 kΩ sieht so aus:
Die Ringe sind braun (1), schwarz (0), schwarz (0) und rot (zwei
zusätzliche Nullen).
Die Batteriefassung für zwei AAA-Batterien sieht so aus:
Der zulässige Spannungsbereich des Mikroprofessors reicht
von 2,7 bis 5,5 Volt. Die LEDs sind mit den Vorwiderständen
so eingestellt, dass sie bei 3 V Betriebsspannung optimal
leuchten. Bei mehr Spannung steigt der Strom
unverhältnismäßig an.
Die für dieses Experiment benötigten Bauteile sind in der
Bauteilliste für den
Versandhandel Reichelt
aufgelistet.
Eine Ausnahme ist der Mikroprofessor. Der muss vorher programmiert
werden, damit er würfeln tut. Das Programm dafür ist in
Assembler geschrieben und kann hier im
Quellcode heruntergeladen
werden. Der Quellcode muss mit einem AVR-Assembler assembliert werden
(z. B. mit meinem, der heißt wie ich, nämlich gavrasm,
und den gibt es für DOS, Windoof und Linux, siehe Google). Die
erzeugte Intel-Hex-Datei muss mit einem Programmiergerät und
passender Software in den Flash-Speicher des Prozessors geschrieben
werden.
Wer das nicht kann, kann mir drei Briefmarken zu je 55 Cent und einen
fertig frankierten Briefumschlag mit der eigenen Adresse zusenden und
ich sende dann einen fertig programmierten Chip zu. Meine Adresse steht
auf der Titelseite.
Der Aufbau erfolgt so:
In diesem Bild ist ein Sechser gewürfelt.
Beim Einschalten macht der Würfel alle Lampen an. Ist der Taster
beim Einschalten gedrückt, dann unterlässt er das Taumeln
(für Nervöse, die keine Aufregung vertragen).
Wer genau wissen will, wie der Würfelprozessor funktioniert muss sich
der Mühe unterziehen, den Quellcode
anzuschauen. Das geht mit einem einfachen Texteditor. Ich habe extra
viele Erläuterungen hineingeschrieben.
Das hier ist der Würfel beim Programmieren. Das Programmieren erfolgt
in der fertigen Schaltung bei angeschlossener Batterie. Das Programmiergerät
(hier ein ATMEL AVR-ISP MK II) ist über einen sechspoligen Stecker an den
Prozessor angeschlossen. Das Programmiergerät zieht den RESET-Eingang
auf Low und leitet damit den Programmiervorgang ein.
Der Programmiervorgang dauert weniger als zwei Sekunden. Danach geht der
RESET-Eingang wieder auf High (durch den 10k-Widerstand) und das
Würfelprogramm startet.
Hier gibt es ein Video (26 MB).
Falls die Videodatei nicht angezeigt wird, die Videodatei auf die eigene Festplatte
herunterladen (Rechter Mausklick auf den Link, Ziel speichern unter) und von dort aus starten.
©2012 by Gerhard Schmidt