-         

Ergebnis 1 bis 5 von 5

Thema: RC-Fernbedienung: in weniger als 1 sec. 1 Byte übertragen?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    23
    Beiträge
    449

    RC-Fernbedienung: in weniger als 1 sec. 1 Byte übertragen?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo!

    Ich habe den RP6 (Roboter) und möchte jetzt über die serielle Schnittstelle an einem alten Laptop Befehle an ihn senden.

    Ich war schon soweit:
    Fernbedienung an RS232 (ohne irgendeine Zwischenschaltung)
    Ausgang vom Empfänger an Eingang vom RP6.
    Dazu muss gesagt werden: Die Fernbedienung ist aus einem alten Spielzeugauto, kann also 2 Motoren in 2 Richtungen bewegen und anhalten.
    Das kann ich auch alles problemlos mit dem RP6 auslesen

    Das Problem:
    Das dauert viel zu lange, bis 5 Bit (32 Befehle reichen) empfangen worden sind: 2.5 - 3 sec. !!
    Das ganze sieht so aus:
    1. 500 mSec. High (damit der Robo merkt das ich was senden will)
    2. Im 500 mSec.-Schritt die Ausgangsleitung auf Low oder High ziehen (je nach aktuellem Bit)
    3. fertig (Es wird nicht überprüft, ob die richtigen Daten angekommen sind)

    Ich nehme desshalb immer 0.5 Sekunden, weil sonst der Empfänger oft das Senden gar nicht mitkrigt

    Sichere Datenübertragung: kein einziger Übertragungsfehler (hab ca. 100 Zahlen von 0-32 gesendet)
    Reichweite: vom 2. Stock bis in den Keller (mit geschlossen Türen, Wänden und Co dazwischen)

    Passt also, bis auf die Geschwindigkeit..
    Die 2 Leitungen pro Motor können ja 3 Zuständen haben (rechts, links, gar nichts)
    Mir würde 1 Signal (ein/aus) anstatt 2*3 Zustände aber auch schon reichen, wenn dafür die Geschwindigkeit höher wird..

    Jetzt die Master-Frage:
    Kann man Kanäle durch Geschwindigkeit ersetzen???
    (bildlich gesprochen )

    Oder fällt euch eine Datenübertragung ein, bei der man alle Zustände nutzt und somit unter 1 sec. kommt?? (Was vielleicht einfacher währe)

    Schaltplan von Sender&Empfänger: nicht vorhanden
    (ich bin mir auch nicht sicher ob ich den im I-net finde)
    Ich benutze 27 Mhz falls das von Belangen sein sollte.

    MFG
    -schumi-

    PS:
    Ich kenne viele Beiträge wie "RP6 mit Pfeiltasten steuern", bringt mir aber nichts weil ich auch Geschwindigkeit etc. regeln will, oder vom RP6 zum PC Messergebnisse senden, mit ein paar Bytes lässt sich viel anstellen
    Ich weis auch von den Modulen beim großen C, Pollin, Reichelt usw., die sind mir auch nicht zu teuer, aber die Versand-&Nachnahmekosten für 2 oder 4 kleine Platienchen schon

    Ach, und noch was:
    Ich möchte NICHT die Frequenz verändern oder ähnliches, um mich damit strafbar zu machen

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Also normalerweise verwendet man hier z.B. auch Interrupts; dann muss man nicht warten, bis der RP6 irgendwann mal dazu kommt um nachzusehen, ob was da ist.
    Wenn ein Interrupt ausgelöst wird, schaut der Controller im Prinzip "sofort" nach, was denn los ist. Also ich denk mal, dass man so dann in 1 Sekunde problemlos auf ne 3 bis 4-stellige (wenn nicht mehr) Anzahl an Befehlen kommen kann.
    #ifndef MfG
    #define MfG

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.03.2010
    Beiträge
    161
    Diese Fernbedienung wirst Du wohl kaum schneller bekommen. Am einfachsten ist wohl ein Bluetooth Modul (BTM-222) oder die Funkmodule von Pollin. Die sind auch schön billig und bereiten die Daten schon durch einen integrierten Mikrocontroller auf. Du musst nur noch seriell (SPI) andocken.

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Hallo

    Fernbedienung an RS232 (ohne irgendeine Zwischenschaltung)...
    Bitte beschreibe doch mal genauer wie das angeschlossen ist. Wird die Fernbedienung aus der RS232-Schnittstelle versorgt und für jedes Bit nur ein- oder ausgeschaltet? Was genau erkennt der RP6 beim Empfänger? Um die Drehrichtungen am Empfänger zu erkennen könnte man die Motoren des RC-Models durch vier Optokoppler ersetzen.

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    23
    Beiträge
    449
    @Jaecko:
    Das Teil was ich bei 1. hingeschrieben hab ist ja quasi mein Interrupt. Der (und auch alle anderen Signale) dauert nur deswegen so lange, weil der Empfänger sonst nicht mitkriegt das am Sender ein Signal anliegt
    Die Signale dauern im übrigen ganz genau genommen 520 msec., 10 mSec. kürzer und es funktioniert schon nicht mehr.


    @s.frings:
    Ja, ich weis: Billig, einfach zu handhaben, schnell. Aber gleich eine ganze Bestellung für ein paar Kleinteile rechnet sich einfach nicht. Und einen Bastelladen um die Ecke habe ich leider nicht...


    @radbruch:
    Bitte beschreibe doch mal genauer wie das angeschlossen ist. Wird die Fernbedienung aus der RS232-Schnittstelle versorgt
    Die Betriebsspannung kommt aus einem 9V-Blockakku

    An der Ferbedienung sind pro Hebel (2 Richtungen, z.B. vor/rückwerts) ja 2 Schalter: entweder beide aus oder einer davon an
    An den Schaltern ist ein Pol GND, also an GND von der RS232 angeschlossen.
    Der andere Pol ist immer mit einem Ausgang der RS232 verbunden. Vorwiderstand ist nicht nötig, denn in der Schnittstelle selbst sind ja schon welche mit etwa 400 Ohm eingebaut

    für jedes Bit nur ein- oder ausgeschaltet?
    Je simpler desto geringer das Fehlerrisiko --> richtig. Das hat auch gleich aufs 1. mal hingehauen, was ja nicht allzu häufig vorkommt

    Um die Drehrichtungen am Empfänger zu erkennen könnte man die Motoren des RC-Models durch vier Optokoppler ersetzen
    Optokoppler - und gleich 4 Stück... bei mir hats ein ganz normaler 3 MegaOhm Widerstand auch getan. Der hat den Motor ersetzt und an den beiden Enden ist jeweils ein Eingang des RP6 angeschlossen
    musste halt ein bischen ausprobieren, bis ich den richtigen R hatte...


    Kleiner Denkanstoß (Könnte auch sein das das ganze völliger Mist ist ):
    man kann mit so einem Auto mit so einer Fernsteuerung ja folgende Richtungen fahren/lenken:
    1. Vorwärts
    2. Vorwärts-rechts
    3. Vorwärts-links
    4. Rückwerts
    5. Rückwerts-rechts
    6. Rückwerts-links
    7. Nur links
    8. Nur rechts

    8 Zustände also (ohne den Garnichtsmach-Zustand)
    Binär währen das (logarithmus von 8 zur Basis 2) 3 Bit
    Würde man das umgehen und nur noch 1 Bit senden können, währe das Ding ja eigentlich schon mal 3 mal schneller, oder??

    MFG + Vielen Dank für eure Hilfe
    -schumi-


    EDIT:
    bin grade auf eine PDF im i-net gestoßen, die anscheinend genau das macht was ich will!
    http://www.mikrocontroller.net/attac...91/RC_Funk.pdf
    Ziel ist es mit möglichst einfachen Mitteln eine serielle Kommunikation zwischen zwei nicht
    miteinander verbundenen Systemen zu erstellen. Die Kommunikation soll nicht schnell sein,
    sondern zuverlässig. Nicht schnell bedeutet hier 1 Byte pro Sekunde. Die Abstände
    zwischen Sender und Empfänger sollen im Bereich zwischen zwei und zehn Metern liegen.
    Werde mich damit mal ausführlich befassen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •