Julien Tiron / Mbed 2 deprecated 2-FisherMan

Dependencies:   AX12 Servo VL6180x X_NUCLEO_COMMON X_NUCLEO_IHM01A1 mbed

Files at this revision

API Documentation at this revision

Comitter:
julientiron
Date:
Fri May 06 07:23:13 2016 +0000
Commit message:
j;

Changed in this revision

AX12.lib Show annotated file Show diff for this revision Revisions of this file
Servo.lib Show annotated file Show diff for this revision Revisions of this file
VL6180x.lib Show annotated file Show diff for this revision Revisions of this file
X_NUCLEO_COMMON.lib Show annotated file Show diff for this revision Revisions of this file
X_NUCLEO_IHM01A1.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 88fd29503679 AX12.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AX12.lib	Fri May 06 07:23:13 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/users/julientiron/code/AX12/#c1835649c36f
diff -r 000000000000 -r 88fd29503679 Servo.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Servo.lib	Fri May 06 07:23:13 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/simon/code/Servo/#36b69a7ced07
diff -r 000000000000 -r 88fd29503679 VL6180x.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/VL6180x.lib	Fri May 06 07:23:13 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/users/julientiron/code/VL6180x/#f65cc86f43a2
diff -r 000000000000 -r 88fd29503679 X_NUCLEO_COMMON.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/X_NUCLEO_COMMON.lib	Fri May 06 07:23:13 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/teams/ST/code/X_NUCLEO_COMMON/#216930edb6b7
diff -r 000000000000 -r 88fd29503679 X_NUCLEO_IHM01A1.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/X_NUCLEO_IHM01A1.lib	Fri May 06 07:23:13 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/users/mohabendaoud/code/X_NUCLEO_IHM01A1/#eebac9cee826
diff -r 000000000000 -r 88fd29503679 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri May 06 07:23:13 2016 +0000
@@ -0,0 +1,197 @@
+/**
+ ******************************************************************************
+ * @file    main.cpp
+ * @author  Julien Tiron, FIP Télécom Bretagne
+ * @version V1.0.0
+ * @date    March 23th, 2016
+ * @brief   DoorCloser robot main code
+ ******************************************************************************
+ **/
+
+/* Includes ------------------------------------------------------------------*/
+
+#include "mbed.h"
+#include "DevSPI.h"
+#include "l6474_class.h"
+#include "DevI2C.h"
+#include "VL6180x.h"
+#include "AX12.h"
+#include "Servo.h"
+/* Definitions ---------------------------------------------------------------*/
+
+#define VL6180X_ADDRESS 0x29
+
+/* Variables -----------------------------------------------------------------*/
+
+/* Start and  Stop Component */
+InterruptIn startup(PC_1);
+Ticker pwm_ticker;
+Timeout game_length;
+volatile bool start = 1;
+volatile bool end = 1;
+char data = 0x08 | (char)64;
+bool tag = true;
+int i2cAddres=0x70;                // Address of DS1307 is 0x68 (7 bit address)
+int i2c8BitAddres= i2cAddres <<1;  // Convert to 8bit addressing used by mbed
+Servo myservo(D5);
+PwmOut parasol(A3);
+/* Motor Control Component */
+L6474 *motor1;
+L6474 *motor2;
+DigitalInOut sdaDummy(D14);
+DigitalInOut sclDummy(D15);
+/* Distance Sensors Component */
+VL6180x sensor(D14, D15, VL6180X_ADDRESS<<1);
+
+/* Functions -----------------------------------------------------------------*/
+
+void go()
+{
+    start = 0;
+}
+
+void stop()
+{
+    end = 0;
+}
+
+void init_sensor()
+{
+
+}
+
+void switch_sensor(int number)
+{
+
+}
+
+void pwm();
+
+void deplacement(int distanceEnCm, bool sens)
+{
+    int nbPas = distanceEnCm*166.7;
+    if(sens) {
+        motor1->Move(StepperMotor::BWD,nbPas);
+        motor2->Move(StepperMotor::FWD,nbPas);
+    } else {
+        motor1->Move(StepperMotor::FWD,nbPas);
+        motor2->Move(StepperMotor::BWD,nbPas);
+    }
+    motor1->WaitWhileActive();
+    motor2->WaitWhileActive();
+    motor1->HardStop();
+    motor2->HardStop();
+}
+
+void rotation(int angleEnDegre, int diametre)
+{
+    int deplacementEnCm = (1000*angleEnDegre/360)*(diametre)*3.14;
+    int nbPas = 160*deplacementEnCm;
+    nbPas /= 990;
+
+    /*
+    int deplacementEnCm = (int)((float) angleEnDegre/ (float) 360)*((float) diametre)* (float) 3.14;
+    int nbPas = 160*deplacementEnCm;
+    nbPas *= 2;*/
+
+    printf("%d \n\r", nbPas);
+    motor2->Move(StepperMotor::FWD,nbPas);
+    motor1->Move(StepperMotor::FWD,nbPas);
+    motor1->WaitWhileActive();
+    motor2->WaitWhileActive();
+    motor1->HardStop();
+    motor2->HardStop();
+}
+
+
+/* Main ----------------------------------------------------------------------*/
+
+int main()
+{
+    /*----- Initialization. -----*/
+
+    /* Initializing SPI bus. */
+    DevSPI dev_spi(D11, D12, D13);
+    myservo.calibrate(0.00095, 90.0); // Calibrate the servo
+    parasol.period_ms(10);
+    parasol.pulsewidth_ms(1);
+    /* Initializing Motor Control Components. */
+    motor1 = new L6474(D2, D8, D7, D9, D10, dev_spi);
+    motor2 = new L6474(D2, D8, D4, D3, D10, dev_spi);
+    if (motor1->Init() != COMPONENT_OK)
+        exit(EXIT_FAILURE);
+    if (motor2->Init() != COMPONENT_OK)
+        exit(EXIT_FAILURE);
+    sdaDummy.mode(PullUp);
+    sclDummy.mode(PullUp);
+    //pwm_ticker.attach(&pwm, 0.1);
+    /* Initializing AX-12 motors */
+    /*    AX12 ax12_1 (D1, D0, 1, 1000000);
+        AX12 ax12_2 (D1, D0, 2, 1000000);
+        AX12 ax12_3 (D1, D0, 3, 1000000);
+        AX12 ax12_4 (D1, D0, 4, 1000000);
+        AX12 ax12_5 (D1, D0, 5, 1000000);*/
+
+    /* Interrupt to start the robot */
+    startup.fall(&go);
+    /*motor1->Move(StepperMotor::BWD,6000);
+    motor2->Move(StepperMotor::FWD,6000);
+    motor1->WaitWhileActive();
+    motor2->WaitWhileActive();
+    motor1->HardStop();
+    motor2->HardStop();*/
+    //deplacement(10, 0);
+    /*    rotation(90, 30);
+        wait(2);
+        rotation(45, 30);
+        wait(2);
+        rotation(180, 30);
+        wait(2);
+        rotation(45, 30);*/
+    /*motor1->Move(StepperMotor::FWD,6000);
+    motor2->Move(StepperMotor::BWD,6000);
+    motor1->WaitWhileActive();
+    motor2->WaitWhileActive();
+    motor1->HardStop();
+    motor2->HardStop();
+    */
+
+    while(start) {
+        /* Waiting code */
+        /*        ax12_1.SetSpeed(70);
+                ax12_2.SetSpeed(70);
+                ax12_3.SetSpeed(70);
+                ax12_4.SetSpeed(70);
+                ax12_5.SetSpeed(70);*/
+        //wait_ms(100);
+    }
+
+    /* Interrupt to stop the robot */
+    game_length.attach(&stop, 90); //1 minutes 30 secondes pour la Coupe
+
+    while(end) {
+        //deplacement(60, 1);
+        //motor1->Run(StepperMotor::FWD);
+        //motor2->Run(StepperMotor::BWD);
+        //wait(1);
+        //motor1->Run(StepperMotor::BWD);
+        //motor2->Run(StepperMotor::FWD);
+        wait_ms(100);
+        motor1->Move(StepperMotor::BWD,12000);
+        motor2->Move(StepperMotor::FWD,12000);
+        while((sensor.getDistance()>50) && end) {
+            //Tant que la distance est superieure on continue d'avancer
+            wait_ms(20);
+            printf("1");
+        }
+    }
+
+    parasol.write(0.5);
+    printf("2");
+    motor1->HardStop();
+    motor2->HardStop();
+}
+
+void pwm()
+{
+}
\ No newline at end of file
diff -r 000000000000 -r 88fd29503679 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri May 06 07:23:13 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/99a22ba036c9
\ No newline at end of file