Archiv verlassen und diese Seite im Standarddesign anzeigen : Projekt Asuro
ChaosDragon
12.06.2006, 12:49
Hallo Programmier Genies ^^
Wir haben uns mit unserer Klasse einen Asuro besorgt und sind jetzt sozusagen am programmieren ^^
Folgende Aufgabe ist zu erfüllen:
http://img154.imageshack.us/img154/3261/asuroaufgabe9ec.png
zusätzlich bekommt der Asuro der die Ziellinie am schnellsten erreicht und auf der Lienie auch stehen bleibt ohne weiterzufahren die meisten Punkte. Der der am langsamsten braucht die wenigsten und der, der die Linie verlässt bekommt keine Punkte.
Hoffe ihr habt mehr Ahnung als ich ^^
MfG Chaos
Ja, schöne Aufgabe für einen Anfänger!
Kopf einschalten und loslegen, oder soll dir etwa jemand aus dem Forum die Software dafür schreiben?!
Peter
ChaosDragon
12.06.2006, 13:00
Linienfolgeprogramm hab ich schon hinbekommen nur wie man das hinbekommen soll das der am Ende anhält versteh ich nicht ^^
wäre schon nett wenn mir das einer sagen könnte :p
Ich nehme ja mal an, dass er irgendwie die Linie mit mehreren Sensoren erkennt. Eine Linie in Laufrichtung wäre dann nur von 1-2 Sensoren erkannt und eine, die von mehr Sensoren als die Linienbreite ist, erfasst wird, muss eine Querlinie sein. Könnte aber auch ein Denkfehler drin sein... Ich hab sowas noch nie gemacht...
ChaosDragon
12.06.2006, 13:09
stimmt ich weiß nur nicht wie man es halt programmiert sprich ich finde den code nicht ...
Wie breit ist den die schwarze Linie bzw. der Stopbalken?
Peter
ChaosDragon
12.06.2006, 13:19
der Stoppbalken ist exakt 5,4cm breit
/e: Die Linie selbst ist nur 5mm breit
Also wenn deine Sensoren in einer Linie angeordnet sind, die quer zum Asuro verläuft, dann lenkst du nach rechts, wenn 1-2 Sensoren auf der linken Seite die Linie sieht, nach links, wenn es andersrum ist und bleibst stehen, wenn z.b. 3 sensoren die Linie sehen, wenn 3 sensoren ein Gebiet < 5.4cm abdecken. Natürlich dürfte es nicht als Stopplinie erkannt werden, wenn man schräg auf der Linie steht und diese dann ein wenig mehr Fläche gibt.
ChaosDragon
12.06.2006, 13:33
wenn er keine Linie mehr sieht fährt er rechts einmal im kreis herum
hier die sensoren(kurz mal in paint dargstellt *lol* )
http://img148.imageshack.us/img148/4531/nn7vr.png
Welches Programm zur Linienverfolgung verwendest du?
Peter
ChaosDragon
12.06.2006, 21:41
frag mich was leichteres kenn mich damit ehrlich gesagt nicht so aus habs eher im i-net gefunden
funktioniert ja auch ganz gut nur fehlt halt das ende wo er bremsen soll beim balken ^^
Es kann ja auch nicht Sinn der Aufgabe sein, dass du dir ein fertiges Programm aus dem Internet ziehst, damit dann deine Aufgabe löst und dich in der Klasse als Super-Programmierer präsentierst. Aus diesem Grund hat sich dein/e Lehrer/in sicher auch die Sache mit dem Endbalken ausgedacht!
<stimmt ich weiß nur nicht wie man es halt programmiert sprich ich finde den code nicht ...>
Du solltest dir schon selber Gedanken über einen Lösungsansatz machen und versuchen, das Problem durch ein eigenes Programm zu lösen!
Viel Erfolg, Peter
ChaosDragon
13.06.2006, 10:21
nein es geht ja nicht darum ein guter programmierer zu sein...
internet ist erlaubt > heißt wir sollen einfach nur die Aufgabe lösen (geht nicht um Noten)
naja egal ich streng meine grauen zellen mal an und versuchs halt selbst ^^
ChaosDragon
16.06.2006, 11:04
ok ich hab das Lienienfolgeprogramm endlich optimiert ^^
und er fährt nun auch schärfere Kurven XD
hat das mit dem Stoppen irgendwas mit nem Befehl "waste" zu tun?
Also ich hätte das ganz einfach so gemacht:
if linker sensor=schwarz (also von mir aus linedate[0] <100 oder so)
then motorspeed(200,0) else motorspeed(0,200);
if (linedata[0]+linedata[1] <200) "also wenn beide sozusagen schwarz sind" then [variable=1;motorspeed(0,0)];
das ganze in eine while schleife mit bedingung das variable=0 ist.
sollten also beide sensoren gleichzeitig auf schwarz stehen hält der an und verlässt die while schleife--> er ist am Programmende.
Der code ist natürlich sehr stark vereinfacht und kann verbessert werden.
wanderer
18.06.2006, 11:49
"if (linedata[0]+linedata[1] <200)" So solltest du das nicht machen! Benutze lieber AND oder mache 2 If anweisungen verschachtelt! Lieber die Sensoren einzelnd abfragen, als einfach nur Addieren. Auch wenn es funktioniert ist es eine große Fehlerquelle würde ich sagen....
MfG euer
wanderer
Sternthaler
19.06.2006, 20:46
Hallo ChaosDragon,
erst mal willkommen im Forum.
Als nächstes: Auch ich bin der Meinung, dass das Internet zwar ganz nett zum 'saugen' sein kann, aber dann ist das Verständnis doch meistens mager. Also auch von mir der Rat den eigenen Kopf zu nutzen hat auch Vorteile.
hat das mit dem Stoppen irgendwas mit nem Befehl "waste" zu tun?
Falls du das hier ernst meinst, dann muss ich echt überlegen, ob du nicht doch weiter im Internet nach einer Lösung suchen solltest.
Kannst du mal deine Internet-Quell posten. Ist das zufälligerweise etwas von "waste" aus diesem Forum?
Lunarman
19.06.2006, 20:52
Wär ja noch besser...
ChaosDragon
20.06.2006, 10:44
vergisst es einfach
einer aus meiner Klasse hat was mit waste angedeutet deswegen
kann sein das er den waste hier aus dem forum meinte kA
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.