PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RnFunk/EasyRadio sendet manchmal blödsinn!



strunz
22.04.2006, 16:45
Hallo Leute,

ich benutze einen ATMega32 mit BootLoader MegaLoar V4.02 von Microsyl und RnFunk mit dem EasyRadio Modul.

Nun habe ich aber aber 2 Probleme damit:

1. Ich kann den Controller nicht über Funk flashen. Warum?
2. Wenn ich den Controller mit Kabel betreibe ich alles bestens, er tut was er soll. Wenn ich den Controller aber über Funk betreibe funktionieren nur ein paar Befehle richtig.

Es sieht für mich so aus, als ob die Zeichen per Funk nicht richtig ankommen, Weiss einer wieso das so ist?

Für Tipps wäre ich sehr dankbar.

Florian
22.04.2006, 16:53
Hallo strunz!
Mit welcher Baudrate sprichst Du mit dem EasyRadio-Modul?
Voreingestellt sind 19200 Bd, wenn Du zu viel schickst kann es einen Speicherüberlauf geben.
Ich denke, dass es an der Geschwindigkeit liegt!

strunz
22.04.2006, 16:54
ich benutze 9600Bd, habe das bereits umgestellt. Soll ich noch langsammer werden?

Florian
22.04.2006, 16:57
Hallo strunz!
Wenn Du 9600Bd verwendest musst Du das auch im ER-Modul umstellen, das geht mit den Befehlen (kann ich nicht auswendig) im DB!

strunz
22.04.2006, 17:01
Jaja, das habe ich schon gemacht, sonst würde ja garnix gehen. Wie gesagt manche Befehle Funktionieren wunderbar, ander machen Müll (aber nur über Funk)

tobimc
22.04.2006, 17:05
HI

Hm; im Normalfall sollte das locker gehen...
Hast du irgendeine Flusskontrolle......?

Welche Sendeleistung verwendest du, und wie weit sind die module voneinander entfernt?

Hm Pegelwandler benutzt du natürlich keinen.

Welcher Strom / welche Spannung stehen zur Verfügung?

VLG Tobi

strunz
22.04.2006, 17:09
Hallo,

Flusskontrolle?? Was meinst du damit, ob mir meine Empfangseinheit eine Bestätigung zurückschickt? Nein, dass nicht.

Ich sende über die Seriele schnittstelle RxD/TxD

Entfernung keine 2Meter.

Zuerst habe ich das mit Akkus betrieben, jetzt mit Netzteil (7,5 V/4A)

Ich bin langsam am verzeifeln!

Florian
22.04.2006, 17:15
Also ich hatte damals mit meinem ER-Modul das Problem, dass der Buffer-Speicher voll war und ich weitergestopft habe, danach kam natürlichz nichts vernünftiges mehr raus! ;o)
Hast Du schonmal versucht mit dem Terminal einzelne Zeichen zu senden?

tobimc
22.04.2006, 17:17
Hi

Nein, dass nur bestimmte Daten zum Funkmodul gelangen.

Keine 2 Meter?
Geh mal auf volle Sendeleistung: ER_CMD#P9 (beide Module)

7,4V haben weder das Easy Radio noch dein AVR gern. Die grillen sich ab 5,5V.
...Ich hoffe die stabilisierst du auf 5V...

VLG Tobi

strunz
22.04.2006, 17:21
Ja, dass machen die RNFunk boards doch automatisch, die haben nen 7805.

Ich bin bereits auf ER_CMD#P9, war vom Werk aus eingestellt.

Also Flusskontrolle habe ich nicht, wie stelle ich das an? Muss ich da was an den EasyRadio´s einstellen, oder an meiner SenderSoftware?

tobimc
22.04.2006, 17:47
Hi

Hrrm. Überprüf mal deine Platinen auf Fehler

-> Hast du mal RxD mit TxD verwechselt?

VLG Tobi

strunz
22.04.2006, 18:01
Fehler kann ich deswegen ausschliessen, weil wenn ich dem Roboter Steuerbefehle zum Fahren gebe (rechts, links, vor, stop, zurück, linie nachfahren, usw... ) funktioniert es wunderbar.
Sobald ich aber über eine TrackBar (Schieberegler) meine Kamera die auf einem Servo hockt drehen will macht der Roboter irgendwelche willkürlichen sachen.
Aber halt nur über Funk, über Kabel funktioniert das auch wunderbar!!!

Kann es sein, das er die Daten vom Schieberegler zu schnell bekommt, oder sowas?

Florian
22.04.2006, 18:42
Kann es sein, das er die Daten vom Schieberegler zu schnell bekommt, oder sowas?Das wird das Problem sein!
Ich hatte es ja bereits angedeutet:

Also ich hatte damals mit meinem ER-Modul das Problem, dass der Buffer-Speicher voll war und ich weitergestopft habe, danach kam natürlichz nichts vernünftiges mehr raus! ;o)

strunz
22.04.2006, 19:07
Sorry, ich hab dich vorhin ganz überlesen, weil tobimc direkt nach dir geantwortet hat.
Hast du vielleicht ne ahnung wie ich das kompensieren kann?

Meine Steursoftware ist in VisualBasic und die Controllersoftware in BASCOM AVR.

Florian
22.04.2006, 23:13
Hallo strunz!
Probier's mal mit einer kleinen Wartepause alle paar Bytes (max. Buffergröße), damit das Modul zwischendurch mal durchatmen und senden kann, sonst staut das Modul und überschreibt Daten.
Ich meine da stand was im Datenblatt!

Rage_Empire
23.04.2006, 16:09
Oder verwende ein Übertragungsprotokoll mit NACK und NACK. Ein gängiges Protololl wäre das S.N.A.P-Protokoll, jedoch kannst du auch dein eigenes Ding machen. Ich wür jedenfalls eine Checksumme mit integrieren.

strunz
23.04.2006, 16:35
ok, danke an euch alle.
Ich bin das Problem jetzt so umgangen, indem ich dem Schieberegler nur 10 Werte zur verfügung gestellt habe. Somit kann er nicht mehr als Positionene für meine Kamera senden, aber es reicht mit völlig.

Alles andere ist mir zu aufwending, vor aller, da ich keine größere auflösung brauche.

Also danke nochmal.

Florian
23.04.2006, 17:06
Hallo Rage_Empire!
Das geht leider mit den ER-Module nicht, die haben nunmal das feste UART-Protokoll!

Hallo strunz!
Ein paar mehr Positionen kannst Du ruhig machen, das bringt das Modul auch nicht um.
Du könntest auch den Busy-Pin verwenden, damit könntest Du die Empfangsbereitschaft erkennen.

strunz
23.04.2006, 17:11
Ja, da hast du wohl recht.
Ich vermute inzwischen, das der fehler woanders liegt.
Nämlich:
Mein Servo benutzt die selbe Spgsversorgung wie das Funkboard.
Sobald der Servo "dreht" bricht die Spannung am Board kurz zusammen.

Ich glaube das reicht schon aus um Falsche Signale zu senden. Versuche gleich den Servo und das FunkBoard mit einem Condensator zu Puffern oder ganz verschiedene SpgsQuellen einzusetzten.

Florian
23.04.2006, 17:16
Hmm ... wenn es daran liegt ist das natürlich ärgerlich! ;o(

strunz
23.04.2006, 17:37
So, hab das jetzt getestet, aber liegt anscheinend doch nicht daran.
Mein Controller hängt sich auch auf, wenn der Servo garnicht mit Spg versorgt ist.

Ja, das wäre zwar ärgerlich, aber wenigstens hätte ich das Problem dann ausgemacht.

Also, wenn ich den Servo langsamm verstelle, funktioniert die ganze geschichte. Sobald ich ruckartig hin und her scrolle (am Schieberegler) hängt sich mein Controller auf und macht garnix mehr. Muss dann frisch reseten.

Florian
23.04.2006, 17:53
Hallo strunz!
Hast Du ein Oszi zur Hand?
Kannst Du testen wie oft, wann, wie viel und wie lange der PC Daten sendet?

strunz
23.04.2006, 18:00
Ein Oszi habe ich nur im geschäft (heute ist sonntag ;-))

Aber das habe ich anders gemacht:

Ich habe an meiner Seriellen Schnittstelle denn RxD und TxD Pin kurzgeschlossen. Nun empfange ich genau das was ich sende. Das was ich empfange lasse ich mir in einer TextBox anzeigen.

Ergebis: Die Signale sind alle in Ordnung, also es kommt das an was ankommen muss. Das hat mich aber nich gewundert, denn wie gesagt über Kabel Funktioniert die ganze Geschichte ohne Abstürtze.

Florian
23.04.2006, 18:05
Naja, ich glaube Du hast mich falsch verstanden! ;o)
Aber das die Daten richtig ankommen freut mich trotzdem! *g*
Wenn Du an dem Schieberegler eine kleine Bewegung machst, wie viele Bytes sendet der PC dann an einem Stück?
Hat das ER-Modul noch Zeit zu senden?

strunz
23.04.2006, 18:14
Achso,

ich habe eine Skala mit 10 Strichen, pro Strich sende ich 1Byte (48 bis 57). Je nachdem welchen Wert mein Controller empfängt stellt er den Servo auf eine andere Position. So kann ich 10 Positionen fahren.

Wenn ich den regler langsamm verstelle (1 position pro Sekunde) ist das auch über Funk kein Problem.

Aber wenn du sagst, das ER Modul hat einen Puffer von 128Byte dann könnte ich rein Theoretisch 128 Positionsänderungen machen...
Das schafe ich aber garnicht, vorher macht mein Roboter ganz selbstständig irgendwelche faxen(wie zB rückwärtsfahren oder so).

Also bin ich mir schon ziemlich sicher, dass da einfach falsche Signale ankommen.

Florian
23.04.2006, 18:19
Hmmm, das ist in der Tat komisch!
Hast Du noch irgendwelche Geräte in dem Zimmer/Haus?
Aber das kann's ja eigentlich auch nicht sein, sonst müsste es ja auch die 10 Byte stören ...
Lass doch einfach mal den AVR ein paar Werte, vielleicht so 1000 senden und schau, wie groß die Zeitpausen alle paar 128 Byte sein müssen, damit alles ankommt!
Wenn das funktioniert, dann reden wir weiter, anders weiß ich leider auch langsam nicht mehr weiter. :o(

strunz
23.04.2006, 18:23
Ok Florian,

danke dir trotzdem vielmals. Ich schau mal was ich noch ausprobieren kann.
Wenn dir noch was einfällt; du weist wo du mich findest :-)

Also danke.

Florian
23.04.2006, 18:28
Kein Problem, ich tue mein Bestes! :o)

Willa
28.11.2007, 23:43
Hi! Also dieser Thread ist ja nun wirklich uralt, aber ich glaube ich weiss die Lösung... Und vielleicht sucht ja irgendwann mal jemand nach einer.
Du steuerst deine RS232 Schnittstelle über VB an wenn ich mich richtig erinnere. Wahrscheinlich sendest du an diese schnittstelle jedesmal einen befehl wenn du deinen schieberegler änderst ("on change"). Das überfordert das Easy radio, denn es kann nur mit ca. (grob geschätzt) 10 Hz daten empfangen. Also nehme einfach einen Timer bei dem du mit 10 Hz die stellung deines schieberegler abfragst und das ergebnis an die rs232 schnittstelle sendest.
Kann aber auch sein dass ich schwachsinn erzähle, ausprobieren schadet aber nie.
MfG William