Només falta afegir les vostres parts, a mi em falta fer la comprovació de la connexió. S'hauria de separar les classes en arxius separats per deixar-ho més net.

Dependencies:   mbed-rtos mbed Hc05 RawSerialPc

Committer:
jcabello7
Date:
Wed Dec 23 15:06:25 2015 +0000
Revision:
7:723c1e609ac8
Parent:
6:c4af95f6e155
Afegits els modes 3 i 4 per l'Eva i en Marc (autom?tic i manual). Cedeix el control del c?lculs del motor al programa principal (per parar si detecta els ultrasons)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jcabello7 0:be638f6ee353 1 #include "mbed.h"
jcabello7 0:be638f6ee353 2 #include "rtos.h"
jcabello7 4:0a37a963b724 3 #include "Hc05.h"
jcabello7 4:0a37a963b724 4 #include "RawSerialPc.h"
jcabello7 0:be638f6ee353 5
jcabello7 6:c4af95f6e155 6
jcabello7 4:0a37a963b724 7 RawSerialPc pc(USBTX, USBRX); //Per provar si funciona, no cal al programa
jcabello7 2:1ac2d1debc92 8 Hc05 bt(D8, D2); //Crea l'objecte bt, connectat als pins D8 (TX) i D2 (RX) (és la connexió sèrie BT)
jcabello7 1:c603de57c8b6 9
jcabello7 1:c603de57c8b6 10 //Aquest serà el meu fil, que va llegint cada 300ms del HC-05
jcabello7 0:be638f6ee353 11 void llegir_thread(void const *args) {
jcabello7 0:be638f6ee353 12 while (true) {
jcabello7 6:c4af95f6e155 13 //Intenta llegir un string, i si el llegeix, el tracta
jcabello7 3:4a598ab10e87 14 if(bt.llegirString())
jcabello7 7:723c1e609ac8 15 bt.tractaString();
jcabello7 6:c4af95f6e155 16 //Comprova la connexió (mira si ha rebut alguna cosa)
jcabello7 3:4a598ab10e87 17 bt.comprovaConnexio();
jcabello7 6:c4af95f6e155 18 //Temps del Thread que està esperant
jcabello7 3:4a598ab10e87 19 Thread::wait(100);
jcabello7 3:4a598ab10e87 20
jcabello7 0:be638f6ee353 21 }
jcabello7 0:be638f6ee353 22 }
jcabello7 1:c603de57c8b6 23
jcabello7 1:c603de57c8b6 24 //Aquest serà el programa principal
jcabello7 0:be638f6ee353 25 int main() {
jcabello7 1:c603de57c8b6 26
jcabello7 6:c4af95f6e155 27 Thread thread(llegir_thread); //Inicia el fil llegir_thread
jcabello7 7:723c1e609ac8 28 //char m[128]; //Per visualitzar el mode i el timer, no es necessari
jcabello7 0:be638f6ee353 29 while (true) {
jcabello7 7:723c1e609ac8 30 //pc.enviaString(bt.strLlegit); //Per veure l'ultim string llegit, no es necessari
jcabello7 7:723c1e609ac8 31 bt.calculaMotors(); //Calcula com s'han de moure els motors
jcabello7 7:723c1e609ac8 32 //snprintf(m, 128, "Mode: %d | timer: %dms", bt.getMode(), bt.getTimer()); //Per visualitzar el mode i el timer, no es necessari
jcabello7 7:723c1e609ac8 33 //pc.enviaString(m); //Per visualitzar el mode i el timer, no es necessari
jcabello7 7:723c1e609ac8 34 //pc.enviaString(bt.strPos); //Per visualitzar la posicio on ha d'anar el robot, no es necessari
jcabello7 7:723c1e609ac8 35 if((bt.getMode() == 0) || (bt.getMode() == 1) || (bt.getMode() == 2)) {
jcabello7 7:723c1e609ac8 36 pc.enviaString(bt.strM1); //String motor1 que s'envia a l'arduino d'en Marcel
jcabello7 7:723c1e609ac8 37 pc.enviaString(bt.strM2); //String motor2 que s'envia a l'arduino d'en Marcel
jcabello7 7:723c1e609ac8 38 pc.enviaString(bt.strM3); //String motor3 que s'envia a l'arduino d'en Marcel
jcabello7 7:723c1e609ac8 39 }
jcabello7 7:723c1e609ac8 40 else if (bt.getMode() == 3) {
jcabello7 7:723c1e609ac8 41 ;//Mode automàtic (programa Eva)
jcabello7 7:723c1e609ac8 42 }
jcabello7 7:723c1e609ac8 43 else if (bt.getMode() == 4) {
jcabello7 7:723c1e609ac8 44 ;//Mode mando (programa Marc)
jcabello7 7:723c1e609ac8 45 }
jcabello7 7:723c1e609ac8 46 else {
jcabello7 7:723c1e609ac8 47 pc.enviaString("V000FM1"); //String motor1 que s'envia a l'arduino d'en Marcel
jcabello7 7:723c1e609ac8 48 pc.enviaString("V000FM2"); //String motor2 que s'envia a l'arduino d'en Marcel
jcabello7 7:723c1e609ac8 49 pc.enviaString("V000FM3"); //String motor3 que s'envia a l'arduino d'en Marcel
jcabello7 7:723c1e609ac8 50 }
jcabello7 6:c4af95f6e155 51 Thread::wait(500); //Temps del Thread que està esperant
jcabello7 0:be638f6ee353 52 }
jcabello7 0:be638f6ee353 53 }