projekte:hex_trainer

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
projekte:hex_trainer [2014/10/19 17:58] – [Nostalgieansatz: TTL/CMOS-Grab] 82.113.99.217projekte:hex_trainer [2020/09/09 17:23] (aktuell) – ↷ Links angepasst weil Seiten im Wiki verschoben wurden noby
Zeile 1: Zeile 1:
 ====== HEX-BIN-Trainer ====== ====== HEX-BIN-Trainer ======
 +[[en:projekte:hex_trainer|(English version)]]
  
-Ein Teilprojekt im Dunstkreis der Ausstellung zur [[veranstaltungen:2wickl2014|2wickl2014]]. +**Koch:** mirwi\\  
 +Ein Teilprojekt im Dunstkreis der Ausstellung zur [[veranstaltungen:2wickl2014|2wickl2014]].\\ 
 +Später eingesetzt beim [[veranstaltungen:32c3|32C3]].
 ===== Grundidee ===== ===== Grundidee =====
-"Binary Kitchen lehrt hexadezimale und binäre Zahlendarstellung". Auf einer 7-Segmentanzeige wird ein zufällig gewürfeltes HEX Zeichen angezeigt. Die Nutzer müssen nun diese Zahl in Binärdarstellung eingeben. Fürs Zwickl geschah dies über vier Fussschalter. Bei richtigem Bit-Muster wird für eine gewisse Zeit eine Aktion ausgelöst (Jubelbox) sowie zeitgleich eine neue Zufallshexzahl ermittelt.\\+"Binary Kitchen lehrt hexadezimale und binäre Zahlendarstellung". Auf einer 7-Segmentanzeige wird ein zufällig gewürfeltes HEX Zeichen angezeigt. Die Nutzer müssen nun diese Zahl in Binärdarstellung eingeben. Fürs Zwickl geschah dies über vier Fussschalter. Bei richtigem Bit-Muster wird für eine gewisse Zeit eine Aktion ausgelöst (->[[projekte:jubelbox|Jubelbox]]) sowie zeitgleich eine neue Zufallshexzahl ermittelt.\\
  
 ===== Umsetzung ===== ===== Umsetzung =====
Zeile 12: Zeile 14:
  
 ==== Nostalgieansatz: TTL/CMOS-Grab ==== ==== Nostalgieansatz: TTL/CMOS-Grab ====
-Viel Lustiger ist es, die nötige Schaltung diskret, naja schon mit IC's, aber eben mit althergebrachten Logikschaltkreisen, aufzubauen. Ausserdem war es mal wieder interessant etwas in diesem Modus zu machen: Lochraster mit Einigen gelöteten Leiterbahnen, der Rest mit Kupferlackdraht "geroutet".+Viel Lustiger ist es, die nötige Schaltung diskret, naja schon mit IC's, aber eben mit althergebrachten Logikschaltkreisen, aufzubauen. Ausserdem war es mal wieder interessant etwas in diesem Modus zu machen: Lochraster mit einigen gelöteten Leiterbahnen, der Rest mit Kupferlackdraht "geroutet".
  
 === Schaltungsbeschreibung === === Schaltungsbeschreibung ===
-Zwei der vier NAND Gatter eines 74HC00 bilden einen standard C-MOS RC-Oszillator mit ca. 40 kHz. Über einen der NAND-Eingänge kann er aktiviert bzw. ausgeschaltet werden. Dieser Takt speist einen 4040 11-Bit Binärzähler, dessen niederwertigste vier Bit die "Zufallszahl" bilden. 7-Segment Treiber, die den vollen Hex-Zeichensatz darstellen, sind schwer zu bekommen. Als Alternative wurde der Dekoder über ein altes 2732 EPROM realisiert, bei dem nur die ersten 16 Byte im Speicher mit Daten belegt sind. Jedes dar Datenbits aus dem EPROM schaltet masseseitig über einen BS170 MOS-FET ein Segment, bzw. den Dezimalpunkt, der AnzeigeNachdem die Einzelsegmente aus vier in Serie geschalteten LEDs bestehen, werden diese an der gemeinsamen Anode direkt aus 12V versorgt. Bipolartransistoren (unbekannten Typs) in jedem Zweig bilden eine Art diskretem Stromspiegel mit starker Gegenkopplung. Damit kann die Helligkeit aller Segmente gemeinsam über einen Refernzstrom einigestellt werden. Parallel zum Anzeigedekoder liegt die Zufallzahl an einem 4585 vier Bit Vergleicher an. +Zwei der vier NAND Gatter eines 74HC00 bilden einen standard CMOS RC-Oszillator mit ca. 40 kHz. Über einen der NAND-Eingänge kann er aktiviert bzw. ausgeschaltet werden. Dieser Takt speist einen 4040 11-Bit Binärzähler, dessen niederwertigste vier Bit die "Zufallszahl" bilden. 7-Segment Treiber, die den vollen Hex-Zeichensatz darstellen, sind schwer zu bekommen. Als Alternative wurde der Dekoder über ein altes 2732 EPROM realisiert, bei dem nur die ersten 16 Byte im Speicher mit Daten belegt sind. Jedes der Datenbits aus dem EPROM schaltet masseseitig über einen BS170 MOS-FET ein Anzeigesegment, bzw. den Dezimalpunkt (wenn auch bisher nicht benutzt)Die Einzelsegmente des verwendeten großen Displays bestehen aus vier in Serie geschalteten LEDs. Die für alle Segmente gemeinsame Anode wird daher direkt mit +12V gespeist. Bipolartransistoren (unbekannten Typs) in jedem Zweig bilden eine Art diskretem Stromspiegel mit starker Gegenkopplung. Damit kann die Helligkeit aller Segmente gemeinsam über einen Referenzstrom einigestellt werden. Parallel zum Anzeigedekoder liegt die Zufallzahl als Referenzwert an einem 4585 vier Bit Vergleicher an. Der andere Satz Vergleichereingänge ist mit Pull-Down-Widerständen und den nach +5V schaltenden Eingabetasten belegt. Der "Werte sind gleich" Ausgang Triggert eines der beiden Monoflops in einem 74HC123, dessen Zeitkonstante die Einschaltdauer des Aktionsausgangs bestimmt. Über einen kräftigeren MOS-FET (IRF640) wird die externe Last gegen Masse geschaltet. Gleichzeitig wird der Taktgenerator am Zähler aktiviert. D.h. während dieser Zeit läuft die Anzeige mit hoher Geschwindigkeit durch und alle Segmente erscheinen aktiviert. 
 + 
 +**TODO:** Schaltplan zeichnen.
  
-=== Anzeige === +**Ausbaumöglichkeiten:** Die nächst höherwertigen Bits aus dem Zähler können auch noch zur Adressierung des EPROMS benutzt werden und verschiedene "Spielmodi" auswählenDurch entsprechende Anzeigedekodierung wäre neben HEX->BIN auch HEX-> NOT(BIN), BIN bitgeschoben, Paritätsbit (gerade/ungeradean bestimmten Positionen ... möglich.
-Mit einem HEX fähigem 7-Segment-Treiber sollte aus dem 4-bit "Soll-Wert" direkt die Anzeige angesteuert werden. Aber an HEX fähigen Treibern habe ich nur den **4311 oder 4368** gefunden, die aber bei den einschlägigen Versandhändlern nicht erhältlich sind.\\  +
-Daher benutze ich hier eine Fallbacklösung. Die **Warheitstabelle des Segmentdekoders wird einfach in ein EPROM programmiert.** Die 8 Datenbits passen wunderbar zu den 7 Segmenten + Dezimalpunkt (der aber nicht benutzt wird :-)). Die Datenleitungen des EPROMS steuern über weitere Transistorteiber die Segmente des Displays.\\ +
  
 == 7segment Decoderprogrammierung für das EPROM  == == 7segment Decoderprogrammierung für das EPROM  ==
Zeile 54: Zeile 56:
 {{ :projekte:legacy_eprom_brenner.jpg?direct&200 |}} {{ :projekte:legacy_eprom_brenner.jpg?direct&200 |}}
  
 +==== Aufbau auf Lochraster ====
  
-=== Auswertung === +{{ :projekte:binhexplatine.jpg?direct&200 |}}
-Vier Bit Vergleicher, was sonst.\\ +
-**4585** (Vergleicher)\\ +
-<del>Auslösetaste mit</del> Mindestbetätigungsdauer über RC <del>und Smidttrigger</del>. Der Ausgang des Vergleichers muss also für eine bestimmte Zeit stabil ein "richtig" ausgeben.\\+
  
-=== Aktuator === +==== Der ganze Aufbau beim 32C3 ==== 
-Liegt lange genug ein korrektes Vergleicherergebnis an, soll mit einem (retriggerbaren) Monoflop (74..123 liegt rum) für eine bestimmte Zeit der "Aktionsausgang" aktiv werden. Gleichzeitig wird der Oszillator im Zufallsgenerator wieder freigegeben, so dass am Ende der Aktionsphase eine neue HEX-Kodezahl für die nächste Runde ansteht.+{{ :projekte:jubelbox32c3.jpg?direct&400 |}}
  
-==== Aufbau ==== +[[http://www.digitale-notdurft.de/2015/12/30/binaerzeuch-mit-jubelbox-32c3/|Bild bei digitale-notdurft.de]]
-Da es sich um ein Einzelstück handeln wird, mache ich das auf Lochraster. Nicht weil ich den Aufwand einer "richtigen" Platine scheue, sondern aus Spaß und nostalgischen Anwandlungen. Und weil ich für alles andere sowiso zu spät dran bin ...+
  
 +[[https://twitter.com/derfnull/status/681958423626387457|Hübsches Bild bei Twitter]]
  • projekte/hex_trainer.1413741489.txt.gz
  • Zuletzt geändert: 2014/10/19 17:58
  • von 82.113.99.217