Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
projektews2013:wwsr:start:ausweichen [2014/01/09 17:20] gorgotha angelegt |
projektews2013:wwsr:start:ausweichen [2016/01/21 12:45] (aktuell) |
||
---|---|---|---|
Zeile 11: | Zeile 11: | ||
int dir1=22; | int dir1=22; | ||
- | int step2=26; | + | int step2=26; //Rechtes Rad |
int dir2=28; | int dir2=28; | ||
- | int step3=30; | + | int step3=30; //Linkes Rad |
int dir3=32; | int dir3=32; | ||
Zeile 23: | Zeile 23: | ||
void setup() { | void setup() { | ||
- | pinMode(step1, OUTPUT); | + | pinMode(step1, OUTPUT); //Einstellen der Stepperpins |
pinMode(dir1, OUTPUT); | pinMode(dir1, OUTPUT); | ||
pinMode(step2, OUTPUT); | pinMode(step2, OUTPUT); | ||
Zeile 29: | Zeile 29: | ||
pinMode(step3, OUTPUT); | pinMode(step3, OUTPUT); | ||
pinMode(dir3, OUTPUT); | pinMode(dir3, OUTPUT); | ||
- | |||
- | digitalWrite(dir2, HIGH); | ||
- | digitalWrite(dir3, HIGH); | ||
| | ||
Serial.begin(9600); | Serial.begin(9600); | ||
Zeile 41: | Zeile 38: | ||
void loop() | void loop() | ||
{ | { | ||
- | entfernungsMesser(); | + | digitalWrite(dir2, HIGH); |
- | if(cm<10) { | + | digitalWrite(dir3, HIGH); |
- | array[89]=0; | + | |
- | digitalWrite(dir2, HIGH); | + | digitalWrite(step2, HIGH); |
- | digitalWrite(dir3, LOW); | + | digitalWrite(step3, HIGH); |
+ | delay(10); | ||
+ | digitalWrite(step2, LOW); | ||
+ | digitalWrite(step3, LOW); | ||
+ | delay(10); //Von loopanfang bis hier simples Nach-Vorne-Fahren | ||
+ | //Wird später ersetzt. | ||
+ | entfernungsMesser(); //Aufrufen der Funktion, die den Abstand zur nächsten Wand misst. | ||
+ | if(cm<10) { | ||
+ | weitesteEntfernung=0; | ||
for(int i=90;i<180;i++) { | for(int i=90;i<180;i++) { | ||
myservo.write(i); | myservo.write(i); | ||
+ | delay(30); | ||
+ | entfernungsMesser(); | ||
+ | //Serial.println("wort"); | ||
array[i]=cm; | array[i]=cm; | ||
- | + | if(array[i]>weitesteEntfernung) { | |
- | if(array[i]>array[i-1]) { | + | weitesteEntfernung=array[i]; //optimalerWinkel und weitesteEntfernung |
- | weitesteEntfernung=array[i]; | + | optimalerWinkel=i; //werden im Programm bis jetzt noch nicht |
- | optimalerWinkel=i; | + | } //verwendet. |
- | } | + | Serial.println(optimalerWinkel); |
- | } | + | } |
- | for(int i=180;i<0;i--) { | + | for(int i=179;i>0;i--) { |
myservo.write(i); | myservo.write(i); | ||
+ | delay(30); | ||
entfernungsMesser(); | entfernungsMesser(); | ||
| | ||
array[i]=cm; | array[i]=cm; | ||
- | if(array[i]>array[i-1]) { | + | if(array[i]>weitesteEntfernung) { |
weitesteEntfernung=array[i]; | weitesteEntfernung=array[i]; | ||
optimalerWinkel=i; | optimalerWinkel=i; | ||
+ | } | ||
+ | Serial.println(optimalerWinkel); | ||
} | } | ||
- | } | + | myservo.write(90); |
- | for(int j=1;j<143;j++) { | + | if(optimalerWinkel>90) { |
- | digitalWrite(step2, HIGH); | + | digitalWrite(dir2, HIGH); |
- | digitalWrite(step3, HIGH); | + | digitalWrite(dir3, LOW); |
- | delay(10); | + | Serial.println("LINKS"); |
+ | } | ||
+ | else { | ||
+ | digitalWrite(dir2, LOW); | ||
+ | digitalWrite(dir3, HIGH); | ||
+ | Serial.println("RECHTS"); | ||
+ | } | ||
+ | |||
+ | for(int j=1;j<143;j++) { //Rechnerei mit dem Abstand und Durch- | ||
+ | digitalWrite(step2, HIGH); //messer der Räder hat ergeben, dass der | ||
+ | digitalWrite(step3, HIGH); //sich der Roboter nach 143 steps um | ||
+ | delay(10); //90° gedreht hat. | ||
digitalWrite(step2, LOW); | digitalWrite(step2, LOW); | ||
digitalWrite(step3, LOW); | digitalWrite(step3, LOW); | ||
delay(10); | delay(10); | ||
} | } | ||
- | } | + | delay(100); |
+ | } | ||
} | } | ||
Zeile 86: | Zeile 108: | ||
digitalWrite(trigger, LOW); | digitalWrite(trigger, LOW); | ||
- | //duration = pulseIn(echo, HIGH); | + | duration = pulseIn(echo, HIGH); |
inches = microsecondsToInches(duration); | inches = microsecondsToInches(duration); | ||
cm = microsecondsToCentimeters(duration); | cm = microsecondsToCentimeters(duration); | ||
- | Serial.println(cm, DEC); | + | //Serial.println(cm, DEC); |
- | delay(100); | + | delay(10); |
} | } | ||