Hallo, Themenbereich Robotik, Phantom haptic input device von Sensable... folgende Situation: Habe ein haptisches Eingabegeraet an dem ein Knopf ist (einfacher Unterbrecher einer Leitung). Es gibt einige APIs mit Hilfe derer man mit diesem Geraet ganz gut kommunizieren kann. Ich programmiere also C bzw C++ unter Microsoft Visual Studio .Net. Wenn ich den Knopf druecke kann ich ein sog. Event ausloesen in meinem Programm. Kurz gesagt: ich kann per Software einen Knopfdruck feststellen. Frage: ich will ueber die Leitung dieses Unterbrechers nun Informationen uebertragen, habe aber keine Synchroniesierung oder Zeitbasis auf Seiten des Geraetes und in meinem Programm auch nicht. Diese Leitung werde ich an einen Pin eines AVR haengen. Wie uebertrage ich ein Byte ueber diese Leitung, und wie stelle ich es in der Software wieder her? Wie geht hier die Synchronisation? Ich danke euch fuer jeden Tipp. Links zu Informations-/Dokumentationsquellen sind gern gesehen. mg, Johannnes
Ich habe zwar keine Ahnung, was ein haptisches Eingabegeraet ist, aber wenn du zur Datenübertragung nur eine Leitung zur verfügung hast, solltest du dir mal den 1-Wire bus ansehen: http://www.maxim-ic.com/1-Wire.cfm Dafuer gibt es z.B. auch IO-Expander hinter die du dann Schlter und Taster anklemmen kannst. Falls es das ist, was Du suchst... Gruss, rweber
Hi, schau Dir mal die Manchestercodierung an. Gruß, Dirk
Da sollte doch eine ganz normale asynchrone Kommunikation funktionieren, z.B. mit dem UART des AVR und einem Software-UART in deiner PC-Software.
Hallo, vielen Dank fuer die Tips. Ich werd sie mir gleich mal vornehmen. @andreas: gibt es Software-UARTs als fertige Pakete, oder muss ich die selber schreiben? Hast du ein evtl. Beispiel? Ueber welchen Port soll das ganze laufen? Kann ich will ja wenn moeglich keine zusaetzliche Hardware bauen. Die externe Loesung ueber einen seriellen Port kenn ich, koente ich machen. Ich moechte es aber wenn moeglich eleganter hinkriegen/hintricksen. mg, Johannes
@robert das mit dem 1Wire ist eine interessante Sache, aber da ich ueber diese Leitung nicht nach belieben verfuegen kann gehts damit nicht. Die Leitung ist normalerweise fuer etwas anderes vorgesehen, sie ist fest installier und das einzige was ich daran machen kann ist den Schalter druecken, und in der Software ein Event ausloesen. Alles was dazwischen ist(HW, SW im Phantom-Geraet selber, FireWire Port...) kann ich nicht beeinflussen. Ich moechte diesen Knopf an einen uP Pin haengen, und Sensor Informationen ueber diese "schnittstelle" in meine SW bringen. Wenn mir das so gelingt, brauche ich keine zusaetzliche externe HArdware (serielle Schnittstelle oder USB etc...) Das waere eben fein.
Ich meinte das ohne zusätzliche Hardware. Auf AVR-Seite kannst du das eingebaute UART verwenden, auf PC-Seite musst du die Zeitpunkte der eingehenden Events auswerten. Die mögliche Baudrate wird aber vermutlich sehr niedrig sein. Falls deine Hardware nur einen Event bei Knopfdruck auslöst, nicht je einen bei steigender und fallender Flanke, dürfte das allerdings nochmals komplizierter werden.
Also mit den Events die die Software generiert, kommt man auf eine Baudrate von sage und schreibe 25 Bit/Sekunde. Macht knapp ueber 4 Byte pro Sekunde.Wow! ...immerhin besser als gar nix, aber fuer meine Anwendung natuerlich unter aller Sau Ich muss mir prinzipiell was anderes Ueberlegen. mg, Johannes
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.