- 3D-Druck Einstieg und Tipps         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: RP6 Hinderniss umfahren

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.03.2010
    Beiträge
    172
    Anzeige

    E-Bike
    Zitat Zitat von roboter14
    Zitat Zitat von RoboNull
    Sollte der Roboter nicht gerade aus fahren. Nach 3 SEkunden sich um 90 Grad nach Links drehen und dann wieder gerade aus fahren? (und das unenedlich lange)
    Was macht er denn sonst?
    Der Roboter fährt geradeaus. Nach 3 Sekunden wendet er um 90Grad nach links, dreht sich dann aber immer im Kreis weiter. (also er fährt nur noch links).


    Grüße

  2. #12
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    27.09.2009
    Alter
    29
    Beiträge
    661
    du musst halt nach rotate wieder moveAtSpeed machen
    MfG Martinius

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.03.2010
    Beiträge
    172
    Zitat Zitat von Martinius11
    du musst halt nach rotate wieder moveAtSpeed machen
    Warum bitte? Wenn das C sein soll, dann ist das korrekt!

    Code:
    task_motionControl();
                task_ADC();
                
                moveAtSpeed(70, 70);
                startStopwatch1();
             
                if (getStopwatch1() > 3000)
                {
                   rotate(70, LEFT, 90, true);
                   setStopwatch1(0);
                   
                }
    Wenn der Counter 3 Sekunden erlangt hat, dreht sich der Roboter nach Links (90 Grad). Dann wird der Counter auf 0 gesetzt. Die Programm ausführung springt wieder zur task_motionControl(), da wir uns in einer while (true) Schleife befinden. Dann wird das moveAtSpeed(70, 70) ausgeführt und nach 3 Sekunden fallen wir wieder in den IF Zweig.


    Grüße

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    07.11.2009
    Ort
    Stuttgert
    Alter
    29
    Beiträge
    14

    Hinderniss programm

    Hi RoboNull,

    probiers mal hiermit:

    Code:
    #include "RP6RobotBaseLib.h"
    
    void hinderniss(void)
    {
       if (!obstacle_left && !obstacle_right && !bumper_left && !bumper_right)  // Wenn nichts vorliegt ...
        {
          changeDirection(FWD);   
          moveAtSpeed(75,75);
        }
        if (obstacle_left && obstacle_right)   // Wurde ein hinderniss erkannt ...
        {
    	  move(80, BWD, DIST_MM(200), BLOCKING);  // ... 200mm mit der Geschwindichkeit 80 zurückfahren
    	  rotate(80, RIGHT, 45, BLOCKING);	// ... um 45 grad nach Rechts drehen mit der Geschwindichkeit 80
    		
         } 
    }
    
    int main(void)
    {
       initRobotBase();
       powerON();
       setACSPwrMed();   // ACS auf Normale Entfernung
          
          while(true)
          {
             hinderniss();
             task_RP6System();
          }
          return 0;
             
          
    }
    gruß Fabi

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Solar Speicher und Akkus Tests