RoboterCC - Robotic Code Compiler
Forum Roboter.CC Webseite Fragen und Probleme Verschiedene Fahrbefehle bei der NiboRoboLib

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Letzte Themen

  • Keine Beiträge vorhanden

Site-Statistic

  • 7068 private projects
  • 377 public projects
  • 15442436 lines compiled
  • 55152 builds
NIBO @ facebook YouTube Twitter
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Fragen und Probleme zur Roboter.CC-Plattform können hier diskutiert werden.
  • Seite:
  • 1
  • 2

THEMA: Verschiedene Fahrbefehle bei der NiboRoboLib

Verschiedene Fahrbefehle bei der NiboRoboLib 6 Jahre 8 Monate her #3545

  • Georg
  • Georgs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 289
Hallo Workwind,

ein NIBOburger soll den Linien eines Labyrinth folgen. Die Verzeigungen der Linien sind im rechten Winkel. Für die Abbiegung verwende ich folgenden Code:
void setup() {
  NIBOburger.begin();
  Serial.begin(38400);
  Engine.begin();
  SurfaceSensor.begin();
  uint8_t key = ' ';
  while ( key != 'A')
  {
    key = NIBOburger.getKeyChar();
  }
  int weg=0;
  Engine.setPWM(400,400);
  delay(2000);
     Engine.stop(); 
    //Engine.resetTicks();
    Engine.setTargetRel  (23, 23,15); 
     while (Engine.getTargetDist() == 0);
    do
    {
      weg = Engine.getTargetDist();
      Serial.print("Distanz gerade Strecke = ");
      Serial.println(weg,DEC);
    } while (weg > 0);
    while (Engine.getTargetDist());
    Engine.setTargetRel  (-60, 60,20); 
     while (Engine.getTargetDist() == 0);
    do
    {
      weg = Engine.getTargetDist();
      Serial.print("Distanz Drehung = ");
      Serial.println(weg,DEC);
    } while (weg > 0);    
    Engine.setPWM(400,400);
    delay(2000);
    Engine.stop();  
}
 
void loop()
{
} 
Nach der Abzweigung soll mit
Engine.setPWM(400,400);
weiter gefahren werden. Jedoch bleibt an dieser Stelle der NIBOburger stehen.

lg Georg
Letzte Änderung: 6 Jahre 8 Monate her von Georg.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Verschiedene Fahrbefehle bei der NiboRoboLib 6 Jahre 8 Monate her #3546

  • BirgerT
  • BirgerTs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 325
moin Georg,

die Setup() wird doch nur einmal durchlaufen.. wo ist denn die loop() ?

lg /BirgerT
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Verschiedene Fahrbefehle bei der NiboRoboLib 6 Jahre 8 Monate her #3547

  • Georg
  • Georgs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 289
BirgerT schrieb:
moin Georg,

die Setup() wird doch nur einmal durchlaufen.. wo ist denn die loop() ?

lg /BirgerT
Hi BirgerT,

sorry, die loop() habe ich oben noch nachgetragen.

mfg Georg
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Verschiedene Fahrbefehle bei der NiboRoboLib 6 Jahre 8 Monate her #3548

  • BirgerT
  • BirgerTs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 325
hi Georg, haste denn letzte Nacht auch durchgemacht.. :kopfkratz:
ich brauche hin und wieder auch erstmal eine Mütze Schlaf, um einen Fehler zu erkennen (oder mir die Lösung beim Einschlafen einfällt..)

Das was der Roboter wiederholt ausführen soll, gehört zwischen "loop() {" und "}" ;)

bzw. in Deinem Programm das "loop() {" direkt hinter die "while (key!='A')" Schleife verschieben..
EDIT: und natürlich auch die letzte "}" vor das "loop()" platzieren für das "setup()..

Angabe ohne Gewähr - Habe es nicht selber ausprobiert, aber das ist, was ich erkannt habe.

lg /BirgerT

@workwind: Haste nicht auch noch einen "DaumenDrückSmiley"?!
Letzte Änderung: 6 Jahre 8 Monate her von BirgerT. Begründung: EDIT: Zeile eingefügt
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Verschiedene Fahrbefehle bei der NiboRoboLib 6 Jahre 8 Monate her #3549

  • Georg
  • Georgs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 289
Hi, BirgerT,

den Code oben habe ich nur zusammenkopiert, das eigentliche Programm viel zu lang ist. Mein Problem ist folgendes:

Beim Aufruf von Engine.setTargetRel() übernimmt der PID-Regler den PWM.
Beim späteren Aufruf von Engine.setPWM(..,..) wird der PWM nicht automatisch frei gegeben,
als Folge bleibt der NIBOburger stehen.

Unter C gibt es in der motpid.c die Funktion die Funktion motpid_release() die genau diese Aufgabe übernimmt,
die den PID abschaltet und das PWM wieder frei gibt.

Wie kann ich diese Funktion im Arduino-Code einbinden oder muss ich die EngineClass um diese Funktion erweitern?

mfg Georg
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Verschiedene Fahrbefehle bei der NiboRoboLib 6 Jahre 8 Monate her #3550

  • BirgerT
  • BirgerTs Avatar
  • OFFLINE
  • Gold Boarder
  • Beiträge: 325
Georg schrieb:
Mein Problem ist folgendes:

Beim Aufruf von Engine.setTargetRel() übernimmt der PID-Regler den PWM.
Beim späteren Aufruf von Engine.setPWM(..,..) wird der PWM nicht automatisch frei gegeben,
als Folge bleibt der NIBOburger stehen.
Das hätteste lieber (auch ohne Code) gleich fragen sollen..
Unter C gibt es in der motpid.c die Funktion die Funktion motpid_release() die genau diese Aufgabe übernimmt,
die den PID abschaltet und das PWM wieder frei gibt.
Wie kann ich diese Funktion im Arduino-Code einbinden oder muss ich die EngineClass um diese Funktion erweitern?

in der EngineClass werden die normalen Lib C-Funktionen verwendet; das "motpid_release()" scheint nur in der niboburger.cpp, in der niboburger.h und in der keywords.txt zu fehlen..

Aber unter welchem Verzeichnis der niborobolib_303-0 (arduino oder arduino16) das ergänzt werden muss, weiss ich noch immer nicht.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
  • Seite:
  • 1
  • 2
Ladezeit der Seite: 0.067 Sekunden

Werbung