-
Ich habe mein Programm jetzt ein bisschen übersichtlicher gemacht. Irgendwo muss ja der Fehler sitzen!!!
#include "qfixBobbyBoard.h"
#include "qfixSlaveBoard.h"
BobbyBoard links;
SlaveBoard rechts;
int main()
{
while (!links.button(0)) ;
int white = links.analog(3);
while (!links.button(1)) ;
int black = links.analog(3);
int ground = int((white+black)*0.55);
int blub=0;
while (true) {
if (links.analog(3) > ground){
}
else {
if (blub == 0){
links.ledOn(0);
blub = blub + 1;
}
else {
links.ledOn(0);
links.ledOn(1);
}
}
}
}
beide LEDs leuchten sofort bei der ersten Linie. :twisted:
-
Die Led 0 leuchtet für einen Moment auf, dann jedoch leuchten beide, das ist da du den Sleep-Befehl vergessen (oder absichtlich entfernt) hast. Dadurch erhält der Controller das Signal einer Linie gleich mehrfach und springt dadurch sofort (ohne sichtbare Verzögerung) in den else-Zweig, da er die Schleife ja sofort wieder ausführt.
Versuchs mal so:
Code:
#include "qfixBobbyBoard.h"
#include "qfixSlaveBoard.h"
BobbyBoard links;
SlaveBoard rechts;
int main()
{
while (!links.button(0)) ;
int white = links.analog(3);
while (!links.button(1)) ;
int black = links.analog(3);
int ground = int((white+black)*0.55);
int blub=0;
while (true) {
if (links.analog(3) > ground){
}
else {
if (blub == 0){
links.ledOn(0);
blub = blub + 1;
}
else {
links.ledOn(0);
links.ledOn(1);
}
}
sleep(10); //oder einen anderen, längeren Wert, hängt von der Breite der Linie ab
}
}
Des weiteren würde ich mal schaun ob die Initialisierung der White, Black bzw. Ground-Variable sicher stimmt. Darin könnte ein Fehler liegen den ich nicht überprüfen kann da ich deinen Bot eigentlich nicht kenne (kann nur C programmieren =P~ )
-
Es funktioniert !!!!!!!!!!!!!!!!!!!!!!!!
:Strahl
Danke dass du mir geholfen hast.
:cheesy:
Dass mit den zwei Linien war übrigens eigentlich nur ein Beispiel. In Wirklichkeit versuche ich einen Soccer-Bot zu programmieren. Aber dafür muss er manchmal an der Torlinie anhalten und sie manchmal überfahren. Also nochmals Danke.
\:D/
-
Hey Palermo!
So weit ich weiß gibt es beim Soccer keine Torlinie, sondern der ganze Boden ist schwarz grau
-
Hallo,
ja aber das war kein Wetbewerb sondern ich hatte mir selbst die Aufgabe gestellt, das mein Bot soccern soll und mein Spielfeld hatte halt eine Torlinie.
mfg palermo
-
Das ist natürlich gaaaaaaaaanz was anderes.
Wieso machst du nicht beim RoboCup Ju. nicht micht?
-
Habe ich auch vor aber erstmal will ich richtig gut C++ können. Hast du mal teilgenommen?
mfg palermo
-
Mach ich erst am Freitag in Vöhringen