Liste der Anhänge anzeigen (Anzahl: 1)
USB Gamepad - Redesign
Hi, ich habe hier ein altes Gamepad mit USB-Anschluss. Dieses möchte ich dazu nutzen meinen Roboter zu steuern.
Den USB-Anschluss kann bzw. will ich nicht nutzen, da ich das Protokoll nicht kenne und ein reverse-engineering viel zu aufwendig bis kaum machbar ist. Daher möchte ich nur die Platine behalten auf der sich die Tasterkontakte befinden und mir ein eigenes Protokoll bzw. eigene Elektronik drumherum basteln.
Im Grunde befinden sich auf der Platine diese typischen Drucktaster. Das einfachste wäre die Taster als Pullup zu verschalten und dahinter dementsprechend ein Latch in Form eines D-FF's. Damit ich nicht soviele I/O's verschenke, hab ich mir noch überlegt hinter den Latches einen Multiplexer zu packen, sodass ich nur ein I/O Pin + Takt brauche + paar Pins für den Multiplexer zum ansteuern. Bzw. den Takt erzeuge ich mit einem 2. I/O Pin. Komischerweise ist der "Joystick" nicht als Poti ausgeführt, sondern für die Richtung Links, Rechts Oben Unten als Drucktaster ausgeführt.
Was mir grad einfällt, das ich extrem schnell abtasten muss, sodass mir kein Tastendruck entgeht.
Schaltung, siehe Anhang "Gamepad design"
Das Gamepad hat 12 Drucktaster, als D FF mit CLear Pin nehm ich zweimal den 74LS273 jeweils 8 Bit. Für den Multiplexer habe ich mir den 74HCT151 rausgesucht (8:1), kostet nur 20Cent.
Anschließend will ich per USART-Schnittstelle, abhängig davon welcher Taster gedrückt wurde ein entsprechendes ASCII Zeichen an den Roboter senden.
Was haltet ihr von der Schaltung, gibt es Einwände? Oder gibt es bessere Lösungen, Ideen? Vielleicht hat das jemand schon mal umgesetzt und hat wertvolle Tipps für mich :)
Grüße
Liste der Anhänge anzeigen (Anzahl: 2)
Huhu,
es tut sich was :)
Die Taster des Steuerkreuzes kann ich schon mal abfragen. Hab nen kurzes Video gemacht.
http://www.youtube.com/watch?v=-b0ed...ature=youtu.be
Sobald Taster "Up" betätigt wird, blinkt die LED einmal. Bei "Right" zweimal, "Left" dreimal und bei betätigen der "Down"-Taste viermal.
Vielleicht ein paar kurze Wort zum Video. Auf der linken Seite sieht man das modifizierte Steuerkreuz des Gamepads. Auf dem Steckbrett befindet sich oben der 166er und dadrunter der Attiny2313. Zu Abfrage der Taster benötigt der 166 nur zwei Pins, ein Takt-und der ein Shift/*Load-Eingang.
Bei Shift/*Load=0 werden die anliegen Pegel "gespeichert" im Datenblatt als Load bezeichnet. Sobal der Pegel wieder auf High ist, befindet sich der 166 im Shift Modus. Nun können die Bits per Takteingang geshiftet werden. Die geshifteten Bits können anschließend am QH Ausgang abgefragt werden. Wichtig ist zu wissen das nach dem "Load" Vorgang der anliegende Pegel am H-Eingang schon am Ausgang QH anlieget, dieses Bit muss man vor dem Shiftenabfragen, da es ansosnten verloren geht.
Die Taster werden alle 60ms abgefragt, ich denke das sollte reichen um jeden Tastendruck zu regestrieren. Software ist noch nicht optimal aber für die ersten Tests reicht es. Notfalls werde ich zur Sicherheit die Taster mehrmals abfragen, so das ich sicher sein kann das die Pegel gültig sind.
Hatte rein aus Neugier die Taster als Pulldown verschaltet um den Stromverbauch zu testen. Bei TTL ist es nicht sinvoll ist, wenn das ganze später Batterie betrieben wird, aufgrund des erhöhten Stromverbrauches im Ruhezustand. Hatte zuerst einen sehr großen Pulldown mit 10k genommen, gemessen habe ich 0,36V und das hat der 166er schon als high erkannt? Das habe ich noch nicht so ganz verstanden, laut Datenblatt liegt der max. Low-Pegel bei 0,8V. Werds nochmal nachmessen, den ich vermute das es ne höhere Spannung am Pulldown abfallen muss. Die Pullup-Version funktioniert zumindest.
Der nächste Schritt wird die Kaskadierung zweier 166er, sodass ich alle Taster abfragen kann.
In der Schaltung fehlt noch eine ganze Menge. Ein Schalter zum einschalten des Joypads, die Spannungserzeugung, Bluetooth-Modul zur kabellosen Übertragung und das dazugehörige Übertragungsprotokoll. Demnächst folgt der neue Stand.
Für denjenigen, der sich mit dem 74LS166 auseinandersetzen muss bzw. sich für den Code interessiert, findet diesen im Anhang für den Attiny2313 und den dazugehörigen Schaltplan.
Grüße