- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 566

Thema: outdoor I

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    Hehe-sowas hab ich auch noch nicht gesehen.Meins wird, nach längerer Lagerzeit, auch etwas spröde-aber dass es schon auf de rRolle zerfällt, hatte ich noch nie.
    Ich hab welches hier, was schon länger als ein Jahr rumliegt (zwar in der Plastiktüte, aber die offen) drucken kann ich das immernoch ohne weiteres..
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.667
    Das gibt es wohl öfters, bin auch schon mehrmals darüber gestolpert, wo User das in den 3D-Drucker-Foren schrieben. Ich selbst habe auch Filament auch noch nie so lange gelagert, dass es irgendwann in mehrere Teile zerbrochen wäre. Man kann ja dann kleinere Mengen kaufen. Umgewickelt habe ich aber auch noch nie, ich stelle einfach die großen Rollen neben den Drucker.

    MfG

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    danke erstmal, das braucht ein bischen...

    ein "zwischen"problem:

    - der timer läuft, da werden die sekundenaufgaben aufgerufen, in denen die pingroutine:

    Code:
    if ((sekunden_tick == 1) && (gemacht_ping_links_flag == 0))
      {
        ping_distanz_links();
    
        Serial.print("Ping: ");
        Serial.print(uS_links / US_ROUNDTRIP_CM);
        Serial.println(" cm");
      }
    gestartet wird.

    in der pingroutine

    Code:
    void ping_distanz_links(void)
    {
      uS_links = sonar_links.ping();
    
      gemacht_ping_links_flag = 1;
      start_ping_links = true;
    }
    wird aber das pingergebnis trotz des ping-flags auf 1 "100mal" ausgedruckt. Wieso? Wo muss die flagänderung denn hin? In der loop wird sie ja zuerst auf "0" gesetzt, dann in den sekundenaufgaben abgefragt und letztendlich in der pingroutine wieder auf 1 gesetzt...
    gruß inka

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    Hm- wo setzt du das Flag wieder auf 0?
    Wahrscheinlich liegt dort der Hase im Peffer....
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    Zitat Zitat von Rabenauge Beitrag anzeigen
    Hm- wo setzt du das Flag wieder auf 0?
    Wahrscheinlich liegt dort der Hase im Peffer....

    wahrscheinlich...

    mit dem einsatz von timer(), sekundenaufgaben() und meiner entprellten ping-abfrage

    Code:
    void hindernis_vorh_rechts_entprellt(void)
    {
      if (start_ping_rechts == false)
    
    
        aktuelle_ping_millis = millis();
      if (aktuelle_ping_millis - vergangene_ping_millis > interval_ping)
      {
        vergangene_ping_millis = aktuelle_ping_millis;
        ping_distanz_rechts();
      }
    
      if (uS_rechts != NO_ECHO)
      {
        if (((uS_rechts / US_ROUNDTRIP_CM) <= 25) && mehrfach_zaehler_rechts == 0)
        {
          hindernis_rechts = true;
          mehrfach_zaehler_rechts = 1;
        }
        else if (((uS_rechts / US_ROUNDTRIP_CM) <= 25) && mehrfach_zaehler_rechts == 1)
        {
          mehrfach_zaehler_rechts = 0;
        }
      }
      else
      {
        if (((uS_rechts / US_ROUNDTRIP_CM) <= 25) && mehrfach_zaehler_rechts == 1)
        {
          hindernis_rechts = false;
          mehrfach_zaehler_rechts = 0;
        }
        else if (((uS_rechts / US_ROUNDTRIP_CM) <= 25) && mehrfach_zaehler_rechts == 0)
        {
          mehrfach_zaehler_rechts = 1;
        }
      }
    }
    läuft das jetzt:
    der roboter fährt vorwärts und misst im sekundenintervall mal links und dann wieder rechts die entfernung. Die Stepper laufen noch ein bischen "rauh" aber das ist sicher ein anderes problem...
    zu der (meiner) verwendung von der AccelStepper und auch anderen libraries - ich versuche nicht das alles zu verstehen, sondern passe für meine zwecke die beispiele an, in der hoffnung, dass ich es beim nächsten mal immer noch weiss , klappt leider nicht immer...

    Insofern mein dank an alle, die sich immer wieder die mühe machen auf meine fragen einzugehen, wobei hinweise auf andere hardware oder software (welche ausser arduino auch immer) wenig bis garnicht hilfreich sind...

    und jetzt gehts mit dem servo-sweep weiter
    gruß inka

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    Wenn du dieses Flag in der selben Sekunde zurückstellst, in der die Aufgabe erledigt werden soll, wird die die ganze Sekunde über endlos oft erledigt, ist doch klar.

    Der Ablauf sollte so sein:
    - der Sekundenzeiger springt auf "erledigeDas"
    -die Aufgabe wird erledigt, das Flag auf 1 gesetzt
    -der Sekundenzeiger springt auf die nächste Sekunde- und hier wird das Flag wieder auf 0 gestellt, damit es bei der nächsten "erledigeDas"-Sekunde wieder greifen kann.

    Du musst bedenken, dass der Timer ...zigmal pro Sekunde aufgerufen wird- wenn er also in der gleichen Sekunde das Flag wieder auf 0 stellt, klappt das nich.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    Zitat Zitat von Rabenauge Beitrag anzeigen
    Wenn du dieses Flag in der selben Sekunde zurückstellst, in der die Aufgabe erledigt werden soll, wird die die ganze Sekunde über endlos oft erledigt, ist doch klar.
    Der Ablauf sollte so sein:
    - der Sekundenzeiger springt auf "erledigeDas"
    -die Aufgabe wird erledigt, das Flag auf 1 gesetzt
    -der Sekundenzeiger springt auf die nächste Sekunde- und hier wird das Flag wieder auf 0 gestellt, damit es bei der nächsten "erledigeDas"-Sekunde wieder greifen kann.

    Du musst bedenken, dass der Timer ...zigmal pro Sekunde aufgerufen wird- wenn er also in der gleichen Sekunde das Flag wieder auf 0 stellt, klappt das nich.

    so ganz genau weiss ich ja wirklich nicht (beim weiterschreiben habe ich begriffen was da abläuft) warum das jetzt funktioniert , es tut's aber - und - ich hab ja für jedes ereignis was über die sekundenaufgaben läuft ja ein eigenes flag...

    Mit dem flag alleine hat es ja vorher schon funktioniert, allerdings mit dem nachteil des 100fachen aufrufs und auch des 100fachen drucks des wertes. Das ist nun mit der entprellten ping variante weg...

    Ich hab jetzt die ersten versuche mit dem servo-sweep hinter mir. Das hier:
    Code:
    void servo_sweep (void)
    {
      gemacht_servo_sweep_flag = 1;
      
      for (pos = 0; pos < 100; pos += 1)
      {
        myservo.write(pos);
        delay(50);
      }
      for (pos = 100; pos >= 0; pos -= 1)
      {
        myservo.write(pos);
        delay(50);
      }
    }
    funktioniert natürlich nicht, das blockiert die stepper. Aber das hier:

    Code:
    myservo.write(30);
    funktioniert schon, und auch mit dem gesetzten flag für den sweep. Möglichrweise wird der sweep-task ja auch 100x schnell hintereinander aufgerufen, das macht aber nix, weil ja der servo schon in der position ist, bzw. dorthin unterwegs...

    Ich denke ich könnte auch mehrere solche timer benutzen, oder? z.b. mit unterschiedlichen intervallen...
    gruß inka

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.213
    Würde gehen.
    Aber eigentlich reicht einer-als "Tick" nimmst du halt die kürzesten Intervalle, die du brauchst.
    Und die zählst du einfach hoch, um auf längere zu kommen....
    Das hier ist der Timer vom XP2- der tickt jede Sekunde, zählt die aber auch hoch, so dass ich Intervalle von bis zu 20 Sekunden habe.
    So hab ich einmal den Sekunden-Takt (tick, tack, tick, tack) , aber eben auch nen 20-Sekunden-Takt (den man auch noch unterteilen könnte, wenn man will).
    mit intervallTimer=500 könnte man den auch jede halbe Sekunde ticken lassen, ganz wie man will.
    Du musst einfach nur den "kleinsten gemeinsamen Nenner" finden, und den dann als Basis benutzen.


    Code:
    void timer()  // ******************************** Bord-Schaltuhr ****************************************                
    {
      unsigned long aktuelleMillis = millis();  // Millisekunden auf den aktuellen Wert stellen
    
      if (aktuelleMillis - vorherigeMillis >= intervallTimer) // immer wenn 1000 Millisekunden um sind
      {
        akkuMessFlag=0;              //alle gemacht-Flags zurücksetzen
        serialFlag=0;
        lichtMessFlag=0;
        vorherigeMillis = aktuelleMillis;
        if(sekundeTick==0)          // Sekunde-Tick wechselt jede Sekunde zwischen 0 und 1
          {
            sekundeTick=1;
           
             
           }
         else
          {
            sekundeTick=0;
           }
        if(timerTick<20)            // Timer-Tick zählt hoch bis 20, und fängt dann wieder bei 0 an
        {
          timerTick++;
        }
        else
        {
          timerTick=0;
          
        }
        
      }
    }
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

Ähnliche Themen

  1. Abstandsmessung Outdoor bis 3m
    Von robo218 im Forum Sensoren / Sensorik
    Antworten: 4
    Letzter Beitrag: 14.12.2017, 06:56
  2. outdoor spy robot
    Von jancrombach im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 7
    Letzter Beitrag: 14.08.2010, 13:09
  3. Outdoor Roboter
    Von OsramLED im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 3
    Letzter Beitrag: 07.08.2006, 09:34
  4. Outdoor-Robo
    Von RobotrixerP im Forum Mechanik
    Antworten: 3
    Letzter Beitrag: 16.04.2006, 18:38
  5. Outdoor - Navigation
    Von Quaio im Forum Sensoren / Sensorik
    Antworten: 37
    Letzter Beitrag: 21.04.2005, 12:31

Berechtigungen

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

Solar Speicher und Akkus Tests