-         

Ergebnis 1 bis 2 von 2

Thema: Nibo2 Seitensensoren01

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    01.12.2010
    Beiträge
    9
    Blog-Einträge
    1

    Nibo2 Seitensensoren01

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Nibo2 Test Seitensensoren

    Entwicklungsumgebung:
    Windows XT, AVR Studio 4 V4.18, nibolib-20101210

    Nachdem meine Versuche mit copro_ticksRel (..) nicht viel gebracht hatten, habe ich es mit copro_setSpeed (vl, vr) versucht.

    Aber auch hier ergeben sich grundsätzliche Schwierigkeiten bei der MotorRegelung.

    Programmablauf:

    main()
    ...
    copro_setSpeedParameters(15, 20, 10); // ki, kp, kd
    ...

    Endlosschleife
    - ir_rc5 () manuelle Steuerung über IR-Fernbedienung

    Daten der Seitensensoren in X-Y Vektoren umwandeln

    modus aus den X-Y Vektoren ermitteln
    modus: vor, zurück, links, rechts (insgesamt 25 Modi)

    Daten anzeigen (LCD und Funk)

    go == 1?
    modus auswerten (switch)

    delay (msec)

    - copro_update ()


    Testen der Grenzwerte für die verschiedenen Modi per IR-Bedienung,

    vl, vr, mydelay lassen sich per Tasten inc/decrementieren

    Steuerung vor, zurück, links, rechts läuft nach folgendem Schema ab (je nach Taste):

    sound_tone(20, 3000);
    go = 0;
    copro_setSpeed (vl, vr);
    delay (mydelay);
    // copro_setSpeed (0,0);
    copro_stop ();

    Hierbei tritt jedoch folgendes Phänomen auf:

    Nach mehrmaligem Drücken der Tasten vor (zurück, links, rechts) wird irgendwann die Befehlssequenz

    delay(mydelay)
    copro_stop ()

    nicht mehr ausgeführt und der Nibo läuft immer weiter!!

    Kennt jemand dieses Problem und hat evtl. eine Erklärung / Lösung?


    Meiner Meinung nach ist die Motor Kontrolle nicht optimal gelöst.
    Es müßte ein Busy-Flag geben, welches angibt wann die MotorRegelung abgeschlossen ist, um dann das Programm weiter abzuarbeiten.

    flag = copro_setSpeed (vl, vr, delay) delay = 0 -> normal corpro_setSpeed

    desgleichen

    flag = copro_setTargetRel (tl, tr, v)


    mfg hjjb49

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von Hero_123
    Registriert seit
    29.08.2010
    Beiträge
    202
    Hallo HJBB49

    ich habe auch die Probleme, daß der NIBO2 nicht immer stoppt (aber auch manchmal nicht losfährt!); verwende aber die NiboLib2.10 und das "neue" copro_stopImmediate()... der Nibo soll eine bestimmte Strecke vorwärts fahren, eine bestimmte Zeit lang warten, die selbe Strecke rückwärts fahren, eine bestimmte Zeit lang warten und den Zyklus wieder von vorne beginnen -und das mehrere Minuten lang.
    Ich habe festgestellt, daß der Nibo2 nicht immer stehen bleibt, sondern weiterfährt, es kann ebenso passieren, daß er losfahren soll, aber stehen bleibt...

    wie weit bist Du mit Deinen Forschungen gekommen?

    mfg

    Hero_123
    Arroganz ist die Perücke auf der Glatze der Unwissenheit

Berechtigungen

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