Ich würde gerne eine Dartscheibe auslesen, diese hat bekanntlich 82 Felder (mit eigentlich 180 "Tastern"). Jedes Feld ist ein Taster. Nun überlege ich wie ich diese sinnvoll mit einem Arduino micro auslese. A mit einer Matrixschaltung (wie bei einem Zahlenkeyboard) 9*9 Matrix (81 "Tasten" +1) 9+9+1=19 Pinne. B Register 74HC 165 8bit also 11 Stück und die brauchen 3 Pinne? C Matrix mit 2 Registern 2*3Pinne? Die Pinne werden ja nur sehr sehr kurz gedrückt, also müssen die "Taster" sehr schnell abgefragt werden. Was ist nun die idealste Lösung? Und ich brauche irgendetwas, das mir die Daten über 10m an den Laptop sendet, idealerweise würde ich gerne ein Funkmodul nutzen wenn ich noch genug Pinne über hab.
Holger Schulte schrieb: > Was ist nun die idealste Lösung? Man baut eine Matrix, z.B. 8 x 11. Alle 11 werden Ausgänge und auf Lo geschaltet die 8 werden Eingänge mit pull up. Nun wartet man bis irgendein Eingang durch Schliessen des Tasters auf Lo gezogen wird, beispielsweise durch pin change Interrupt. Daraufhin schaltet man alle 11 Ausgänge um auf Eingang mit pull up, die 8 Eingänge werden ein Ausgang und der, der die Taste bemerkt hat, kommt auf Lo, die anderen auf Hi. Nun schaut man, welcher der 11 Eingänge auf Lo gezogen wird, an der Kreuzungsstelle liegt die gedrückte Taste. Die Erkennung dauert bei einem 16MHz AVR ca. 2 Mikrosekunden. Erkennt man nach Umschalten keine Taste, hat es nur geprellt, fang von vorne an und warte auf die ganze Taste.
Holger Schulte schrieb: > Und ich brauche irgendetwas, das mir die Daten über 10m an den Laptop > sendet, idealerweise würde ich gerne ein Funkmodul nutzen wenn ich noch > genug Pinne über hab. Dafür würde ich ein Bluetooth Modul verwenden. MaWin schrieb: > Die Erkennung dauert bei > einem 16MHz AVR ca. 2 Mikrosekunden Sicher, dass das mit dem Overhead des Arduinos nicht viel länger dauert? Die Lösung finde ich gut. P.S. die Mehrzahl von Pin ist Pins
:
Bearbeitet durch User
Holger Schulte schrieb: > Ich würde gerne eine Dartscheibe auslesen, diese hat bekanntlich 82 > Felder (mit eigentlich 180 "Tastern"). Sind die nicht schon intern verschaltet? Sonst müssten da ja 360 Kabel raushängen. Gruss Reinhard
Max H. schrieb: > Sicher, dass das mit dem Overhead des Arduinos nicht viel länger dauert? Wenn du mit digitalRead und digitalWrite rummachst dann schon. Aber - das muss man ja nicht. Man kann ja auch direkt an die Ports gehen.
Max H. schrieb: > Sicher, dass das mit dem Overhead des Arduinos nicht viel länger dauert? > Die Lösung finde ich gut. Wen interessierts? Nimmt man ungeeignete Werkzeuge, dann bekommt man entsprechende Ergebnisse. Meinst du da hat jemand Mitleid? Außerdem leist man doch immer, man kann auch direkt alles in C machen. Man muss ja die lahmen digitalXXXX Funktionen nicht nehmen. Stimmt. Dann soll er mal machen. Wenn er das nämlich könnte, würde er gar keinen Arduino nutzen. gruß cyblord
Nimm doch einen Tastatur Controller, der kann noch mehr Tasten, ist schnell genug und hat auf der anderen Seite eine I2C ähnliche Schnittstelle. Projekte um eine Computer Tastatur an einen AVR zu fummeln gibt es im Netz und fertig. Grüße aus Berlin
Holger Schulte schrieb: > Die Pinne werden ja nur sehr sehr kurz gedrückt, also müssen die > "Taster" sehr schnell abgefragt werden. Wieso? Bleiben die Darts nicht in der Scheibe stecken?
Rufus Τ. Firefly schrieb: > Holger Schulte schrieb: >> Die Pinne werden ja nur sehr sehr kurz gedrückt, also müssen die >> "Taster" sehr schnell abgefragt werden. > > Wieso? Bleiben die Darts nicht in der Scheibe stecken? Doch aber dabei bleiben die Taster nicht gedrückt. Zumindest bei allen solchen Scheiben die ich je gesehen hab.
Ich glaube, dass die Darts stecken bleiben heisst nicht, dass die Taster gedrückt bleiben. Die Darts stecken dann nur in einem "Netz"? fest, der Taster wird aber nur beim Einschlag des Darts auf der Scheibe kurz betätigt. Sonst fürde es ja auch nicht funktionieren, dass man zwei oder drei mal auf das gleiche Feld wirft und die Punkte für dieses Feld dann zwei oder drei mal gezählt werden.
:
Bearbeitet durch User
Reinhard Kern schrieb: > Holger Schulte schrieb: >> Ich würde gerne eine Dartscheibe auslesen, diese hat bekanntlich 82 >> Felder (mit eigentlich 180 "Tastern"). > > Sind die nicht schon intern verschaltet? Sonst müssten da ja 360 Kabel > raushängen. > > Gruss Reinhard Ja und nein, normalerweise werden da Folientastaturen verwendet. Meine Scheibe ist allerdings selbstgebaut. Ich habe auch schon mal eine Schaltung mit 41 Bi-FlipFlops und LED's gebaut, die Folientastatur war da schon nicht so dolle. cyblord ---- schrieb: > Max H. schrieb: > Dann > soll er mal machen. Wenn er das nämlich könnte, würde er gar keinen > Arduino nutzen. > > gruß cyblord da liegst du richtig, eine schöne Lösung wenn man das kann aber wenn ich so tief in der Materie wäre, würde ich nicht mit dem Arduinoboard rumspielen. Rene Schube schrieb: > Nimm doch einen Tastatur Controller, der kann noch mehr Tasten, > ist > schnell genug und hat auf der anderen Seite eine I2C ähnliche > Schnittstelle. > > Projekte um eine Computer Tastatur an einen AVR zu fummeln gibt es im > Netz und fertig. > > Grüße aus Berlin Das war mein zweiter Versuch mit einem umgebauten Logitech Funktastaturcontroller. eine Tastatur hat aber nicht 82 unterschiedliche Tasten, deren "Tastendruck" ich abfangen kann, ich komme glaub au 76 und da hab ich schon welche genutzt die ziehmlich uncool sind wie die Windowstaste oder wäre der AVR dann nicht als HID angebunden? Dominik R. schrieb: > Ich glaube, dass die Darts stecken bleiben heisst nicht, dass die > Taster > gedrückt bleiben. Die Darts stecken dann nur in einem "Netz"? fest, der > Taster wird aber nur beim Einschlag des Darts auf der Scheibe kurz > betätigt. Sonst fürde es ja auch nicht funktionieren, dass man zwei oder > drei mal auf das gleiche Feld wirft und die Punkte für dieses Feld dann > zwei oder drei mal gezählt werden. genau so ist es ;-) Also mir gefällt die Matrixlösung eigentlich am besten. http://arduino.ru/sites/default/files/u1905/spi-keypad.jpg da ist sogar eine Matrix mit 2 Registern 74HC165 und 74HC595, scheinbar den 595 um den internen Pullup verwenden zu können aber der Artikel ist auf russisch -.- Grüße Holger
cyblord ---- schrieb: > Wenn er das nämlich könnte, würde er gar keinen > Arduino nutzen. Warum würde er dann gar kein Arduino nutzen? Mit einem Arduino bekommt man immerhin ein fertig bestücktes Board zu einem günstigen Preis (und das auch noch in verschieden Formfaktoren). Also bei (sehr) geringen Stückzahlen spricht meiner Meinung nach nichts dagegen ein Arduino zu verwenden.
innerand innerand schrieb: > cyblord ---- schrieb: > >> Wenn er das nämlich könnte, würde er gar keinen >> Arduino nutzen. > > Warum würde er dann gar kein Arduino nutzen? > Mit einem Arduino bekommt man immerhin ein fertig bestücktes Board zu > einem günstigen Preis (und das auch noch in verschieden Formfaktoren). Dieses "Hammerargument" kannst du in den "Arduino bringts das?" Thread zu den anderen 50 Postern hinzufügen, die exakt das gleiche sagen. Sprich: Echt Originell. Dort findest du auch genug Entgegnungen darauf. Eine weitere Diskussion mit noch einem "Arduino ist doch nur ein Board und man kann es auch so nutzen"-Typen steh ich nicht durch ohne Schrotflinte und freiem Schußfeld... äh.. ich meine direkten Blickkontakt.
Dart? Was ist das? (ok, ich weiß, was das ist, aber mehr auch nicht) Würde da wohl auch einen Arduino einsetzen. (zu faul zum ätzen und löten) Ansonsten, sehe ich da Probleme mit der Zeit. Nicht dass der kleine grade die falsche Zeile/Spalte abfragt, wenns links daneben einschlägt.... Die Idee mit den Flipflopps ist bestechend!! Die nimmt einem die Zeitsorgen größtenteils ab.
cyblord ---- schrieb: > Dieses "Hammerargument" kannst du in den "Arduino bringts das?" Thread > zu den anderen 50 Postern hinzufügen, die exakt das gleiche sagen. > Sprich: Echt Originell. > Dort findest du auch genug Entgegnungen darauf. Eine weitere Diskussion > mit noch einem "Arduino ist doch nur ein Board und man kann es auch so > nutzen"-Typen steh ich nicht durch ohne Schrotflinte und freiem > Schußfeld... äh.. ich meine direkten Blickkontakt. Ok, Sie ranten in einen Thread also einfach mal pauschal gegen Arduinos ohne auch nur ein Argument mitzubringen warum die Verwendung eines Arduinos falsch sein soll und ohne dass die Plattform irgendwie zu Diskussion gestanden wäre. Und wenn man dann nachfragt, warum es denn falsch sein soll, dann kommen Sie mit sowas daher? Wenn Sie das nicht argumentieren können oder wollen, dann sparen Sie sich derartige Beiträge am besten ganz einfach. Dann gibt es auch keine weitere Diskussion die sie ja nicht durchstehen können (was ich mir übrigens sehr gut vorstellen kann). Wenn sie das aber trotzdem tun, dann sind sie in meinen Augen ganz einfach ein Troll.
Sollte der Arduino wirklich zu langsam sein, könnte man den Tastendruck in einem Kondensator Speicher. Wenn die Taste gedrückt wird, wird der Kondensator innerhalb von 23µs (5t) auf 0V entladen. Der Kondensator, wird dann in 5ms auf 2V, der Typ. LOW-level input voltag des 74HC165 @4.5V, geladen. Man hat also viel Zeit um die Tasten abzufragen. In 4ms ist es leicht möglich 9*8bits über SPI aus den 74HC195 in den µC zu schieben. Und wenn eine Taste gedrückt wurde würde ich mit dem UART über ein Bluetooth Modul die Nummer der Taste in ASCII oder BCD an den PC senden.
Ulrich F. schrieb: > Dart? Was ist das? > (ok, ich weiß, was das ist, aber mehr auch nicht) > > Würde da wohl auch einen Arduino einsetzen. > (zu faul zum ätzen und löten) > > Ansonsten, sehe ich da Probleme mit der Zeit. Nicht dass der kleine > grade die falsche Zeile/Spalte abfragt, wenns links daneben > einschlägt.... > Die Idee mit den Flipflopps ist bestechend!! > Die nimmt einem die Zeitsorgen größtenteils ab. man wird irre beim Löten der vielen FlipFlops vom Platz mal ganz abgesehen und entprellen kann man da auch nicht via Software... Ich benutze den Ardiuno zum testen, je nach dem wie viel Zeit und lust ich habe mach ich mir dann wohl noch ne Platine. sonst wird die Konstruktion wohl sehr dick.
Max H. schrieb: > Sollte der Arduino wirklich zu langsam sein, könnte man den > Tastendruck > in einem Kondensator Speicher. > Wenn die Taste gedrückt wird, wird der Kondensator innerhalb von 23µs > (5t) auf 0V entladen. Der Kondensator, wird dann in 5ms auf 2V, der Typ. > LOW-level input voltag des 74HC165 @4.5V, geladen. Man hat also viel > Zeit um die Tasten abzufragen. In 4ms ist es leicht möglich 9*8bits über > SPI aus den 74HC195 in den µC zu schieben. Und wenn eine Taste gedrückt > wurde würde ich mit dem UART über ein Bluetooth Modul die Nummer der > Taste in ASCII oder BCD an den PC senden. Hardwarelösung :-) Die Idee find ich sehr gut
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.