PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ASURO: mitgelieferte Demoprogramme



waste
20.05.2005, 21:13
Hallo ASURO-Freunde!

Ich habe nun auch seit ein paar Tagen den Asuro. Die anfänglichen Probleme mit dem Flashen und der Tastenerkennung habe ich dank diesem Forum schnell gelöst. Nun habe ich entdeckt, daß einige Demoprogramme (IRDemo, LineDemo, PCDemo und RechteckDemo) mitgeliefert wurden. Bevor ich eigene Programme schreibe wollte ich diese natürlich zuerst ausprobieren. Ich komm da aber nicht rein. Laut Sourcecode in main.c sollte man nach dem Einschalten die Reflexlichtschranke des linken Rades 10mal triggern, dann würde das Programm anstatt des Selbsttests die Demoprogramme ausführen. Ich habe nun festgestellt, daß meine ausgelesenen Odometriedaten nicht die geforderten 200 unterschreiten. Den Grenzwert muß ich bei mir noch ändern damit es mit dem Testen weitergehen kann.

Nun aber meine Frage: Gibt es irgendwo eine Beschreibung zu diesen Demoprogrammen oder muß ich mich da selber einarbeiten?

Gruß Waste

MSSputnik
20.05.2005, 23:39
Hi,

habe leider nichts dazu auf der CD gefunden.

Vorallem nutzen die 2 Funktionen, die ich mir bis jetzt angesehen habe (Rechteck und LineDemo) nicht die Funktionen, wie sie in der Anleitung beschrieben sind sondern implementieren sie neu. Mit Interruptroutine und so. Finde ich irgendwie blöd so ohne Beschreibung.

waste
21.05.2005, 19:48
So wie es aussieht, muss ich mich wohl selbst durch die Sourcecodes wühlen.
Also nachdem ich bei mir den unteren Odometriegrenzwert auf 400 erhöht habe, komme ich jetzt durch Drehen des linken Rades in die Demoprogrammauswahl. Jetzt kann man durch Drücken einer der Tasten 3 bis 6 am Asuro die Demoprogramme auswählen.

Taster 6: LineDemo
Taster 5: RechteckDemo
Taster 4: PCDemo
Taster 3: IRDemo

Mit PCDemo lässt sich der Asuro über die IR-Schnittstelle vom PC aus steuern. Die Steuerung ist folgende:
Taste 8: schneller, vorwärts
Taste 2: langsamer, rückwärts
Taste 4: links
Taste 6: rechts
Taste 5: stop

Weitere Demoprogramme habe ich noch nicht getestet.

Gruß
Waste

waste
21.05.2005, 20:35
Ach ja, ich hab noch was zur PCDemo vergessen. Die Fronttaster werden auch ausgewertet. Fährt der Asuro gegen ein Hindernis, so fährt er kurz rückwärts und hält dann an. Gleichzeitig zur Steuerung der Motoren werden noch die LEDs angesteuert. Je nachdem ob er vorwärts, rückwärts , links oder rechts fährt leuchten unterschiedliche LEDs.

Gruß
Waste

Rubi
22.05.2005, 18:32
Hallo

Habe Asuro gerade mit hilfe des Linienfolger Demo beigebracht einer Linie zu folgen, mußte aber die kritischen Werte wie Geschwindikeit ändern, weil er bei der scharfen Kurve gerne herausflog,...

Siehe:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=9491

Um das Demoprogramm aufzurufen, welches Du verwenden möchtest, ändere einfach main().

int main (void)
{
unsigned int i,data[2];
unsigned char count = 0,flag = FALSE;
Init();
LineDemo();
return 0;
}

LG
Michael

inka
01.01.2007, 15:47
hi waste,

wo hast du den unteren Odometriegrenzwert auf 400 geändert?

danke inka

waste
02.01.2007, 22:53
Hallo inka,

in main.c gibt es folgende Zeile:
if ((data[0] < 200) && (flag == TRUE)) {count ++; flag = FALSE;}
Da einfach den Wert 200 auf 400 ändern.

Waste

inka
04.01.2007, 15:52
hi waste,

selbst wenn ich den wert in den originalfiles ändere, komme ich nicht in den demomodus...
2tes problem:
der asuro fährt nach dem kompilieren der Linedemo.c (und h, incl. der asuro.c und h und der main.c) überhaupt nicht los...

was mache ich falsch???

gruß inka

waste
04.01.2007, 20:57
selbst wenn ich den wert in den originalfiles ändere, komme ich nicht in den demomodus...
Funktioniert denn der Odometrie-Sensor-Test im Selbsttest? Wenn ja, dann den Wert auf 512 erhöhen. Ansonsten ist Fehlersuche angesagt, also Ausgabe der Odometriewerte auf das Hyperterminal, Überprüfen auf richtigen Einbau der Bauteile und der Lötstellen usw.

der asuro fährt nach dem kompilieren der Linedemo.c (und h, incl. der asuro.c und h und der main.c) überhaupt nicht los...Aus der Ferne sehr schwierig eine Diagnose abzugeben. Das musst du selber herausfinden. Zuerst überprüfen, ob die Hardware in Ordnung ist. Dann Testfunktionen in die Software einbauen um zu sehen, ob bestimmte Programmteile aufgerufen werden, z.B. an bestimmten Stellen LEDs oder Motor einschalten. Das Programm so Schritt für Schritt durchforsten, um den Fehler zu lokalisieren.

Meistens ist es ja ein trivialer Fehler, wie z.B. vor dem Kompilieren nicht neu gespeichert zu haben.

Gruß Waste

inka
05.01.2007, 07:10
hi waste,
habe nun getestet:
im selbsttest leuchten die hinteren LEDs auf, wenn die fototransistroren vorne mit einer taschenlampe beleutet werden, linker transistor, linke LED, rechte transistor, rechte LED.
Dann habe ich mit diesem code die ausgabewerte der transistoren über hypertherminal beobachtet


#include "asuro.h" // Prüfung der Phototransitoren
/* ------------ Line Sensor Test ---------------- */
/* Left Sensor -> Left Break LED ON when Light on
Left Phototransistor bright enough */
/* Right Sensor -> Right Break LED ON when Light on
Right Phototransistor bright enough */
int main(void)
{
unsigned char tmp[2] = {OFF,OFF};
unsigned int data[2];
unsigned int z;
Init();
SerWrite("\n\r --- Line Sensor Test ---",28);
StatusLED(OFF);
FrontLED(ON);
do
{
for(z = 1; z < 100; z++);
{
}
LineData(data);
if (data[0] > 400)
tmp[0] = ON;
else
tmp[0] = OFF;
if (data[1] > 400)
tmp[1] = ON;
else
tmp[1] = OFF;
BackLED(tmp[0],tmp[1]);
SerWrite("\n\r Phototransistorwerte links/rechts: ",39);
PrintInt(data[0]);
SerWrite("/ ",2);
PrintInt(data[1]);
SerWrite("\f",1); //Seitenvorschub
}
while(1);
return 0;
}
/* END Line Sensor Test ------------------------- */

Der asuro stand auf dem boden, angezeigt wurde beim durchfahren mit einem ca. 10mm breitem schwarzen streifen nur:

Phototransistorwerte links/rechts: _6 (beispiel)

also nur die linke seite.
Beim aufgebockten asuro habe ich einem schwarzen stift durchgerollt. Es gab tatsächlich eine stelle, an der zwei werte angezeigt wurden, beispiel:

_67/_9

da war der stift irgendwo zwischen der roten LED und dem rechten fototransistor...
Sollten beim durchfahren nicht zwei übergänge, also zwei stellen mit zwei werten (jeweils einmal rechts und einma links der höhere wert, oder zumindest zeri stellen mit zwei gleich hohen werten) angezegt werden?

noch ein test: beim schnelleren durchfahren mit dem streifen veränderte sich die anzeige von 1 (weiss) auf 9 8 7 6 5 6 7 8 9 und wieder 1 (weiss) - von links nach rechts und umgekehrt, aber immer nur eine zahl!

was kann es sein, bzw. was kann ich noch messen?

gruß inka

edit: habe noch etwas gemessen:
beide vorwiderstände der fototransistoren 20k
durchgangswiderstand der beiden transistoren an den beinchen gemessen ca 14k
beim abgedunkelten transistor rechts (stück schlauch) bekomme ich zwei sehr unterschiedliche werte beim übergang sw/w
beim linken nur einen wert, auch variiened...

edit-2:
messungen am pin25/26 des prozessors:
25: hell 1,04 dunkel 0,2V
26: hell 2,08 dunkel 0,6V

damaltor
05.01.2007, 14:30
also die werte die an deinem prozessor ankommen sind zwar recht niedrig, aber nicht zu niedrig... wenigstens werte so um die 500 sollten ankommen.

welche werte kommen an wenn du die taschenlampe draufhältst?

inka
05.01.2007, 14:49
jetzt bin ich richtig baff,

linke tr. abgedunkelt, der rechte taschenlampe drauf - anzeige 400/1005
rechter tr. abgedunk.,der linker mit taschenlampe, anzeige 1000/250

und weiter? kann der asuro nun nur im sommer und sonnenschein der linie folgen??? :-)

gruß inka

damaltor
05.01.2007, 14:50
=)

eigentlich sollte das licht der roten led unten ausreichen...

inka
05.01.2007, 15:01
soll ich eine hellere/heller und evtl intensiver strahlende nehmen?

waste
05.01.2007, 20:40
Stell doch den Asuro auf ein weißes Blatt und mess die Werte nach. Wie hoch sind sie? Die rote FrontLED muss natürlich an sein.

damaltor
05.01.2007, 21:13
genau. ein weisses blatt sollte recht hohe werte ergeben (wenn du kannst kannste später auch mal nen spiegel versuchen...) und ein schwarzes blatt (bzw schwarz angemalte fläche) einen recht kleinen wert. achtung: schwarze, sehr glatte oberflächen können das ergebnis leicht verfälschen.

inka
06.01.2007, 07:33
ergebnis:
beim drunterschieben eines weissen blattes unter den asuro verdoppelt sich der angezeigte wert, statt einer 1 wird nun eine 2 angezeigt, es leuchtet nur die rechte backLED, wenn er auf dem tisch steht (helles holz) leuchtet nur die frontLED, beim anstrahlen mit der taschenlampe beide wert um 1000, egal ob untergrund holz oder weiss...

ich habe schon eine stärkere LED eingebaut, die auch NUR nach unten leuchtet, also so gut wie keine seitliche abstrahlung hat. kann ich nicht durch verändern der vorwiderstände die empfindlichkeit der transistoren erhöhen?

gruß inka

damaltor
06.01.2007, 11:58
eigentlich sollte das nicht nötig sein. du hattest doch zwischendurch schon perfekte werte gemessen gehabt, die sollten völlig ausreichen. wenn die led nur nach unten leuchtet, wird das die werte eher verkleinern, da dann auch nicht ganz so viel reflektiert wird in richtung der transistoren.

es gibt nicht viele möglichkeiten:

->sensoren kaputt: neue holen (reichelt)
->prozessor kaputt (kann ich mir nicht vorstellen obwohl die messwerrte in ordnung sind. ersatz bei arexx oder bei ebay, NICHT EINFACH EINEN NEUEN ATMEGA KAUFEN!)
->irgend ein widerstand falsch gelötet/kalte lötstelle/verwechselt/ausserhalb seines toleranzhbereiches/defekt (multimeter raus, nachkontrolle)

waste
06.01.2007, 20:09
ergebnis:
beim drunterschieben eines weissen blattes unter den asuro verdoppelt sich der angezeigte wert, statt einer 1 wird nun eine 2 angezeigt, es leuchtet nur die rechte backLED, wenn er auf dem tisch steht (helles holz) leuchtet nur die frontLED, beim anstrahlen mit der taschenlampe beide wert um 1000, egal ob untergrund holz oder weiss...
Alles ein bisschen verwirrend. Wenn eine BackLED leuchtet, dann sollte ein Wert auch mindestens 400 sein.


ich habe schon eine stärkere LED eingebaut, die auch NUR nach unten leuchtet, also so gut wie keine seitliche abstrahlung hat. kann ich nicht durch verändern der vorwiderstände die empfindlichkeit der transistoren erhöhen? Natürlich kannst du das machen, aber das hat Nachteile:
1. Ist das nur ein Workaround zu deinem Problem. Der wirkliche Fehler ist noch nicht gefunden.
2. Bist du nicht mehr kompatibel zum original Asuro und Programme sind nicht mehr austauschbar.

Waste

inka
07.01.2007, 14:32
hi waste,
es war auch noch ein fehler im programm mit dem man die werte der transistoren ausgeben kann, jetzt werden schon richtige werte angezeigt.



Natürlich kannst du das machen, aber das hat Nachteile:
1. Ist das nur ein Workaround zu deinem Problem. Der wirkliche Fehler ist noch nicht gefunden.
2. Bist du nicht mehr kompatibel zum original Asuro und Programme sind nicht mehr austauschbar.

hier hast du recht, allerdings muss ich schon wegen der unterschiede bei den transistoren anpassungen in der software vornehmen...

gruß inka