Entschuldige damaltor,
unterm Strich hast du Recht, dass man nicht sofort loshacken darf.
Aber hat hier einer rumgehackt?
rideyourstyle schreibt allgemein zum Schulproblem. Dem stimme ich bei meinen beiden 'Muster'-schülern zu. Ohne Internet, Papa und Mama läuft da in manchen Fächern nur die 'große Rede' von Zukunftstechnik.
oberallgeier macht hier schon eher Ernst. Frage rein und fertige Antwort aus dem Internet-Lösungs-Generator rausholen ist ja wohl wirklich das Letzte. Wenn man nun auch noch mal dem Link aus oberallgeier's ersten Beitrag folgt, dann findet man ein weiteres Problem. Zum Glück hat oberallgeier ja noch einen Textfetzen retten können von dem nun schamhaft gelöschten ursprünglichen Beitrag. Warum nicht zu seinem Unwissen stehen? Gute Frage -> in der Regel gute Antwort. -> Schlechte Frage -> Löschen?
pinsel120866 stellt allgemein die Intension der Frager in den Raum. Auch mir geht es manchmal sehr ähnlich, wenn man mal mehrfach Unterstützung geliefert hat, die (zumindest bei mir) einige Mal im Stundenbereich meine Zeit gekostet hat, und selbst auf ausdrücklichen Wunsch nach Response dann nichts mehr kommt.
Immerhin hilft pinsel120866 ja nun auch noch mit einem in der deutschen Sprache nicht selbstverständlichem Wort.
Du selber lieferst eine Unterstützung, die, wenn wir es mal ganz ehrlich nehmen, eigentlich auch von R0µ30 selbst hätte ausprobiert werden müssen.
Seit dem 05.09.2007 im Forum, also seit 10 Monaten, und das Suchen ist noch nicht erfolgreich?
Entschuldige R0µ30, aber auch hier bist du noch eine Antwort schuldig.
Nun aber zum Thema:
Deine Aufgabenstellung R0µ30 besteht aus 2 Teilen.
1) Du musst geradeaus fahren.
2) Du musst Daten sammeln und zum PC senden.
zu 1)
Um geradeaus fahren zu können, musst du die beiden Räder 'nur' gleichschnell drehen lassen.
Um das zu erreichen, gibt es 2 Möglichkeiten:
1a)
Ausprobieren, mit welchen Werten der Asuro in der Funktion MotorSpeed() möglichst geradeaus fährt. (Das wäre ein klein bisschen Mogeln, sollte aber vom Lehrer akzeptiert werden, wenn du erklären kannst warum du das so machst.)
1b)
Du nutzt die Daten der Odometrie und rechnest dir daraus eine Zahl, die du dann als Differenz in die MotorSpeed()-Funktion packst.
Mit der Funktion OdometrieData() bekommst du die aktuelle Helligkeit an der Odometrie. Du musst ständig diese Funktion aufrufen, und 'nur' versuchen einen Wechsel der schwarzen/weißen Flächen am Getriebe zu ermitteln.
Das ist als Anfänger eigentlich nicht zu schaffen.
--> Nutze lieber 1a)
zu 2)
Hier ist ein 'kleines' Problem bei der Erfassung der Daten und dem Senden zum PC vorhanden.
Wenn du, so schnell wie es der Asuro schafft, die Daten sammelst, bekommst du ca. alle 2 ms Messwerte. (rechte und linke Seite)
Nun musst du die Werte zum PC senden. Für nur ein Zeichen benötigt die Datenübertragung aber schon ca. 5 ms da die Sendegeschwindigkeit nur 2400 Baud (240 Byte pro Sekunde) schafft.
Für beide Seiten sind das dann 10 ms zum Senden zu 2 ms Datenerfassungszeit.
Ein weiteres Problem: Die Daten kannst du nicht einfach so senden, da das am PC dann keine lesbaren Zahlen mehr sind. Umwandeln dieser Messwerte in lesbare Zahlen ergibt dann pro Seite aber schon mindestens 3 Byte. Sind dann also mindestens 7 Byte Text. 3 Byte Zahl links PLUS Leerzeichen PLUS 3 Byte Zahl rechts. Also 7 * 5 ms zu 2 ms.
Auch hier 2 Lösungen:
2a)
Du sendest die Zeichen nachdem du sie zu einem Text umgewandelt hast und liest danach mit OdometrieData() neue Werte. Was dann nachher in der Tabelle ist, sind die Zahlen, aber sie können nicht mehr sinnvoll ausgewertet werden, da zu viele Messwerte zwischen den Schwarz-/Weißwechseln fehlen.
2b)
Du sammelst die Messwerte, OHNE sie sofort zum PC zu senden im Speicher. Erst wenn der Speicher voll ist, sendest du die Daten aus dem Speicher zum PC.
Du hast ja im Asuro 1000 Byte Speicher zur Verfügung. Wenn du 900 Byte zum speichern nutzt (IMMER etwas frei halten für andere Zwecke), dann kannst du pro Radseite 450 Messwerte speichern.
Pro Messwert ca. 2 ms, und dein Speicher ist nach ca. 450 * 2 ms voll. Keine Sekunde ist das!!!
Nun noch diese Daten zum PC senden. Eine 2.te Schleife nach dem Sammeln der Daten.
Hier solltest du zwischen dem Sammeln und dem Senden unbedingt mit PollSwitch() auf einen Tastendruck warten, da du sonst bestimmt nicht den Asuro gegenüber dem PC-IR-Empfänger stehen hast und deine gesammelten Daten nicht im PC ankommen.
So, genug gemotzt und geholfen.
Ich wünsche euch ein schönes Pfingsten, viel Sonne und (trotz meines Grummelns) gute Laune.
Gruß Sternthaler
P.S.: Ich bin über Pfingsten computerlos und kann hier frühestens am Dienstag weiter helfen.
P.P.S.: Auch hier die Bitte um einen Response was denn so in der Schule aus dieser Aufgabe geworden ist.
Lesezeichen