oderlachs
14.03.2013, 15:31
Hallo Kenner des Faches !
Ich möchte einen Roboter bauen der sich per US-Sensor den freien Weg sucht, der als weitesten befahrbarer freier Weg durch den Ultraschall-Sensor idendifiziert wird.
So habe ich nun erst mal zur Messung/Speicherung der Werte folgendes geschrieben (Arduino-IDE):
/* ================================================== ======================== */
/* In der Suchfunktion dreht das Servo von der Mitte nach links dann nach */
/* rechts und wieder nach links es werden die Entfernungen und Positionen */
/* gemessen und gespeichert, anschliessend dreht das Servo auf Mitte So kann */
/* der darauf positionierte US-Sensor um 180° alle Objekte erfassen */
/* ================================================== ======================== */
void suche()
{
int pos;
{
for ( pos = 1; pos <=179;pos++ )
{
us_servo.write(pos);
if(entfernung()<= obj_min)obj_min = entfernung();
// else ???
if(entfernung()>= obj_max)obj_max = entfernung();
// else ???
}
for (pos = 179;pos >=1;pos--)
{
us_servo.write(pos);
if( entfernung() <= obj_min )
{
obj_min = entfernung(); // speicher min. Enfernung
pos_min = pos; // speicher pos bei min. Entfernung
}
// else ???
if(entfernung()>= obj_max)
{
obj_max = entfernung(); // speicher max. Enfernung
pos_max = pos; // speicher pos bei max. Entfernung
}
// else ???
}
us_servo.write(servcenter);
}
}
Nun kann ja der Zustand kommen, wo alles ringsrum frei ist....wie soll das Programm da reagieren bzw. der Roboter.
da bin ich dort angekommen, wo ich selber "vor einer Wand stehe" und nicht weiter weiss, in Sachen code wie auch Auswertung.
Der aber noch nicht ganz vollständige Code :HIER (http://robot.oderlachs.de/us_sensor/entfernung.c)
Hat da vielleicht Jemand einen Hinweis für mich??
Ich bedanke mich schon mal für event. Hilfe !!
Gruss
Gerhard
Ich möchte einen Roboter bauen der sich per US-Sensor den freien Weg sucht, der als weitesten befahrbarer freier Weg durch den Ultraschall-Sensor idendifiziert wird.
So habe ich nun erst mal zur Messung/Speicherung der Werte folgendes geschrieben (Arduino-IDE):
/* ================================================== ======================== */
/* In der Suchfunktion dreht das Servo von der Mitte nach links dann nach */
/* rechts und wieder nach links es werden die Entfernungen und Positionen */
/* gemessen und gespeichert, anschliessend dreht das Servo auf Mitte So kann */
/* der darauf positionierte US-Sensor um 180° alle Objekte erfassen */
/* ================================================== ======================== */
void suche()
{
int pos;
{
for ( pos = 1; pos <=179;pos++ )
{
us_servo.write(pos);
if(entfernung()<= obj_min)obj_min = entfernung();
// else ???
if(entfernung()>= obj_max)obj_max = entfernung();
// else ???
}
for (pos = 179;pos >=1;pos--)
{
us_servo.write(pos);
if( entfernung() <= obj_min )
{
obj_min = entfernung(); // speicher min. Enfernung
pos_min = pos; // speicher pos bei min. Entfernung
}
// else ???
if(entfernung()>= obj_max)
{
obj_max = entfernung(); // speicher max. Enfernung
pos_max = pos; // speicher pos bei max. Entfernung
}
// else ???
}
us_servo.write(servcenter);
}
}
Nun kann ja der Zustand kommen, wo alles ringsrum frei ist....wie soll das Programm da reagieren bzw. der Roboter.
da bin ich dort angekommen, wo ich selber "vor einer Wand stehe" und nicht weiter weiss, in Sachen code wie auch Auswertung.
Der aber noch nicht ganz vollständige Code :HIER (http://robot.oderlachs.de/us_sensor/entfernung.c)
Hat da vielleicht Jemand einen Hinweis für mich??
Ich bedanke mich schon mal für event. Hilfe !!
Gruss
Gerhard