- 3D-Druck Einstieg und Tipps         
Seite 41 von 57 ErsteErste ... 31394041424351 ... LetzteLetzte
Ergebnis 401 bis 410 von 566

Thema: outdoor I

  1. #401
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.06.2004
    Ort
    Berlin
    Alter
    59
    Beiträge
    539
    Anzeige

    LiFePo4 Akku selber bauen - Video
    es gibt eine angepasste version auf der kommndozeile für arduino für den rpi.
    das leben ist hart, aber wir müssen da durch.

  2. #402
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    das erinnert so bischen an die RP6 zeiten (so 2010), wo das ganze kompilieren und flashen von der Kommandozeile aus erfolgte 🤨 - fand ich persönlich nicht so toll...

    - - - Aktualisiert - - -

    würde sich für die umschaltung der RX/TX paare so etwas eignen?
    gruß inka

  3. #403
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von inka Beitrag anzeigen
    so,
    nun habe ich ein paar tage codemässig gebastelt...
    Es stellt sich immer deutlicher raus, dass die beiden aktivitäten - fahren und auf hindernisse zu achten - nur unbefriedigend mit einem controler (mega 2560) durchzuführen und nur mit unbefriedigenden qualität von beiden ergebnissen zu schaffen ist.
    Das sehe ich ganz anders. Auch wenn ich kein AVR-Fan bin, ist der Mega2560 schon ziemlich kräftig. Nur mal so zum Vergleich, obwohl die "MIPS" nicht so wirklich vergleichbar sind: für den Mega werden 16 MIPS angegeben, für den ersten PC mit 8088 0,75 MIPS und für die ersten 386 2,15 MIPS (und da lief schonmal Windows drauf). Um deine Aufgaben zu schaffen hat der Mega ausreichend MIPS und eine Menge eingebaute Hardware zur Unterstützung.

    Ich versuche mal ein Konzept zu skizzieren, wie das IMHO machbar ist. Es bietet sich an, mit den Steppern anzufangen. Wenn ich mich richtig erinnere, taktest du mit 4ms, wenn es mal etwas schneller sein soll, könnten es auch 2ms sein. Ich würde also einen Timerinterrupt mit ca. 2ms aufsetzen. Von diesem werden unabhängig von der Mainloop die Motoren bedient. Gleichzeitig werden alle Schalter und Kontakte eingelesen und entprellt. (Auf dem Arduino gibt es das eigentlich schon, dort werden z.B. die Millis bearbeitet, es wird aber vor dem User versteckt, mit ein Grund, daß ich kein Arduino-Fan bin).

    Nun zu den US-Sensoren. Eigentlich sind sie ein schlechtes Design. Als sie mal erfunden wurden, waren sie reine Hardware bestehend aus Treiber, OP-Amps und Komparator. Die echte Auswertung musste der µC machen. Soweit war das in Ordnung. Der neueste Schaltplan, den ich gesehen habe, hat aber einen eigenen Prozessor drauf, der das eigentlich erledigen könnte. Um aber mit den alten Teilen kompatibel zu sein, erzeugt der die gleichen Signale wie sie. Aber auch dafür hat der Mega Unterstützung, den Input-Capture. Damit kann man das zeitliche Eintreten einer Taktflanke automatisch aufzeichnen, ohne den Prozessor zu blockieren. Es gibt davon mehrere Einheiten, damit kann man auch mehrere Sensoren, möglicherweise abwechselnd, laufen lassen.

    Die Kommunikation lässt man ebenfalls aus ihren Interrupten laufen und kann sich in der Mainloop mit der Routenplanung beschäftigen oder PI auf hunderttausend Stellen ausrechnen.

    Die Vorstellung, daß das Aufteilen der Aufgaben auf mehrere Prozessoren einem das Leben erleichtert, ist trügerisch. Am Ende ist der Aufwand, die µCs zu überwachen und zu synchronisieren und dabei kein Ereignis zu verpassen größer, als alles mit einem zu erledigen.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  4. #404
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    24.06.2004
    Ort
    Berlin
    Alter
    59
    Beiträge
    539
    also bei mir läuft das nach eva prinzip, kommunikation kommt noch vor dem a also ein evka
    praxis erfahrung in 2 wochen auf dem 2560, mit 6 x hsr04, mal schauen.
    das leben ist hart, aber wir müssen da durch.

  5. #405
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    55
    Beiträge
    2.198
    Du kannst auch noch anders vorgehen (hab ich auch schon gemacht): den Arduino direkt vom Pi aus mit der Arduino-IDE programmieren.
    Das funktioniert einwandfrei, auch wenn complilieren ein _bisschen_ länger dauert, als gewohnt.
    Selbst ohne ein Display am Pi geht das: ich benutze (aus Bequemlichkeit) einfach VNC- somit kann ich gemütlich am Laptop sitzen, und via WLAN auf dem Pi die IDE starten, und so bedienen als liefe sie auf dem Laptop.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  6. #406
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    870
    Zitat Zitat von Klebwax Beitrag anzeigen
    Das sehe ich ganz anders. Auch wenn ich kein AVR-Fan bin, ist der Mega2560 schon ziemlich kräftig. Nur mal so zum Vergleich, obwohl die "MIPS" nicht so wirklich vergleichbar sind: für den Mega werden 16 MIPS angegeben, für den ersten PC mit 8088 0,75 MIPS und für die ersten 386 2,15 MIPS (und da lief schonmal Windows drauf). Um deine Aufgaben zu schaffen hat der Mega ausreichend MIPS und eine Menge eingebaute Hardware zur Unterstützung.
    Ack.
    Kann irgendwie nicht sein, dass 64000 Befehlszyklen (4ms) und 6 Timer für diese Aufgabe nicht reichen.

  7. #407
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    Zitat Zitat von Klebwax Beitrag anzeigen
    Das sehe ich ganz anders. Auch wenn ich kein AVR-Fan bin, ist der Mega2560 schon ziemlich kräftig. Nur mal so zum Vergleich, obwohl die "MIPS" nicht so wirklich vergleichbar sind: für den Mega werden 16 MIPS angegeben, für den ersten PC mit 8088 0,75 MIPS und für die ersten 386 2,15 MIPS (und da lief schonmal Windows drauf). Um deine Aufgaben zu schaffen hat der Mega ausreichend MIPS und eine Menge eingebaute Hardware zur Unterstützung.
    ich glaube meine probleme beruhen nicht auf der ungenügenden rechenpower des mega2560, sondern am nicht funktionierendem timing der abläufe "fahren" und "orten"...

    Zitat Zitat von Klebwax Beitrag anzeigen
    Ich versuche mal ein Konzept zu skizzieren, wie das IMHO machbar ist. Es bietet sich an, mit den Steppern anzufangen. Wenn ich mich richtig erinnere, taktest du mit 4ms, wenn es mal etwas schneller sein soll, könnten es auch 2ms sein. Ich würde also einen Timerinterrupt mit ca. 2ms aufsetzen. Von diesem werden unabhängig von der Mainloop die Motoren bedient. Gleichzeitig werden alle Schalter und Kontakte eingelesen und entprellt.
    leuchtet absolut ein, ich hatte (und habe teilweise immer noch) schwierigkeiten die kontrolle der Stepper allein so zu machen, dass es einigermassen läuft, anfangs ohne eine lib, dann mit der accelstepper lib und zuletzt mit einem mix von beidem. Stepper allein würden nun laufen, im prinzip so, wie ich es wollte...
    Ich bin dann, was die weitergehenden funktionen der roboters betrifft, einem anderen konzept gefolgt, der von Rabenauge beschrieben wurde:

    Ich verwende einen timer:

    Code:
    void timer()
    {
      aktuelle_timer_millis = millis();
    
      if (aktuelle_timer_millis - vergangene_timer_millis >= interval_timer)  // halbe sekunde um
      {
        vergangene_timer_millis = aktuelle_timer_millis;
        halbe_tick ++; // 500ms sind um
    
        if (halbe_tick > 2) // hier ist eine volle Sekunde vorbei
        {
          halbe_tick = 1; // wechselt alle halbe Sekunde
          sekunden_tick++;// wechselt jede volle Sekunde
    
          Serial.println(sekunden_tick);
    
        }
        if (sekunden_tick >= 11) // mehr brauchen wir nicht
        {
          sekunden_tick = 0;
    
        }
    
      }
    }
    und "sekundenaufgaben"
    Code:
    void sekunden_aufgaben()
    {
      if (sekunden_tick == 1)
      {
        //    spannung_messung_gemacht = 0;
      }
    
      if ((sekunden_tick == 2) && (spannung_messung_gemacht == 0))
      {
        //    spannung_messen_chip();
        //    spannung_messen_3();
      }
    
      if (sekunden_tick == 3)
      {
        ping_zwei_sensoren_gemacht = 0;
        //    myservo.write(35);
      }
    
      if ((sekunden_tick == 4) && (ping_zwei_sensoren_gemacht == 0))
      {
          sonar_2_sensoren ();
          start_1();
      }
      if (sekunden_tick == 5)
      {
    
      }
      if (sekunden_tick == 6)
      {
        ping_zwei_sensoren_gemacht = 0;
        //    myservo.write(70);
      }
    
      if ((sekunden_tick == 7) && (ping_zwei_sensoren_gemacht == 0))
      {
          sonar_2_sensoren ();
          start_1();
      }
    
      if (sekunden_tick == 8)
      {
        //    hindernis_vorh_mitte_entprellt();
      }
    
      if (sekunden_tick == 9)
      {
        ping_zwei_sensoren_gemacht = 0;
        //    myservo.write(0);
      }
    
      if ((sekunden_tick == 10) && (ping_zwei_sensoren_gemacht == 0))
      {
          sonar_2_sensoren ();
          start_1();
      }
    
      if (sekunden_tick == 11)
      {
    
      }
    }
    die beide in der loop() laufen...

    Zitat Zitat von Klebwax Beitrag anzeigen
    Nun zu den US-Sensoren. Eigentlich sind sie ein schlechtes Design. Als sie mal erfunden wurden, waren sie reine Hardware bestehend aus Treiber, OP-Amps und Komparator. Die echte Auswertung musste der µC machen. Soweit war das in Ordnung. Der neueste Schaltplan, den ich gesehen habe, hat aber einen eigenen Prozessor drauf, der das eigentlich erledigen könnte. Um aber mit den alten Teilen kompatibel zu sein, erzeugt der die gleichen Signale wie sie. Aber auch dafür hat der Mega Unterstützung, den Input-Capture. Damit kann man das zeitliche Eintreten einer Taktflanke automatisch aufzeichnen, ohne den Prozessor zu blockieren. Es gibt davon mehrere Einheiten, damit kann man auch mehrere Sensoren, möglicherweise abwechselnd, laufen lassen.
    auch die habe ich schon verwendet, ohne dass sich die Stepper (allerdings eine andere art Stepper als die NEMA17 und die customstepper lib) sich mit irgendetwas anderem ins gehege gekommen wären....


    Zitat Zitat von Klebwax Beitrag anzeigen
    Die Vorstellung, daß das Aufteilen der Aufgaben auf mehrere Prozessoren einem das Leben erleichtert, ist trügerisch. Am Ende ist der Aufwand, die µCs zu überwachen und zu synchronisieren und dabei kein Ereignis zu verpassen größer, als alles mit einem zu erledigen.
    bei der verwendung der timerfunktion und der sekundenaufgaben dachte ich es wäre (natürlich durch zwei controler und I2C etwas verkompliziert) relativ einfach ein paar werte von einem mc zu generieren (die ortungsabstände) um sie vom anderen controler zu lesen und auszuwerten...

    Was die ISR's betrifft, bin ich trotz mehrere kurze anläufe immer wieder davor zurückgeschreckt, wenn sich nur eine andere (vielleicht auch nur vermeintlich einfachere) methode der lösung angeboten habe...
    gruß inka

  8. #408
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    Zitat Zitat von Klebwax Beitrag anzeigen
    Ich versuche mal ein Konzept zu skizzieren, wie das IMHO machbar ist. Es bietet sich an, mit den Steppern anzufangen. Wenn ich mich richtig erinnere, taktest du mit 4ms, wenn es mal etwas schneller sein soll, könnten es auch 2ms sein. Ich würde also einen Timerinterrupt mit ca. 2ms aufsetzen. Von diesem werden unabhängig von der Mainloop die Motoren bedient. Gleichzeitig werden alle Schalter und Kontakte eingelesen und entprellt.
    ich möchte mein letztes statement etwas ergänzen:
    natürlich weiss ich um die vorteile der ISR routinen, habe auch versucht mich in die problematik in verschiedenen tutorials und anderen webseiten einzulesen, bin dabei aber nicht wirklich weitergekommen ...
    Es wäre vielleicht ein versuch wert, wenn jemand mit mir zusammen versuchen würde, die problematik schritt für schritt durchzuarbeiten, an codebeispielen, fragen und erklärungen...
    Insofern sollte mein letzte äusserung hier im thread keine rigorose ablehnung in richtung ISR sein. Den thread würde das sicher bereichern...
    gruß inka

  9. #409
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    55
    Beiträge
    2.198
    Gab es da nicht diese TimerOne (oder so ähnlich)-Bibliothek für derartiges?
    Bisher komme ich im XP2 glänzend ohne solche Interrupts aus, ich benutze lediglich für die Odometer welche (PinChange).
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  10. #410
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    Es gibt viele Links zu einfachen Abhandlungen, für Einsteiger in Arduino. Man muss sich dann tatsächlich auch mal damit auseinandersetzen und das ausprobieren und durcharbeiten. Zum Beispiel diesen Inhalt hier: http://diwo.bq.com/de/interrupts-mit-arduino-benutzen/
    Auf DIWO ist es ein sehr anschauliches Beispiel, das jeder ausprobieren kann. Einfacher gehts eigentlich nicht mehr. Dort steht genau, was, warum und wo.

    Die ISR muss verankert werden. Eine Erklärung, im Detail, gibts hier, für attachInterrupt: https://www.arduino.cc/reference/de/...tachinterrupt/


    MfG

Seite 41 von 57 ErsteErste ... 31394041424351 ... LetzteLetzte

Ä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. [ERLEDIGT] 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
  •  

LiFePO4 Speicher Test