-         

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 39

Thema: Winkelsensor, Poti oder Lichtschranke?

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.05.2004
    Alter
    36
    Beiträge
    170

    Winkelsensor, Poti oder Lichtschranke?

    Anzeige

    Hi.
    Ich hab hier einen Verteiler, der verschiedene Getränke mischen soll.
    Ich habe aber Probleme mit der Positionsermittlung.

    Zuerst aber mal ein Bild (Draufsicht):

    Ein Grundkörper, in diesem ist eine Kreistasche herausgerfräst, in der eine Scheibe läuft. Die Scheibe ist mit einer Taktscheibe verbunden, in die Bohrungen mit einer Teilung von 15° gebohrt wurden.

    Von vorne:

    Unten im Grundkörper sieht man hier ebenfalls die Bohrungen; gleiche Teilung wie in der Taktscheibe (15°).

    Der Sensor (Isometrisch von unten):

    Die eine zusätzliche Bohrung ist zur Bestimmung des Referenzpunktes. In die Bohrungen der Abfrageeinheit kommt jeweils eine IR-Lichtschranke.


    Nun zum Problem:
    Der Verteiler, soll die verschiedenen Positionen anfahren können, dabei wird einfach der Referenzpunkt angefahren und ab diesem gezählt.
    Manchmal funktioniert das und manchmal nicht und das Ding verzählt sich.
    Ich glaube es liegt an dem zu langsamen Abfragen, allerdings benutze ich einen Java-Mikrocontroller, der das leider nicht schneller kann.

    Was kann ich verbessern?
    Meine Vorschläge:
    - einen Winkelsensor, bzw. ein Poti (das aber keinen Endanschlag haben sollte), so hätte ich immer einen absoluten Wert, aber ist das genau genug?
    - den Durchmesser der Taktscheibe vergrößern (ich kann sie ja fast bis auf das doppelte vergrößern, allerdings will ichs nicht machen, wenn es nachher doch nichts bringt - wieder die Frage ob es genau genug ist.)
    - die Scheibe langsamer drehen lassen, nur wie? (Wird angetrieben mit einem VW-Scheibenwischermotor auf der langsamen Stufe)

    Eigentlich kann ich mir nicht vorstellen, das der Mikrocontroller nicht mitkommt mit dem zählen, denn soo schnell ist das ja auch wieder nicht. vielleicht liegt es auch an der Programmierung.

    Hier ein Code-Schnipsel zum aufwärtsbewegen, auch wenn hier wahrscheinlich keiner einen Mikrocontroller mit java programmiert...

    Code:
    static private void moveUp(int x) {
        while (GLOBAL.MIX_POS < x) {           //solange aktuelle Position kleiner als neue
          powerUp(true);                       //Motor-Linkslauf einschalten
          while (isPos()) {}                   //warten bis auf Position
          while (!isPos()) {}                  //warten bis nichtmehr auf Position
          powerUp(false);                      //Motor-Linkslauf ausschalten
          GLOBAL.MIX_POS++;                    //aktuelle Position um eins erhöhen
          TOOLS.pause(MOTOR_PAUSE_MOVE);       //kurze Pause, sonst klappts gar nicht mit dem zählen (10ms)
        }
      }

    Wie würdet ihr das lösen?
    Bin natürlich auch für jede andere Idee dankbar!

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Ich hatte mal das Vergnügen, bei einem DVD-Wechsler mit einer ähnlichen Problemstellung die Software zu schreiben.
    http://195.128.164.40/rt_music/electronic/dvd/dvd.htm
    Dabei hat sich gezeigt, daß das zuverlässige Finden eine NULL-Position garnicht so trivial ist, wie man meinen möchte, auch ohne, daß irgendwas zu langsam wäre. Es war einfach das Gefummel mit Drehrichtung/Flanke/Geschwindigkeit, daß man schon Nachdenken mußte.
    Bißchen erschwerend war, daß die Bewegung des Carousel (aus Gewichtsgründen) mit einer Beschleunigung- und Bremsphase ausgeführt werden mußte, d.h. zur Position mußte es sich ggf. einpendeln und konnte nicht einfach stoppen.
    Ich will damit sagen, daß es solche eleganten Statements wie "isposi()" in sich haben. Schau dir diese Funktionen genau an.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2005
    Ort
    Niederdorfelden / Hessen
    Alter
    49
    Beiträge
    368
    Hi BlooD,

    die Idee mit dem Poti finde ich gar nicht so übel. Den Poti kannst Du ja zur groben Positionsbetimmung verwenden und die Lichtschranke zur Feineinstellung.

    Ich hatte mal ein ähnliches Problem mit einer Siphonschälzentrifuge. Die Position vom Schälrohr wird mit 4 Punktmessungen ermittelt. Leider hat die Hydraulik die Positionen öfters überrannt. Ich hatte keine Möglichkeit eine kontinuierliche Messung (Äquivalent zum Poti) zu installieren.

    Als Lösung habe ich beim Verlassen der Punktmessungen die Laufrichtung in die Positionsmeldung eingerechnet.

    Die Punktmessungen sind den Positionen 1 (innen) bis 4 (außen) zugeordnet. Wenn das Schälrohr nach aussen fährt und eine bekannte Position verlässt addiere ich zur alten bekannten Position 0.5 hinzu. Wenn das Schälrohr nach innen fährt und eine bekannte Position verlässt ziehe ich von der alten Position 0.5 ab.

    Beispiel :

    Position 3 ist aktuell
    es wird nach innen gefahren
    wenn Position 3 verlassen wird ist die Position => 3 - 0.5 = 2.5
    sobald Position 2 erreicht wird ist Position 2 die Aktuelle.

    Wird Position 2 in gleicher Richtung überfahren, dann
    Ist die aktuelle Richtung -> nach innen
    und von der letzten gemessenen Position wird wieder 0.5 subtrahiert.
    Position => 2 - 0.5 = 1.5 -> die aktuelle Position ist 1.5

    Bei mir hat es funktioniert und die Positionsregelung konnte problemlos gefahren werden, da immer bekannt ist, in welcher Zwischenstellung sich das Schälrohr befindet. Wenn eine Sollstellung überfahren wird ist die Korrektur sofort möglich.

    Wenn Du das Poti zur groben Positionsbestimmung verwendest kannst Du Dir die Rechnerei auch sparen. Mit dem Poti kannst Du die Fahrrichtung bestimmen und solange in Position fahren bis die Lichtschranke die korrekte Stellung meldet. Wenn die Sollstellung überfahren wird, einfach einen Schubs zurück fahren. Im Anfahrmoment sind die Motoren sowiso etwas langsamer.

    Gedankenblitz :
    Wenn Du PWM zur Verfügung hast kannst Du damit die Leistung und damit die Geschwindigkeit vor dem Erreichen der Sollposition reduzieren.

    Grüße Klaus
    Eine verrückte Idee ist besser als keine

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.05.2004
    Alter
    36
    Beiträge
    170
    So genau wie bei deinem DVD-Wechler muss es gar nicht sein, wenn die Drehscheibe ganz außen mit der Position auf 1mm genau stimmt, sollte das schon gehen, aber das muss halt zuverlässig sein.
    Ich kann bei dem Motor nicht einfach so eine Flanke machen, weil ich den einfach nur per Umpolrelais ein/ausschalte.
    Die 10ms Pause nach einem Schritt ist dafür, das der nicht zu schnell wird, und nach jeder Position ganz kurz wartet.

    Ich frage mit istPos() nur ab, ob die Lichtschranke schaltet oder nicht. Das ist sicher nicht optimal, aber wie soll ichs sonst machen?

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    @Klaus: Bitte, bitte, sag einem armen Ösi, was eine "Siphonschälzentrifuge ist"
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2005
    Ort
    Niederdorfelden / Hessen
    Alter
    49
    Beiträge
    368
    @PicNick : Es geht nicht um die spezielle Zentrifugenart, sondern um die punktgenaue Positionierung mit Lichtschranken.
    Ich versuche mal ein Schema zu finden und stelle das Bild online - mit Worten geht das nicht so einfach.

    und ... wozu gibt es eigentlich Google und Co ??

    Meinst Du mit Ösi einen Österreicher ?
    Als Deutscher habe ich gelernt, daß auch Österreicher etwas wissen können. Hab' nichts gesagt, jedoch sehr laut

    Grüße Klaus
    Eine verrückte Idee ist besser als keine

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Du hast schon recht, wer den Schaden hat, spottet jeder Beschreibung.
    Zitat Zitat von Klaus
    .. wozu gibt es eigentlich Google und Co ??
    Auch da hast du recht, das sollt' man jedem sagen, der grad ein Forum einrichtet.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.05.2004
    Alter
    36
    Beiträge
    170
    Ich hab zwar zwei PWM-Kanäle, jedoch sind diese schon fest als Clock und CW/CCW der L297/L298 Steuerung für einen anderen Motor belegt
    Ich wüsste jetzt auch gar nicht, wie ich mit dem PWM und dem Relais den Motor langsamer laufen lassen kann.

    Ich könnte höchstens den Motor immer wieder ein und ausschalten, hört sich bestimmt bescheuert an, mit dem Relais... welches wohl auch irgendwann früh sterben würde - oder nicht?

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.01.2005
    Ort
    Niederdorfelden / Hessen
    Alter
    49
    Beiträge
    368
    Hi BlooD,

    um Gottes Willen, kein PWM mit Relais. Da kannst Du zusehen, wie Dir die Kontakte weggebrutzelt werden.

    Das nächste was mir noch einfällt währe irgend etwas mit dem I2C-Bus. Mit diesem Bus können mehrere Slaves angesprochen werden, an denen eine Motoransteuerung hängen könnte.
    Da hab' ich allerdings selbst noch keine Erfahrungen. Keine Ahnung wie man so etwas zu realisieren ist. Das geht jetzt in die Richtung meiner Signatur.

    Grüße Klaus
    Eine verrückte Idee ist besser als keine

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.05.2004
    Alter
    36
    Beiträge
    170
    Ich hab mir das mit dem PWM nochmals überlegt. Problem ist halt, das ich eine komplette Platine schon hab und die wegwerfen müsste, wenn ich jetzt das Relais durch eine PWM-Schaltung ersetzte...
    Deshalb wäre es mir Recht, wenn ich die vorhandene Platine verwenden könnte.

    Ich werd mich mal schlau machen wegen PWM, hab davon noch keine Ahnung, im prinzip wird da der Motor immer ein und ausgeschaltet, oder?
    Da der Motor aber ordentlich Ampere saugt wird das auch nicht einfach.

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

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