joey QUANTIN
/
pixy2
init
Revision 0:98d2bcd7ae29, committed 2017-06-09
- Comitter:
- qj604184
- Date:
- Fri Jun 09 23:20:19 2017 +0000
- Commit message:
- cachanNRC
Changed in this revision
diff -r 000000000000 -r 98d2bcd7ae29 fct.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fct.cpp Fri Jun 09 23:20:19 2017 +0000 @@ -0,0 +1,37 @@ +#include "mbed.h" +#include "fct.h" + +void Vitmoteur(float VitG, float VitD) +{ + if(VitG<0) { + VitG=-1*VitG; + cmdI2C=cmdI2C&0xfe; //passe le moteur gauche en marche arriere 00000001 + } else { + cmdI2C=cmdI2C|0x01; // marche avant 11110111 mot gauche + } + if(VitD<0) { + VitD=-1*VitD; + cmdI2C=cmdI2C&0xfd; //passe le moteur gauche en marche arriere 00000100 + } else { + cmdI2C=cmdI2C|0x02;//marche avant 11111011 mot droit + } + monI2C.write(ADR_PCF,&cmdI2C,1); + MotG.pulsewidth(((100-VitG)/100.0)*PERIOD); + MotD.pulsewidth(((100-VitD)/100.0)*PERIOD); +} +void init(void) +{ + if(C1.read()>0.5) { + captL1=0; + } else { + captL1=1; + } + if(C3.read()>0.5) { + captL3=0; + } else { + captL3=1; + } + + + +}
diff -r 000000000000 -r 98d2bcd7ae29 fct.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fct.h Fri Jun 09 23:20:19 2017 +0000 @@ -0,0 +1,48 @@ +#ifndef FCT_H +#define FCT_H +extern char cmdI2C ;// CS vbat x x x SensG SensD CS_G CD_D, sens moteur positif CS à 0. +extern PwmOut MotD; +extern PwmOut MotG; +extern int captL1; +extern int captL3; +//GLOBALES +extern BusOut leds; + +extern Serial CamPixy; + +extern DigitalOut trig1;//US1 +extern InterruptIn echo1; +extern DigitalOut trig2;//US2 +extern InterruptIn echo2; +extern DigitalOut trig3;//US3 +extern InterruptIn echo3; + +extern I2C monI2C; +extern PwmOut Servo; + +extern AnalogIn SD_1; // capteur de distance courte droite +extern AnalogIn SD_2; // capteur de distance courte gauche +extern AnalogIn LD_1; // capteur de distance longue droite +extern AnalogIn LD_2; // capteur de distance longue gauche + +extern InterruptIn I_D; +extern InterruptIn I_G; + +extern SPI spi; + +extern AnalogIn C1;// capteur de ligne blanche 1 +extern AnalogIn C3;// capteur de ligne blanche 3 +//-- le capteur de ligne 2 est sur un MCP3201(spi) dont le CS est sur p13 +extern DigitalOut CS_C2; + + + +//CONSTANTES +#define ADR_PCF 0x70 +#define PERIOD 0.0001 + + +//PROTOTYPES +void init(void); +void Vitmoteur(float,float); +#endif
diff -r 000000000000 -r 98d2bcd7ae29 globals.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/globals.cpp Fri Jun 09 23:20:19 2017 +0000 @@ -0,0 +1,37 @@ +#include "mbed.h" +char cmdI2C=0xF3 ;// CS vbat x x x SensG SensD CS_G CD_D, sens moteur positif CS à 0. +PwmOut MotD(p25); +PwmOut MotG(p22); + +BusOut leds(LED1,LED2,LED3,LED4); + +Serial CamPixy(p28,p27); + +DigitalOut trig1(p11);//US1 +InterruptIn echo1(p12); +DigitalOut trig2(p8);//US2 +InterruptIn echo2(p24); +DigitalOut trig3(p26);//US3 +InterruptIn echo3(p23); + +I2C monI2C(p9,p10); +PwmOut Servo(p21); + +AnalogIn SD_1(p19); // capteur de distance courte droite +AnalogIn SD_2(p20); // capteur de distance courte gauche +AnalogIn LD_1(p17); // capteur de distance longue droite +AnalogIn LD_2(p18); // capteur de distance longue gauche + +InterruptIn I_D(p30); +InterruptIn I_G(p29); + +SPI spi(p5,p6,p7); + +AnalogIn C1(p15);// capteur de ligne blanche 1 +AnalogIn C3(p16);// capteur de ligne blanche 3 +//-- le capteur de ligne 2 est sur un MCP3201(spi) dont le CS est sur p13 +DigitalOut CS_C2(p13); + + +int captL1; +int captL3; \ No newline at end of file
diff -r 000000000000 -r 98d2bcd7ae29 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Jun 09 23:20:19 2017 +0000 @@ -0,0 +1,73 @@ +#include "mbed.h" +#include "fct.h" +#include "Pixy.h" +#include "PixyLink.h" + +#define V_max 25 +#define V_recherche 25 +#define K 0.1 +DigitalOut cs(p13); +DigitalIn bp(p14); +Serial pc (USBTX,USBRX); + + + +int main() +{ + bp.mode(PullUp); + MotG.period(PERIOD); + MotD.period(PERIOD); + Vitmoteur(0.0,0.0); + Pixy pixy= Pixy(p28,p27); + pixy.setSerialOutput(&pc); + int j=0; + uint16_t blocks; + float taille,errorX; + pc.printf("alive"); + + + while(1) { + init();// recupere valeurs capteurs ligne blanche + pc.printf("capt1= %d capt2= %d\n\r",captL1,captL3); + wait(0.5); + if(captL1==0 && captL3==0) + { + Vitmoteur(20,20); + } + else{ + Vitmoteur(-20,-20); + wait(5); + } + +} +} +//printf("ok"); + +//MotD.pulsewidth(0.5*PERIOD); +//MotG.pulsewidth(0.5*PERIOD); +//MotD.pulsewidth(0.00005); + + /* blocks=pixy.getBlocks(); + if(blocks) { + taille = pixy.blocks[j].width*pixy.blocks[j].height; + errorX=(160-pixy.blocks[j].x); + Vitmoteur(V_max-K*errorX,V_max+K*errorX); + //pc.printf("ok"); + //Vitmoteur(1,-1); + } else { + //pc.printf("beug"); + Vitmoteur(0.0,0.0); + } + + if(errorX>V_max) { + errorX=V_max; + } + if(errorX<-V_max) { + errorX=-V_max; + } + Vitmoteur(V_max-K*errorX,V_max+K*errorX); + + }*/ + + +
diff -r 000000000000 -r 98d2bcd7ae29 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Fri Jun 09 23:20:19 2017 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/0f02307a0877 \ No newline at end of file
diff -r 000000000000 -r 98d2bcd7ae29 pixy.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pixy.lib Fri Jun 09 23:20:19 2017 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/pirottealex/code/pixy/#e7cb59aaf759