- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 23

Thema: RP6 - Schulprojekt: Ultraschall und Labyrinth

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Anzeige

    Praxistest und DIY Projekte
    Oder aber, du nimmst einen fertigen Summer (also einen, der schon summt wenn man Spannung draufgibt) und schaltest ihn mit nem I/O ein
    Hab hier so ein kleines Teil rumliegen. Ist nicht viel größer, als andere Summer, aber hat schon die Hardware zum Summen drin...

    Klingt nach einem lustigen Projekt Würd ich gern auch mal machen, wenn ich Platz für 2x2m Labyrinthe hätte!!!

  2. #12
    Erfahrener Benutzer Begeisterter Techniker Avatar von Torrentula
    Registriert seit
    10.10.2009
    Ort
    Procyon A
    Beiträge
    355
    für die Ultraschallsensoren gibt es hier eine gute Schaltung:
    http://www.rn-wissen.de/index.php/Ultraschall-Interface
    Ohne ein Oszilloskop gleicht das Abstimmen einem Blindflug. Lieber ein einfach anzusteuerndes fertiges US-Modul verwenden, wie z.B. den SRF05

    Um aus dem Labyrinth zu kommen, kann man einen "Left hand on the wall"-Algorithmus verwenden (wobei sich da Algorithmus schon wieder sehr komplex anhört). Das ist ziemlich einfach man muss nur prüfen in welche Richtung man fahren kann und sich diese Richtung merken, in die man Abgebogen ist (eben als ob man die linke Hand ständig an der Wand behält):

    1. Kann ich links abbiegen, biege ich links ab --> L
    2. Kann ich geradeaus fahren, fahre ich geradeaus --> S
    3. Kann ich rechts abbiegen, biege ich ab --> R
    4. Bin ich in einer Sackgasse, drehe ich um --> B

    Man muss sich nun den Pfad anschauen, z.B. LBL. Dieses lässt sich ganz einfach durch S ersetzen. Hier ist die ganze Liste:

    LBR = B
    LBS = R
    RBL = B
    SBL = R
    SBS = B
    LBL = S

    Das kann man z.B. verwenden um den Pfad zu optimieren und ihn das Labyrinth ein zweites Mal auf dem optimalen Pfad entlangfahren zu lassen.

    ( Quelle: Let's Make Robots)

    MfG

    Torrentula
    MfG Torrentula

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied Avatar von masasibe
    Registriert seit
    21.01.2011
    Beiträge
    181
    Nachteil von Ultraschallmodulen, die eine Entfernungsmessung durch
    die Stärke des empfangenen Signals ermitteln (z.b. das Ultraschallmodule von Conrad), ist, dass sie sehr
    von der reflektierenden Oberfläche abhängig sind.
    Besser geht das, wenn man stattdessen die benötigte Zeit des
    Schalls misst.

    Allerdings ist das mit der Oberfläche für das Labyrinth wahrscheinlich
    kein so großes Problem, da sie ja im ganzen Labyrinth die gleich sein wird
    und man das dann kalibrieren könnte.

  4. #14
    Erfahrener Benutzer Begeisterter Techniker Avatar von avrrobot
    Registriert seit
    12.01.2011
    Beiträge
    210
    Blog-Einträge
    9
    Außerdem kann man die Ultraschall-Module ja auch steckbar machen, und dann später für andere Zwecke verwenden.
    Ich finde, es lohnt sich allein schon wegen der Reichtweite (bei Conrad Modul eher gering) ein gutes US-Modul zu kaufen.
    Sooooooo teuer sind die ja auch nicht.

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    25.01.2012
    Beiträge
    7
    Also, wenn ich den beschriebenen Algorithmus nutze, dann sollte das ja eigentlich wirklich nicht besonders schwer sein.

    Die andere Sache mit dem Summer.

    Ich habe hier einen Summer, wenn man den an 'ne Stromquelle hält, dann macht der "Mööp". Hat 2 Drähte und ist rund
    Das Ding soll jetzt ohne höheren Aufwand und für Laien verständlich auf meinen RP6 gefriemelt werden.


    Wenn ich das Labyrinth aber wirklich mit dem beschriebenen Algorithmus lösen lasse, dann brauche ich ja an und für sich keine Ultraschallsensoren sondern einfach 2 Seitenbumper, die nunmal auf "false" springen, sobald links oder rechts eine Öffnung ist. Obwohl es dann schwierig wäre, den RP6 dann zu drehen, es sei denn, er würde durch die Bumper praktisch kreisförmig gemacht, wenn ihr versteht, was ich meine...

  6. #16
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Jap. So einen Summer meine ich!
    Die beiden Kabel, das sind + und -.
    + Schließt du an deine VCC, das ist die 5V-Betriebsspannung des RP6 (vielleicht vorher noch rausfinden, ob der Summer 5V verträgt, oder weniger, oder ob er mehr braucht. Aber 5V sind denke ich gut).
    - schließt du über einen Transistor (bc547 zum Beispiel) an GND und an den I/O, den du verwenden möchtest. Bei der Base kann man z.B. wunderschön die I/Os 2 und 5 verwenden, das sind die mittleren LEDs in den 3er-Reihen (SL2 und SL5). Die werden nirgends gebraucht. Wenn du da Hilfe brauchst, sag bescheid.
    Deine zusätzlichen Bumper kann man an die LEDs SL1 und SL4 anschließen, an SL3 und SL6 sitzen schon die Standard-Bumper.
    SL4 ist glaube ich auch noch frei, SL1 ist die Blinke-LED, ist aber an sonsten auch verfügbar.

    Grüße

  7. #17
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    @ Tim Hansen

    Wenn dein Summer nur ein paar mA (Strom) braucht, kannst du ihn direkt anschliessen (ohne Transistor, wie LED, aber ohne Vorwiderstand).
    Geändert von PICture (25.01.2012 um 17:25 Uhr)
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  8. #18
    Erfahrener Benutzer Fleißiges Mitglied Avatar von masasibe
    Registriert seit
    21.01.2011
    Beiträge
    181
    Mit Bumper ist das sicher einfacher und billiger zu lösen als mit Ultraschall, aber eleganter sieht es natürlich mit Ultraschall aus, weil der Roboter dann nicht gegen eine Wand fährt wenn er in eine Sackgasse fährt.
    Aber man kann es ja zuerst mit Bumper und später als Erweiterung vielleicht mit Ultraschall realisieren.

  9. #19
    Neuer Benutzer Öfters hier
    Registriert seit
    25.01.2012
    Beiträge
    7
    Also, meine Überlegung ist jetzt momentan, ihn das ganze mit dem ACS machen zu lassen. Er soll sich auf jedem Feldchen einmal nach links umschauen und bei Möglichkeit abbiegen. Wenn vorne, links und rechts blockiert ist, soll er umdrehen.

    Jetzt habe ich aber ein Problem mit meinem Code.

    Wieso wird immer das aus "ELSE {}" gemacht?

    Code:
    // Includes:
    
    #include "RP6RobotBaseLib.h" 	
    
    uint8_t acs_bool = 0;
    
    // Main:
    
    void acsStateChanged(void)
    {
      //Nix.
    }
    
    int main(void)
    {
    	initRobotBase(); 
    	setLEDs(0b111111);
    	mSleep(2500);
    	
    	powerON(); // Strom für alle Systeme wie ACS, Bumper und die LEDs
    
    	ACS_setStateChangedHandler(acsStateChanged);
    	
    	// Main loop
    	while(true) 
    	{		
    		setLEDs(0b100100); 
    		
    		//LEDs setzen
    		setLEDs(0b111001);
    		updateStatusLEDs();
    		
    		// Prüfe, ob links eine Öffnung ist
    		if (obstacle_left && obstacle_right)
    		{
    			// LEDs setzen
    			setLEDs(0b001111);
    			updateStatusLEDs();
    			
    			// Rotiere wieder zurück in gerade Position
    			rotate(40, RIGHT, 90, BLOCKING);
    			
    			//LEDs setzen
    			setLEDs(0b001001);
    			updateStatusLEDs();
    				
    			// Prüfe, ob vorne ein Hindernis ist
    			if (obstacle_left && obstacle_right)
    			{
    				// LEDs setzen
    				setLEDs(0b001111);
    				updateStatusLEDs();
    				
    				// Rotiere rechts
    				rotate(40, RIGHT, 90, BLOCKING);
    				
    				//LEDs setzen
    				setLEDs(0b111001);
    				updateStatusLEDs();
    				
    				// Prüfe, ob rechts ein Hindernis ist
    				if (obstacle_left && obstacle_right)
    				{
    					// LEDs setzen
    					setLEDs(0b001111);
    					updateStatusLEDs();
    					
    					// Rotiere rechts
    					rotate(40, RIGHT, 90, BLOCKING);
    					
    					//LEDs setzen
    					setLEDs(0b111001);
    					updateStatusLEDs();
    				} else { move(50, FWD, DIST_MM(250), BLOCKING);}
    			} else { move(50, FWD, DIST_MM(250), BLOCKING);}
    		} else { move(50, FWD, DIST_MM(250), BLOCKING);}
    		
    		
    
    	}
    	return 0;
    }
    Das verstehe ich nicht :O

    Danke schonmal!
    Geändert von radbruch (26.01.2012 um 16:32 Uhr)

  10. #20
    Erfahrener Benutzer Fleißiges Mitglied Avatar von masasibe
    Registriert seit
    21.01.2011
    Beiträge
    181
    Wieso wird immer das aus "ELSE {}" gemacht?
    Was genau meinst du? Was soll aus dem else gemacht werden?
    Das else sieht doch ganz normal aus.
    Edit: Ah jetzt verstehe ich, du hast gemeint, dass immer der else-Block ausgeführt wird.
    Sorry war ein missverständnis
    Geändert von masasibe (26.01.2012 um 16:45 Uhr)

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Ähnliche Themen

  1. Labyrinth
    Von asuro11 im Forum Sensoren / Sensorik
    Antworten: 14
    Letzter Beitrag: 10.05.2009, 12:02
  2. Beispielprogramm Labyrinth
    Von Joee im Forum Asuro
    Antworten: 10
    Letzter Beitrag: 07.07.2007, 16:45
  3. Hilfe für Labyrinth-Roboter?
    Von Scott im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 21
    Letzter Beitrag: 23.05.2005, 17:19
  4. [ERLEDIGT] Kugel Labyrinth
    Von sinclair im Forum Mechanik
    Antworten: 11
    Letzter Beitrag: 03.12.2004, 12:55
  5. Robby durch ein Labyrinth
    Von Maro im Forum Robby CCRP5
    Antworten: 1
    Letzter Beitrag: 13.08.2004, 19:29

Berechtigungen

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

LiFePO4 Speicher Test