RoboterCC - Robotic Code Compiler
Forum Robot Kits NIBObee NIBObee Projekte Empfindlichkeitssteigerung der IR-Abstandssensoren

Welcome

Nachrichten

Sie sind nicht eingeloggt.

Werbung

Letzte Themen

  • •Keine Beiträge vorhanden•

Site-Statistic

  • 7507 private projects
  • 385 public projects
  • 16433719 lines compiled
  • 58483 builds
NIBO @ facebook YouTube Twitter
•Willkommen•, •Gast•
•Benutzername:• •Passwort:• •Angemeldet bleiben:•
  • •Seite:•
  • 1

•THEMA:• Empfindlichkeitssteigerung der IR-Abstandssensoren

Empfindlichkeitssteigerung der IR-Abstandssensoren •9 •Jahre• 7 •Monate• her• #3325

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

Bei meinem NIBOburger waren die vier Abstandssensoren unterschiedlich empfindlich. Dies wird durch ein unterschiedliches 0-Punktoffset verursacht. Den nachfolgenden Code habe ich im Programm first.c in der Funktion loop_test() getestet. Ab einem Wandabstand von 20 cm beginnen die LEDs zu blinken. Die Empfindlichkeit ist jetzt bei allen vier Sensoren gleich.
uint8_t l_min = 255;
uint8_t ll_min = 255;
uint8_t r_min = 255;
uint8_t rr_min = 255;
.
.
void loop_test1() {
.
.
if (progmode) {
		uint8_t bl = analog_getValueExt(ANALOG_BL, 2)>25;
		uint8_t br = analog_getValueExt(ANALOG_BR, 2)>25;
		uint8_t bc = analog_getValueExt(ANALOG_BC, 2)>25;
		led_set(1, bl);
		led_set(2, bc);
		led_set(3, bc);
		led_set(4, br);
		} else {
 
		uint8_t l = analog_getValueExt(ANALOG_FL, 2);
		while (!analog_has_update());   // Warten bis die Messung beendet
	    if (l < l_min) l_min = l;       // Offset bestimmen		
	    l -=l_min;	                    // Offset abziehen
		l = l > 5;                      // Hindernis erkennen
 
		uint8_t r = analog_getValueExt(ANALOG_FR, 2);
		while (!analog_has_update());   
	    if (r < r_min) r_min = r;       
	    r -=r_min;						
		r  = r > 5;   
 
		uint8_t ll = analog_getValueExt(ANALOG_FLL, 2);
		while (!analog_has_update());   
	    if (ll < ll_min) ll_min = ll;       
	    ll -=ll_min;	
		ll  = ll > 5;
 
		uint8_t rr = analog_getValueExt(ANALOG_FRR, 2);
		while (!analog_has_update());   
	    if (rr < rr_min) rr_min = rr;       
	    rr -=rr_min;	
		rr  = rr > 5;
 
		led_set(1, ll);
		led_set(2, l);
		led_set(3, r);
		led_set(4, rr);
	}
}

Viele Grüße, Georg
•Der Administrator hat öffentliche Schreibrechte deaktiviert.•
  • •Seite:•
  • 1
•Ladezeit der Seite: 0.183 Sekunden•

Werbung

Protected by R Antispam