Llibreria per fer servir un HC-06 o HC-05 en mode esclau. És compatible amb les llibreries RTOS de mbed.
Dependents: projecte_v4_rtos ProjecteRobotFinal
Revision 5:92151b9067e4, committed 2016-01-19
- Comitter:
- jcabello7
- Date:
- Tue Jan 19 14:43:51 2016 +0000
- Parent:
- 4:de2112ca0735
- Commit message:
- - No deixa avan?ar al robot si hi ha un obstacle en la direcci? d'avan?ament.; - Canviat el port s?rie per un que si que funciona.
Changed in this revision
| Hc05.cpp | Show annotated file Show diff for this revision Revisions of this file |
| Hc05.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/Hc05.cpp Wed Dec 23 15:23:01 2015 +0000
+++ b/Hc05.cpp Tue Jan 19 14:43:51 2016 +0000
@@ -2,8 +2,9 @@
#include "mbed.h"
#include "math.h"
-#define pi 3.14159265
-#define longString 128
+#define pi 3.14159265 //Valor de pi
+#define longString 128 //Longitud màxima dels strings
+#define minUltrasons 200 //Valor mínim dels ultrasons
Hc05::Hc05(PinName tx, PinName rx) : RawSerial(tx, rx){
@@ -119,13 +120,16 @@
};
//Calculs motors
- void Hc05::calculaMotors(){
- if(mode==1){ //Falta afegir una condició perquè no deixi avançar en determinada direcció si detecta els ultrasons if((mode==1) && ((ultraso1 > 10) && (ang<-45) && (ang>45)) && ((ultraso2 > 10) && (ang<90) && (ang>180)) && ((ultraso3 > 10) && (ang<-180) && (ang>-90))))
- x = cos(ang*pi/180);
- y = sin(ang*pi/180);
- m1 = (-y)*vel;
- m3 = (x*0.8660254038+y*0.5)*vel;
- m2 = (x*(-0.8660254038)+y*0.5)*vel;
+ void Hc05::calculaMotors(float S1, float S2, float S3){
+ if(mode==1) { // Comprova que no hi hagin obstacles en la direcció en que volem avançar
+ if ( (!((ang>=-45) && (ang<=45) && (S1<=minUltrasons))) && (!((ang>=90) && (ang<=180) && (S2<=minUltrasons))) && (!((ang>=-90) && (ang<=-180) && (S3<=minUltrasons))) ) {
+ x = cos(ang*pi/180);
+ y = sin(ang*pi/180);
+ m1 = (-y)*vel;
+ m3 = (x*0.8660254038+y*0.5)*vel;
+ m2 = (x*(-0.8660254038)+y*0.5)*vel;
+ }
+ else {m1 = m2 = m3 = x = y = 0;}
}
else if ((mode==2) && (ang!=0)){
x = y = 0;
--- a/Hc05.h Wed Dec 23 15:23:01 2015 +0000
+++ b/Hc05.h Tue Jan 19 14:43:51 2016 +0000
@@ -30,7 +30,7 @@
void comprovaConnexio();
int getTimer();
//Calculs
- void calculaMotors();
+ void calculaMotors(float S1, float S2, float S3);
float getM1();
float getM2();
float getM3();