Decouverte simu quest 3
This commit is contained in:
parent
639e2b7b8f
commit
7c8c1d204d
6 changed files with 116 additions and 5 deletions
BIN
.DS_Store
vendored
Normal file
BIN
.DS_Store
vendored
Normal file
Binary file not shown.
|
@ -7,12 +7,15 @@ int main(){
|
||||||
Board esp8266;
|
Board esp8266;
|
||||||
// achat des senseurs et actionneurs
|
// achat des senseurs et actionneurs
|
||||||
AnalogSensorTemperature temperature(DELAY,TEMP);
|
AnalogSensorTemperature temperature(DELAY,TEMP);
|
||||||
DigitalActuatorLED led1(DELAY);
|
//DigitalActuatorLED led1(DELAY);
|
||||||
|
IntelligentDigitalActuatorLED led1(DELAY);
|
||||||
I2CActuatorScreen screen;
|
I2CActuatorScreen screen;
|
||||||
|
AnalogSensorLuminosity luminosite(DELAY);
|
||||||
|
|
||||||
// branchement des capteurs actionneurs
|
// branchement des capteurs actionneurs
|
||||||
esp8266.pin(1,temperature);
|
esp8266.pin(1,temperature);
|
||||||
esp8266.pin(0,led1);
|
esp8266.pin(0,led1);
|
||||||
|
esp8266.pin(2, luminosite);
|
||||||
esp8266.i2c(1,screen);
|
esp8266.i2c(1,screen);
|
||||||
|
|
||||||
// allumage de la carte
|
// allumage de la carte
|
||||||
|
|
3
compile_mac.sh
Executable file
3
compile_mac.sh
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
echo "g++ -Wall -std=c++11 board.cpp core_simulation.cpp mydevices.cpp sketch_ino.cpp -o arduino"
|
||||||
|
g++ -Wall -std=c++11 board.cpp core_simulation.cpp mydevices.cpp sketch_ino.cpp -o arduino
|
|
@ -1,5 +1,6 @@
|
||||||
|
|
||||||
#include "mydevices.h"
|
#include "mydevices.h"
|
||||||
|
//int luminosite_environnement = 200;
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
@ -17,6 +18,22 @@ void AnalogSensorTemperature::run(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//int AnalogSensorLuminosity::luminosite_environnement = 200;
|
||||||
|
|
||||||
|
AnalogSensorLuminosity::AnalogSensorLuminosity(int t):Device(), temps(t){
|
||||||
|
|
||||||
|
}
|
||||||
|
void AnalogSensorLuminosity::run(){
|
||||||
|
while(1){
|
||||||
|
val = luminosite_environnement;
|
||||||
|
if(ptrmem!=NULL){
|
||||||
|
*ptrmem = val;
|
||||||
|
}
|
||||||
|
sleep(temps);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//classe DigitalActuatorLED
|
//classe DigitalActuatorLED
|
||||||
DigitalActuatorLED::DigitalActuatorLED(int t):Device(),state(LOW),temps(t){
|
DigitalActuatorLED::DigitalActuatorLED(int t):Device(),state(LOW),temps(t){
|
||||||
}
|
}
|
||||||
|
@ -33,6 +50,37 @@ void DigitalActuatorLED::run(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IntelligentDigitalActuatorLED::IntelligentDigitalActuatorLED(int t):Device(),state(LOW),temps(t){
|
||||||
|
}
|
||||||
|
|
||||||
|
void IntelligentDigitalActuatorLED::run(){
|
||||||
|
int previousState = LOW; //initialisée a eteint
|
||||||
|
while(1){
|
||||||
|
if(ptrmem!=NULL)
|
||||||
|
state=*ptrmem;
|
||||||
|
if (state==LOW ){
|
||||||
|
cout << "((((eteint))))\n";
|
||||||
|
if(state != previousState){
|
||||||
|
//AnalogSensorLuminosity::luminosite_environnement-= 50;
|
||||||
|
}
|
||||||
|
previousState = LOW;
|
||||||
|
}
|
||||||
|
else{ //state == HIGH
|
||||||
|
cout << "((((allume))))\n";
|
||||||
|
if(state != previousState){
|
||||||
|
//AnalogSensorLuminosity::luminosite_environnement+= 50;
|
||||||
|
}
|
||||||
|
previousState = HIGH;
|
||||||
|
}
|
||||||
|
sleep(temps);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// classe I2CActuatorScreen
|
// classe I2CActuatorScreen
|
||||||
I2CActuatorScreen::I2CActuatorScreen ():Device(){
|
I2CActuatorScreen::I2CActuatorScreen ():Device(){
|
||||||
}
|
}
|
||||||
|
@ -50,4 +98,3 @@ void I2CActuatorScreen::run(){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
48
mydevices.h
48
mydevices.h
|
@ -7,6 +7,8 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "core_simulation.h"
|
#include "core_simulation.h"
|
||||||
|
|
||||||
|
int luminosite_environnement = 200;
|
||||||
|
|
||||||
|
|
||||||
// exemple de capteur analogique de temperature, ne pas oublier d'heriter de Device
|
// exemple de capteur analogique de temperature, ne pas oublier d'heriter de Device
|
||||||
class AnalogSensorTemperature: public Device {
|
class AnalogSensorTemperature: public Device {
|
||||||
|
@ -25,6 +27,25 @@ public:
|
||||||
virtual void run();
|
virtual void run();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class AnalogSensorLuminosity: public Device{
|
||||||
|
private:
|
||||||
|
int temps;
|
||||||
|
int val;
|
||||||
|
//static int luminosite_environnement;
|
||||||
|
public:
|
||||||
|
//static int luminosite_environnement;
|
||||||
|
AnalogSensorLuminosity(int t);
|
||||||
|
virtual void run();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// exemple d'actionneur digital : une led, ne pas oublier d'heriter de Device
|
// exemple d'actionneur digital : une led, ne pas oublier d'heriter de Device
|
||||||
class DigitalActuatorLED: public Device {
|
class DigitalActuatorLED: public Device {
|
||||||
private:
|
private:
|
||||||
|
@ -40,6 +61,25 @@ public:
|
||||||
virtual void run();
|
virtual void run();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class IntelligentDigitalActuatorLED: public Device{
|
||||||
|
private:
|
||||||
|
// etat de la LED
|
||||||
|
int state;
|
||||||
|
// temps entre 2 affichage de l etat de la led
|
||||||
|
int temps;
|
||||||
|
|
||||||
|
public:
|
||||||
|
// initialisation du temps de rafraichiisement
|
||||||
|
IntelligentDigitalActuatorLED(int t);
|
||||||
|
// thread representant l'actionneur et permettant de fonctionner independamment de la board
|
||||||
|
virtual void run();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// exemple d'actionneur sur le bus I2C permettant d'echanger des tableaux de caracteres : un ecran, ne pas oublier d'heriter de Device
|
// exemple d'actionneur sur le bus I2C permettant d'echanger des tableaux de caracteres : un ecran, ne pas oublier d'heriter de Device
|
||||||
class I2CActuatorScreen : public Device{
|
class I2CActuatorScreen : public Device{
|
||||||
protected:
|
protected:
|
||||||
|
@ -53,4 +93,12 @@ public:
|
||||||
virtual void run();
|
virtual void run();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//class ExternalDigitalSensorButton: public Device
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -8,24 +8,34 @@ void Board::setup(){
|
||||||
// on fixe les pin en entree et en sorite en fonction des capteurs/actionneurs mis sur la carte
|
// on fixe les pin en entree et en sorite en fonction des capteurs/actionneurs mis sur la carte
|
||||||
pinMode(1,INPUT);
|
pinMode(1,INPUT);
|
||||||
pinMode(0,OUTPUT);
|
pinMode(0,OUTPUT);
|
||||||
|
pinMode(2,INPUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
// la boucle de controle arduino
|
// la boucle de controle arduino
|
||||||
void Board::loop(){
|
void Board::loop(){
|
||||||
char buf[100];
|
char buf[100];
|
||||||
int val;
|
int val;
|
||||||
|
int val1;
|
||||||
static int cpt=0;
|
static int cpt=0;
|
||||||
static int bascule=0;
|
static int bascule=0;
|
||||||
int i=0;
|
int i=0;
|
||||||
for(i=0;i<10;i++){
|
for(i=0;i<10;i++){
|
||||||
// lecture sur la pin 1 : capteur de temperature
|
// lecture sur la pin 1 : capteur de temperature
|
||||||
val=analogRead(1);
|
val1=analogRead(1);
|
||||||
sprintf(buf,"temperature %d",val);
|
sprintf(buf,"temperature %d",val1);
|
||||||
Serial.println(buf);
|
Serial.println(buf);
|
||||||
|
|
||||||
|
// lecture sur la pin 2 : capteur de temperature
|
||||||
|
val=analogRead(2);
|
||||||
|
sprintf(buf,"luminosite %d",val);
|
||||||
|
Serial.println(buf);
|
||||||
|
|
||||||
if(cpt%5==0){
|
if(cpt%5==0){
|
||||||
// tous les 5 fois on affiche sur l ecran la temperature
|
// tous les 5 fois on affiche sur l ecran la temperature
|
||||||
sprintf(buf,"%d",val);
|
sprintf(buf,"%d",val1);
|
||||||
bus.write(1,buf,100);
|
bus.write(1,buf,100);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
cpt++;
|
cpt++;
|
||||||
sleep(1);
|
sleep(1);
|
||||||
|
|
Loading…
Reference in a new issue