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.
Fork of Timer by
Revision 81:e7b03e81b025, committed 2016-05-05
- Comitter:
- IceTeam
- Date:
- Thu May 05 18:17:08 2016 +0000
- Parent:
- 80:cd4960dfa47e
- Child:
- 82:07e13071dd7b
- Commit message:
- Programme de test;
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/entete.h Thu May 05 18:17:08 2016 +0000 @@ -0,0 +1,43 @@ +#ifndef FONCTIONS_H +#define FONCTIONS_H + +#include "RoboClaw/RoboClaw.h" +#include "mbed.h" + +extern BusOut drapeau; +extern RoboClaw roboclaw; +extern AnalogIn Rcapt1; +extern int RvalRcapt1; +extern AnalogIn Rcapt2; +extern int RvalRcapt2; +extern AnalogIn Rcapt3; +extern int RvalRcapt3; +extern int Ravance; +extern DigitalIn start; + +// Fonctions main.cpp +void Sharps(); +void GotoThet (float timer, int signe); +void GotoDist (float timer); + +// Fonctions test.cpp +void wait_start(); +void TestDist3(float start, float pas); +void TestThet3(float start, float pas); +void compareThet(float start); + +#define ADR 0x80 +#define accel_angle 12000 +#define vitesse_angle 10000 +#define deccel_angle 12000 + +#define accel_dista 12000 +#define vitesse_dista 12000 +#define deccel_dista 12000 + +#define waiting_time 1 +#define R_SEUIL_SHARP 0.3 +#define GAUCHE 1 +#define DROITE -1 + +#endif \ No newline at end of file
--- a/main.cpp Thu May 05 16:01:55 2016 +0000
+++ b/main.cpp Thu May 05 18:17:08 2016 +0000
@@ -1,18 +1,6 @@
-#include "RoboClaw/RoboClaw.h"
-#include "mbed.h"
-
-#define ADR 0x80
-#define accel_angle 12000
-#define vitesse_angle 10000
-#define deccel_angle 12000
+#include "entete.h"
-#define accel_dista 12000
-#define vitesse_dista 12000
-#define deccel_dista 12000
-
-void Sharps();
BusOut drapeau (PC_8, PC_6, PC_5);
-
RoboClaw roboclaw(ADR, 460800, PA_11, PA_12);
AnalogIn Rcapt1(PA_4);
int RvalRcapt1 = 0;
@@ -20,62 +8,16 @@
int RvalRcapt2 = 0;
AnalogIn Rcapt3(PC_1);
int RvalRcapt3 = 0;
-
int Ravance = 1;
-#define R_SEUIL_SHARP 0.3
+DigitalIn start(PB_7);
-void GotoDist(float timer) {
- Timer t;
- t.reset();
- roboclaw.SpeedAccelM1M2(accel_dista, vitesse_dista, vitesse_dista);
- t.start();
-
- while (t.read() < timer) {
- if (Ravance != 1) {
- roboclaw.ForwardM1(0);
- roboclaw.ForwardM2(0);
- t.stop();
- while (Ravance != 1);
- t.start();
- }
- }
-
- roboclaw.ForwardM1(0);
- roboclaw.ForwardM2(0);
- t.stop();
- t.reset();
-}
-
-void GotoThet (float timer) {
- Timer t;
- t.reset();
- t.start();
- roboclaw.SpeedAccelM1M2(accel_dista, vitesse_dista, -vitesse_dista);
-
- while (t.read() < timer) {
- if (Ravance != 1) {
- roboclaw.ForwardM1(0);
- roboclaw.ForwardM2(0);
- t.stop();
- while (Ravance != 1);
- t.start();
- }
- }
-
- roboclaw.ForwardM1(0);
- roboclaw.ForwardM2(0);
-
- t.stop();
- t.reset();
-}
/* Debut du programme */
int main(void)
{
Ticker ticker;
ticker.attach(&Sharps, 0.01);
- GotoDist(7);
- GotoThet(7);
+ TestDist3(1,1);
while(1);
}
@@ -105,4 +47,76 @@
drapeau = 1;
else
drapeau = 2;
+}
+
+void GotoDist(float timer) {
+ Timer t;
+
+ roboclaw.SpeedAccelM1(accel_dista, vitesse_dista);
+ roboclaw.SpeedAccelM2(accel_dista, vitesse_dista);
+
+ t.reset();
+ t.start();
+
+ while (t.read() < timer) {
+ if (Ravance != 1) {
+ roboclaw.ForwardM1(0);
+ roboclaw.ForwardM2(0);
+ t.stop();
+ while (Ravance != 1);
+ roboclaw.SpeedAccelM1(accel_dista, vitesse_dista);
+ roboclaw.SpeedAccelM2(accel_dista, vitesse_dista);
+ t.start();
+ }
+ }
+
+ roboclaw.ForwardM1(0);
+ roboclaw.ForwardM2(0);
+
+ t.stop();
+ t.reset();
+
+ wait(waiting_time);
+}
+
+void GotoThet (float timer, int signe) {
+ Timer t;
+
+ if (signe < 0) {
+ roboclaw.SpeedAccelM1(accel_dista, vitesse_dista);
+ roboclaw.SpeedAccelM2(-accel_dista, -vitesse_dista);
+ }
+ else {
+ roboclaw.SpeedAccelM1(-accel_dista, -vitesse_dista);
+ roboclaw.SpeedAccelM2(accel_dista, vitesse_dista);
+ }
+
+ t.reset();
+ t.start();
+
+ while (t.read() < timer) {
+ if (Ravance != 1) {
+ roboclaw.ForwardM1(0);
+ roboclaw.ForwardM2(0);
+ t.stop();
+ while (Ravance != 1);
+ t.start();
+ }
+ if (signe < 0) {
+ roboclaw.SpeedAccelM1(accel_dista, vitesse_dista);
+ roboclaw.SpeedAccelM2(-accel_dista, -vitesse_dista);
+ }
+ else {
+ roboclaw.SpeedAccelM1(-accel_dista, -vitesse_dista);
+ roboclaw.SpeedAccelM2(accel_dista, vitesse_dista);
+ }
+ }
+
+ roboclaw.ForwardM1(0);
+ roboclaw.ForwardM2(0);
+
+ t.stop();
+ t.reset();
+
+ wait(waiting_time);
}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests.cpp Thu May 05 18:17:08 2016 +0000
@@ -0,0 +1,28 @@
+#include "entete.h"
+
+void wait_start() {
+ while (start == 1);
+ while (start == 0);
+}
+
+void TestDist3(float start, float pas) {
+ GotoDist(start);
+ wait_start();
+ GotoDist(start + pas);
+ wait_start();
+ GotoDist(start + 2 * pas);
+}
+
+void TestThet3(float start, float pas) {
+ GotoThet(start, GAUCHE);
+ wait_start();
+ GotoThet(start + pas, GAUCHE);
+ wait_start();
+ GotoThet(start + 2 * pas, GAUCHE);
+}
+
+void compareThet(float start) {
+ GotoThet(start, DROITE);
+ wait_start();
+ GotoThet(start, GAUCHE);
+}
\ No newline at end of file
