Archiv verlassen und diese Seite im Standarddesign anzeigen : ASURO: mitgelieferte Demoprogramme
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
21.05.2005, 00: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.
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
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
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
hi waste,
wo hast du den unteren Odometriegrenzwert auf 400 geändert?
danke inka
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
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
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
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, 15: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?
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, 15:50
=)
eigentlich sollte das licht der roten led unten ausreichen...
soll ich eine hellere/heller und evtl intensiver strahlende nehmen?
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, 22: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.
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, 12: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)
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
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.