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
Roboter-Bau Probleme
10.07.2016, 16:16
Beitrag #1
Roboter-Bau Probleme
Hallo zusammen,

Mein Endziel ist es, eine fahrbare Plattform für einen Papp-Roboter zu basteln.
Hierzu habe ich den Arduino Uno R3 mit einem Motor-Shield und einem analoge Joystick verbaut.

Das Motor-Shield ist mit zwei Getriebemotoren und einem 9V-Block verbunden.

Unter einem Holzbrett sind also zwei motorbetriebene Räder hinten links/rechts montiert, vorne dann ein mittiges Gelenk-Rad.

Der Joystick gibt auf der X-Achse Werte zwischen links 1019 und rechts 3 sowie auf der Y-Achse oben 1020 und unten 3 heraus. Der 0-Punkt liegt auf der X-Achse bei 519 und auf der Y-Achse bei 504.

Mein Problem ist nun, dass das Holzbrett nun links/rechts fahren kann, jedoch vorne und hinten stellen noch das Problem dar. Auch ist die Geschwindigkeit nicht variabel.

Will sagen, mein Sketch enthält noch grobe Fehler, bei denen ja vielleicht jemand helfen mag:
Code:
int potPin = A2; //X-Achse
int val = 0;  
int x = 0;

int potPin1 = A3; //Y-Achse
int valu = 0;  
int y1 = 0;

int Dir_B = 13;
int Speed_B = 11;
int Dir_A = 12;
int Speed_A = 3;

void setup() {
pinMode(Dir_A, OUTPUT); //Motor rechts
pinMode(Speed_A, OUTPUT);
pinMode(Dir_B, OUTPUT); //Motor links
pinMode(Speed_B, OUTPUT);
pinMode(9, OUTPUT); //Initiates Brake Channel A pin
pinMode(8, OUTPUT);  //Initiates Brake Channel A pin
//Serial.begin(9600);
}

void loop() {

val = analogRead(potPin);
x = val - 520;  
x = abs(x);

valu = analogRead(potPin1);
y1 = valu - 504;  
y1 = abs(y1);

if (x >= 510){
x = 510;  
}

if (x <=200 && x>=10){
x=200;
}

if (x <=10){
x=0;
}

if (y1 >= 510){
y1 = 510;  
}

if (y1 <=200 && y1>=10){
y1=200;
}

if (y1 <=10){
y1=0;
}

if (valu >= 520){
digitalWrite(Dir_A, LOW);
digitalWrite(9, LOW);   //Disengage the Brake for Channel A
analogWrite(Speed_A, y1/2);  
digitalWrite(Dir_B, HIGH);  
digitalWrite(8, LOW);   //Disengage the Brake for Channel B
analogWrite(Speed_B, y1/2);  
}

if (valu < 520){
digitalWrite(Dir_A, HIGH);  
digitalWrite(9, LOW);   //Disengage the Brake for Channel A
analogWrite(Speed_A, y1/2);  
digitalWrite(Dir_B, LOW);  
digitalWrite(8, LOW);   //Disengage the Brake for Channel B
analogWrite(Speed_B, y1/2);  
}

//if (valu <=520 && valu >= 510) {
//analogWrite(Speed_A, 0);  
//digitalWrite(9, HIGH);  //Engage the Brake for Channel A
//}

if (val >= 520){
digitalWrite(Dir_B, LOW);  
digitalWrite(8, LOW);   //Disengage the Brake for Channel B
analogWrite(Speed_B, x/2);  
analogWrite(Speed_A, 0);  
digitalWrite(9, HIGH);  //Engage the Brake for Channel A
}

if (val <= 510){
digitalWrite(Dir_A, HIGH);  
digitalWrite(9, LOW);   //Disengage the Brake for Channel B
analogWrite(Speed_A, x/2);  
analogWrite(Speed_B, 0);
digitalWrite(8, HIGH);  //Engage the Brake for Channel A  
}

//if (val <=520 && val >= 518) {
//analogWrite(Speed_B, 0);
//digitalWrite(8, HIGH);  //Engage the Brake for Channel A  
//}

//Serial.print("  X-Achse  ");
//Serial.print(val);  
//Serial.print("  ,   ");
//Serial.println(  x      );
//Serial.print("      ");
//Serial.print("  Y-Achse  ");
//Serial.print(valu);  
//Serial.print(",   ");
//Serial.println(y1);
//delay (1000);
}

Besten Dank im Voraus...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.07.2016, 17:15
Beitrag #2
RE: Roboter-Bau Probleme
Zitat: jedoch vorne und hinten stellen noch das Problem dar.

Hast du mal Versuchsweise so etwas in deiner Loop auf gerufen ?
Somit würdest du mal sehen, ab es Hardware-Seitig alles in Ordnung ist.

Code:
analogWrite(Speed_A, 50);  
analogWrite(Speed_B, 50);

Die abs bei analogRead finde ich auch etwa komisch.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.07.2016, 17:25
Beitrag #3
RE: Roboter-Bau Probleme
...mich wundert es immer wieder was hier so manche Leute an eine 9V Blockbatterie dranhängen....also damit Motoren speisen halte ich für nen Witz...sorry aber dazu ist die Spannungslage unter Last dieser Dinger einfach zu gering.
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
10.07.2016, 18:00
Beitrag #4
RE: Roboter-Bau Probleme
Wenn alles läuft, hänge ich 12V dran.
Das Motorshield verträgt bis 12 V und 2x2A. Bin nicht sicher, ob ich einen 2- oder 3S-LiPo dranhängen kann.

Habe am Sketch viel getestet. Mal laufen die Räder geradeaus perfekt, mal rückwärts und links und rechts. Nie aber funktioniert alles. Die Motoren sind in Ordnung daher.

Es hapert bei mir am Verständnis mit x und y1. Der Joystick schmeisst Werte von 3 bis 1020 heraus, in der Mitte also 5xx. Die Geschwindigkeit liegt bei 255 am Maximum motorenseitig.

Nun hapert es beim Sketchteil mit x und y1. Auch beim Lösen/engage oder anziehen/disengage der Bremsen hapert es noch.

Ist absolutes Neuland... Kann da jemand helfen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.07.2016, 18:57
Beitrag #5
RE: Roboter-Bau Probleme
Zitat:Die Geschwindigkeit liegt bei 255 am Maximum motorenseitig.
Und was für ein Wert brauchst du, das der Motor rückwärts läuft ?
Zum retour fahren brauchst du dies.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.07.2016, 08:02
Beitrag #6
RE: Roboter-Bau Probleme
(10.07.2016 18:57)Mathias schrieb:  
Zitat:Die Geschwindigkeit liegt bei 255 am Maximum motorenseitig.
Und was für ein Wert brauchst du, das der Motor rückwärts läuft ?
Zum retour fahren brauchst du dies.

Der Wert 1-255 gibt die Geschwindigkeit vor.
digital.write(Dir_A, LOW) oder eben HIGH gibt die Richtung vor. Dir_B wäre dann der zweite Motor.

Irgendwo muss der Fehler liegen...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.07.2016, 12:00
Beitrag #7
RE: Roboter-Bau Probleme
Ich tippe auf Zuwenig Saft!
Wenn ein Motor angesteuert wird, ist noch alles gut, scheint wenigstens so.
Soll der Zweite auch laufen, macht die Batterie endgültig schlapp.

Wenn der 9V Block jetzt auch noch den Arduino speist, macht der erstmal alles aus und fängt im Setup wieder an.

Aber falls ich mich irre, ist Serial.print(Parameter) Mittel der Wahl

Erstmal schauen, was das Programm berechnet und was an das Motorshield geschickt wird.

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.07.2016, 13:24
Beitrag #8
RE: Roboter-Bau Probleme
Ne, der Arduino wird eigens gespeist durch eine Powerbank.

Das Drehen beider Motoren klappte auch, aber eben nie alle Richtungen korrekt. Deshalb habe ich viel am Code probiert. Das Problem liegt im Code. Ich finde es aber nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ArduinoDroid Probleme Brother Tak 1 204 10.09.2016 22:12
Letzter Beitrag: Brother Tak
  kleiner Roboter blichi 24 789 27.07.2016 14:02
Letzter Beitrag: torsten_156
  Selbstfahrender Roboter Programm änderung hilfe ? arekklone 11 543 06.07.2016 14:59
Letzter Beitrag: Binatone
  Probleme mit sprintf() und dtostrf() GMBU 11 812 22.06.2016 10:52
Letzter Beitrag: GMBU
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 6 965 06.05.2016 18:34
Letzter Beitrag: arduinopeter
  Programme vom UNO auf nano , mini Pro portieren Probleme anwo 19 1.176 17.04.2016 21:12
Letzter Beitrag: hotsystems
  Probleme beim Auslesen eines IR Empfängers linuxpaul 7 574 06.03.2016 14:44
Letzter Beitrag: hotsystems
  I²C vom NANO zum PI Probleme mit High/Low Bit Tobias1984 4 331 29.02.2016 00:00
Letzter Beitrag: hotsystems
  Probleme beim auswählen des Ports Levi 11 829 21.02.2016 18:00
Letzter Beitrag: hotsystems
  IRemote probleme mit abfrage schnutzkurt 18 1.148 20.02.2016 01:30
Letzter Beitrag: SkobyMobil

Gehe zu:


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