- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
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
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von inka Beitrag anzeigen
    Kann das an der motortreibern liegen?
    Wenn du damit die Hardware Treiber Module meinst, nein. Die haben keine Variablen, merken sich nichts. Beim enablen/disablen kann es höchtens einen Ruckler um +- 1/2 Schritt geben, also so rund um 1° Drehung.

    Es ist ein Software Problem.

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

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.667
    Ich versuche mal ein wenig Licht in die Sache zu bringen. Da sind mir noch mehr Dinge aufgefallen, die ich nicht so recht in dem Code von Inka verstehe. Wie das Verwenden von runSpeed(). Das soll immer wieder aufgerufen werden (?), damit der Motor seine Schritte tut, allerdings ruft Inka danach immer wieder die move()-Methode auf? Die Verwendung von move(), setSpeed() usw. verstehe ich noch nicht so recht.

    Aber zunächst mal was anderes:

    die Klassenreferenz: http://www.airspayce.com/mikem/ardui...elStepper.html


    zu: stepper_VL, stepper_HL, stepper_VR, stepper_HR, stepper_MAX
    habe ich keine Werte gefunden, welche verbergen sich dahinter?






    Übersetzung:


    Sie können mehrere gleichzeitige Stepper verwenden, die sich alle mit unterschiedlichen Geschwindigkeiten und Beschleunigungen bewegen,
    vorausgesetzt, Sie rufen ihre run () - Funktionen in ausreichend regelmäßigen Abständen auf.
    Die aktuelle Position ist auf 0 und die Zielposition auf 0 eingestellt. Die Standardeinstellung für MaxSpeed und Acceleration ist 1.0.
    Die Motorpins werden während des Konstruktors durch einen Aufruf von enableOutputs () in den OUTPUT-Modus initialisiert.




    setEnablePin()
    --------------
    Legt die Aktivierungs-PIN-Nummer für Schritttreiber fest. 0xFF zeigt unbenutzt an (Standard). Andernfalls, wenn ein Pin gesetzt ist,
    wird der Pin beim Aufruf von enableOutputs () eingeschaltet und beim Aufruf von disableOutputs () ausgeschaltet.


    Der Ordnung halber würde ich den Enable-Pin über diese Methode, für alle 4988, festlegen. Auch wenn es, zumindest scheinbar, an
    der LIB vorbei funktioniert.




    stop()
    ------
    Der Stepper soll unter Verwendung der aktuellen Geschwindigkeits- und
    Beschleunigungsparameter so schnell wie möglich anhalten.




    disableOutputs()
    ----------------
    Deaktivieren Sie die Motor-Pin-Ausgänge, indem Sie alle auf LOW stellen. Abhängig vom Design Ihrer Elektronik kann dies
    die Stromversorgung der Motorspulen unterbrechen, um Strom zu sparen. Dies ist nützlich, um Arduino-Energiesparmodi
    zu unterstützen: Deaktivieren Sie die Ausgänge für den Ruhezustand und aktivieren Sie sie dann erneut mit enableOutputs(),
    bevor Sie erneut einen Schritt ausführen. Wenn der Aktivierungs-Pin definiert ist, wird er in den OUTPUT-Modus
    versetzt und der Pin auf deaktiviert gesetzt.


    isRunning()
    -----------
    Überprüft, ob der Motor gerade läuft.



    Hier habe ich Zweifel, wegen dem UND-Operator.
    Code:
    /***********************************************************/
    
    
    boolean fahrt_fertig()
    {
    
    
      return        stepper[stepper_VL].isRunning() && stepper[stepper_HL].isRunning() && stepper[stepper_VR].isRunning()
                    && stepper[stepper_HR].isRunning();
    
    
    }
    "1" und "0" ergibt normalerweise "0".
    fahrt_fertig() gäbe FALSE, wenn nur 1 Motor nicht mehr läuft.
    Wenn alle Ergebnisse von isRunning() zusammengeführt werden
    sollen, würde ich das ändern in folgenden Code, mit dem ODER-Operator.
    Code:
    /***********************************************************/
    
    
    boolean fahrt_fertig()
    {
    
    
      return        stepper[stepper_VL].isRunning() || stepper[stepper_HL].isRunning() || stepper[stepper_VR].isRunning()
                    || stepper[stepper_HR].isRunning();
    
    
    }
    Dann gäbe fahrt_fertig() ein FALSE, wenn alle Motoren nicht mehr laufen.





    Folgender Code, um die Stepper anzuhalten.
    Code:
    /***********************************************************/
    void alle_stepper_stop(void)
    {
      for (idx = stepper_VL; idx < stepper_MAX; idx++)
      {
        stepper[idx].stop();
        stepper[idx].disableOutputs();
      }
    
    
    /*
      digitalWrite(enbl_VL, HIGH);
      digitalWrite(enbl_HL, HIGH);
      digitalWrite(enbl_VR, HIGH);
      digitalWrite(enbl_HR, HIGH);
      reboot();
    */
      
    }

    stop() soll den Motor - so schnell wie möglich - anhalten.
    disableOutputs() sollte den a4988 Motortreiber abschalten,
    so dass der Motor sofort anhalten sollte.
    Normalerweise erst stoppen, dann abschalten.


    Später dann wieder anschalten enableOutputs() und den Motor bewegen.



    MfG

    - - - Aktualisiert - - -

    Auch mal bitte prüfen, ob der Code der Fernbedienung ohne Verzögerung im Programm ankommt, ob von dort irgendwo die Verzögerung (vorwärts auf rückwärts) herrührt.

    - - - Aktualisiert - - -


    Beispiel:
    stepper[index].setEnablePin(Pinnummer);
    siehe auch: setPinsInverted()
    stepper[index].setPinsInverted(false,false,true); //weil der Enable ein invertierender Eingang ist
    Geändert von Moppi (10.11.2019 um 08:31 Uhr)

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    hat gut geklappt:
    Klicke auf die Grafik für eine größere Ansicht

Name:	20191114_163024.jpg
Hits:	16
Größe:	39,0 KB
ID:	34476

    ein drehteller (ich glaub von fondue), 10 minuten drehen und das wars...

    Um ein video aufzunehmen hat die dritte hand gefehlt...
    gruß inka

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.093
    Ich habe es schon mit der Drehbank umgespult. Hatte das Problem das eine Dickstelle im Filament war und ich den Druck nach über 40h abbrechen musste. Damit das nicht mehr passiert habe ich das Filament kontrolliert. Habe mir aber einen Sensor gebaut der das registrieren soll. Muss ich aber noch testen und optimieren.

    MfG Hannes

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.667
    Mit wieviel Spannung muß das aufgewickelt werden?


    MfG

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.093
    Das Material darf nicht locker sein, das ist die Hauptsache.

    Was auch noch wichtig ist, ist das du keine Stelle hast mit einem "Berg" oder einem "Tal". Wenn das passiert kann es das Material beim Verarbeiten nachrutschen und sich das Material verzwicken.

    MfG Hannes

  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 Moppi Beitrag anzeigen
    Mit wieviel Spannung muß das aufgewickelt werden?
    MfG
    Klicke auf die Grafik für eine größere Ansicht

Name:	20191115_133920.jpg
Hits:	12
Größe:	28,7 KB
ID:	34477
    habe nicht so drauf geachtet, habe einfach mit der rechten hand gedreht, mit der linken die grosse spule etwas gebremst, also das filament ein bischen unter spannung gehalten und versucht das material auf der kleineren spule ein bischen zu verteilen. Besonders ist es nicht gelungen, der drucker druckt aber...

    p.s. werden hier neuerdings alle fotos in "landscape" gedreht?
    gruß inka

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    vielleicht greife ich hier zu weit vor, aber warum eigentlich nicht. Der Mega 2560 soll ja als "motorbetreuer" dienen, evtl. bekommt er noch ein paar Sensoren zur seite...
    Für die kommunikation nach aussen (und innen) soll ein LOLIN ESP32 dienen, den hatte ich als "rest" aus dem projekt der autonomen TT-lok noch da. Das menü auf dem smartphone sah dort so aus:

    Klicke auf die Grafik für eine größere Ansicht

Name:	2019_11_19_bedien_bild_tt_lok.jpg
Hits:	10
Größe:	46,5 KB
ID:	34490
    dies soll, da die bedienung des outdoor roboters ja viel umfangreicher sein wird durch so etwas
    Klicke auf die Grafik für eine größere Ansicht

Name:	20191119_102532.jpg
Hits:	44
Größe:	35,1 KB
ID:	34491
    ersetzt werden...

    Die übernahme des AP-servers macht mir denke ich keine probleme, wie ich aber die (html?) programmierung des neuen bedienfeldes hinbekommen soll, da habe ich keinen blassen schimmer... Wer hilft?
    gruß inka

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.667
    Wenn Du Hilfe beim HTML-Bedienfeld brauchst, kann ich das gerne für Dich übernehmen. Allerdings habe ich keinen ESP32, nur ein ESP-12E. Müsstest den Code dann auf dem ESP32 selbst zum Laufen bringen, wenn Du nicht ganz unbewandert bist, sollte das funktionieren.


    Gruß

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    also bitte nicht übernehmen, das war nicht der hintergrund meiner frage nach hilfe - ich möchte schliesslich verstehen, was da in dem code passiert...

    Die situation:

    - auf dem ESP läuft ein webserver, der ist an sich kein problem, zumindest habe ich (halbwegs) verstanden was da abläuft...

    - der webserver soll auf "tastendrücke" am smartphone reagieren und die werte, die jetzt die IR-fernbedienung (weiss nicht ob das so sinnvoll ist?) vom ESP über I2C an den arduino liefern...

    - evtl. die IR fernbedienung nur um die werte, die jetzt vom smartphone kommen ergänzen, sodass beide bedienungen funktionieren?

    - der arduino soll per switch() - wie jetzt auch schon - die vom ESP kommenden befehle umsetzen und die motoren steuern...

    Die beiden sketches, so wie sie jetzt sind (die am arduino funktioniert ja bereits mit der IR fernbedienung) und die basis für den webserver (die ich teilweise übernehmen wollte) sind im vorletzten post enthalten. Meinst Du wir können so erstmal starten?
    gruß inka

Seite 1 von 2 12 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. 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
  •  

12V Akku bauen