Esempio n. 1
0
void light_it_up(int light_port)
{
	int l_on_, l_off_, l_mid_, OK=0;
	float s;

	while (!OK) {
		cbc_display_clear();
		cbc_printf (0,0,"CALIBRATE: sensor port #%d", light_port);

		cbc_printf(0,1,"  press <-- when light on");
		while(!left_button()){/*sensor value when light is on*/
			cbc_printf(0,2,"  value is %d, bright = low   ",l_on_=analog10 (light_port));
			msleep(50);
		}

		cbc_printf(0,1,"  light on value is = %d        ", l_on_);
		sleep(1.);

		cbc_printf(0,2,"  press --> when light off             ");
		while(!right_button()){	/*sensor value when light is off*/
			cbc_printf(0,3,"   value is %d, dark = high   ",l_off_=analog10 (light_port));
			msleep(50);
		}

		cbc_printf(0,2,"  light off value is = %d         ", l_off_);
		sleep(1.);

		cbc_printf(0,3,"                              ");

		if((l_off_-l_on_)>=120){ /*bright = small values */
			OK=1;
			l_mid_=(l_on_+l_off_)/2;
			cbc_printf(0,4,"Good Calibration!");
			cbc_printf(0,6,"Diff = %d:  WAITING",l_off_-l_on_);
			while(analog10(light_port)>l_mid_){
				cbc_printf(0,7,"Value = %d; Threshold = %d   ",analog10(light_port),l_mid_);
				msleep(25);
			}
			cbc_printf(0,6,"Going!                      ");
			cbc_printf(0,7,"Value = %d; Threshold = %d   ",analog10(light_port),l_mid_);
		}
		else{
			s=seconds();
			cbc_printf(0,6,"BAD CALIBRATION");
			if(l_off_<512){
				cbc_printf(0,7,"   Add Shielding!!");
			}
			else{
				cbc_printf(0,7,"   Aim sensor!!");
			}
		}
	}
}
Esempio n. 2
0
File: botball.c Progetto: CBCJVM/cbc
void wait_for_light(int light_port_)
{
        int l_on_, l_off_, l_mid_, t, OK=0;
        int p; // temp until tone is implemented
        float s;

        while (!OK) {
                cbc_display_clear();
                cbc_printf (0,0,"CALIBRATE: sensor port #%d", light_port_);
                sleep(1.); beep(); sleep(1.);

                cbc_printf(0,1,"  press <-- when light on");
                while(!left_button()){/*sensor value when light is on*/
                        cbc_printf(0,2,"  value is %d, bright = low   ",l_on_=analog10 (light_port_));
                        msleep(50);
                }
                beep();

                cbc_printf(0,1,"  light on value is = %d        ", l_on_);
                sleep(1.);
                beep();

                cbc_printf(0,2,"  press --> when light off             ");
                while(!right_button()){	/*sensor value when light is off*/
                        cbc_printf(0,3,"   value is %d, dark = high   ",l_off_=analog10 (light_port_));
                        msleep(50);
                }
                beep();

                cbc_printf(0,2,"  light off value is = %d         ", l_off_);
                sleep(1.);
                beep();

                cbc_printf(0,3,"                              ");

                if((l_off_-l_on_)>=120){ /*bright = small values */
                        OK=1;
                        l_mid_=(l_on_+l_off_)/2;
                        cbc_printf(0,4,"Good Calibration!");
                        cbc_printf(0,6,"Diff = %d:  WAITING",l_off_-l_on_);
                        p=start_process(beeper1);
                        while(analog10(light_port_)>l_mid_){
                                cbc_printf(0,7,"Value = %d; Threshold = %d   ",analog10(light_port_),l_mid_);
                                msleep(25);
                        }
                        cbc_printf(0,6,"Going!                      ");
                        cbc_printf(0,7,"Value = %d; Threshold = %d   ",analog10(light_port_),l_mid_);
                        //kill_process(p); //works on cbc
                        __wfl_keep_beeping=0;//avoids kill process which has problems on Mac
                }
                else{
                        s=seconds();
                        cbc_printf(0,6,"BAD CALIBRATION");
                        if(l_off_<512){
                                cbc_printf(0,7,"   Add Shielding!!");
                                for(t=0; t<4; t++) {beep(); sleep(.2); beep(); sleep(0.4);}
                                beep();
                        }
                        else{
                                cbc_printf(0,7,"   Aim sensor!!");
                                for(t=0; t<4; t++) {beep(); sleep(.2); beep(); sleep(0.4);}
                                beep();
                        }
                }
        }
}