Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: RoboClaw mbed StepperMotor
Fork of RoboClaw by
Revision 57:86f491f5b25d, committed 2016-05-04
- Comitter:
- IceTeam
- Date:
- Wed May 04 21:04:50 2016 +0200
- Parent:
- 56:4fd9636dfb36
- Child:
- 59:94b44c4a8a5a
- Child:
- 60:8d2320a54a32
- Commit message:
- Rajout de la classe Objectif, petits changements dans le fonctionnement de map
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Map/Objectif/objectif.cpp Wed May 04 21:04:50 2016 +0200
@@ -0,0 +1,14 @@
+#include "objectif.h"
+
+/* Dernier Changement : Romain 20h20 */
+
+Objectif::Objectif (int type, float x_obj, float y_obj, float thet_obj, AX12 * nA1, AX12 * nA2, AX12 * nA3, Stepper * nS1, Stepper * nS2);
+bool Objectif::Action () {
+ switch(type) {
+ case OBJ_BLOC:
+ break;
+ default:
+ break;
+ }
+ return true;
+}
\ No newline at end of file
--- a/Map/Objectif/objectif.h Wed May 04 19:43:53 2016 +0200
+++ b/Map/Objectif/objectif.h Wed May 04 21:04:50 2016 +0200
@@ -1,13 +1,27 @@
#ifndef OBJECTIF_H
#define OBJECTIF_H
-class Objectif {
+/* Dernier Changement : Romain 20h20
+Inclu dans : map.h */
+
+#include "../../AX12/AX12.h"
+#include "../../StepperMotor/Stepper.h"
+
+class objectif {
public:
- Objectif (int type, float x_obj, float y_obj, float y_objectif);
+ objectif (int type, float x_obj, float y_obj, float thet_obj, AX12 * nA1, AX12 * nA2, AX12 * nA3, Stepper * nS1, Stepper * nS2);
+ bool Action ();
+ float getX() { return x_objectif; }
+ float getY() { return y_objectif; }
+ float getThet() { return thet_object; }
private:
+ bool obj_bloc_action();
+
int type;
float x_objectif, y_objectif, thet_object;
+ AX12 * A1, * A2, * A3;
+ Stepper * S1, * S2;
};
#endif
\ No newline at end of file
--- a/Map/map.cpp Wed May 04 19:43:53 2016 +0200
+++ b/Map/map.cpp Wed May 04 21:04:50 2016 +0200
@@ -1,13 +1,17 @@
#include "map.h"
+/* Dernier Changement : Romain 20h30 */
+
map::map (Odometry* nodo) : Codo(nodo) {
}
void map::Build (int couleur, int formation) {
- max_x_table = 2800;
- max_y_table = 1800;
- min_x_table = 0;
- min_y_table = 0;
+ if (couleur == VERT) {
+ max_x_table = 2800;
+ max_y_table = 1800;
+ min_x_table = 0;
+ min_y_table = 0;
+ }
addObs(obsCarr (800, 100, 100, 15));
addObs(obsCarr (2200, 100, 100, 15));
@@ -15,7 +19,7 @@
addObs(obsCarr (1500, 750, 1100, 15));
addObs(obsCarr (1500, 1050, 20, 300));
- if (formation == MAP_RIGHTSIDE) {
+ if (formation == 1) {
addObs(obsCarr (0, 2000, 250, 150)); // Coté haut droite
addObs(obsCarr (200, 2000, 200, 50));
@@ -206,4 +210,26 @@
logger.printf("Chemin pas trouve ...\n\r");
}
endedParc = false;
+}
+
+void map::Execute(float XObjectif, float YObjectif) {
+ // logger.printf("Findway %f-%f -> %f-%f\n\r", Codo->getX(), Codo->getY(), XObjectif, YObjectif);
+ Objectif o;
+ FindWay (Codo->getX(), Codo->getY(), o.getX(), o.getY());
+
+ if (endedParc) {
+ //logger.printf("\n\r");
+ for (int i = 0; i < path.size (); i++) {
+ // logger.printf("Goto %d/%d [%f, %f]... \n\r", i, path.size()-1, path[i].getX(), path[i].getY());
+ //the = (float) atan2((double) (p[i].gety() - odo.getY()), (double) (p[i].getx() - odo.getX()));
+ Codo->GotoXY((double)path[i].getX(), (double)path[i].getY());
+ // logger.printf("Goto Fini\n\r");
+ }
+
+ //logger.printf("Chemin fini !\n\r");
+ }
+ else {
+ logger.printf("Chemin pas trouve ...\n\r");
+ }
+ endedParc = false;
}
\ No newline at end of file
--- a/Map/map.h Wed May 04 19:43:53 2016 +0200
+++ b/Map/map.h Wed May 04 21:04:50 2016 +0200
@@ -1,22 +1,29 @@
#ifndef MAP_H
#define MAP_H
+/* Dernier Changement : Romain 20h30
+Inclu dans : main.cpp
+Il faut encore gerer les formations de coquillage */
+
#include "obsCarr.h"
#include "pointParcours.h"
#include "nVector.h"
#include "controle.h"
-#include "Odometry.h"
+#include "Objectif/objectif.h"
+#include "../Odometry/Odometry.h"
#include "../AX12/AX12.h"
+#include "../../StepperMotor/Stepper.h"
#define MAP_RIGHTSIDE 1
#define MAP_LEFTSIDE 2
class map {
public:
- map (Odometry* nodo);
+ map (Odometry* nodo, AX12 * nA1, AX12 * nA2, AX12 * nA3, Stepper * nS1, Stepper * nS2);
void addObs (obsCarr nobs);
void FindWay (point dep, point arr);
void FindWay (float depX, float depY, float arrX, float arrY);
+ void Execute (int obj);
void Execute (float XObjectif, float YObjectif);
void Build(int couleur, int formation);
nVector<pointParcours>& getParc () { return path; }
@@ -25,8 +32,12 @@
protected:
nVector<obsCarr> obs;
nVector<pointParcours> path;
+ nVector<Objectif> objectifs;
+
bool endedParc; // Definit s'il existe un chemin parcourable dans le dernier FindWay
Odometry* Codo;
+ AX12 * A1, * A2, * A3;
+ Stepper * S1, * S2;
float min_x_table, min_y_table, max_x_table, max_y_table;
};
