Hallo Leute, mein Name ist Felix ich mache momentan eine Ausbildung zum Elektroniker für Geräte und Systeme. Gegen Ende des zweiten Lehrjahres bekommen wir vom Betrieb die Möglichkeit uns ein Projekt auszusuchen. Meine Wahl fiel auf einen Reaktionsspiel. Dieses Spiel soll ein Feld von 8x8 beleuchteten Tastern haben. Die Taster sollen nach einem Zufallsmuster aufleuchten. Ziel ist es die aufleuchtenden Taster zu betätigen. Während man dies tut soll die Zeit gestoppt werden. Doch nun zu meinem Problem :(. Ich darf nichts programmieren. Ich habe viel gesucht bin aber bis jz nicht fündig geworden. Ich darf allerdings einen fertig programmierten µC als Beispiel verwenden. Hoffe ihr könnt mir weiterhelfen :) MfG Felix PS: falls ihr noch Informationen benötigt über das Projekt kann ich auch mein Pflichtenheft hochladen.
http://de.wikipedia.org/wiki/Linear_r%C3%BCckgekoppeltes_Schieberegister :-) so haben es die Alten gemacht
Danke für die schnelle Antwort :) Hast du zufällig einen simplen Schaltplan parat für die LSFR hab leider noch nichts mit diesen Bausteinen zu tun gehabt :(
Anderer Ansatz: 2 mal elektronischer Würfel http://www.uwehomm.de/schaltungen.html aber als Decoder zb. 74LS138 und die Lampen als Matrix ansteuern Die Reaktionszeitmessung ist dann noch die zweite Baustelle.
Danke Einer ich werde einen Versuchsaufbau machen und diesem Ansatz nachgehen. Das wird aber auch ziemlich viel bei 64 Feldern die beleuchtet werden müssen :) da habe ich mir ein aufwendiges Projekt ausgesucht ;) Wie ich das mit der Zeitsteuerung realisieren soll weiß ich leider auch noch nicht aber als erstes muss ich das Zufallsmuster erzeugen können MfG Felix
Ich würd das Projekt in mehrere Teile aufspalten. Zum einen hast Du das Anzeigefeld, was auch mechanisch aufgebaut werden möchte. Dieses würde ich gleich als Final-Version bauen. Danach kommt die Frage wie steuert man 64 Lampen. Welche Lampen? Ich würde LEDs nehmen. Wie steuert man sie? Entweder 64 Portpins (großer µC!!) oder Schieberegister. Wie stellt man ihnen den Betriebsstrom zur Verfügung? Ich weiß jetzt noch nicht wieviel Leistung Du da verbauen willst, aber wenn es nicht größer als ein Schachbrett wird reichen LEDs mit 500mA pro Feld, damit es blendend hell wird. Da kann man 8 ULN2003 oder so nehmen, erspart den Aufbau aus 64 einzelnen Transistoren. 64 LEDs direkt an einen Controller oder Schieberegister ist vermutlich nur machbar, wenn niemals viele gleichzeitig leuchten und es auch nicht besonders hell sein muß. Ich würds mit Schieberegistern lösen, damit ich nicht so viele Portpins brauche. Dann passt auch noch ein LCD-Display oder so mit an den (normal-großen) Controller. Die Tastaturmatrix braucht ja auch noch Pins. Dann bleibt als letztes das Problem was Du mit dem LED-Feld machen willst. Erst hier kommen Dinge wie Zufallszahlen oder Interaktion (Abfrage der Taster, Anzeige der Reaktionszeit) ins Spiel. Das hängt alles davon ab, welches Spiel Du Dir da ausgedacht hast.
-Ein 8 Bit Schieberegister für die Spalten mit nur einer getzetn 1 auf sich selbst zurücgekoppelt. -Ein 8 Bit Schieberegister für die Zeilen mit nur einer getzetn 0 auf sich selbst zurücgekoppelt. -Zwei unabhängige RC-Oszilatoren die die beiden Schiebregister takten (Freuqenz möglichst ungrades vielfache vondem anderen) -Die Schiebregister Treiben Die LEDs direkt an ihren ausgängen (ist ja immer nur eine LED aktiv). -Noch nen 555 der die Takte nach einer gewissen Zeit sperrt und einen Quartz getaktetn Counter freigibt. -um den RC Oszillatoren einen zusätzlichen Zufall zu geben eventuell noch Mikrofon und anderes Zeug in den Takt einer der beiden. -dem 555 auch noch irgendwie pseudo Zufäälig beeinflussen. -bei Druck auf Taster wird der Counter angehalten und das Ergebnis angezeigt. Wäre jetzt das simpelste was mir einfällt, ob das auch zufäälig genug ist muss man ausprobieren. -Bei elekronischen Würfeln missbraucht man den Benutzer als Zufallsquelle, der drückt einen Taster und läßt ihn wieder los. Da der Takt so hoch ist kann man nicht beeinflussen welche Zahl gewürfelt wird. Ob das hier erlaubt ist? Dann könnte man den Taster anstatt des 555 benutzen.
Danke für eure Antworten :) Wunschvorstellung ist es farbige bzw beleuchtete Taster (64 an der Zahl) anzusteuern und diese durch ihre Betätigung wieder auszuschalten. Bei der Betätigung des ersten Tasters (von dem Zufallsmuster) soll eine Stoppuhr beginnen zu zählen und bei der Betätigung des letzten Tasters soll diese Stoppuhr wieder stoppen. Leider fehlt mir noch die Erfahrung und das benötigte Fachwissen :( Ich verstehe einfach nicht wie ich dies realisieren soll :( MfG Felix
Felix schrieb: > Bei > der Betätigung des ersten Tasters (von dem Zufallsmuster) soll eine > Stoppuhr beginnen zu zählen und bei der Betätigung des letzten Tasters > soll diese Stoppuhr wieder stoppen. Und die nächste Taste leuchtet erst, wenn die richtige betätigt wurde? Diese Forderung lässt sich wohl nur durch programmieren lösen. Mach erst mal einen kleinen Aufbau mit 4x4 Tasten/LED
Werde ich machen :) Du musst dir das so vorstellen es leuchtet ein Muster auf und dieses Muster leuchtet dauerhaft für ein "Spiel" also solange bis alle "Lichter ausgeknipst sind" es ist egal in welcher Reihenfolge ich dieses Muster anfange auszudrücken. Doch sobald ich den beleuchteten Taster betätigt habe erlischt das Licht von ihm. Ich habe mein Pflichtenheft im Anhang dann kannst du dir das Beispiel als Skizze anschauen
Felix schrieb: > Ich darf nichts programmieren. Wie vereinbart sich das mit: Felix schrieb: > Ich darf allerdings einen fertig programmierten > µC als Beispiel verwenden. Heißt das, du sollst die Programmierarbeit als Auftrag vergeben? Denn wenn ich mir dein Pflichtenheft ansehe, dann wird das ohne Mikrocontroller in richtig viel Aufwand ausarten. Wenn du nur bis Ende Juli Zeit hast, hast du nur mit einem Mikrocontroller eine Chance haben das noch zu schaffen.
Ich darf das programmieren leider nicht vergeben das ist es ja was mich so fertig macht. Ich muss wohl den riesen Aufwand in Anspruch nehmen da ich bis jz keinen fertigen Baustein gefunden habe der mir ein Zufallsmuster generiert
Dann lerne das Programmieren. Bis Juli ist jede Menge Zeit, und ein Aufbau mit 4x4 sollte auch für einen Anfänger bis ende Mai möglich sein. Selbst wenn man sich das Programmieren frisch beibringt. Kauf ein Arduino, Stöpsel da 16 LED und 16 Taster dran und leg los. Dann hast Du noch einen Monat für den großen Aufbau. Los geht's
Ich darf nicht programmieren das ist die Vorgabe vom Betrieb. Ich muss dieses Projekt ohne programmieren verwirklichen Kann man das Zufallsmuster mit einem CMOS o.ä. realisieren??
Von "nichts programmieren" steht nichts in diesem Pflichtenheft, also frag noch mal Deinen Chef, was er damit genau meint, ansonsten machst Du das mit nem µC (microcontroller) :)
Habe ihn gefragt das Projekt muss ohne das programmiert wird verwirklicht werden :( Was nun?
Unter diesen Umständen würde ich versuchen, das so primitiv wie möglich umzusetzen: Pseudozufallszahlen beispielsweise über eine von einem Motor angetriebene Stiftwalze (wie bei einer Spieluhr) oder von einem Lochstreifen einlesen, Logik aus Relais bauen, freiverdrahtet. Sollte alles gehen, und wenn's dann einen halben Schrank füllt, egal, oder?
Sollte so klein wie nur irgend möglich sein. Da hab ich ne knackige Aufgabe :) Ich hatte so an TTL gedacht oder Schieberegister damit kann ich doch auch ein Zufallsmuster erzeugen oder?
Wenn immer nur eine Taste aufleuchten soll, kann man auch einfach einen Zähler laufen lassen, der vom Benutzer zu einem beliebigen Zeitpunkt gestoppt wird, und dessen Ausgänge auf alle Tasten dekodieren.
Felix schrieb: > Da hab ich ne knackige Aufgabe :) > Ich hatte so an TTL gedacht oder Schieberegister damit kann ich doch > auch ein Zufallsmuster erzeugen oder? Hallo Felix, So knackig ist das nicht :) Idee: Du erzeugst Zufallszahlen als bit (0 oder 1) und schiebst davon 8 Stück in ein Schiebregister. Damit hast du schon mal das Bitmuster (für eine Zeile). Du zeigst die Ausgangsbits des Schieberegisters als Zustand des Tasters an (1 = an). Jetzt musst Du nur noch das Schieberegister selektiv löschen: Es gilt zu prüfen ob Bitposition = 1 und Taster = 1 dann lösche Bitposition des Schieberegisters. Wenn Bitposition = 0 und Taster = 1 dann Fehler. Wie Du die Bitzustände des Schiebregisters löschst: na da würde ich z.B. auf einen Parallel-Load optieren. So und jetzt könnte ich mir vorstellen das ganze noch mit 74xxx74 zu machen, das ganze vielleicht seriell reinzsuschieben und mit dem Taster asynchron Reset zu machen und jedes mal einen Fehler auszulösen wenn Bitposition = 0 Und Taster gedrückt. Von diesen Schaltungen kannst Du 8 parallel (8 Zeilen) schalten. rgds
Felix schrieb: > Du musst dir das so vorstellen es leuchtet ein Muster auf und dieses > Muster leuchtet dauerhaft für ein "Spiel" also solange bis alle "Lichter > ausgeknipst sind" es ist egal in welcher Reihenfolge ich dieses Muster > anfange auszudrücken. Doch sobald ich den beleuchteten Taster betätigt > habe erlischt das Licht von ihm. Nachtrag zum Pflichtenheft: Das Spiel ist nicht Fair da die Anzahl der zu drückenden Taster bei völlig freier Zufallsgenerierung nicht immer gleich ist, es kann also sein dass Spieler1 nur eine Taste und Spieler2 z.B. 32 oder gar 63 Tasten "abräumen" muss und damit schon länger braucht. Das ist aber dem Prinzip "TTL Logik" geschuldet ansonsten bräcutest Du tatsächlich mehr Aufwand um die Anzahl der Einsen im Zufallsfeld zu kontrollieren. Nachtrag zum Voschlag: Man könnte auch ohne Mikrocontroller das Ganze in einem CPLD pro Zeile lösen, reduziert den Aufwand ist aber "programmiert" :) rgds
Danke dir :) Damit könnte ich ein Zufallsmuster erzeugen doch nun zu meinem nächsten Problem über diesen LED´s wird ein Taster montiert und sobald ich diesen betätige soll die LED darunter ausgehen Doch wie ?
Jede Taste benötigt ein Flip-Flop. Set wird durch den Zufallsgenerator betätigt, Reset durch die Taste selbst. Ob noch irgendeine Taste "leuchtet", könnte man mit 64 Dioden erkennen.
Felix schrieb: > Doch wie ? Jedes Feld hat ein Flipflop, der Zustand des Flipflops ist das Feld. Das Feld ist gesetzt = 1 = LED an. Wenn das Feld gesetzt ist kann man es mit einem Taster zurücksetzten (da gibt es verschiedene Möglichkeiten, achtung ein paar haben da gravierende Nachteile). Erlaubt ist ein Zurücksetzten nur wenn das Feld gesetzt ist und der Taster für das Feld gedrückt wird. Ist das Feld nicht gesetzt und der Taster wird gedrückt wird ein Fehler angezeigt, die Uhr gestoppt. Also ich komme auf ca. 10...12 TTLs pro Zeile: 4x 74xx00 (1/2 pro Feld) 4x 74xx74 (1/2 pro Feld) Und dann noch die Fehlererzeugung: irgendetwas mit Open Collector und die Anzeige "alle Leer": 1x 8-fach NAND Für das Laden brauchst Du einen Zähler der 9 Impulse erzeugt, 8 mal für das einschieben und 1x für Game Start/Uhr Start. Und dann noch die Uhr. rgds
Sebastian schrieb: > Set wird durch den Zufallsgenerator > betätigt, Reset durch die Taste selbst. tricky - think it over ! rgds
Ohje 10 bis 12 TTLs ist serh viel :O wenn man das Spielfeld auf 6x6 oder 4x4 verkleinern würde wäre das eine große Ersparnis?
Wie wäre es einfach mit Pseudozufallszahlengeneratoren: http://de.wikipedia.org/wiki/Linear_r%C3%BCckgekoppeltes_Schieberegister Entweder 1 pro Zeile und einfach die Reihenfolgen für die LEDs vertauschen. Oder unterschiedliche Polynome (wäre wahrscheinlich besser, da dann auch unterschiedlich viele LEDs pro Zeile leuchten). Dann haben Deine Zeilen schon mal einen Startwert. Per Knopfdruck kommt das nächste Muster und der Zähler wird Resettet. Zusätzlich könntest Du über einen globalen Resetknopf den Startzustand wiederherstellen (erste Pseudozufallszahl --> erstes Spiel) und jeder Spieler hätte die gleichen Spiele hintereinander (da ja nur Pseudo-Zufall). Dann noch 8x8 AND und SR-FF für das ausschalten der gedrückten Lampen. Also Lampe an AND Taster-Impuls rücksetzen des SR-FF. Dann bräuchtest Du nur noch die ganzen Schalter verodern. Das gibt dann Dein Startsignal. Sobald einer gedrückt wird start Counter. Dann brauchst Du noch ein NOR über alle FF Ausgänge (oder Lampen). Also wenn alle Lampen aus sind = 1. Das gibt Dein Stopsignal für den Counter. Dann noch den eigentlichen Zähler und einen Bin to BCD Wandler für die Anzeige. Das müsste es gewesen sein. Oder hab ich was vergessen?
6A66 schrieb: > Sebastian schrieb: >> Set wird durch den Zufallsgenerator >> betätigt, Reset durch die Taste selbst. > > tricky - think it over ! > > rgds Felix schrieb: > Ohje 10 bis 12 TTLs ist sehr viel Hallo Felix, na ja. Du hast ohnehin in Deinem Projektplan die Erstellung einer Leiterplatte, ohne die kommst Du nicht hin. Dann Eine für die zentrale Steuerung und eine für die Uhr, sind drei die Du bauen musst - die Zeilenplatine dann eben 8x. Sind gesamt 10 Stück. So what. Wenn Du eine Lösung findest die einfacher geht gerne. Ideen hast Du ja jetzt. Ich bin hier wieder raus, höre aber gerne mal zwischendurch mal wieder rein für den Gall dass es Fragen gibt. Keine Angst, das Projekt ist nicht so kompliziert. Überlege erst einmal eine Zeilenplatine, simulier die und bau die auf dem Steckbrett oder einer Lochraster auf. Wenn die geht hast Du schon das ganze Brett. Und die Uhr ist nicht zu kompliziert (100Hz Oszillator, 4 BCD-Zähler mit 7-Segment Decoder für 99,99 Sekunden). Und das ganze wird dann doch bei euch im Foyer bei Rafi ausgestellt - oder? Da sollte es schon was Professionelles sein. rgds
Danke euch für die vielen Ideen ich werde jetzt erstmal ein bisschen rum experimentieren und euch dann meine Ergebnisse mitteilen einen Probeaufbau machen und die Schaltung simulieren. Nochmals vielen Dank :)
Interessant, was in den Köpfen der Lehrbetriebe bzw. der Ausbilder so vor sich geht. Leben die noch in der Steinzeit? Da wird ein Projekt, welches mittels Controller eigentlich ein besseres Wochenendprojekt ist, durch unsinnige Vorschriften zu einer im Monaten zu rechnenden Sisyphusarbeit aufgeblasen.
Hans Müller schrieb: > Interessant, was in den Köpfen der Lehrbetriebe bzw. der Ausbilder > so vor sich geht. Leben die noch in der Steinzeit? Da wird ein Projekt, > welches mittels Controller eigentlich ein besseres Wochenendprojekt ist, > durch unsinnige Vorschriften zu einer im Monaten zu rechnenden > Sisyphusarbeit aufgeblasen. Naja, so aufwändig ist es nun auch nicht. Von der Logik hat man das in einem Tag durchgespielt. Dann noch Platinen designen, fertigen lassen, aufbauen und testen. Wahrscheinlich soll in diesem Projekt der Schwerpunkt halt mehr auf Logik und HW liegen. Wobei man das auch (meiner Meinung nach) auf einem CPLD/FPGA machen könnte.
Hans Müller schrieb: > Interessant, was in den Köpfen der Lehrbetriebe bzw. der Ausbilder so > vor sich geht. Leben die noch in der Steinzeit? Da wird ein Projekt, > welches mittels Controller eigentlich ein besseres Wochenendprojekt ist, > durch unsinnige Vorschriften zu einer im Monaten zu rechnenden > Sisyphusarbeit aufgeblasen. <IRONIE> Jo hast Du völlig recht. Der Azibu hat ja schon C und die ganze Controllertechnik gelernt und kann mit der IDE umgehen. Da kann ihm auch sein Azibu Kollege dabei helfen. Und der Kollege nebenan, der das in einem Jahr verbessern muss hat sich schon in die SW einegarbeitet. Ehrlich gesagt halte ich die Vorgaben und den Zeitplan für sehr realistisch für das Projekt. Muss man sich ranhalten, klar, aber no rocket science, kann also jeder gut erlernen. Das Projekt mache ich auch übers Wochende, klar, auch mit TTL. Interessiert aber hier niemanden denn es soll ja ein AZUBI machen und a) dabei noch mal lernen und b) das was er kann und gelernt hat an einem Projekt umsetzten lernen wobei es um das UMSETZEN geht. rgds
Hallo zusammen ich baue mein Zufallsmuster mit Schieberegistern und einem extra Taster da ich ja nie gleichzeitig loslassen kann ;) doch wie verwirkliche ich jetzt eine Stoppuhr die parallel dazu meine benötigte Zeit stoppt sie soll ss:msms anzeigen Grüße Felix
Also ein 4 stelliger Zähler der in 10ms Schritten Zählt. z.B. so was hier (Suche einfach mal nach TTL Zähler 4 stellig): http://www.elektronik-kompendium.de/public/arnerossius/schaltungen/mitics/count4.htm mit einem Oszillator der 100Hz liefert. Spiel beginnt: Oszillatortakt wird an Zähler weitergegeben Spiel endet: Oszillatortakt wird abgeschaltet Reset: Zähler wird auf 0 gesetzt. Der ":" sind 2 LEDs.
Hallo zusammen, Zur Information, im zweiten Lehrjahr hat man noch keine C-Kenntnisse oder ähnliches, da dieses erst im Dritten Lehrjahr beinhaltet ist! Mfg
Wenn ich den Zähler in 1ms Schritt zählen lassen will würde ich demnach einen 1kHz Oszillator benötigen oder?
Ja,
Wobei t Deine Periode (z.B. 1ms / 10ms) in Sekunden ist. Wenn Du aber eine Anzeige ss:msms brauchst dann ist der niedrigste Wert 10ms, mit 1ms wäre das dann ss:msmsms um bei Deiner Notation zu bleiben.
ok danke dir in dem Fall doch 100Hz Quarz den Link von der Schaltung den du mir geschickt hast wie muss der Oszillator dazu geschaltet werden?
Bei der Schaltung im Link wäre das oben rechts, 5V, Inp (Der Takt), GND. Wie genau muß die Messung denn sein? Einen 100Hz Quarz wirst Du nicht finden. Den Takt musst Du entweder mit einem schnelleren Quarz(besser ein fertiger Quarzoszillator der braucht keinen Verstärker) und einem entsprechenden Teiler. Der Teiler ist im Prinzip wieder ein Zähler der z.B. nur jeden 10 Impuls weitergibtung (In der Schaltung der 74LS90 mit dem Qd Ausgang) oder wenn es nicht ganz so genau sein muss mit einer Schaltung wie z.B.: http://www.555-timer-circuits.com/astable-multivibrator.html
Ist der Schaltplan der Stoppuhr korrekt ? ich nehme dann noch einen anderen Oszillator der mir 10ms Schritte erzeugt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.