-         
Seite 1 von 8 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 76

Thema: ASURO Teilwettbwerb 1.2: Bring den Schatz auf der Linie ...

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.080
    Blog-Einträge
    2

    ASURO Teilwettbwerb 1.2: Bring den Schatz auf der Linie ...

    Anzeige

    Hallo Miteinander,
    hier mal eine kleine Codevorlage für die ASURO-Beginner für den 2ten Wettbewerb ( wie immer nur sichtbar, wenn man einge-logged ist):

    Code:
    #include "asuro.h"
    /***************************************************************************
    *                                                                         *
    *   This program is made for the ASURO Robot                              *
    *                                                                         *
    *   first part of the second competition: get the treasure back !         *
    *                                                                         *
    ***************************************************************************/
    
    
    /***************************************************************************
    *                                                                         *
    *   This program is free software; you can redistribute it and/or modify  *
    *   it under the terms of the GNU General Public License as published by  *
    *   the Free Software Foundation; either version 2 of the License, or     *
    *   any later version.                                                    *
    ***************************************************************************/
    /***************************************************************************  
    *
    *	void SetMotor(unsigned char left_speed, unsigned char right_speed );
    *
    *   Range of speed: -7-0-7;
    *
    *	function to control the motors
    *   Direction and speed can be set with on parameter
    *
    *	Copyright: Stochri 2005
    *
    ****************************************************************************/
    unsigned char speedtable[8]={0,100,120,140,160,180,200,250};
    void SetMotor(int leftspeed, int rightspeed )
    {
    	unsigned char left,right;
    	
    	
    	if (leftspeed<0) left=RWD; // Test if leftspeed is negativ
    	else left=FWD;
    	if (leftspeed==0) left=BREAK;
    	
    	
    	if (rightspeed<0) right=RWD; // Test if leftspeed is negativ
    	else right=FWD;
    	if (rightspeed==0) right=BREAK;
    	
    	leftspeed=abs(leftspeed);
    	rightspeed=abs(rightspeed);
    	if (leftspeed>7) leftspeed=7;
    	if (rightspeed>7) rightspeed=7;
    	
    	MotorSpeed(speedtable[leftspeed],speedtable[rightspeed]);
    	
    	MotorDir(left,right);
    	
    }
    // delay in 1/10 seconds
    void wait(int zehntel)
    {
    	int i,temp2;
    	for(i=0;i<zehntel;i++) 
    		for(temp2=0;temp2<100;temp2++) Sleep(72);
    }
    void aerger(void)
    {
    	char n;
    	for(n=1;n<20;n++)
    	{
    		StatusLED(RED);
    		wait(1);
    		StatusLED(GREEN);
    		wait(1);
    	}
    }
    void chillout(void)
    {
    	while(1)
    	{
    		StatusLED(YELLOW);
    		wait(5);
    		StatusLED(GREEN);
    		wait(5);
    	}
    
    }
    
    /***************************************************************************  
    *
    *	main
    *
    ****************************************************************************/
    #define vorkurz {SetMotor(6,6);wait(3);SetMotor(0,0);};
    #define vorlang {SetMotor(6,6);wait(10);SetMotor(0,0);};
    #define links90grad {SetMotor(-2,2);wait(6);SetMotor(0,0);};
    #define rechts90grad {SetMotor(2,-2);wait(6);SetMotor(0,0);};
    #define aus SetMotor(0,0);
    unsigned int uiBuffer[2];
    
    int main(void)
    {
    	int nullwert=21;
    	
    	Init();
    	LineData(uiBuffer);
    	nullwert=uiBuffer[0];
    	StatusLED(GREEN);
    	while(uiBuffer[0]<(nullwert+20))
    	{
    		LineData(uiBuffer);	
    	};
    
    	aerger();
    	StatusLED(RED);
    
    	links90grad;
    	vorkurz;
    	rechts90grad;
    	vorlang;
    	rechts90grad;
    	vorkurz;
    	rechts90grad;
    	vorlang;
    	
    	chillout();
    	return 0;
    }
    link:
    2.ter ASURO Wettbewerb
    https://www.roboternetz.de/phpBB2/viewtopic.php?t=10575

    Zum 1.ten Teilwettbewerb:
    Für das Test-Setup des ersten Teilwettbewerbs schlage ich folgendes vor:
    - eine 60cm lange Linie Isloierband auf hellerem Hintergrund
    - der Asuro befindet sich an einem Ende der Linie, der Schatz vor ihm
    - man nimmt den Schatz weg, der Asuro merkt es, man setzt ihn irgendwo auf der Linie ab, der Asuro bringt das Ganze wieder in die Startposition inclusive sich selbst

    vermutliche Schwierigkeiten:
    - wie merkt der Asuro, dass der Schatz fehlt ?
    - beim Zurückbringen: die exakte Positionierung des Schatzes auf der Anfangsposition
    - die exakt Positionierung des ASURO auf seiner Startposition
    - die Geschwindigkeit

    ( Man bedenke bei den Lösungen, dass Sie auch für den großen Wettbwerb gebraucht werden )

    gruss,
    stochri

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,
    Zitat Zitat von stochri
    hier mal eine kleine Codevorlage für die ASURO-Beginner für den 2ten Wettbewerb ( wie immer nur sichtbar, wenn man einge-logged ist):
    ich sehen den aber immer, egal ob ein- oder ausgeloggt !

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.080
    Blog-Einträge
    2
    Ähh, ja scheint mir auch so. Ist wohl nur bei den Bildern so, dass man die nicht sieht.
    Aber was anderes: um das Programm zu kompilieren, muss man einfach den Programmtext von test.c im Ordner FirstTry durch den Programmtext oben ersetzten, dann kann man es kompilieren und ausprobieren.

    Wie sieht's eigentlich bei Dir aus linux_80, schafst Du es dieses mal zeitlich ?

    Gruss,
    stochri

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Ich will ja nix versprechen, weder so noch so, hab bis jetzt noch nix gemacht

    Hab letzte Woche ein haufen zeugs von Reichlt und Robotikhardware bekommen, u.a. einen Sharp-IR Sensor. Kann ich den hernehmen zum Gegenstand suchen ? (sofern ich das hinkriege mit dem was anzufangen)
    Bauteile für das US hätte ich auch rumliegen, das werd' ich aber noch weniger schaffen, da ich die Platine noch nicht hab. Hätte ja vor 3 Wochen dieses Buch-Heftl bestellt "Asuro, spass usw." aber kommt nix an.

    schau ma mal ...

    PS: ausserdem hab ich heute Tanken müssen, und das muss erstmal seelisch verkraftet werden [-o<

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.080
    Blog-Einträge
    2
    Hallo linux_80,
    den Sharp-Sensor wollte ich auch schon anschließen. Wenn man den analogen hat, dürfte es am einfachsten sein, das Signal an Pin 28 anzulegen, das ist der Spannungsteiler für die V+ Messung, die ja sowieso fast niemand benutzt.
    Allerdings hat mich irgend jemand in einem Thread darauf hingewiesen, dass die Stromaufnahme zu hoch sein könnte und das den ASURO stört. Glaube ich aber nicht, probieren geht über studieren.

    Wenn es Dir Spass macht, verwende den Sensor doch einfach, gibt auf jeden Fall ein interessantes Ergebnis.

    Viele Grüße,
    stochri

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,
    die letzten zwei Tage hab ich etwas Zeit gehabt und eine Konstruktion für den Sharpsensor auf den Asuro gebaut.
    Mit dem Pin 28 haut es nicht hin, denn da misst das BootPRG die Spannung, und startet erst garnicht wenn das nicht passt !
    Also Widerstände wieder reingebaut, und diesmal die Tasten deaktiviert, hab R23 raus und da den Sensor angeklemmt, funktioniert soweit.
    Er dreht im Zimmer seine Runden bis er dochmal mit der Hinterachse irgendwo hängenbleibt, was ich nicht verhindern kann, da ich nur einen Sensor habe der gerade nach vorne schaut.

    Jetzt weiss ich nicht wie weit ich hier noch was intelligentes zusammenbringe, denn morgen(mmh heute ) nachmittag bin ich ned da
    mfG

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.080
    Blog-Einträge
    2
    > Mit dem Pin 28 haut es nicht hin, denn da misst das BootPRG die Spannung, und startet erst garnicht wenn das nicht passt !

    Oh, sehr interessant. Ich wusste nicht, dass der ASURO beim booten seine Spannung misst. Wie hast Du denn das rausgekriegt ? =D>

    > Also Widerstände wieder reingebaut, und diesmal die Tasten deaktiviert, hab R23 raus und da den Sensor angeklemmt, funktioniert soweit.

    Wieso hast Du den R23 rausgenommen ? Der hat doch 1MOhm und hätte den Sharpsensor mit Sicherheit nicht gestört. Meiner Meinung nach müsste es eigentlich reichen das Signal des Sensors einfach auf PIN 27 zu hängen.

    > Jetzt weiss ich nicht wie weit ich hier noch was intelligentes zusammenbringe, denn morgen(mmh heute ) nachmittag bin ich ned da

    Oh, wie schade. Aber es ist ja auch schon wieder so gutes Wetter.

    Gruss,
    stochri

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hi,
    Zitat Zitat von stochri
    Wie hast Du denn das rausgekriegt ? =D>
    ja ausprobiert, R12 und R13 rausgemacht, und dann ging er nimmer.

    Zitat Zitat von stochri
    Wieso hast Du den R23 rausgenommen ?
    ich brauchte Platz für das neue Kabel.

    Aber noch was anderes,
    ich hab Probleme mit den Liniensensoren, wenn ich den Asuro auf ein weisses Blatt stelle, bekomme ich nur magere Werte um die 50 vom ADC !
    erst wenn ich mit der Lampe direkt in die Sensoren leuchte gehts auch bis an die 1023.
    Ich hab jetzt mal eine grössere LED für D11 eingebaut, jetzt hab ich immerhin mal Werte bis max. 100, das ist (mir) aber immer noch zu ungenau um eindeutig zwischen schwarz und weiss zu unterschieden !

    Was hast Du da für Werte ?

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.080
    Blog-Einträge
    2
    Hier die Werte meiner Liniensensoren bei seitlicher Bewegung über eine Linie.

    Die Werte der Sensoren hängen allerdings auch stark vom Umgebungslicht ab. Mein Fenster liegt im Moment im Schatten, wenn eine Wolke vorbeizieht kann man das aber trotzdem an den Werten der Sensoren sehen.

    Gruss,
    stochri
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken liniensensoren.jpg  

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    04.04.2005
    Ort
    Hamburg
    Alter
    30
    Beiträge
    826
    Hei! Cooles Programm. Ist dass nciht dasselbe wie auch auf dieser einen Seite. Was war dass doch ncoh gleich? Ist das LabView?

    Naja, was ich aber eigentlich wissen will ist wie das ausliest. Aber ich denke mal hier im Thread ist das ziemlich offtopic. Naja, kannste ja mal vielleicht schreiben wenn du lust hast.

    Aber jetzt auch was zum Thema:

    Was hier glaub ich schon mal angesprochen und was ich eigentlich auhc noch machen will ist, den Sensor 1. so tief zu legen, dass er wirklich auf den Boden kommt und 2. gegen Umgebunslicht abzuschotten.

    Obwohl . . .mh. . dass hast du ja warhscheinlich schon, oder? Sonst kommen ja nicht so niedrige Werte raus.

    Ach, jetzt hab ich eigentlich keine Ahnung mehr, was ich schreiben wollte.

    Andun
    www.subms.de
    Aktuell: Flaschcraft Funkboard - Informationssammlung

Seite 1 von 8 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •