diff --git a/.project b/.project new file mode 100644 index 0000000..6da9835 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + FaceRecognition-python + + + + + + org.python.pydev.PyDevBuilder + + + + + + org.python.pydev.pythonNature + + diff --git a/.pydevproject b/.pydevproject new file mode 100644 index 0000000..d001f0a --- /dev/null +++ b/.pydevproject @@ -0,0 +1,5 @@ + + +Default +python interpreter + diff --git a/SensorsArd/SensorsArd.ino b/SensorsArd/SensorsArd.ino index 7550a21..aa3bfb1 100644 --- a/SensorsArd/SensorsArd.ino +++ b/SensorsArd/SensorsArd.ino @@ -7,28 +7,84 @@ const int buzzerPin = 3; int inputVal = 0; long duration; int distance; -char piInput = 'N'; +boolean IROK = false; +boolean UltraOK = false; +char pi = 'N'; void setup() { pinMode(trigPin, OUTPUT); - pinMode(echoPin, INPUT); + pinMode(echoPin, INPUT); pinMode(LED_BUILTIN, OUTPUT); pinMode(relayPin, OUTPUT); pinMode(buzzerPin, OUTPUT); - pinMode(ProxSensor,INPUT); + pinMode(ProxSensor, INPUT); digitalWrite(buzzerPin, LOW); digitalWrite(relayPin, LOW); - Serial.begin(9600); + Serial.begin(9600); } void loop() { + IROK = false; + UltraOK = false; + pi = 'N'; - boolean IROK = false; - boolean UltraOK = false; + distance = readDistance(); + if (distance < 70) UltraOK = true; + else UltraOK = false; + if (digitalRead(ProxSensor) == LOW ) IROK = true; + else IROK = false; + + + if (Serial.available() > 0) { + pi = Serial.read(); + } + + delay(500); + + Serial.println(pi); + Serial.println(IROK); + Serial.println(UltraOK); + + if (IROK && UltraOK && pi == 'o') { + openShifter(); + } + IROK = false; + UltraOK = false; +} + +void openShifter() { + digitalWrite(relayPin, HIGH); + playBuzzer(300, true); + delay(7000); + digitalWrite(relayPin, LOW); + IROK = false; + UltraOK = false; + pi = 'N'; + serialFlush(); +} + +void serialFlush() { + while (Serial.available() > 0) { + char t = Serial.read(); + } +} + +void playBuzzer(int time, boolean ok) { + tone(buzzerPin, 3000); + delay(time / 2); + noTone(buzzerPin); + delay(100); + tone(buzzerPin, 3000); + delay(time / 2); + noTone(buzzerPin); + +} + +int readDistance() { // Clears the trigPin - digitalWrite(trigPin, LOW); + digitalWrite(trigPin, LOW); delayMicroseconds(2); // Sets the trigPin on HIGH state for 10 micro seconds digitalWrite(trigPin, HIGH); @@ -37,56 +93,6 @@ void loop() { // Reads the echoPin, returns the sound wave travel time in microseconds duration = pulseIn(echoPin, HIGH); // Calculating the distance - distance= duration*0.034/2; + return duration * 0.034 / 2; - if (distance < 70) UltraOK = true; - else UltraOK = false; - if(digitalRead(ProxSensor) == LOW ) IROK = true; - else IROK = false; - char pi = 'N'; - if (Serial.available() > 0) { pi = Serial.read(); } - delay(500); - Serial.println(pi); - Serial.println(IROK); - Serial.println(UltraOK); - //if (IROK && UltraOK) Serial.println("A"); - if (IROK && UltraOK && pi == 'o'){ - //if (Serial.read() == 'o') { - digitalWrite(relayPin, HIGH); - playBuzzer(300,true); - delay(4000); - digitalWrite(relayPin, LOW); - IROK = false; - UltraOK = false; - pi = 'N'; - serialFlush(); - //} - } - IROK = false; - UltraOK = false; } - -void serialFlush(){ - while(Serial.available() > 0) { - char t = Serial.read(); - } -} - -void playBuzzer(int time, boolean ok){ - tone(buzzerPin, 3000); - delay(time/2); - noTone(buzzerPin); - delay(100); - tone(buzzerPin, 3000); - delay(time/2); - noTone(buzzerPin); - -} - - - - - - - -