Smart coffee machine with facial recognition and remote control
Dependencies: Camera_LS_Y201 EthernetInterface EthernetNetIf HTTPClient SRF05 TextLCD mbed-rtos mbed-src
machine.cpp
- Committer:
- projetmacintel
- Date:
- 2014-01-15
- Revision:
- 0:43669f623d43
File content as of revision 0:43669f623d43:
#include "machine.h" DigitalOut relaisMachine(p5); AnalogIn capteurLumiereChauffe(p16); DigitalOut relaisLectureCapteursMachine(p8); void attendreFinDePreparation() { while(!capteurChauffeClignotant()); while(capteurChauffeClignotant()); } bool machineEteinte() { // La machine est considérée comme éteinte si le capteur de chauffe ne clignote // pas et si les voyant d'intensité sont éteints return !capteurChauffeClignotant() && getPreferenceIntensite() == -1; } void allumerMachine() { relaisMachine = 1; relaisLectureCapteursMachine = 1; // On attend la fin de la chauffe while(capteurChauffeClignotant()); relaisLectureCapteursMachine = 0; // La machine est prete relaisMachine = 0; wait(0.2); } bool capteurChauffeClignotant() { return capteurChauffeClignotant(0.5, 0.5); } bool capteurChauffeClignotant(float seuil_min, float seuil_max) { Timer t; t.start(); int nb = 0; float valeur_actuelle, valeur_min = 1.0, valeur_max = 0.0; wait(0.2); // on attend un état stable while(t.read() < 1.0) { nb ++; valeur_actuelle = capteurLumiereChauffe.read(); wait(0.02); if(valeur_min > valeur_actuelle) valeur_min = valeur_actuelle; if(valeur_max < valeur_actuelle) valeur_max = valeur_actuelle; } printf("Min : %.3f\t\tMax : %.3f\t\t%d\r\n", valeur_min, valeur_max, nb); t.stop(); return valeur_min < seuil_min && valeur_max > seuil_max; } void eteindreMachine() { relaisMachine = 1; wait(1); relaisLectureCapteursMachine = 1; // On attend la fin de la chauffe while(capteurChauffeClignotant()); relaisLectureCapteursMachine = 0; relaisMachine = 0; wait(0.2); } bool machineOccupee() { return getPreferenceIntensite() == -1; }