Hallo, ich hab mir ein kleines Programm in C geschrieben welches per Joystick zwei Servos steuern soll. Der Arduino Uno ist mit einem WLAN Modul(RedFly-Shield) ausgestattet. Auf dem Arduino läuft ein Programm(Server) welches auf eine Verbindung wartet. Starte ich das Client Programm auf einem Linux System verbindet es sich zum Arduino und übermittelt ihm vorerst mal nur die Joystick Koordinaten der X-Achse. Das funktioniert auch soweit, aber nur sehr langsam. Starte ich hingegen auf einem Linux den Server und stelle lokal eine Verbindung her, so werden die Daten recht zügig übertragen. So nun zu meiner Frage. Warum ist Übertragung so arg verzögert? Liegt es an der WLAN Verbindung bzw. am RedFly-Shield oder liegt es vllt. an der Taktfrequenz des Arduinos? Vielleicht könnte es ja noch andere Ursachen geben. Die WLAN Verbindung würde ich gerne ausschließen, sind ja nur geringfügige Daten die übertragen werden. Grüße Jürgen
Eine gewisse Verzögerung hat man durch WLAN auf jeden Fall, so ca. 10-20 ms. Was bei der Geschwindigkeit beim RedFly viel ausmacht, ist die Baudrate mit der die Kommunikation zwischen Arduino und WiFi-Modul abläuft. Diese kann man mit der init() Funktion einstellen: RedFly.init(115200, HIGH_POWER); //Standard: 9600 Hier ist auch ein ähnliches Projekt: http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoWifiServeurControleServox2PanTilt Gruß Andreas
Hi, Der Author in dem Link den du beigelegt hast, nimmt auch die Baudrate 9600. Ich hab testhalber trotzdem mal 115200 ausprobiert, konnte aber keine nennenswerte Verbesserung feststellen. Leider kann ich kein französisch, somit bringt mir der Artikel wenig. Danke trotzdem. Hast du vielleicht noch einen Vorschlag? Gruß Jürgen
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.