コード例 #1
0
void DecisionThread::checkBlink(){
    if ((blinkCounter > lowerBlink)&&(blinkCounter < upperBlink)){
        emit BlinkSignal(true);
    }
    else {
        emit BlinkSignal(false);
    }
    blinkCounter = 0;
}
コード例 #2
0
ファイル: light.c プロジェクト: chanrich/Smart-Light
int main(void)
{
    init();
	adc_init();


    while (1) {
    	//Read all sensors
    	x_sensor = read_adc(0);
    	y_sensor = read_adc(1);
    	light_sensor = read_adc(2);
    	range_sensor = read_adc(3);

    	// Set Light Sensor Switch
    	if(light_sensor > Light_Sensor_Threshold){
    		// Dark
    		isNightTime = 1;
    	} else if (light_sensor <= Light_Sensor_Threshold && movement_timer == 0){
    		isNightTime = 0;
    	}

    	// Accelerometer Setting
    	if ((x_sensor < x_sensor_prev - movement_threshold) || (x_sensor > x_sensor_prev + movement_threshold) ||
    		(y_sensor < y_sensor_prev - movement_threshold) || (y_sensor > y_sensor_prev + movement_threshold)) {
    		// movement in x-axis greater than threshold, turn the light on for 3 second
    		movement_timer = 300;
    	}
    	x_sensor_prev = x_sensor;
    	y_sensor_prev = y_sensor;
    	// Turn the headlight on if is night time
    	//HeadLightOn(&movement_timer, isNightTime);

    	//Brake Light, if y-axis goes negative
    	if (y_sensor >= 512){
    		PORTD |= 1 <<PD4;
        } else {
            PORTD &= ~(1 << PD4);
        }
        HeadLightOn(&movement_timer, isNightTime);
        Detect_Rear_Object();
        // Turn Signals
        // Right Turn Signal
        if ((PIND & (1 << PD2)) && (rightTurnIsOn == 0) && (leftTurnIsOn == 0)) {
            //If PD2, the red button is pressed, turn on Right Turn Signal
            rightTurnSignalCounter = 250;
            rightTurnIsOn = 1;
            //PORTD |= (1 << PD3);
        }
        if ((rightTurnSignalCounter > 0) && rightTurnIsOn) {
            rightTurnSignalCounter--;

        } else if (rightTurnSignalCounter <= 0) {
            rightTurnIsOn = 0;
        }
        // Left Turn Signal
        if ((PIND & (1 << PD7)) && (leftTurnIsOn == 0) && (rightTurnIsOn == 0)) {
            // If PD7 is pressed, turn on Left Turn Signal
            leftTurnSignalCounter = 250;
            leftTurnIsOn = 1;
        }
        if ((leftTurnSignalCounter > 0) && leftTurnIsOn) {
            leftTurnSignalCounter--;

        } else if (leftTurnSignalCounter <= 0) {
            leftTurnIsOn = 0;
        }

        // Blink signal
        BlinkSignal(rightTurnSignalCounter, leftTurnSignalCounter, (1 << PD3), (1<< PD5)); 
        //Trigger is Port B0
        Beep();


    	
    	_delay_ms(10);	// Do not change this 10 ms delay
    }

    return 0;   /* never reached */
}