INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Selbstfahrender Roboter Programm änderung hilfe ?
06.07.2016, 10:41
Beitrag #9
RE: Selbstfahrender Roboter Programm änderung hilfe ?
Ganz frech könnte man ja in turn()
Einfach ein delay(2000) einfügen damit er 2 sek länger "turnt".

Natürlich sollte man das über einen Timer fahren, dazu muss man die Timer aber auch erst verstehen!

Stichwort "blink without Delay"

Im Augenblick wollen wir erstmal nur den Code sehen, der jetzt für das turn verantwortlich ist.
Danke

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.07.2016, 10:54
Beitrag #10
RE: Selbstfahrender Roboter Programm änderung hilfe ?
(06.07.2016 10:41)Binatone schrieb:  Im Augenblick wollen wir erstmal nur den Code sehen, der jetzt für das turn verantwortlich ist.

Den hat er ja bereits in #1 geliefert Wink

Code:
// Drehen! Aber in welche Richtung??? LEFT für Links(gegen den Uhrzeiger) RIGHT für Rechts (im Uhrzeigersinn)
void Turn( boolean Direction )
{
// Bremsen
digitalWrite( BRAKE_A, HIGH );
digitalWrite( BRAKE_B, HIGH );
delay( 5 );

digitalWrite( DIR_A, Direction ); // Motor A in die "RICHTUNG" drehen
digitalWrite( DIR_B, !Direction ); // Motor B in entgegen der "RICHTUNG" drehen



// Geschwindigkeit für das Drehen einstellen
analogWrite( PWM_A, TURN_SPEED );
analogWrite( PWM_B, TURN_SPEED );

// Bremsen lösen
digitalWrite( BRAKE_A, LOW );
digitalWrite( BRAKE_B, LOW );


// Solange drehen, bis der Sensor eine 10% weitere Entfernung misst
while( ( CLOSEST_DISTANCE * 1 ) < analogRead( IR_SENSOR ) )
delay (1);

// Halt!
digitalWrite( BRAKE_A, HIGH );
digitalWrite( BRAKE_B, HIGH );
delay( 1 );
}

Da ist ja schon alles soweit vorhanden. Man muss sich halt etwas Gedanken machen, wie man genau diese Funktion umstrickt. Big Grin

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.07.2016, 10:55
Beitrag #11
RE: Selbstfahrender Roboter Programm änderung hilfe ?
(06.07.2016 10:41)Binatone schrieb:  ...
Einfach ein delay(2000) einfügen damit er 2 sek länger "turnt".
...

...also ich votiere an der Stelle eindeutig für ein klassisches delay()...Big Grin
...das erfrischt dann die Stellgrößen des PID ungemein..
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.07.2016, 14:59
Beitrag #12
RE: Selbstfahrender Roboter Programm änderung hilfe ?
Ja, hast Du ja recht!
Aber er hat ja in der Zwischenzeit auch schon probiert, da was zu ändern am Programm.
Wär doch nett gewesen, zu sehen, was er denn geändert hat.


Einen PID Regler hab ich übrigens nicht gefunden, aber is auch Wurscht.

Ich würde mal hier ansetzen:


// Solange drehen, bis der Sensor eine 10% weitere Entfernung misst
while( ( CLOSEST_DISTANCE * 1 ) < analogRead( IR_SENSOR ) )
delay (1);


Entweder links oder rechts vom Vergleich die Sachen ändern, damit der Zustand länger bestehen bleibt.
Oder das Delay(1) versuchsweise auf delay(100) ändern.

Fakt ist:
Der Robby dreht nicht weit genug und fährt dann wieder los.
So tastet er sich am Rand entlang.

Gewollt ist aber, das er quasi "wendet" oder 120 Grad glaub ich dreht.
Wand erkannt, drehen...weiter
Solange er sich nicht beim drehen Richtung Wand schiebt, reicht auch delay().
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Roboter kompassgestützt steuern Snörb 5 254 Heute 12:16
Letzter Beitrag: Snörb
  Ublox Neo 6M und Nextion ! Bitte um Hilfe. b3ta 19 477 13.07.2017 14:52
Letzter Beitrag: Tommy56
  Anfänger sucht erfahrene Hilfe Customizer 21 875 11.07.2017 21:37
Letzter Beitrag: Customizer
  Bei Änderung eines Zustandes (boolean) Aktion auslösen - wie? Gelegenheitsbastler 3 271 04.07.2017 10:50
Letzter Beitrag: Gelegenheitsbastler
  Arduino Zumo, Felerhaftes Programm (2) Werner Lage 1 181 28.06.2017 10:57
Letzter Beitrag: Thie
  Arduino Zumo, Felerhaftes Programm ? Werner Lage 1 175 20.06.2017 13:57
Letzter Beitrag: Tommy56
  Zumo Roboter Projekt Werner Lage 6 388 14.06.2017 05:57
Letzter Beitrag: georg01
  Bitte um Hilfe Arduino Nano-MAX7219-PIR_Sensor Opa_Klaus 35 1.316 20.05.2017 21:11
Letzter Beitrag: Opa_Klaus
  Brauche Hilfe für meine Abfüllanlage/ millis() Slash96 8 478 10.05.2017 21:04
Letzter Beitrag: MicroBahner
Question Problem beim Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 17 1.005 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste