PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ASURO Vorführung



hihacker
09.03.2010, 16:42
Hi,

ich halte meine fachinterne Prüfung in Technik über Roboter.
Als Modell habe ich mir den ASURO gekauft.

Jetzt zu meiner Frage.
Was meint ihr sollte ich alles vorführen, ich habe schlieslich nicht ewig Zeit und könnte mir vielleicht auch jemand Programmvorschläge oder fertige Programme geben?

Danke schon mal im Vorraus für eure Hilfe

Gruß Andy

josua
09.03.2010, 18:09
wenn du einfache programme mit dem asuro ohne erweiterungen suchst, nimm doch einfach die beispielprogramme aus der anleitung!!!

gruß josua

Virus
09.03.2010, 18:20
ansosnten musst du selber wissen was du machen möchtest.

für alles andere gibt es google!
Bischen eigeninitiative gehört zu gelungenen Arbeit dazu :-(

hihacker
09.03.2010, 19:03
Das ist mir schon klar das ich da auch was selber machen muss :)

wollt nur mal eure Meinung hören sonst wollt ich einfach den asuro ein bisschen einer Linie nachfahren lassen und dann einfach fahren lassen un immer wenn er iwo dran kommt halt umkehren lassen.
Allerdings versteh ich nicht so ganz was ich da schreiben muss.
Mit den Beispiel Programmen kann man nur sehr große Kreisradien fahren und auch nur alle Taster gleichzeitig ansprechen.

Ceos
10.03.2010, 08:10
ich weis ja nicht auf was es bei deiner prüfung nakommt, die sensoren und die elektronik oder das programmieren

wenns um die sensoren geht würde ich immer so einfache referenzbeispiele nehmen ... geradeaus MIT und OHNE odometrie udn erklären was die odometrie macht .... die taster erklären wie sie arbeiten (binäres widerstandsnetzwerk) die H-Brücken der motoren erklären ... und schlussendlich lässt du deinen asuro einer linie folgen und am ende einen siegestanz vollführen ... bei dem er dann (hoffentlich) zum publikum sehend stehen bleibt

wenns ums programmieren geht, müsstest du dir etwas intelligentes einfallen lassen, das dein asuro machen kann ... aber achte auf eine schnelle realisierbarkeit ^^

hihacker
10.03.2010, 13:10
Bei der Präsentation geht es um Roboter allgemein.
Der ASURO ist sozusagen nur ein Beispiel stellvertretend für alle Roboter.
Beim ASURO selbst kommt es nur darauf an ob wir ihn sauber gebaut haben und er funkioniert. Programm interessiert den Lehrer gar nicht. (Ich glaub er würd es selbst nicht verstehen ;))

mws-h
11.03.2010, 07:52
Na dann würde es doch reichen den Bot vernünftig zu bauen und die Demoprogramme vorzuführen um zu zeigen, dass er richtig funktioniert.

Ceos
11.03.2010, 08:40
ja DANN die klassike: mehrmals rechtwinkliges 4eck fahren, linie folgen und bei kollision wenden das reicht dann meistens völlig aus (war bei mir zumindest die forderung für prüfungsvorleistung gewesen)

hihacker
11.03.2010, 13:04
Könnte mir da vielleicht jemand ein Programm schreiben, das er das alles macht, ohne das ich nach jedem wieder neu flashen muss?
Ich bekomm das nämlich nicht hin.

josua
11.03.2010, 13:10
was bekommst du nicht hin? das flashen?

gruß josua

Max Hinze
11.03.2010, 13:34
Ich geb dir mal en link mit en paar Programmen von mir:

http://sites.google.com/site/maxhinze/meine-projekte/asuro/Meineprogramme.rar?attredirects=0&d=1

Gruß Max

P.S. viel glück bei deiner Fip :) die mach ich nähmlich auch grad.

hihacker
11.03.2010, 13:51
@josua ich kann ja schlecht während der prüfung ein anderes programm flashen, also muss ich ein Prog haben, wo alles nacheinander macht

@max danke und dir auch viel glück über was machst du?

mws-h
11.03.2010, 15:16
Warum nicht, bist Du dann zu nervös? Aber es sollte auch möglich sein ein Programm zu schreiben, dass alle Abläufe nacheinander durchführt. Vielleicht noch so, dass nach jedem Teilabschnitt ein Tastendruck erforderlich ist der dann den nächsten Teilabschnitt startet.

Max Hinze
11.03.2010, 18:25
@max danke und dir auch viel glück über was machst du?

Danke:)

Ich bau auch einen Roboter nur selbst entworfen.

Gruß Max

hihacker
11.03.2010, 18:26
Ich finde es kommt ein bisschen schlecht wenn du während deinem Vortrag plötzlich sagst so jetzt muss ich den Roboter mal kurz neu flashen. Und hockst dann je nach Prog da ne min am PC und sagst gar nichts mehr

Thomas$
11.03.2010, 18:34
zeitlichen ablauf reicht denk ich drei minuten linie dan bissel kreise fahren dann ein quadrat
wie lange hast du zeit?
kannst du etwas programieren oder ist das jetzt neuland für dich?
musst halt ein timer laufen lassen und variable hochzählen und damit die aktuelle tätigkeit bestimmen oder über taster aber ich find das persönlich nicht so gut das man ein robo aufbaut kein plan zum programieren hat und dann nach der präsentation und aufbau bewertet wird.

hihacker
11.03.2010, 18:46
ein bisschen kann ich programmieren aber halt nicht wirklich gut. Unser Lehrer ist halt ein bisschen komisch in Sachen Notengebung :)

Zeit hab ich insgesamt ne viertel Stunde, allerdings halt für den ganzen Vortrag über Robotik. Also hab ich so gedacht das man vielleicht 1 oder 2 min den Asuro erklärt und ihn sonst aber trotzdem noch fahren lässt oder so

mws-h
12.03.2010, 07:40
Dann würde ich an Deiner Stelle den Vortrag etwas länger machen und diesen Typ autonomer Roboter erläutern und vielleicht auf die Besonderheiten verschiedener Modelle eingehen. Asuro und RP6 z.B..

Dann eine Erklärung warum Du den Asuro gewählt hast und nach einigen Erläuterungen wie diese Geräte mit Sensoren und Aktoren umgehen und was es alleine schon für ein Aufwand ist so ein Teil gradeaus fahren zu lassen.

Zum Schluss eine Vorführung von 2 Sachen zeigen. Linienfolger und Umdrehen wenn ein Gegenstand berührt wird. Mit ein wenig Geschick sollte es möglich sein zwei fertige Programme so zu verbinden, dass jeweils das nächste gestartet wird wenn man einen taster betätigt.

Es kommt bei sowas auch immer darauf an, wie man den "Spannungsbogen" aufbaut und wie lebendig der Vortrag ist. Ich bin immer am Besten, wenn mich eine Sache wirklich fasziniert allerdings braucht man ein Konzept denn sonst driftet man zu schnell in Teilbereiche ab.

hihacker
12.03.2010, 13:53
15 Minuten ist mein Vorgeschriebener Zeitrahmen.
Ich muss alles was in meiner Doku ist einbringen. Falls es mal jemanden interessiert, hab sie mal hochgeladen: LINK (http://rapidshare.com/files/362394529/Dokumentation.doc.html)

Es geht hauptsächlich nicht um den ASURO, sondern um Robotik allgemein. Den ASURO habe ich nur, das ich einen funktionierenden Roboter als Beispiel habe.

mws-h
12.03.2010, 14:44
Ohne es gelesen zu haben aber das hört sich doch gut an!

hihacker
12.03.2010, 15:05
ich meinte nur weil du geschrieben hast ich soll mehr über den Asuro und den RP6 und soetwas erzählen

hihacker
20.03.2010, 21:19
Hab jetzt mal ein Programm geschrieben, bei dem er zuerst einfach der Linie folgen soll und nach einem Tastendruck dann den 2ten Teil des Programms ausführen soll, also auf Kollisionsfahrt gehen.

Habe jetzt nur Problem, das ich das mit dem bis zu Tastendruck irgendwie nicht hinbekomme, lest es euch bitte mal durch un schlagt mal vor wie es gehen müsste. Danke.


#include "asuro.h"


int main(void){

unsigned int data[2], i;
unsigned char b1, b2, taste;

Init();

FrontLED(ON);
MotorDir(FWD,FWD);
MotorSpeed(255,255);

taste = PollSwitch();

/*Linienfolger bis Tastendruck*/
while(taste == 0){

LineData(data);

if ((data [0] < 20) && (data [1] > 20 )){
MotorDir(RWD,FWD);
MotorSpeed(0,255);
BackLED(OFF,ON);
StatusLED(RED);
}

if ((data [1] < 20) && (data [0] > 20 )){
MotorDir(FWD,RWD);
MotorSpeed(255,0);
BackLED(ON,OFF);
StatusLED(RED);
}

if ((data [1] < 20) && (data [0] < 20 )){
MotorDir(FWD,FWD);
MotorSpeed(255,255);
BackLED(ON,ON);
StatusLED(GREEN);
}
}

FrontLED(OFF);
MotorSpeed(0,0);
for (i=0;i<1024;i++){Sleep(255);}

/*Kollision bis zum bitteren Ende*/
while (1){

b1 = PollSwitch();
b2 = PollSwitch();

if (b1 == 0 && b2 == 0){
MotorDir(FWD,FWD);
MotorSpeed(255,255);
BackLED(OFF,OFF);
StatusLED(GREEN);
}

else if (b1 && b2 && b1 == b2){
MotorDir(BREAK,BREAK);

if (b1 > 7){
MotorDir(RWD,RWD);
MotorSpeed(100,255);
BackLED(ON,OFF);
StatusLED(RED);
}

if (b1 < 8){
MotorDir(RWD,RWD);
MotorSpeed(255,100);
BackLED(OFF,ON);
StatusLED(RED);
}

for (i=0;i<200;i++){Sleep(255);}
}
}

return 0;
}

radbruch
20.03.2010, 21:34
Hallo


taste = PollSwitch();

/*Linienfolger bis Tastendruck*/
while(taste == 0){
....
Wie kann taste hier jemals ungleich 0 werden, wenn die while-Schleife erstmal betreten wurde? Auch in der Liniensuchschleife sollte zur Entstörung der PollSwitch()-Wert überprüft werden.

Gruß

mic

hihacker
20.03.2010, 22:24
Jetzt wo du es sagst: Gute Frage :) ](*,)

Also muss ich einfach in die Schleife taste=PollSwitch() integrieren und das ganze geht oder? (Hab grad keine Zeit um es zu probieren)

Mal vielen Dank für diese Denkhilfe ;)

hihacker
21.03.2010, 12:19
Hab das jetzt mal probiert, aber jetzt wird der Teil noch nicht mal einmal ausgeführt. Außerdem habe ich dann mal taste komplett weg gelassen und dafür "while(PollSwitch() == 0)" probiert, dabei war jedoch auch das Problem, das es dann nicht ausgeführt wurde.
Wo könnte das Problem sein?
Könnte mir vielleicht jemand eine komplett richtige Version nach meiner Vorlage schreiben?

radbruch
21.03.2010, 12:35
Hallo

Die Linienverfolgung wird übersprungen und sofort der Kollisionsteil abgearbeitet? Macht er das:

if (b1 == 0 && b2 == 0){ ?

Wenn nicht, dann stimmt vielleicht, wenn keine Taste gedrückt ist, der Rückgabewert von PollSwitch() nicht. Stichwort wäre dann: Tasten kallibrieren (http://www.asurowiki.de/pmwiki/pmwiki.php/Main/Tasten).

Notlösung wäre vielleicht eine tolerantere Abfrage:

while(PollSwitch() < 3)

Gruß

mic

hihacker
21.03.2010, 13:25
Das Programm wird ausgeführt, als ob es den Teil mit der Linienverfolgung gar nicht gäbe.

DEr 2te Teil funktioniert Problemlos. Also macht er:
if (b1 == 0 && b2 == 0){

Selbst bei einer sehr toleranten Abfrage, habe mal 17 genommen kommt es nach einer immer unterschiedlichen Zeit dazu das er plötzlich anhält, also das Programm weiter abläuft, als ob der Taster gedrückt worden wäre. Jedoch ist um so höher sie Zahl die Zeit länger. Was könnte da das Problem sein?

Kann man den Wert von PollSwitch() über die IR-Schnittstelle immer an den PC senden? Dann könnte man das mal anschauen.

radbruch
21.03.2010, 13:56
Hallo

Klar kann man die Daten von PollSwitch() auch an das Terminal senden:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=35598

:)

Gruß

mic

hihacker
22.03.2010, 15:18
Hab das mal ausprobiert. Es kamen immer die richtigen Werte.

Hab jetzt mal noch weiter mit dem Programm probiert. Dabei ist folgendes Programm rausgekommen und es funktioniert soger :)


#include "asuro.h"

int main (void)
{

unsigned int data[2], i;
unsigned char b1, b2;
int speed;

Init();

speed = 160;

FrontLED(ON);
MotorDir(FWD,FWD);
MotorSpeed(speed,speed);

while (1){

b1 = PollSwitch();
b2 = PollSwitch();

if (b1 == 0 && b2 == 0){

LineData(data);

if ((data [0] < 20) && (data [1] > 20 )){
MotorDir(RWD,FWD);
MotorSpeed(0,speed);
BackLED(OFF,ON);
StatusLED(RED);
}

if ((data [1] < 20) && (data [0] > 20 )){
MotorDir(FWD,RWD);
MotorSpeed(speed,0);
BackLED(ON,OFF);
StatusLED(RED);
}

if ((data [1] < 20) && (data [0] < 20 )){
MotorDir(FWD,FWD);
MotorSpeed(speed,speed);
BackLED(ON,ON);
StatusLED(GREEN);
}
}

else if (b1 && b2 && b1 == b2){

while(1){

b1 = PollSwitch();
b2 = PollSwitch();

if (b1 == 0 && b2 == 0){
MotorDir(FWD,FWD);
MotorSpeed(255,255);
BackLED(OFF,OFF);
StatusLED(GREEN);
}

else if (b1 && b2 && b1 == b2){
MotorDir(BREAK,BREAK);


MotorDir(RWD,RWD);
MotorSpeed(255,100);
BackLED(OFF,ON);
StatusLED(RED);


for (i=0;i<200;i++){Sleep(255);}
}}
}

}
return 0;
}


Könnte mir vielleicht mal jemand das Blockschaltbild des AVR Prozessors erklären? (Ist das aus der ASURO-Anleitung)
Danke

hihacker
24.03.2010, 18:48
Hab jetzt meine Präsentation rum und eine 1 bekommen *freu*
Er hat zum Glüch nicht nach dem Schaltbild gefragt :)