hui, dann muss ich mich aber ranhalten. Kannst du mir noch einmal eine genaue Beschreibung der Aufgabe geben ? Danke.
mfG Sebastian
Na dann bist Du ja auf dem besten Weg. Bis Sonntag 20 Uhr läuft der Wettbwerb 1.2 noch. Dann dürfen die Forumsleser über den Gewinner entscheiden.übrigens das Programm läuft mitlerweile. ASURO verfolgt Linien, weicht Hindernissen aus und sucht sich dann wieder neue Linien. Sieht lustig aus *g*
Gruss,
stochri
hui, dann muss ich mich aber ranhalten. Kannst du mir noch einmal eine genaue Beschreibung der Aufgabe geben ? Danke.
mfG Sebastian
Die Beschreibung findest Du hier:
https://www.roboternetz.de/phpBB2/vi...1aeed50733ef35
gleich ganz oben.
Gruss,
stochri
Moin,
Ich weiß nicht ob ich das schaffe, da meine ODOs leider immer noch nicht funktionieren. Die werde ich schon brauchen um die Wegstrecke zu erfassen, um zur Anfangsposition zurückzukehren. Weißt du was das sein kann ? Von der Odometrie bekomme ich einfach keine Daten. Beim ASURO Selbsttest funktionieren die Sensoren auch schon nicht. Ich habe schon alles durchgemessen und auch schon sämtliche Widerstände getauscht.
mfG Sebastian
Hallo Bremer,
folgender Vorschlag:
Schreibe ein kleines Programm, welches die Lichtwerte der Odometriesensoren auf die serielle Schnittstelle ausgibt ( In der weja-lib findest Du die printInt-Funktion ).
Dreh die Räder ein wenig und poste die Werte im Forum.
Sind die IR-Leds an den Rädern richtig rum eingelötet ? Überprüfe die Werte der Odometriesensoren mit ein- und ausgeschalteten IR-Dioden.
Ändere die Umgebungshelligkeit und schau Dir die Werte an. Die Odometriesensoren sind empfindlich auf Umgebungshelligkeit und funktinieren bei direkter Sonneneinstrahlung meistens nicht mehr.
Falls Dich das stört, baue Schutzkappen über die Radsensoren.
Wenn Du das Ausleseprogramm geschrieben hast, kannst Du es hier im Forum posten, dann können es Leute mit ähnlichen Problemen auch verwenden.
Gruss,
stochri
Ich hatte bei meinem Asuro das Problem, daß ich an einer der IR-Dioden eine Kaltlötstelle eingebaut habe.
Ist ein böser Fehler an der Stelle, weil sie in Reihe liegen und dann keine von den beiden funktioniert. Vielleicht hast Du auch sowas...
Gruß Sebastian
Moin,
ich ahbe ein kleines Programm geschrieben, mit dem man feststellen kann, ob und welcher Odometriesensor funktioniert und welcher nicht.
Man muss dazu die Räder und die Encoderscheiben abbauen und ein Terminalprogramm starten. Wennman jetzt vor einen der Sensoren ein weißes Blatt hält, steht im Terminalprogrammfenster immer wieder,vor welcher Seite man das Blatt hält. Bei mir habe ich festgestellt, dass selbst bei ausgeschalteten IR-Dioden immer nur rechts kommt. Ich erkläre mir das so: Weißes Blatt Papier vor dem Sensor heißt gleich Nullsignal am Eingang, wie man in der Doku lesen kann. Also heißt ein defekter Transistor oder eine defekte IR-Diode auch Nullsignal. Da mein rechter Sensor immer null ist egal was anliegt, denke ich, dass entweder Diode oder Transistor kaputt sind. Mit meinem ASURO hatte ich bis jetzt eh nicht viel Glück. Der linke Motor hat einen Lagerschaden und das schon von anfang an. Sieht nach einem Herstellungsfehler aus. Muss ich bei Gelegenheit mal austauschen, sonst fährt mein ASURO bei Geradeausfahrt immer nur Linkskurven *g*. Wenn ihr Fragen zum Programm habt oder etwas damit nicht stimmt, lasst es mich wissen.
mfG Sebastian
Code:#include "asuro.h" /*************************************************************************** * * * Dieses Programm ist für den ASURO Roboter * * * * Odometriedaten über die Infrarotschnittstelle auslesen * * * ***************************************************************************/ /*************************************************************************** * * * Mit diesem Programm sollen die Werte der Odometriesensoren ausgelesen * * werden und über die IR-Schnittstelle an den Computer übergeben werden, * * damit man eventuelle Fehler oder ein Nichtfunktionieren der Sensoren * * erkennen und beheben kann. Vor dem aus lesen müssen die Räder und die * * Encoderscheiben entfernt werden. Außerdem muss das Windows Terminal- * * programm gestartet werden. Das Terminalprogramm sollte immer nur die * * Seite anzeigen, vor der ein weißes Blatt Papier gehalten wird. * * * ***************************************************************************/ /*************************************************************************** * * unsigned int data[2]; = Speicher für Odometriesensoren reservieren * * data[0] = linker Sensor (T11), data[1] = rechter Sensor (T12) * * Autor: Sebastian Reiff ,2005 * ****************************************************************************/ int main(void) { unsigned int data[2]; Init(); while(1) { data[0]=0; data[1]=0; OdometrieData(data); if(data[0]>data[1]) { SerWrite("links",5); Msleep(200); } else { SerWrite("rechts",6); Msleep(200); } } return 0; }
Hallo Bremer,
in meinen Augen wäre es besser, wenn Du Dir die gemessenen Werte auf den Terminal schickst, und zwar beide abwechselnd mit einer dicken sleep Schleife zwischen,
Wenn Du dann mit einer Taschenlampe auf die Transistoren leuchtest kannst Du besser prüfen, woran es liegt.
Gruß Sebastian
Moin,
ja das war auch meine erste Idee. Leider weiß ich nicht, wie ich an die Daten rankomme. Ich habe zwar meinen Speicherbereich data[1] und data[2] aber ich weiß nicht, wie ich an die Zahlenwerte komme, die dahinter stecken. Kann mir da jemand helfen ? So gut kenne ich mich noch nicht damit aus.
mfG Sebastian
Lesezeichen