Ja, du sagst Motoren nach vorne antreiben, wartest dann 5 sec und dann stoppst du die Motoren.
Wenn man Sleep(5) nimmt, dann wartet er ja für 5 sec, ich will aber, dass der Asuro nur 5 sec lang fährt
Ja, du sagst Motoren nach vorne antreiben, wartest dann 5 sec und dann stoppst du die Motoren.
www.subms.de
Aktuell: Flaschcraft Funkboard - Informationssammlung
Ich will aber, dass der Roboter, wenn er z.B. an eine Wand stößt, für 5 sec in einer Kurve zurück fährt und dann soll er wieder normal gredeaus fahren, wenn er an die Wand fährt rückwärts fahren usw.
an dem bin ich auch gerade dran. ist am anfang gar nicht so einfach. ich denke du solltest erst einfach anfangen. 5 sec gerade aus drehen usw. und dann mit den tastern arbeiten.
gruß fabi
So ein Programm habe ich schon einmal geschrieben und es befindet sich sogar hier im Roboterforum.Ich will aber, dass der Roboter, wenn er z.B. an eine Wand stößt, für 5 sec in einer Kurve zurück fährt und dann soll er wieder normal gredeaus fahren, wenn er an die Wand fährt rückwärts fahren usw.
https://www.roboternetz.de/phpBB2/ze...hlight=wohnung
Als Wandsensorren finde ich die Taster übrigens sehr ungeschickt, weil man unter Umständen die Taster nicht immer trifft.
In meinem Programm wurde einfach die Drehzahl der Motoren überwacht. Wenn der ASURO gegen ein Hindernis fährt, kann er detektieren, dass die Radgeschwindigkeit langsamer wird. Das gibt ein ziemlich zuverlässiges Signal um umzukehren.
Um eine bestimmte Wegstrecke zu fahren, eigenet sich die Go-Funktion aus der ASURO-LIB:
http://sourceforge.net/project/showf...roup_id=155217
Gruss,
stochri
Ich habe es jetzt hingekriegt, dass der Asuro nur für eine bestimmte Zeit fahren soll.
Jetzt möchte ich, dass er, wenn er die Strecke gefahren ist, wieder von vorne anfängt. Stimmt es dass man dann am Ende einfach nur
return 1;
schreiben muss?
Wennn du den code hast richitg dann schreibe ma hier rrein will das dann auch machen mit meien asuro
mfg robotcool
@Stollentroll:
Nichts für ungut, Kollege, aber lern lieber erstmal die Grundlagen von C!
Für den Anfang:
bedeutet, daß das Programm an dieser Stelle zurückkehrt in die aufrufende Funktion, und dieser den Wert x zurück liefert. Befindet sich das Programm bereits in der obersten Funktion, dann beendet es sich mit dem Returncode x. Ich muss gestehen, wie der ASURO auf ein Beenden seines Programms reagiert, kann ich nicht sagen; das müssen die erfahreneren ASURO Benutzer hier beantworten.Code:return x;
Um einen Satz Befehle unendlich oft zu wiederholen, benutzt man sogenannte Schleifen. Häufig genutzt ist da die "while"-Schleife ('while' englisch = 'solange'):
die "while"-Schleife führt die in den geschweiften Klammern aufgeführten Befehle immer und immer wieder aus, und zwar solange, wie die in den normalen Klammern angegebene Bedingung WAHR ist (handelt es sich dabei um einen Zahlenwert, so ist 0 = FALSCH, und alles größer 0 = WAHR).Code:int tuEs = 1; while( tuEs ) { TuWasIchWill(); }
Soweit nur ein kurzer Abriss über die Syntax von C. Du solltest dir echt erstmal ein paar kleine Programme zurechtschnitzen, die auf einem normalen PC laufen. Sogenannte "Hallo Welt"-Programme sind da sehr beliebt, für den Einstieg in die Programmierung.
Und noch eine Bitte: BITTE benutz den "CODE" Tag! Das bedeutet, daß du alles, was Code ist, in einen Block schreibst, der mit {code} beginnt und mit {/code} endet (geschweifte Klammern durch eckige ersetzen).
Hallo,
ich habe irgendwie Probleme mit der Sleep Funktion, in der Anleitung steht das höchstens der Wert 255 (unsigned char) übergeben werden darf und dann wartet der auch nur 3 Millisekunden und keine 255 sec.
Soll heißen, wenn ich möchte das er 5sec. wartet funktioniert das nicht mit
Sleep(5)!
Wer kann mir helfen?
Rookie
die funktion müsste SSleep sein. da wartet er für die sekunden die in der klammer danach angegeben sind. bin mir allerdings nicht sicher ob diese funktion in der standard lib vorhanden ist.
gruß fabi
Lesezeichen