예제 #1
0
int main(){

	//wiringPi check
	showError();
	// ctl + c ...exiting
	(void)signal(SIGINT,control_event);
	(void)signal(SIGQUIT,control_event);

	//gnuplot file
	gnuPlotOpenfile();

	//sensor initial
	sensorInit();

	printf("....start loop....\n");
	while(1) {
		//accel
		getAccelValue();
		accelCalculate();
		//gyro
		getGyroValue();	
		gyroCalculate();	
		//mag		
		getMagValue();
		//baro		
		getBaroValue();

		//filter
		sensorFilter( pitchRatio, rollRatio, yawRatio, altitudeRatio );

		//put data to file
		gnuPlotPutToFile(dataNum);	

		printResult();
		delay(10);//+40(in getTempValue)....sampling time
		dataNum++;
	}
}
예제 #2
0
void movePaddle() {

    int curr_accel_val = getAccelValue();
    int accel_delta = curr_accel_val - last_accel_val;
    last_accel_val = curr_accel_val;


    // if switch1 is on, use absolute position
    // else use relative position
    if (is_switch2()) {

        if (getAccelValue() < -8) {

            rand();
            dirPaddle = -1;
        }

        else if (getAccelValue() > 8) {

            dirPaddle = 1;
        }

        else {

            dirPaddle = 0; // no movement
        }
    }

    else {

        if (digitalRead(button1) == HIGH && digitalRead(button2) == LOW) {

            rand();
            dirPaddle = 1;
        }

        else if (digitalRead(button2) == HIGH && digitalRead(button1) == LOW) {

            dirPaddle = -1;
        }

        else {

            dirPaddle = 0;
        }
    }

    int paddle_limit = is_switch2() ? 2 : 1;
    for (int i = 0; i < paddle_limit; i++) {

        if (dirPaddle == 1) {

            if (paddle_y1_posn <= 20) {

                paddle_y1_posn += 1;
                paddle_y2_posn += 1;
            }

            else {

                dirPaddle = -1;
            }
        }

        else if (dirPaddle == -1) {

            if (paddle_y1_posn >= 1) {

                paddle_y1_posn -= 1;
                paddle_y2_posn -= 1;
            }

            else {

                dirPaddle = 1;
            }
        }

        render_paddle();
    }
}